X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=client%2Fclient.c;h=7f007abd1962f20fdef674f9597e4f1ed0f0fd49;hb=cbeb1227a16f62975115e1e9216ccf2724bfd046;hp=a1134338261239f22e6b80e1a559107765273240;hpb=3b5d9ce6b714e69e96b8c738c4055196cb1f42b4;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index a113433..7f007ab 100644 --- a/client/client.c +++ b/client/client.c @@ -4,7 +4,32 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: client.c,v $ - * Revision 1.96 2000-03-14 09:27:07 ian + * Revision 1.104 2000-09-04 08:58:15 adam + * Added prefix yaz_ for most logging utility functions. + * + * Revision 1.103 2000/08/10 08:41:26 adam + * Fixes for ILL. + * + * Revision 1.102 2000/05/18 11:57:04 adam + * Client display time elapsed. + * + * Revision 1.101 2000/04/05 07:39:54 adam + * Added shared library support (libtool). + * + * Revision 1.100 2000/03/20 19:29:59 adam + * Minor change. + * + * Revision 1.99 2000/03/20 19:06:25 adam + * Added Segment request for fronend server. Work on admin for client. + * + * Revision 1.98 2000/03/16 13:55:49 ian + * Added commands for sending shutdown and startup admin requests via the admin ES. + * + * Revision 1.97 2000/03/14 14:06:04 ian + * Minor change to order of debugging output for send_apdu, + * fixed encoding of admin request. + * + * Revision 1.96 2000/03/14 09:27:07 ian * Added code to enable sending of admin extended service requests * * Revision 1.95 2000/02/28 11:20:05 adam @@ -356,9 +381,9 @@ static ODR out, in, print; /* encoding and decoding streams */ static FILE *apdu_file = 0; static COMSTACK conn = 0; /* our z-association */ static Z_IdAuthentication *auth = 0; /* our current auth definition */ -static char *databaseNames[128]; +char *databaseNames[128]; +int num_databaseNames = 0; static Z_External *record_last = 0; -static int num_databaseNames = 0; static int setnumber = 0; /* current result set number */ static int smallSetUpperBound = 0; static int largeSetLowerBound = 1; @@ -398,16 +423,16 @@ void send_apdu(Z_APDU *a) char *buf; int len; - if (!z_APDU(out, &a, 0, 0)) - { - odr_perror(out, "Encoding APDU"); - exit(1); - } if (apdu_file) { z_APDU(print, &a, 0, 0); odr_reset(print); } + if (!z_APDU(out, &a, 0, 0)) + { + odr_perror(out, "Encoding APDU"); + exit(1); + } buf = odr_getbuf(out, &len, 0); /* printf ("sending APDU of size %d\n", len); */ if (cs_put(conn, buf, len) < 0) @@ -1243,11 +1268,7 @@ void process_ESResponse(Z_ExtendedServicesResponse *res) const char *get_ill_element (void *clientData, const char *element) { - /* printf ("asking for %s\n", element); */ - if (!strcmp (element, "ill,transaction-id,transaction-group-qualifier")) - return "1"; - if (!strcmp (element, "ill,transaction-id,transaction-qualifier")) - return "1"; + printf ("%s\n", element); return 0; } @@ -1264,7 +1285,9 @@ static Z_External *create_external_itemRequest() ctl.f = get_ill_element; req = ill_get_ItemRequest(&ctl, "ill", 0); - + if (!req) + printf ("ill_get_ItemRequest failed\n"); + if (!ill_ItemRequest (out, &req, 0, 0)) { if (apdu_file) @@ -1421,21 +1444,20 @@ 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; - switch (*type) + if (!strcmp (type, "item") || !strcmp(type, "2")) { - case '2': printf ("using item-request\n"); r->u.itemOrder->u.esRequest->notToKeep->itemRequest = create_external_itemRequest(); - break; - case '1': + } + else if (!strcmp(type, "ill") || !strcmp(type, "1")) + { printf ("using ILL-request\n"); r->u.itemOrder->u.esRequest->notToKeep->itemRequest = create_external_ILLRequest(); - break; - default: - r->u.itemOrder->u.esRequest->notToKeep->itemRequest = 0; } + else + r->u.itemOrder->u.esRequest->notToKeep->itemRequest = 0; return r; } @@ -2259,22 +2281,30 @@ static int client(int wait) {"attributeset", cmd_attributeset, ""}, {"querytype", cmd_querytype, ""}, {"refid", cmd_refid, ""}, - {"itemorder", cmd_itemorder, "1|2 "}, + {"itemorder", cmd_itemorder, "ill|item "}, {"update", cmd_update, ""}, +#ifdef ASN_COMPILED /* Server Admin Functions */ {"adm-reindex", cmd_adm_reindex, ""}, {"adm-truncate", cmd_adm_truncate, "('database'|'index')"}, - {"adm-create", cmd_adm_create, ""}, - {"adm-delete", cmd_adm_delete, "('database'|'index')"}, - {"adm-import", cmd_adm_import, " "}, - {"adm-refresh", cmd_adm_refresh, ""}, + {"adm-create", cmd_adm_create, ""}, + {"adm-drop", cmd_adm_drop, "('database'|'index')"}, + {"adm-import", cmd_adm_import, " "}, + {"adm-refresh", cmd_adm_refresh, ""}, {"adm-commit", cmd_adm_commit, ""}, + {"adm-shutdown", cmd_adm_shutdown, ""}, + {"adm-startup", cmd_adm_startup, ""}, +#endif {0,0} }; char *netbuffer= 0; int netbufferlen = 0; int i; Z_APDU *apdu; +#if HAVE_GETTIMEOFDAY + struct timeval tv_start, tv_end; + gettimeofday (&tv_start, 0); +#endif while (1) { @@ -2321,6 +2351,10 @@ static int client(int wait) if ((end_p = strchr (line, '\n'))) *end_p = '\0'; #endif +#if HAVE_GETTIMEOFDAY + gettimeofday (&tv_start, 0); +#endif + if ((res = sscanf(line, "%s %[^;]", word, arg)) <= 0) { strcpy(word, last_cmd); @@ -2349,9 +2383,11 @@ static int client(int wait) } } wait = 0; + if (conn #ifdef USE_SELECT - if (conn && FD_ISSET(cs_fileno(conn), &input)) + && FD_ISSET(cs_fileno(conn), &input) #endif + ) { do { @@ -2433,6 +2469,15 @@ static int client(int wait) } } while (conn && cs_more(conn)); +#if HAVE_GETTIMEOFDAY + gettimeofday (&tv_end, 0); + if (1) + { + printf ("Elapsed: %.6f\n", (double) tv_end.tv_usec / + 1e6 + tv_end.tv_sec - + ((double) tv_start.tv_usec / 1e6 + tv_start.tv_sec)); + } +#endif } } return 0; @@ -2471,10 +2516,10 @@ int main(int argc, char **argv) apdu_file=fopen(arg, "a"); break; case 'v': - log_init (log_mask_str(arg), "", NULL); + yaz_log_init (yaz_log_mask_str(arg), "", NULL); break; default: - fprintf (stderr, "Usage: %s [-m ] [ -m ] " + fprintf (stderr, "Usage: %s [-m ] [ -a ] " "[]\n", prog); exit (1);