Number of Extended Services Requests logged.
[yaz-moved-to-github.git] / ztest / ztest.c
index e6e724d..8946137 100644 (file)
@@ -6,7 +6,16 @@
  *    Chas Woodfield, Fretwell Downing Datasystems.
  *
  * $Log: ztest.c,v $
- * Revision 1.40  2001-03-25 21:55:13  adam
+ * Revision 1.43  2001-06-28 09:27:25  adam
+ * Number of Extended Services Requests logged.
+ *
+ * Revision 1.42  2001/04/06 12:26:46  adam
+ * Optional CCL module. Moved atoi_n to marcdisp.h from yaz-util.h.
+ *
+ * Revision 1.41  2001/04/05 13:08:48  adam
+ * New configure options: --enable-module.
+ *
+ * Revision 1.40  2001/03/25 21:55:13  adam
  * Added odr_intdup. Ztest server returns TaskPackage for ItemUpdate.
  *
  * Revision 1.39  2001/03/12 14:40:57  adam
 #include <yaz/backend.h>
 #include <yaz/log.h>
 
-#ifdef ASN_COMPILED
+#if YAZ_MODULE_ill
 #include <yaz/ill.h>
 #endif
 
@@ -167,11 +176,19 @@ int ztest_present (void *handle, bend_present_rr *rr)
 
 int ztest_esrequest (void *handle, bend_esrequest_rr *rr)
 {
-    yaz_log(LOG_LOG, "function: %d", *rr->esr->function);
+    int *counter = handle;  /* user-defined handle - created in bend_init */
+
+    yaz_log(LOG_LOG, "ESRequest no %d", *counter);
+
+    (*counter)++;
+
     if (rr->esr->packageName)
        yaz_log(LOG_LOG, "packagename: %s", rr->esr->packageName);
     yaz_log(LOG_LOG, "Waitaction: %d", *rr->esr->waitAction);
 
+
+    yaz_log(LOG_LOG, "function: %d", *rr->esr->function);
+
     if (!rr->esr->taskSpecificParameters)
     {
         yaz_log (LOG_WARN, "No task specific parameters");
@@ -212,7 +229,7 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr)
                yaz_log(LOG_LOG, "setId: %s", n->resultSetItem->resultSetId);
                yaz_log(LOG_LOG, "item: %d", *n->resultSetItem->item);
            }
-#ifdef ASN_COMPILED
+#if YAZ_MODULE_ill
            if (n->itemRequest)
            {
                Z_External *r = (Z_External*) n->itemRequest;
@@ -223,6 +240,13 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr)
                    oident *ent = oid_getentbyoid(r->direct_reference);
                    if (ent)
                        yaz_log(LOG_LOG, "OID %s", ent->desc);
+                    if (ent && ent->value == VAL_TEXT_XML)
+                    {
+                       yaz_log (LOG_LOG, "ILL XML request");
+                        if (r->which == Z_External_octet)
+                            yaz_log (LOG_LOG, "%.*s", r->u.octet_aligned->len,
+                                     r->u.octet_aligned->buf); 
+                    }
                    if (ent && ent->value == VAL_ISO_ILL_1)
                    {
                        yaz_log (LOG_LOG, "Decode ItemRequest begin");
@@ -692,11 +716,12 @@ int ztest_scan(void *handle, bend_scan_rr *q)
 bend_initresult *bend_init(bend_initrequest *q)
 {
     bend_initresult *r = (bend_initresult *) odr_malloc (q->stream, sizeof(*r));
-    static char *dummy = "Hej fister";
+    int *counter = (int *) xmalloc (sizeof(int));
 
+    *counter = 0;
     r->errcode = 0;
     r->errstring = 0;
-    r->handle = dummy;
+    r->handle = counter;         /* user handle, in this case a simple int */
     q->bend_sort = ztest_sort;              /* register sort handler */
     q->bend_search = ztest_search;          /* register search handler */
     q->bend_present = ztest_present;        /* register present handle */
@@ -709,6 +734,7 @@ bend_initresult *bend_init(bend_initrequest *q)
 
 void bend_close(void *handle)
 {
+    xfree (handle);              /* release our user-defined handle */
     return;
 }