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
limit=0 means unlimited MP-632
[metaproxy-moved-to-github.git]
/
src
/
filter_multi.cpp
diff --git
a/src/filter_multi.cpp
b/src/filter_multi.cpp
index
f34731f
..
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);
@@
-678,12
+686,12
@@
void yf::Multi::Frontend::search(mp::Package &package, Z_APDU *apdu_req)
Z_APDU *f_apdu = odr.create_searchResponse(apdu_req, 0, 0);
Z_SearchResponse *f_resp = f_apdu->u.searchResponse;
Z_APDU *f_apdu = odr.create_searchResponse(apdu_req, 0, 0);
Z_SearchResponse *f_resp = f_apdu->u.searchResponse;
- yaz_log(YLOG_LOG, "no_successful=%d is_closed=%s hide_errors=%s",
+ yaz_log(YLOG_DEBUG, "no_successful=%d is_closed=%s hide_errors=%s",
no_successful,
close_p ? "true" : "false",
m_p->m_hide_errors ? "true" : "false");
*f_resp->resultCount = result_set_size;
no_successful,
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();
@@
-783,7
+791,7
@@
void yf::Multi::Frontend::present(mp::Package &package, Z_APDU *apdu_req)
std::list<Multi::FrontendSet::PresentJob>::const_iterator jit;
for (jit = jobs.begin(); jit != jobs.end(); jit++)
{
std::list<Multi::FrontendSet::PresentJob>::const_iterator jit;
for (jit = jobs.begin(); jit != jobs.end(); jit++)
{
- yaz_log(YLOG_LOG, "job pos=%d", jit->m_pos);
+ yaz_log(YLOG_DEBUG, "job pos=%d", jit->m_pos);
}
}
}
}
@@
-957,15
+965,10
@@
Z_Entry *yf::Multi::ScanTermInfo::get_entry(ODR odr)
t->byAttributes = 0;
t->otherTermInfo = 0;
t->globalOccurrences = odr_intdup(odr, m_count);
t->byAttributes = 0;
t->otherTermInfo = 0;
t->globalOccurrences = odr_intdup(odr, m_count);
- t->term = (Z_Term *)
- odr_malloc(odr, sizeof(*t->term));
+ t->term = (Z_Term *) odr_malloc(odr, sizeof(*t->term));
t->term->which = Z_Term_general;
t->term->which = Z_Term_general;
- Odr_oct *o;
- t->term->u.general = o = (Odr_oct *)odr_malloc(odr, sizeof(Odr_oct));
-
- o->len = o->size = m_norm_term.size();
- o->buf = (unsigned char *) odr_malloc(odr, o->len);
- memcpy(o->buf, m_norm_term.c_str(), o->len);
+ t->term->u.general = odr_create_Odr_oct(odr,
+ m_norm_term.c_str(), m_norm_term.size());
return e;
}
return e;
}