Ups... memory leak
[yaz-moved-to-github.git] / src / seshigh.c
index aaf0618..64854a6 100644 (file)
@@ -25,6 +25,9 @@
  * minimize memory allocation/deallocation during normal operation.
  *
  */
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #include <limits.h>
 #include <stdlib.h>
@@ -950,6 +953,7 @@ static void srw_bend_search(association *assoc,
             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);
@@ -1139,7 +1143,7 @@ static void srw_bend_search(association *assoc,
                          (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), 
@@ -1906,7 +1910,7 @@ static void process_http_request(association *assoc, request *req)
             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;
@@ -2158,7 +2162,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
             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)))
@@ -2617,6 +2621,7 @@ static Z_APDU *process_searchRequest(association *assoc, request *reqb)
         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