std::string authentication;
std::string cfAuth;
std::string cfProxy;
- std::string cfSubDb;
+ std::string cfSubDB;
std::string udb;
std::string target;
std::string query_encoding;
std::string sru;
+ std::string sru_version;
std::string request_syntax;
std::string element_set;
std::string record_encoding;
void handle_package(mp::Package &package);
void handle_search(mp::Package &package);
void handle_present(mp::Package &package);
- BackendPtr get_backend_from_databases(const mp::Package &package,
+ BackendPtr get_backend_from_databases(mp::Package &package,
std::string &database,
int *error,
char **addinfo,
s->cfProxy = mp::xml::get_text(ptr);
}
else if (!strcmp((const char *) ptr->name,
- "cfSubDb"))
+ "cfSubDB"))
{
- s->cfSubDb = mp::xml::get_text(ptr);
+ s->cfSubDB = mp::xml::get_text(ptr);
}
else if (!strcmp((const char *) ptr->name,
"contentConnector"))
{
s->sru = mp::xml::get_text(ptr);
}
+ else if (!strcmp((const char *) ptr->name, "SRUVersion"))
+ {
+ s->sru_version = mp::xml::get_text(ptr);
+ }
else if (!strcmp((const char *) ptr->name,
"queryEncoding"))
{
}
yf::Zoom::BackendPtr yf::Zoom::Frontend::get_backend_from_databases(
- const mp::Package &package,
+ mp::Package &package,
std::string &database, int *error, char **addinfo, ODR odr)
{
std::list<BackendPtr>::const_iterator map_it;
out_names[no_out_args] = "proxy";
out_values[no_out_args++] = odr_strdup(odr, proxy.c_str());
}
- if (sptr->cfSubDb.length())
+ if (sptr->cfSubDB.length())
{
out_names[no_out_args] = "subdatabase";
- out_values[no_out_args++] = odr_strdup(odr, sptr->cfSubDb.c_str());
+ out_values[no_out_args++] = odr_strdup(odr, sptr->cfSubDB.c_str());
}
}
else
fwrite(wrbuf_buf(w), 1, wrbuf_len(w), file);
fclose(file);
- package.log("zoom", YLOG_LOG, "file %s created\n", fname);
+ package.log("zoom", YLOG_LOG, "file %s created", fname);
xfree(fname);
}
{
url = "http://" + sptr->target;
b->set_option("sru", sptr->sru);
+
+ if (sptr->sru_version.length())
+ b->set_option("sru_version", sptr->sru_version);
}
else
{
(char **) out_values);
url += "," + std::string(x_args);
}
- package.log("zoom", YLOG_LOG, "url=%s", url.c_str());
+ package.log("zoom", YLOG_LOG, "url: %s", url.c_str());
b->connect(url, error, addinfo, odr);
if (*error == 0)
{
const char *cql = query->u.type_104->u.cql;
CQL_parser cp = cql_parser_create();
int r = cql_parser_string(cp, cql);
+ package.log("zoom", YLOG_LOG, "CQL: %s", cql);
if (r)
{
cql_parser_destroy(cp);
+ package.log("zoom", YLOG_WARN, "CQL syntax error");
apdu_res =
odr.create_searchResponse(apdu_req,
YAZ_BIB1_MALFORMED_QUERY,