New configure options: --enable-module.
[yaz-moved-to-github.git] / client / client.c
index a7f9f54..8aeede6 100644 (file)
@@ -3,7 +3,19 @@
  * See the file LICENSE for details.
  *
  * $Log: client.c,v $
- * Revision 1.115  2001-03-13 18:10:58  adam
+ * Revision 1.119  2001-04-05 13:08:48  adam
+ * New configure options: --enable-module.
+ *
+ * Revision 1.118  2001/03/27 14:48:06  adam
+ * Fixed scan for bad CCL.
+ *
+ * Revision 1.117  2001/03/25 21:55:12  adam
+ * Added odr_intdup. Ztest server returns TaskPackage for ItemUpdate.
+ *
+ * Revision 1.116  2001/03/21 12:43:36  adam
+ * Implemented cs_create_host. Better error reporting for SSL comstack.
+ *
+ * Revision 1.115  2001/03/13 18:10:58  adam
  * Added option -c to set CCL config file.
  *
  * Revision 1.114  2001/02/21 13:46:53  adam
 
 #include <yaz/pquery.h>
 
-#ifdef ASN_COMPILED
+#if YAZ_MODULE_ill
 #include <yaz/ill.h>
 #endif
 
@@ -628,7 +640,6 @@ int cmd_open(char *arg)
 {
     void *add;
     char type_and_host[101], base[101];
-    char *host = 0;
     CS_TYPE t;
 
     if (conn)
@@ -647,44 +658,28 @@ int cmd_open(char *arg)
     base[0] = '\0';
     if (sscanf (arg, "%100[^/]/%100s", type_and_host, base) < 1)
         return 0;
-    if (strncmp (type_and_host, "tcp:", 4) == 0)
-        host = type_and_host + 4;
-    else if (strncmp (type_and_host, "ssl:", 4) == 0)
-    {
-#if HAVE_OPENSSL_SSL_H
-       t = ssl_type;
-#else
-       printf ("SSL not supported\n");
-#endif
-        host = type_and_host + 4;
-    }
-    else
-        host = type_and_host;
-    if (*base)
-        cmd_base (base);
-    protocol = PROTO_Z3950;
 
-    if (!(conn = cs_create(t, 1, protocol)))
-    {
-        perror("cs_create");
-        return 0;
-    }
-    if (!(add = cs_straddr(conn, host)))
+    conn = cs_create_host(type_and_host, 1, &add);
+    if (!conn)
     {
-        perror(arg);
-        return 0;
+       printf ("Couldn't create comstack\n");
+       return 0;
     }
     printf("Connecting...");
     fflush(stdout);
     if (cs_connect(conn, add) < 0)
     {
-        perror("connect");
+       printf ("error = %s\n", cs_strerror(conn));
+       if (conn->cerrno == CSYSERR)
+           perror("system");
         cs_close(conn);
         conn = 0;
         return 0;
     }
     printf("Ok.\n");
     send_initRequest();
+    if (*base)
+        cmd_base (base);
     return 2;
 }
 
@@ -1322,7 +1317,7 @@ void process_ESResponse(Z_ExtendedServicesResponse *res)
     }
 }
 
-#ifdef ASN_COMPILED
+#if YAZ_MODULE_ill
 
 const char *get_ill_element (void *clientData, const char *element)
 {
@@ -1386,14 +1381,9 @@ static Z_External *create_external_itemRequest()
     }
     return r;
 }
-#else
-static Z_External *create_external_itemRequest()
-{
-    return 0;
-}
 #endif
 
-#ifdef ASN_COMPILED
+#ifdef YAZ_MODULE_ill
 static Z_External *create_external_ILL_APDU(int which)
 {
     struct ill_get_ctl ctl;
@@ -1449,11 +1439,6 @@ static Z_External *create_external_ILL_APDU(int which)
     }
     return r;
 }
-#else
-static Z_External *create_external_ILLRequest()
-{
-    return 0;
-}
 #endif
 
 
@@ -1504,7 +1489,7 @@ static Z_External *create_ItemOrderExternal(const char *type, int itemno)
         (int *) odr_malloc(out, sizeof(int));
     *r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item = itemno;
 
-#ifdef ASN_COMPILED
+#if YAZ_MODULE_ill
     if (!strcmp (type, "item") || !strcmp(type, "2"))
     {
         printf ("using item-request\n");
@@ -1892,7 +1877,7 @@ int send_scanrequest(const char *query, int pp, int num, const char *term)
         if (error)
         {
             printf("CCL ERROR: %s\n", ccl_err_msg(error));
-            return 0;
+            return -1;
         }
         use_rpn = 0;
         bib1.proto = PROTO_Z3950;
@@ -1902,7 +1887,7 @@ int send_scanrequest(const char *query, int pp, int num, const char *term)
         if (!(req->termListAndStartPoint = ccl_scan_query (out, rpn)))
         {
             printf("Couldn't convert CCL to Scan term\n");
-            return 0;
+            return -1;
         }
         ccl_rpn_delete (rpn);
     }