added command for setting packageName in ES packages!
[yaz-moved-to-github.git] / client / client.c
index cdcad4d..9b37bdd 100644 (file)
@@ -4,7 +4,14 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: client.c,v $
- * Revision 1.109  2001-01-22 10:41:47  adam
+ * Revision 1.111  2001-01-30 15:52:48  ja7
+ * added command for setting packageName in ES packages!
+ * command is named packagename default is NULL for server suplyed package name
+ *
+ * Revision 1.110  2001/01/29 11:19:05  adam
+ * Clients prints options in InitResponse.
+ *
+ * Revision 1.109  2001/01/22 10:41:47  adam
  * Multiple attribute may be specified for sorging.
  *
  * Revision 1.108  2000/11/23 10:58:32  adam
@@ -414,6 +421,7 @@ static NMEM session_mem = NULL;      /* memory handle for init-response */
 static Z_InitResponse *session = 0;     /* session parameters */
 static char last_scan_line[512] = "0";
 static char last_scan_query[512] = "0";
+char* esPackageName = 0;
 
 static char last_cmd[100] = "?";
 static FILE *marcdump = 0;
@@ -542,6 +550,35 @@ static int process_initResponse(Z_InitResponse *res)
         }
         odr_reset (print);
     }
+    printf ("Options:");
+    if (ODR_MASK_GET(res->options, Z_Options_search))
+        printf (" search");
+    if (ODR_MASK_GET(res->options, Z_Options_present))
+        printf (" present");
+    if (ODR_MASK_GET(res->options, Z_Options_delSet))
+        printf (" delSet");
+    if (ODR_MASK_GET(res->options, Z_Options_resourceReport))
+        printf (" resourceReport");
+    if (ODR_MASK_GET(res->options, Z_Options_resourceCtrl))
+        printf (" resourceCtrl");
+    if (ODR_MASK_GET(res->options, Z_Options_accessCtrl))
+        printf (" accessCtrl");
+    if (ODR_MASK_GET(res->options, Z_Options_scan))
+        printf (" scan");
+    if (ODR_MASK_GET(res->options, Z_Options_sort))
+        printf (" sort");
+    if (ODR_MASK_GET(res->options, Z_Options_extendedServices))
+        printf (" extendedServices");
+    if (ODR_MASK_GET(res->options, Z_Options_level_1Segmentation))
+        printf (" level1Segmentation");
+    if (ODR_MASK_GET(res->options, Z_Options_level_2Segmentation))
+        printf (" level2Segmentation");
+    if (ODR_MASK_GET(res->options, Z_Options_concurrentOperations))
+        printf (" concurrentOperations");
+    if (ODR_MASK_GET(res->options, Z_Options_namedResultSets))
+        printf (" namedResultSets");
+    printf ("\n");
+    fflush (stdout);
     return 0;
 }
 
@@ -1480,7 +1517,7 @@ static int send_itemorder(const char *type, int itemno)
     ItemOrderRequest.oclass = CLASS_EXTSERV;
     ItemOrderRequest.value = VAL_ITEMORDER;
     req->packageType = odr_oiddup(out,oid_getoidbyent(&ItemOrderRequest));
-    req->packageName = "1.Extendedserveq";
+    req->packageName = esPackageName;
 
     req->taskSpecificParameters = create_ItemOrderExternal(type, itemno);
 
@@ -1507,7 +1544,7 @@ static int cmd_update(char *arg)
     update_oid.value = VAL_DBUPDATE;
     oid_ent_to_oid (&update_oid, oid);
     req->packageType = odr_oiddup(out,oid);
-    req->packageName = "1.Extendedserveq";
+    req->packageName = esPackageName;
 
     r = req->taskSpecificParameters = (Z_External *)
         odr_malloc (out, sizeof(*r));
@@ -2292,6 +2329,17 @@ int cmd_close(char *arg)
     return 2;
 }
 
+int cmd_packagename(char* arg) {
+    xfree (esPackageName);
+    esPackageName = NULL;
+    if (*arg)
+    {
+        esPackageName = (char *) xmalloc (strlen(arg)+1);
+        strcpy (esPackageName, arg);
+    }
+    return 1;
+};
+
 static void initialize(void)
 {
 #if CCL2RPN
@@ -2353,6 +2401,7 @@ static int client(int wait)
         {"refid", cmd_refid, "<id>"},
         {"itemorder", cmd_itemorder, "ill|item <itemno>"},
         {"update", cmd_update, "<item>"},
+       {"packagename", cmd_packagename, "<packagename>"},
 #ifdef ASN_COMPILED
         /* Server Admin Functions */
         {"adm-reindex", cmd_adm_reindex, "<database-name>"},