X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fclient.c;h=e40c8e1dc18b03b073e74f7ad255ec08531bd0ae;hb=f7bf5626d6ae623cbcf86b8c4c9f9ed023a92499;hp=ad2d2a3725fec85cbdf5765e2a468fe8f25dc3be;hpb=194b8961ce560e233440017a65ec1758b3e6b5ec;p=pazpar2-moved-to-github.git diff --git a/src/client.c b/src/client.c index ad2d2a3..e40c8e1 100644 --- a/src/client.c +++ b/src/client.c @@ -543,27 +543,6 @@ static void ingest_raw_record(struct client *cl, ZOOM_record rec) client_show_raw_dequeue(cl); } -void client_check_preferred_watch(struct client *cl) -{ - struct session *se = cl->session; - yaz_log(YLOG_DEBUG, "client_check_preferred_watch: %s ", client_get_id(cl)); - if (se) - { - client_unlock(cl); - /* TODO possible threading issue. Session can have been destroyed */ - if (session_is_preferred_clients_ready(se)) { - session_alert_watch(se, SESSION_WATCH_SHOW_PREF); - } - else - yaz_log(YLOG_DEBUG, "client_check_preferred_watch: Still locked on preferred targets."); - - client_lock(cl); - } - else - yaz_log(YLOG_WARN, "client_check_preferred_watch: %s. No session!", client_get_id(cl)); - -} - struct suggestions* client_suggestions_create(const char* suggestions_string); static void client_suggestions_destroy(struct client *cl); @@ -603,6 +582,11 @@ void client_got_records(struct client *cl) struct session *se = cl->session; if (se) { + client_unlock(cl); + /* TODO possible threading issue. Session can have been destroyed */ + if (session_is_preferred_clients_ready(se)) + session_alert_watch(se, SESSION_WATCH_SHOW_PREF); + client_lock(cl); if (reclist_get_num_records(se->reclist) > 0) { client_unlock(cl); @@ -1384,10 +1368,12 @@ static int apply_limit(struct session_database *sdb, struct ccl_rpn_node *cn; wrbuf_rewind(ccl_w); wrbuf_puts(ccl_w, ccl); - wrbuf_puts(ccl_w, "=\""); + wrbuf_putc(ccl_w, '='); + if (strchr(values[i], ' ')) + wrbuf_putc(ccl_w, '\"'); wrbuf_puts(ccl_w, values[i]); - wrbuf_puts(ccl_w, "\""); - + if (strchr(values[i], ' ')) + wrbuf_putc(ccl_w, '\"'); cn = ccl_find_str(ccl_map, wrbuf_cstr(ccl_w), &cerror, &cpos); if (cn)