[Yazlist] Problerm on bend_init in YAZ toolkit

Adam Dickmeiss adam at indexdata.dk
Tue Aug 30 22:14:10 CEST 2005


李洪文 wrote:
> Hi,
> 
> My Yaz Z39.50 Server runs om Windows 2k, programmed by Visual C++.Net
> ,using the YAZ toolkit of C interface. i found a problerm:
> 
> Open YAZ Client, type command "open localhost:9999/mydb", then my server is 
> connected. my function bend_init was called, and i allocate an handle to
> the session.
> 
> When type command "init" on the same connection in the yaz command prompt later, 
> the bend_init was called again by the YAZ framework. But it does not provide 
> the handle just assigned.
> 
> So the prior session will live in the whole life of the server, even if the 
> connection was closed by the client. That's no means to locate the session
> in the bend_init because no handle provided.

All true. Note that Z39.50 allows exactly one Initialize Request in a 
session. So none/multiple is not standard behavior.
> 
> can the bend_init function provide an handle just assigned in the begining 
> of the connection ?

We changed the GFS code so that bend_close gets called before bend_init 
if bend_init previously returned non-NULL for that TCP/IP session. It 
seems more proper than just keeping it open. For example, there might be 
other user authentication to consider.. In fact I don't see why Z39.50 
could allow multiple Z39.50 sessions within one TCP/IP session.

Fixed in next YAZ release. Whenever we release that.

/ Adam

> 
>    thank you
> 
> 
> 
> 
> _______________________________________________
> Yazlist mailing list
> Yazlist at indexdata.dk
> http://www.indexdata.dk/mailman/listinfo/yazlist
> 






More information about the Yazlist mailing list