* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: client.c,v 1.271 2005-01-19 08:26:44 adam Exp $
+ * $Id: client.c,v 1.273 2005-02-02 17:11:05 adam Exp $
*/
#include <stdio.h>
static int z3950_version = 3;
static int scan_stepSize = 0;
static int scan_position = 1;
+static int scan_size = 20;
static char cur_host[200];
typedef enum {
render_initUserInfo(uif->u.userInfo1);
} else {
printf("UserInformationfield:\n");
- if (!z_External(print, (Z_External**)&uif, 0, 0)) {
+ if (!z_External(print, (Z_External**)&uif, 0, 0))
+ {
odr_perror(print, "Printing userinfo\n");
odr_reset(print);
}
if (uif->which == Z_External_octet) {
printf("Guessing visiblestring:\n");
- printf("'%s'\n", uif->u. octet_aligned->buf);
- } else if (uif->which == Z_External_single) {
+ printf("'%.*s'\n", uif->u.octet_aligned->len,
+ uif->u.octet_aligned->buf);
+ }
+ else if (uif->which == Z_External_single)
+ {
Odr_any *sat = uif->u.single_ASN1_type;
oident *oid = oid_getentbyoid(uif->direct_reference);
if (oid->value == VAL_OCLCUI) {
else
{
/* Peek at any private Init-diagnostic APDUs */
- printf("### NAUGHTY: External is '%.*s'\n", sat->len, sat->buf);
+ printf("### NAUGHTY: External is '%.*s'\n",
+ sat->len, sat->buf);
}
}
odr_reset (print);
Z_OtherInformationUnit *unit = ui1->list[i];
printf(" %d: otherInfo unit contains ", i+1);
if (unit->which == Z_OtherInfo_externallyDefinedInfo &&
+ unit->information.externallyDefinedInfo &&
unit->information.externallyDefinedInfo->which ==
Z_External_diag1) {
render_diag(unit->information.externallyDefinedInfo->u.diag1);
- } else {
- printf("unsupported otherInfo unit type %d\n", unit->which);
+ }
+ else if (unit->which != Z_OtherInfo_externallyDefinedInfo)
+ {
+ printf("unsupported otherInfo unit->which = %d\n", unit->which);
+ }
+ else
+ {
+ printf("unsupported otherInfo unit external %d\n",
+ unit->information.externallyDefinedInfo ?
+ unit->information.externallyDefinedInfo->which : -2);
}
}
}
strncpy(type_and_host, arg, sizeof(type_and_host)-1);
type_and_host[sizeof(type_and_host)-1] = '\0';
- cmd_open_remember_last_open_command(arg,type_and_host);
+ cmd_open_remember_last_open_command(arg, type_and_host);
if (yazProxy)
conn = cs_create_host(yazProxy, 1, &add);
static int cmd_init(const char *arg)
{
+ if (*arg)
+ {
+ strncpy (cur_host, arg, sizeof(cur_host)-1);
+ cur_host[sizeof(cur_host)-1] = 0;
+ }
if (!conn || protocol != PROTO_Z3950)
return 0;
- send_initRequest(0);
+ send_initRequest(cur_host);
return 2;
}
return 0;
}
+int cmd_scansize(const char *arg)
+{
+ int r = sscanf(arg, "%d", &scan_size);
+ if (r == 0)
+ scan_size = 20;
+ return 0;
+}
+
int cmd_scan(const char *arg)
{
if (protocol == PROTO_HTTP)
return 0;
if (*arg)
{
- if (send_SRW_scanRequest(arg, scan_position, 20) < 0)
+ if (send_SRW_scanRequest(arg, scan_position, scan_size) < 0)
return 0;
}
else
{
- if (send_SRW_scanRequest(last_scan_line, 1, 20) < 0)
+ if (send_SRW_scanRequest(last_scan_line, 1, scan_size) < 0)
return 0;
}
return 2;
if (*arg)
{
strcpy (last_scan_query, arg);
- if (send_scanrequest(arg, scan_position, 20, 0) < 0)
+ if (send_scanrequest(arg, scan_position, scan_size, 0) < 0)
return 0;
}
else
{
- if (send_scanrequest(last_scan_query, 1, 20, last_scan_line) < 0)
+ if (send_scanrequest(last_scan_query, 1, scan_size, last_scan_line) < 0)
return 0;
}
return 2;
{"scan", cmd_scan, "<term>",NULL,0,NULL},
{"scanstep", cmd_scanstep, "<size>",NULL,0,NULL},
{"scanpos", cmd_scanpos, "<size>",NULL,0,NULL},
+ {"scansize", cmd_scansize, "<size>",NULL,0,NULL},
{"sort", cmd_sort, "<sortkey> <flag> <sortkey> <flag> ...",NULL,0,NULL},
{"sort+", cmd_sort_newset, "<sortkey> <flag> <sortkey> <flag> ...",NULL,0,NULL},
{"authentication", cmd_authentication, "<acctstring>",NULL,0,NULL},