X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_zoom.cpp;h=b48b58f42ddf80812c681d81954e0cad005bc095;hb=1cdd720a9a3ba872aa092c80b28413d8b2579eed;hp=e9992813185e9d66b1a127f643ffffc656dbb8b9;hpb=7e2a07a78f7bf299a40b04bda27e9bd6f3ae05b1;p=metaproxy-moved-to-github.git diff --git a/src/filter_zoom.cpp b/src/filter_zoom.cpp index e999281..b48b58f 100644 --- a/src/filter_zoom.cpp +++ b/src/filter_zoom.cpp @@ -21,10 +21,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include "filter_zoom.hpp" -#include -#include -#include -#include #include #include #include @@ -35,6 +31,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include + +#include +#include +#include #include #include #include @@ -48,6 +48,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include +#include namespace mp = metaproxy_1; namespace yf = mp::filter; @@ -84,6 +85,7 @@ namespace metaproxy_1 { friend class Impl; friend class Frontend; std::string zurl; + WRBUF m_apdu_wrbuf; ZOOM_connection m_connection; ZOOM_resultset m_resultset; std::string m_frontend_database; @@ -200,7 +202,9 @@ void yf::Zoom::process(mp::Package &package) const yf::Zoom::Backend::Backend(SearchablePtr ptr) : sptr(ptr) { + m_apdu_wrbuf = wrbuf_alloc(); m_connection = ZOOM_connection_create(0); + ZOOM_connection_save_apdu_wrbuf(m_connection, m_apdu_wrbuf); m_resultset = 0; xsp = 0; } @@ -1627,6 +1631,9 @@ void yf::Zoom::Frontend::handle_package(mp::Package &package) else if (gdu->which == Z_GDU_Z3950) { Z_APDU *apdu_req = gdu->u.z3950; + + if (m_backend) + wrbuf_rewind(m_backend->m_apdu_wrbuf); if (apdu_req->which == Z_APDU_initRequest) { mp::odr odr; @@ -1652,6 +1659,11 @@ void yf::Zoom::Frontend::handle_package(mp::Package &package) "zoom filter cannot handle this APDU"); package.session().close(); } + if (m_backend) + { + WRBUF w = m_backend->m_apdu_wrbuf; + package.log_write(wrbuf_buf(w), wrbuf_len(w)); + } } else {