X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_multi.cpp;h=5c581e5a1e2e6cfa4475a14a113772d83f27dc21;hb=a752c3a98eb824cf13596f3ddf3cade68ce04c49;hp=5f7d1b5bb7b8c0d9d0c0e1df7ab31fa3369db128;hpb=b02df3fd0849c5222081013420c18f949c55f9c5;p=metaproxy-moved-to-github.git diff --git a/src/filter_multi.cpp b/src/filter_multi.cpp index 5f7d1b5..5c581e5 100644 --- a/src/filter_multi.cpp +++ b/src/filter_multi.cpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include +#include #include #include @@ -444,6 +445,13 @@ void yf::Multi::Frontend::init(mp::Package &package, Z_GDU *gdu) *breq->preferredMessageSize = *req->preferredMessageSize; *breq->maximumRecordSize = *req->maximumRecordSize; + + const char *peer_name = yaz_oi_get_string_oid( + &req->otherInfo, yaz_oid_userinfo_client_ip, 1, 0); + if (peer_name) + yaz_oi_set_string_oid(&breq->otherInfo, odr, + yaz_oid_userinfo_client_ip, 1, peer_name); + ODR_MASK_SET(breq->options, Z_Options_search); ODR_MASK_SET(breq->options, Z_Options_present); ODR_MASK_SET(breq->options, Z_Options_namedResultSets); @@ -683,7 +691,7 @@ void yf::Multi::Frontend::search(mp::Package &package, Z_APDU *apdu_req) close_p ? "true" : "false", m_p->m_hide_errors ? "true" : "false"); *f_resp->resultCount = result_set_size; - if (close_p && (no_successful == 0 || !m_p->m_hide_errors)) + if (close_p && (no_successful == 0 || !m_p->m_hide_unavailable)) { package.session().close(); package.response() = close_p->response(); @@ -960,9 +968,6 @@ Z_Entry *yf::Multi::ScanTermInfo::get_entry(ODR odr) t->term = (Z_Term *) odr_malloc(odr, sizeof(*t->term)); t->term->which = Z_Term_general; t->term->u.general = odr_create_Odr_oct(odr, -#if YAZ_VERSIONL < 0x50000 - (unsigned char *) -#endif m_norm_term.c_str(), m_norm_term.size()); return e; }