void present(Odr_int start, Odr_int number, ZOOM_record *recs,
int *error, char **addinfo, ODR odr);
void set_option(const char *name, const char *value);
+ void set_option(const char *name, std::string value);
const char *get_option(const char *name);
void get_zoom_error(int *error, char **addinfo, ODR odr);
};
ZOOM_resultset_option_set(m_resultset, name, value);
}
+void yf::Zoom::Backend::set_option(const char *name, std::string value)
+{
+ set_option(name, value.c_str());
+}
+
const char *yf::Zoom::Backend::get_option(const char *name)
{
return ZOOM_connection_option_get(m_connection, name);
b->m_frontend_database = database;
if (sptr->query_encoding.length())
- b->set_option("rpnCharset", sptr->query_encoding.c_str());
+ b->set_option("rpnCharset", sptr->query_encoding);
b->set_option("timeout", "40");
return notfound;
}
}
- if (param_user && param_password)
+ if (param_user)
{
- authentication = std::string(param_user)
- + "/" + std::string(param_password);
+ authentication = std::string(param_user);
+ if (param_password)
+ authentication += "/" + std::string(param_password);
}
if (param_proxy)
proxy = param_proxy;
if (sptr->cfAuth.length())
{
// A CF target
- b->set_option("user", sptr->cfAuth.c_str());
+ b->set_option("user", sptr->cfAuth);
if (!param_user && !param_password && authentication.length())
{
if (db_args.length())
{
db_args.clear(); // no arguments to be passed (non-CF)
- if (authentication.length())
- b->set_option("user", authentication.c_str());
+ size_t found = authentication.find('/');
+
+ if (sptr->sru.length() && found != std::string::npos)
+ {
+ b->set_option("user", authentication.substr(0, found));
+ b->set_option("password", authentication.substr(found+1));
+ }
+ else
+ b->set_option("user", authentication);
+
if (proxy.length())
- b->set_option("proxy", proxy.c_str());
+ b->set_option("proxy", proxy);
}
if (b->sptr->contentConnector.length())
{
if (sptr->sru.length())
{
url = "http://" + sptr->target;
- b->set_option("sru", sptr->sru.c_str());
+ b->set_option("sru", sptr->sru);
}
else
{