X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-z-server.cpp;h=096cfa0c07a0f4f79a6d46278de11a158d9ebe02;hp=38fedb46187c25dcf29722ed5e8089798c2d730a;hb=56d92bbfde918ba7c662588fabde1331210f003b;hpb=7a8b8195358610868a183c6b72844c94dc317f2b diff --git a/src/yaz-z-server.cpp b/src/yaz-z-server.cpp index 38fedb4..096cfa0 100644 --- a/src/yaz-z-server.cpp +++ b/src/yaz-z-server.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-z-server.cpp,v $ - * Revision 1.5 2000-10-24 12:29:57 adam + * Revision 1.6 2001-01-29 11:18:24 adam + * Server sets OPTIONS search and present. + * + * Revision 1.5 2000/10/24 12:29:57 adam * Fixed bug in proxy where a Yaz_ProxyClient could be owned by * two Yaz_Proxy's (fatal). * @@ -279,12 +282,20 @@ void Yaz_Z_Server::fetch_via_present (Z_PresentRequest *req, void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) { + Z_Options *req, *res; Z_APDU *apdu_response; switch (apdu_request->which) { case Z_APDU_initRequest: logf (LOG_LOG, "got InitRequest p=%p", this); apdu_response = create_Z_PDU(Z_APDU_initResponse); + req = apdu_request->u.initRequest->options; + res = apdu_response->u.initResponse->options; + + if (ODR_MASK_GET(req, Z_Options_search)) + ODR_MASK_SET(res, Z_Options_search); + if (ODR_MASK_GET(req, Z_Options_present)) + ODR_MASK_SET(res, Z_Options_present); recv_Z_init (apdu_request->u.initRequest, apdu_response->u.initResponse); m_preferredMessageSize =