X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-z-server.cpp;h=99ef2dbce2f4e2b5a6baffd27dad49763e3a01bb;hb=4ffb5c5f0c0c64799a89f7961fd553ae8ae4854b;hp=0af5836b066cab059b20e7e6d85fbf6c43a20f3c;hpb=b93c75bec555a4b1bd2428a3af826d154b7a47f7;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-server.cpp b/src/yaz-z-server.cpp index 0af5836..99ef2db 100644 --- a/src/yaz-z-server.cpp +++ b/src/yaz-z-server.cpp @@ -1,12 +1,12 @@ /* - * Copyright (c) 2000-2001, Index Data. + * Copyright (c) 2000-2003, Index Data. * See the file LICENSE for details. * - * $Id: yaz-z-server.cpp,v 1.14 2002-04-24 12:21:03 adam Exp $ + * $Id: yaz-z-server.cpp,v 1.17 2003-12-16 14:17:01 adam Exp $ */ #include -#include +#include Yaz_Z_Server::Yaz_Z_Server(IYaz_PDU_Observable *the_PDU_Observable) : Yaz_Z_Assoc(the_PDU_Observable) @@ -48,7 +48,15 @@ void Yaz_Z_Server::facility_add(IYaz_Server_Facility *facility, (*p)->m_facility = facility; } -void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) +void Yaz_Z_Server::recv_GDU (Z_GDU *apdu, int len) +{ + if (apdu->which == Z_GDU_Z3950) + return recv_Z_PDU(apdu->u.z3950, len); + else + delete this; +} + +void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request, int len) { Yaz_Z_Server_Facility_Info *f = m_facilities; @@ -77,7 +85,7 @@ void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) f = f->m_next; } transfer_referenceId(apdu_request, apdu_response); - send_Z_PDU(apdu_response); + send_Z_PDU(apdu_response, 0); } else {