ZOOM: increase default max message to 64 MB
[yaz-moved-to-github.git] / src / seshigh.c
index 92627c2..2ac95fd 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) 1995-2012 Index Data
  * See the file LICENSE for details.
  */
 /**
@@ -270,11 +270,10 @@ int ir_read(IOCHAN h, int event)
     
     if ((assoc->cs_put_mask & EVENT_INPUT) == 0 && (event & assoc->cs_get_mask))
     {
-        yaz_log(YLOG_DEBUG, "ir_session (input)");
         /* We aren't speaking to this fellow */
         if (assoc->state == ASSOC_DEAD)
         {
-            yaz_log(log_sessiondetail, "Connection closed - end of session");
+            yaz_log(log_session, "Connection closed - end of session");
             cs_close(conn);
             destroy_association(assoc);
             iochan_destroy(h);
@@ -297,10 +296,8 @@ int ir_read(IOCHAN h, int event)
             }
             else if (res <= 0)
             {
+                assoc->state = ASSOC_DEAD;
                 yaz_log(log_session, "Connection closed by client");
-                cs_close(conn);
-                destroy_association(assoc);
-                iochan_destroy(h);
                 return 0;
             }
             else if (res == 1) /* incomplete read - wait for more  */
@@ -447,7 +444,6 @@ void ir_session(IOCHAN h, int event)
             yaz_log(YLOG_DEBUG, "HTTP out:\n%.*s", req->len_response,
                     req->response);
 #endif
-            nmem_destroy(req->request_mem);
             request_deq(&assoc->outgoing);
             request_release(req);
             if (!request_head(&assoc->outgoing))
@@ -764,7 +760,7 @@ static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
     int r;
     int srw_errcode = 0;
     const char *add = 0;
-    char rpn_buf[5120];
+    WRBUF rpn_buf = wrbuf_alloc();
          
     *sortkeys_p = 0;
     r = cql_parser_string(cp, cql);
@@ -777,7 +773,7 @@ static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
         struct cql_node *cn = cql_parser_result(cp);
 
         /* Syntax OK */
-        r = cql_transform_buf(ct, cn, rpn_buf, sizeof(rpn_buf)-1);
+        r = cql_transform(ct, cn, wrbuf_vp_puts, rpn_buf);
         if (r)
             srw_errcode = cql_transform_error(ct, &add);
         else
@@ -803,7 +799,7 @@ static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
         /* Syntax & transform OK. */
         /* Convert PQF string to Z39.50 to RPN query struct */
         YAZ_PQF_Parser pp = yaz_pqf_create();
-        Z_RPNQuery *rpnquery = yaz_pqf_parse(pp, odr, rpn_buf);
+        Z_RPNQuery *rpnquery = yaz_pqf_parse(pp, odr, wrbuf_cstr(rpn_buf));
         if (!rpnquery)
         {
             size_t off;
@@ -821,6 +817,7 @@ static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
         yaz_pqf_destroy(pp);
     }
     cql_parser_destroy(cp);
+    wrbuf_destroy(rpn_buf);
     return srw_errcode;
 }