client so that tcp: can be avoided in target spec.
* 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
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)
}
}
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;
* 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
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;
* 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
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.");
* 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
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
* 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
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)
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<ret; i++)
+ {
+ if ((i & 15) == 0)
+ fprintf (cfile, " \"");
+ fprintf (cfile, "\\x%02X", p[i] & 255);
+
+ if (i < ret - 1 && (i & 15) == 15)
+ fprintf (cfile, "\"\n");
+
+ }
+ fprintf (cfile, "\"\n}");
+ }
p += ret;
count++;
}
+ if (cfile)
+ {
+ fprintf (cfile, "};\n");
+ }
fclose (inf);
xfree (buf);
break;
verbose++;
break;
default:
- fprintf (stderr, "Usage: %s [-v] file...\n", prog);
+ fprintf (stderr, "Usage: %s [-c cfile] [-v] file...\n", prog);
exit (1);
}
}
+ if (cfile)
+ fclose (cfile);
if (!no)
{
fprintf (stderr, "Usage: %s [-v] file...\n", prog);