/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2010 Index Data
+ * Copyright (C) 1995-2011 Index Data
* See the file LICENSE for details.
*/
/**
* minimize memory allocation/deallocation during normal operation.
*
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <limits.h>
#include <stdlib.h>
request_delq(&h->outgoing);
xfree(h);
xmalloc_trav("session closed");
- if (cb && cb->one_shot)
- {
- exit(0);
- }
}
static void do_close_req(association *a, int reason, char *message,
rr.errcode = 0;
rr.errstring = 0;
rr.search_info = 0;
+ rr.search_input = 0;
yaz_log_zquery_level(log_requestdetail,rr.query);
(assoc->init->bend_search)(assoc->backend, &rr);
(srw_res->numberOfRecords ?
*srw_res->numberOfRecords : 0));
}
- wrbuf_printf(wr, " %s " ODR_INT_PRINTF " +%d",
+ wrbuf_printf(wr, " %s " ODR_INT_PRINTF "+%d",
(srw_res->resultSetId ?
srw_res->resultSetId : "-"),
(srw_req->startRecord ? *srw_req->startRecord : 1),
keepalive = 1;
hres->version = "1.1";
}
- if (!keepalive)
+ if (!keepalive || !assoc->last_control->keepalive)
{
z_HTTP_header_add(o, &hres->headers, "Connection", "close");
assoc->state = ASSOC_DEAD;
yaz_log(log_requestdetail, "Config: %s",
cb->configname);
- iochan_settimeout(assoc->client_chan, cb->idle_timeout * 60);
+ iochan_settimeout(assoc->client_chan, cb->idle_timeout);
/* we have a backend control block, so call that init function */
if (!(binitres = (*cb->bend_init)(assoc->init)))
}
if (freq.record == 0) /* no error and no record ? */
{
+ *pres = Z_PresentStatus_partial_4;
*next = 0; /* signal end-of-set and stop */
break;
}
bsrr->errcode = 0;
bsrr->errstring = NULL;
bsrr->search_info = NULL;
+ bsrr->search_input = req->otherInfo;
if (assoc->server && assoc->server->cql_transform
&& req->query->which == Z_Query_type_104