projects
/
metaproxy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Filter sort: does not sort leading present MP-630
[metaproxy-moved-to-github.git]
/
src
/
filter_multi.cpp
diff --git
a/src/filter_multi.cpp
b/src/filter_multi.cpp
index
ca66168
..
5c581e5
100644
(file)
--- a/
src/filter_multi.cpp
+++ b/
src/filter_multi.cpp
@@
-1,5
+1,5
@@
/* This file is part of Metaproxy.
/* This file is part of Metaproxy.
- Copyright (C) 2005-2013 Index Data
+ Copyright (C) Index Data
Metaproxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Metaproxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
@@
-35,6
+35,7
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <yaz/otherinfo.h>
#include <yaz/diagbib1.h>
#include <yaz/match_glob.h>
#include <yaz/otherinfo.h>
#include <yaz/diagbib1.h>
#include <yaz/match_glob.h>
+#include <yaz/oid_db.h>
#include <vector>
#include <algorithm>
#include <vector>
#include <algorithm>
@@
-444,6
+445,13
@@
void yf::Multi::Frontend::init(mp::Package &package, Z_GDU *gdu)
*breq->preferredMessageSize = *req->preferredMessageSize;
*breq->maximumRecordSize = *req->maximumRecordSize;
*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);
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;
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();
{
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,
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;
}
m_norm_term.c_str(), m_norm_term.size());
return e;
}