Put proper reference IDs in response PDUs properly.
[metaproxy-moved-to-github.git] / src / filter_session_shared.cpp
index 7a8b4fa..996bfe9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: filter_session_shared.cpp,v 1.4 2006-01-04 11:55:31 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 <boost/thread/mutex.hpp>
@@ -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<SessionShared::List> 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;