* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: client.c,v 1.297 2005-09-21 19:46:33 adam Exp $
+ * $Id: client.c,v 1.304 2006-04-21 10:28:06 adam Exp $
*/
#include <stdio.h>
p0->which = Z_OtherInfo_externallyDefinedInfo;
p0->information.externallyDefinedInfo =
- yaz_set_proposal_charneg(
- out,
- (const char**)&negotiationCharset,
- negotiationCharset ? 1 : 0,
- (const char**)&yazLang, yazLang ? 1 : 0,
- negotiationCharsetRecords);
+ yaz_set_proposal_charneg_list(out, ",",
+ negotiationCharset,
+ yazLang,
+ negotiationCharsetRecords);
}
}
if (!(*type->fun)(in, &rr, 0, 0))
{
odr_perror(in, "Decoding constructed record.");
- fprintf(stdout, "[Near %d]\n", odr_offset(in));
+ fprintf(stdout, "[Near %ld]\n", (long) odr_offset(in));
fprintf(stdout, "Packet dump:\n---------\n");
odr_dumpBER(stdout, (char*)r->u.octet_aligned->buf,
r->u.octet_aligned->len);
if (smallSetUpperBound > 0 || (largeSetLowerBound > 1 &&
mediumSetPresentNumber > 0))
{
- if (recordsyntax_list > 0)
+ if (recordsyntax_size > 0)
req->preferredRecordSyntax =
yaz_oidval_to_z3950oid(out, CLASS_RECSYN, recordsyntax_list[0]);
req->smallSetElementSetNames =
const char *pqf_msg;
size_t off;
int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off);
- printf("%*s^\n", off+4, "");
+ int ioff = off;
+ printf("%*s^\n", ioff+4, "");
printf("Prefix query error: %s (code %d)\n", pqf_msg, code);
yaz_pqf_destroy (pqf_parser);
}
/* display Query Expression as part of searchResult-1 */
-static void display_queryExpression (Z_QueryExpression *qe)
+static void display_queryExpression (const char *lead, Z_QueryExpression *qe)
{
if (!qe)
return;
+ printf(" %s=", lead);
if (qe->which == Z_QueryExpression_term)
{
if (qe->u.term->queryTerm)
switch (term->which)
{
case Z_Term_general:
- printf (" %.*s", term->u.general->len, term->u.general->buf);
+ printf ("%.*s", term->u.general->len, term->u.general->buf);
break;
case Z_Term_characterString:
- printf (" %s", term->u.characterString);
+ printf ("%s", term->u.characterString);
break;
case Z_Term_numeric:
- printf (" %d", *term->u.numeric);
+ printf ("%d", *term->u.numeric);
break;
case Z_Term_null:
- printf (" null");
+ printf ("null");
break;
}
}
printf ("SearchResult-1:");
for (j = 0; j < sr->num; j++)
{
+ if (j)
+ printf(",");
if (!sr->elements[j]->subqueryExpression)
- printf (" %d", j);
- display_queryExpression (
+ printf("%d", j);
+ display_queryExpression("term",
sr->elements[j]->subqueryExpression);
- display_queryExpression (
+ display_queryExpression("interpretation",
sr->elements[j]->subqueryInterpretation);
- display_queryExpression (
+ display_queryExpression("recommendation",
sr->elements[j]->subqueryRecommendation);
if (sr->elements[j]->subqueryCount)
- printf ("(%d)", *sr->elements[j]->subqueryCount);
+ printf(" cnt=%d", *sr->elements[j]->subqueryCount);
+ if (sr->elements[j]->subqueryId)
+ printf(" id=%s ", sr->elements[j]->subqueryId);
}
printf ("\n");
}
Z_TriggerResourceControlRequest *req =
apdu->u.triggerResourceControlRequest;
bool_t rfalse = 0;
-
+ char command[16];
+
+ *command = '\0';
+ sscanf(arg, "%15s", command);
+
if (only_z3950())
return 0;
if (session_initResponse &&
send_apdu(apdu);
printf("Sent cancel request\n");
- return 2;
+ if (!strcmp(command, "wait"))
+ return 2;
+ return 1;
}
const char *pqf_msg;
size_t off;
int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off);
- printf("%*s^\n", off+7, "");
+ int ioff = off;
+ printf("%*s^\n", ioff+7, "");
printf("Prefix query error: %s (code %d)\n", pqf_msg, code);
yaz_pqf_destroy (pqf_parser);
return -1;
int cmd_proxy(const char* arg)
{
- xfree (yazProxy);
- yazProxy = NULL;
+ xfree(yazProxy);
+ yazProxy = 0;
if (*arg)
yazProxy = xstrdup (arg);
return 1;
{
FILE *f = ber_file ? ber_file : stdout;
odr_perror(in, "Decoding incoming APDU");
- fprintf(f, "[Near %d]\n", odr_offset(in));
+ fprintf(f, "[Near %ld]\n", (long) odr_offset(in));
fprintf(f, "Packet dump:\n---------\n");
odr_dumpBER(f, netbuffer, res);
fprintf(f, "---------\n");
rpn = ccl_find_str (bibset, arg, &error, &pos);
if (error) {
- printf ("%*s^ - ", 3+strlen(last_cmd)+1+pos, " ");
+ int ioff = 3+strlen(last_cmd)+1+pos;
+ printf ("%*s^ - ", ioff, " ");
printf ("%s\n", ccl_err_msg (error));
}
else
extraOtherInfos[otherinfoNo].oidval = -1;
if (extraOtherInfos[otherinfoNo].value)
free(extraOtherInfos[otherinfoNo].value);
+ extraOtherInfos[otherinfoNo].value = 0;
return 0;
}
if (sscan_res<3) {
} cmd_array[] = {
{"open", cmd_open, "('tcp'|'ssl')':<host>[':'<port>][/<db>]",NULL,0,NULL},
{"quit", cmd_quit, "",NULL,0,NULL},
- {"exit", cmd_quit, "",NULL,0,NULL},
{"find", cmd_find, "<query>",NULL,0,NULL},
{"delete", cmd_delete, "<setname>",NULL,0,NULL},
{"base", cmd_base, "<base-name>",NULL,0,NULL},
{"zversion", cmd_zversion, "", NULL, 0, NULL},
{"help", cmd_help, "", NULL,0,NULL},
{"init", cmd_init, "", NULL,0,NULL},
+ {"exit", cmd_quit, "",NULL,0,NULL},
{0,0,0,0,0,0}
};
hex_dump = 1;
break;
case 'p':
- yazProxy=strdup(arg);
+ yazProxy = xstrdup(arg);
break;
case 'u':
if (!auth_command)