Updated information about YAZ.
[yaz-moved-to-github.git] / server / requestq.c
index 80fe7e8..380fb41 100644 (file)
@@ -1,10 +1,23 @@
 /*
- * Copyright (C) 1994, Index Data.
+ * Copyright (C) 1994-1998, Index Data.
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: requestq.c,v $
- * Revision 1.3  1997-09-01 08:53:00  adam
+ * Revision 1.7  1999-11-30 13:47:12  adam
+ * Improved installation. Moved header files to include/yaz.
+ *
+ * Revision 1.6  1998/02/11 11:53:35  adam
+ * Changed code so that it compiles as C++.
+ *
+ * Revision 1.5  1998/02/10 11:03:56  adam
+ * Added support for extended handlers in backend server interface.
+ *
+ * Revision 1.4  1997/10/27 13:55:03  adam
+ * Fixed memory leak: member response wasn't freed when queue
+ * was destroyed.
+ *
+ * Revision 1.3  1997/09/01 08:53:00  adam
  * New windows NT/95 port using MSV5.0. The test server 'ztest' was
  * moved a separate directory. MSV5.0 project server.dsp created.
  * As an option, the server can now operate as an NT service.
@@ -27,7 +40,7 @@
 
 #include <stdlib.h>
 
-#include <xmalloc.h>
+#include <yaz/xmalloc.h>
 #include "session.h"
 
 void request_enq(request_q *q, request *r)
@@ -69,6 +82,7 @@ void request_delq(request_q *q)
     request *r1, *r = q->list;
     while (r)
     {
+       xfree (r->response);
         r1 = r;
         r = r->next;
         xfree (r1);
@@ -83,16 +97,18 @@ request *request_get(request_q *q)
        q->list = r->next;
     else
     {
-       if (!(r = xmalloc(sizeof(*r))))
+       if (!(r = (request *)xmalloc(sizeof(*r))))
            abort();
        r->response = 0;
        r->size_response = 0;
     }
     r->q = q;
     r->len_refid = 0;
+    r->refid = 0;
     r->request = 0;
     r->request_mem = 0;
     r->len_response = 0;
+    r->clientData = 0;
     r->state = REQUEST_IDLE;
     r->next = 0;
     return r;
@@ -104,3 +120,4 @@ void request_release(request *r)
     r->next = q->list;
     q->list = r;
 }
+