ZOOM_resultset resultset;
YAZ_MUTEX mutex;
int ref_count;
- /* copy of database->url */
char *url;
};
if (opt_preferred) {
cl->preferred = atoi(opt_preferred);
if (cl->preferred)
- yaz_log(YLOG_LOG, "Target %s has preferred status: %d", sdb->database->url, cl->preferred);
+ yaz_log(YLOG_LOG, "Target %s has preferred status: %d",
+ client_get_url(cl), cl->preferred);
}
client_set_state(cl, Client_Working);
if (cl->cqlquery)
{
ZOOM_query q = ZOOM_query_create();
- yaz_log(YLOG_LOG, "Search %s CQL: %s", sdb->database->url, cl->cqlquery);
+ yaz_log(YLOG_LOG, "Search %s CQL: %s", client_get_url(cl),
+ cl->cqlquery);
ZOOM_query_cql(q, cl->cqlquery);
if (*opt_sort)
ZOOM_query_sortby(q, opt_sort);
}
else
{
- yaz_log(YLOG_LOG, "Search %s PQF: %s", sdb->database->url, cl->pquery);
+ yaz_log(YLOG_LOG, "Search %s PQF: %s", client_get_url(cl), cl->pquery);
rs = ZOOM_connection_search_pqf(link, cl->pquery);
}
ZOOM_resultset_destroy(cl->resultset);
connection_continue(co);
}
-struct client *client_create(void)
+struct client *client_create(const char *url)
{
struct client *cl = xmalloc(sizeof(*cl));
cl->maxrecs = 100;
pazpar2_mutex_create(&cl->mutex, "client");
cl->preferred = 0;
cl->ref_count = 1;
- cl->url = 0;
+ assert(url);
+ cl->url = xstrdup(url);
client_use(1);
return cl;
if (!s)
{
yaz_log(YLOG_WARN, "Target %s: limit %s used, but no limitmap defined",
- (sdb->database ? sdb->database->url : "<no url>"), name);
+ (sdb->database ? sdb->database->id : "<no id>"), name);
}
}
nmem_destroy(nmem_tmp);
client_set_state(cl, Client_Error);
session_log(se, YLOG_WARN, "Failed to parse CCL query '%s' for %s",
wrbuf_cstr(w_ccl),
- client_get_database(cl)->database->url);
+ client_get_url(cl));
wrbuf_destroy(w_ccl);
wrbuf_destroy(w_pqf);
return -1;
return 0;
}
-
Odr_int client_get_hits(struct client *cl)
{
return cl->hits;
void client_set_database(struct client *cl, struct session_database *db)
{
cl->database = db;
- /* Copy the URL for safe logging even after session is gone */
- if (db) {
- cl->url = xstrdup(db->database->url);
- }
-}
-
-struct host *client_get_host(struct client *cl)
-{
- return client_get_database(cl)->database->host;
}
const char *client_get_url(struct client *cl)
{
- if (cl->url)
- return cl->url;
- else
- /* This must not happen anymore, as the url is present until destruction of client */
- return "NOURL";
+ return cl->url;
}
void client_set_maxrecs(struct client *cl, int v)