From: Adam Dickmeiss Date: Mon, 2 Oct 2000 11:07:44 +0000 (+0000) Subject: Added peer_name member for bend_init handler. Changed the YAZ X-Git-Tag: YAZ.1.8~186 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=4b05ad4607916d50257919cead06b54785c18e29 Added peer_name member for bend_init handler. Changed the YAZ client so that tcp: can be avoided in target spec. --- diff --git a/client/client.c b/client/client.c index 7f007ab..d7e71f8 100644 --- a/client/client.c +++ b/client/client.c @@ -4,7 +4,11 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: client.c,v $ - * Revision 1.104 2000-09-04 08:58:15 adam + * Revision 1.105 2000-10-02 11:07:44 adam + * Added peer_name member for bend_init handler. Changed the YAZ + * client so that tcp: can be avoided in target spec. + * + * 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 @@ -560,7 +564,8 @@ static int cmd_base(char *arg) int cmd_open(char *arg) { void *add; - char type[100], addr[100], base[100]; + char type_and_host[101], base[101]; + char *host = 0; CS_TYPE t; if (conn) @@ -576,37 +581,23 @@ int cmd_open(char *arg) } } base[0] = '\0'; - if (!*arg || sscanf(arg, "%[^:]:%[^/]/%s", type, addr, base) < 2) - { - fprintf(stderr, "Usage: open (osi|tcp) ':' [tsel '/']host[':'port]\n"); - return 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 + host = type_and_host; if (*base) cmd_base (base); - if (!strcmp(type, "tcp")) - { - t = tcpip_type; - protocol = PROTO_Z3950; - } - else -#ifdef USE_XTIMOSI - if (!strcmp(type, "osi")) - { - t = mosi_type; - protocol = PROTO_SR; - } - else -#endif - { - fprintf(stderr, "Bad type: %s\n", type); - return 0; - } + t = tcpip_type; + protocol = PROTO_Z3950; + if (!(conn = cs_create(t, 1, protocol))) { perror("cs_create"); return 0; } - if (!(add = cs_straddr(conn, addr))) + if (!(add = cs_straddr(conn, host))) { perror(arg); return 0; diff --git a/include/yaz/backend.h b/include/yaz/backend.h index 4a43f41..ca346ca 100644 --- a/include/yaz/backend.h +++ b/include/yaz/backend.h @@ -24,7 +24,11 @@ * OF THIS SOFTWARE. * * $Log: backend.h,v $ - * Revision 1.9 2000-08-31 10:20:12 adam + * Revision 1.10 2000-10-02 11:07:44 adam + * Added peer_name member for bend_init handler. Changed the YAZ + * client so that tcp: can be avoided in target spec. + * + * Revision 1.9 2000/08/31 10:20:12 adam * Added member request_format and output_format for backend fetch method. * * Revision 1.8 2000/08/31 09:51:25 adam @@ -253,6 +257,7 @@ typedef struct bend_initrequest ODR stream; /* encoding stream */ ODR print; /* printing stream */ Z_ReferenceId *referenceId;/* reference ID */ + char *peer_name; /* dns host of peer (client) */ char *implementation_name; char *implementation_version; diff --git a/server/seshigh.c b/server/seshigh.c index 11815cf..8c01796 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -3,7 +3,11 @@ * See the file LICENSE for details. * * $Log: seshigh.c,v $ - * Revision 1.108 2000-09-04 08:58:15 adam + * Revision 1.109 2000-10-02 11:07:44 adam + * Added peer_name member for bend_init handler. Changed the YAZ + * client so that tcp: can be avoided in target spec. + * + * Revision 1.108 2000/09/04 08:58:15 adam * Added prefix yaz_ for most logging utility functions. * * Revision 1.107 2000/08/31 10:20:12 adam @@ -893,6 +897,9 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) assoc->init->bend_scan = NULL; assoc->init->bend_segment = NULL; assoc->init->bend_fetch = NULL; + + assoc->init->peer_name = + odr_strdup (assoc->decode, cs_addrstr(assoc->client_link)); if (!(binitres = (*cb->bend_init)(assoc->init))) { yaz_log(LOG_WARN, "Bad response from backend."); diff --git a/util/marcdisp.c b/util/marcdisp.c index ecbd86c..a0ae412 100644 --- a/util/marcdisp.c +++ b/util/marcdisp.c @@ -3,7 +3,11 @@ * See the file LICENSE for details. * * $Log: marcdisp.c,v $ - * Revision 1.11 2000-02-29 13:44:55 adam + * Revision 1.12 2000-10-02 11:07:44 adam + * Added peer_name member for bend_init handler. Changed the YAZ + * client so that tcp: can be avoided in target spec. + * + * Revision 1.11 2000/02/29 13:44:55 adam * Check for config.h (currently not generated). * * Revision 1.10 2000/02/05 10:47:19 adam @@ -63,7 +67,14 @@ int marc_display_ex (const char *buf, FILE *outf, int debug) outf = stdout; record_length = atoi_n (buf, 5); if (record_length < 25) + { + if (debug) + { + fprintf (outf, "Record length %d - aborting\n", record_length); + + } return -1; + } if (isdigit(buf[10])) indicator_length = atoi_n (buf+10, 1); else diff --git a/util/marcdump.c b/util/marcdump.c index 9adc585..551bd07 100644 --- a/util/marcdump.c +++ b/util/marcdump.c @@ -4,7 +4,11 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: marcdump.c,v $ - * Revision 1.11 2000-07-04 08:53:22 adam + * Revision 1.12 2000-10-02 11:07:45 adam + * Added peer_name member for bend_init handler. Changed the YAZ + * client so that tcp: can be avoided in target spec. + * + * Revision 1.11 2000/07/04 08:53:22 adam * Fixed bug. * * Revision 1.10 2000/02/29 13:44:55 adam @@ -69,12 +73,18 @@ int main (int argc, char **argv) char *prog = *argv; int count = 0; int no = 0; + FILE *cfile = 0; - while ((ret = options("v", argv, argc, &arg)) != -2) + while ((ret = options("vc:", argv, argc, &arg)) != -2) { no++; switch (ret) { + case 'c': + if (cfile) + fclose (cfile); + cfile = fopen (arg, "w"); + break; case 0: inf = fopen (arg, "r"); if (!inf) @@ -109,11 +119,37 @@ int main (int argc, char **argv) prog, arg, strerror (errno)); exit (1); } + if (cfile) + { + fprintf (cfile, "char *marc_records[] = {\n"); + } for (p = buf; (ret = marc_display_ex (p, stdout, verbose)) > 0;) { + if (cfile) + { + int i; + if (p != buf) + fprintf (cfile, ","); + fprintf (cfile, "{\n"); + for (i = 0; i