X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=client%2Fclient.c;h=89e803980096d286e8fa28b9b81e42f7ac7ba616;hp=0b5972493418cfbd3df06353c4a27bcc970aefe7;hb=59526fbbf2e3b54ce94b3e79e6c7fef9e4f456fb;hpb=e5324215018e129dd19734acd0e683e5af748423 diff --git a/client/client.c b/client/client.c index 0b59724..89e8039 100644 --- a/client/client.c +++ b/client/client.c @@ -3,7 +3,13 @@ * See the file LICENSE for details. * * $Log: client.c,v $ - * Revision 1.114 2001-02-21 13:46:53 adam + * 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 * C++ fixes. * * Revision 1.113 2001/02/21 09:41:15 adam @@ -429,6 +435,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"; +static char ccl_fields[512] = "default.bib"; char* esPackageName = 0; static char last_cmd[100] = "?"; @@ -643,44 +650,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; } @@ -1524,7 +1515,7 @@ static Z_External *create_ItemOrderExternal(const char *type, int itemno) static int send_itemorder(const char *type, int itemno) { - Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest ); + Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest); Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; oident ItemOrderRequest; @@ -2374,7 +2365,7 @@ static void initialize(void) #if CCL2RPN bibset = ccl_qual_mk (); - inf = fopen ("default.bib", "r"); + inf = fopen (ccl_fields, "r"); if (inf) { ccl_qual_file (bibset, inf); @@ -2624,7 +2615,7 @@ int main(int argc, char **argv) int ret; int opened = 0; - while ((ret = options("a:m:v:", argv, argc, &arg)) != -2) + while ((ret = options("c:a:m:v:", argv, argc, &arg)) != -2) { switch (ret) { @@ -2643,6 +2634,10 @@ int main(int argc, char **argv) exit (1); } break; + case 'c': + strncpy (ccl_fields, arg, sizeof(ccl_fields)-1); + ccl_fields[sizeof(ccl_fields)-1] = '\0'; + break; case 'a': if (!strcmp(arg, "-")) apdu_file=stderr; @@ -2654,7 +2649,7 @@ int main(int argc, char **argv) break; default: fprintf (stderr, "Usage: %s [-m ] [ -a ] " - "[]\n", + "[-c cclfields] []\n", prog); exit (1); }