X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_session_shared.cpp;h=996bfe985c5a20177fbced901a83dca090e28a47;hb=f47e8cf4cde2ba5465106e219c803e6424a4f177;hp=0936bc0f26e9fc85881e584d173c17a1105bae58;hpb=63ea8aedbfd7dc56ab28dbc82c38b4458dcecb68;p=metaproxy-moved-to-github.git diff --git a/src/filter_session_shared.cpp b/src/filter_session_shared.cpp index 0936bc0..996bfe9 100644 --- a/src/filter_session_shared.cpp +++ b/src/filter_session_shared.cpp @@ -1,4 +1,4 @@ -/* $Id: filter_session_shared.cpp,v 1.3 2006-01-04 11:19:04 adam Exp $ +/* $Id: filter_session_shared.cpp,v 1.6 2006-01-13 15:09:35 adam Exp $ Copyright (c) 2005, Index Data. %LICENSE% @@ -7,7 +7,6 @@ #include "config.hpp" #include "filter.hpp" -#include "router.hpp" #include "package.hpp" #include @@ -31,7 +30,7 @@ namespace yp2 { class SessionShared::Rep { friend class SessionShared; void handle_init(Z_InitRequest *req, Package &package); - void handle_search(Z_SearchRequest *req, Package &package); + void handle_search(Z_APDU *req, Package &package); public: typedef boost::shared_ptr SharedList; @@ -103,18 +102,21 @@ yf::SessionShared::~SessionShared() { } -void yf::SessionShared::Rep::handle_search(Z_SearchRequest *req, - Package &package) +void yf::SessionShared::Rep::handle_search(Z_APDU *apdu_req, + Package &package) { yaz_log(YLOG_LOG, "Got search"); + // Z_SearchRequest *req = apdu_req->u.searchRequest; + SessionListMap::iterator it = m_session_list_map.find(package.session()); if (it == m_session_list_map.end()) { yp2::odr odr; - package.response() = odr.create_close( - Z_Close_protocolError, - "no session for search request in session_shared"); + package.response() = + odr.create_close(apdu_req, + Z_Close_protocolError, + "no session for search request in session_shared"); package.session().close(); return; @@ -232,13 +234,13 @@ void yf::SessionShared::process(Package &package) const m_p->handle_init(apdu->u.initRequest, package); break; case Z_APDU_searchRequest: - m_p->handle_search(apdu->u.searchRequest, package); + m_p->handle_search(apdu, package); break; default: yp2::odr odr; - package.response() = odr.create_close( - Z_Close_protocolError, - "cannot handle a package of this type"); + package.response() = + odr.create_close(apdu, Z_Close_protocolError, + "cannot handle a package of this type"); package.session().close(); break; @@ -257,7 +259,7 @@ static yp2::filter::Base* filter_creator() } extern "C" { - const struct yp2_filter_struct yp2_filter_session_shared = { + struct yp2_filter_struct yp2_filter_session_shared = { 0, "session_shared", filter_creator