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
zoom: Honor extraArgs, strip # in zurl
[metaproxy-moved-to-github.git]
/
src
/
filter_zoom.cpp
diff --git
a/src/filter_zoom.cpp
b/src/filter_zoom.cpp
index
022536d
..
9de8e6b
100644
(file)
--- a/
src/filter_zoom.cpp
+++ b/
src/filter_zoom.cpp
@@
-76,6
+76,7
@@
namespace metaproxy_1 {
std::string urlRecipe;
std::string contentConnector;
std::string sortStrategy;
std::string urlRecipe;
std::string contentConnector;
std::string sortStrategy;
+ std::string extraArgs;
std::string rpn2cql_fname;
bool use_turbomarc;
bool piggyback;
std::string rpn2cql_fname;
bool use_turbomarc;
bool piggyback;
@@
-359,8
+360,12
@@
void yf::Zoom::Backend::connect(std::string zurl,
int *error, char **addinfo,
ODR odr)
{
int *error, char **addinfo,
ODR odr)
{
+ size_t h = zurl.find_first_of('#');
+ if (h != std::string::npos)
+ zurl.erase(h);
ZOOM_connection_connect(m_connection, zurl.length() ? zurl.c_str() : 0, 0);
get_zoom_error(error, addinfo, odr);
ZOOM_connection_connect(m_connection, zurl.length() ? zurl.c_str() : 0, 0);
get_zoom_error(error, addinfo, odr);
+
}
void yf::Zoom::Backend::search(ZOOM_query q, Odr_int *hits,
}
void yf::Zoom::Backend::search(ZOOM_query q, Odr_int *hits,
@@
-603,6
+608,11
@@
yf::Zoom::SearchablePtr yf::Zoom::Impl::parse_torus_record(const xmlNode *ptr)
{
s->sortStrategy = mp::xml::get_text(ptr);
}
{
s->sortStrategy = mp::xml::get_text(ptr);
}
+ else if (!strcmp((const char *) ptr->name,
+ "extraArgs"))
+ {
+ s->extraArgs = mp::xml::get_text(ptr);
+ }
else if (!strcmp((const char *) ptr->name, "rpn2cql"))
s->rpn2cql_fname = mp::xml::get_text(ptr);
}
else if (!strcmp((const char *) ptr->name, "rpn2cql"))
s->rpn2cql_fname = mp::xml::get_text(ptr);
}
@@
-1326,6
+1336,9
@@
yf::Zoom::BackendPtr yf::Zoom::Frontend::get_backend_from_databases(
if (sptr->query_encoding.length())
b->set_option("rpnCharset", sptr->query_encoding);
if (sptr->query_encoding.length())
b->set_option("rpnCharset", sptr->query_encoding);
+ if (sptr->extraArgs.length())
+ b->set_option("extraArgs", sptr->extraArgs);
+
b->set_option("timeout", m_p->zoom_timeout.c_str());
if (m_p->apdu_log)
b->set_option("timeout", m_p->zoom_timeout.c_str());
if (m_p->apdu_log)