projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use __in64 type for 64-bit YAZ on Windows
[yaz-moved-to-github.git]
/
client
/
client.c
diff --git
a/client/client.c
b/client/client.c
index
a58a7b3
..
d1443ab
100644
(file)
--- a/
client/client.c
+++ b/
client/client.c
@@
-104,7
+104,7
@@
static int smallSetUpperBound = 0;
static int largeSetLowerBound = 1;
static int mediumSetPresentNumber = 0;
static Z_ElementSetNames *elementSetNames = 0;
static int largeSetLowerBound = 1;
static int mediumSetPresentNumber = 0;
static Z_ElementSetNames *elementSetNames = 0;
-static int setno = 1; /* current set offset */
+static Odr_int setno = 1; /* current set offset */
static enum oid_proto protocol = PROTO_Z3950; /* current app protocol */
#define RECORDSYNTAX_MAX 20
static char *recordsyntax_list[RECORDSYNTAX_MAX];
static enum oid_proto protocol = PROTO_Z3950; /* current app protocol */
#define RECORDSYNTAX_MAX 20
static char *recordsyntax_list[RECORDSYNTAX_MAX];
@@
-435,8
+435,8
@@
static int process_initResponse(Z_InitResponse *res)
else
{
/* Peek at any private Init-diagnostic APDUs */
else
{
/* Peek at any private Init-diagnostic APDUs */
- printf("### NAUGHTY: External is '%.*s'\n",
- sat->len, sat->buf);
+ printf("yaz-client ignoring unrecognised userInformationField: %d-octet External '%.*s'\n",
+ (int) sat->len, sat->len, sat->buf);
}
}
odr_reset(print);
}
}
odr_reset(print);
@@
-526,7
+526,7
@@
static void render_diag(Z_DiagnosticFormat *diag) {
case Z_DiagnosticFormat_s_defaultDiagRec: {
Z_DefaultDiagFormat *dd = ds->u.defaultDiagRec;
/* ### should check `dd->diagnosticSetId' */
case Z_DiagnosticFormat_s_defaultDiagRec: {
Z_DefaultDiagFormat *dd = ds->u.defaultDiagRec;
/* ### should check `dd->diagnosticSetId' */
- printf("code=%d (%s)", *dd->condition,
+ printf("code=" ODR_INT_PRINTF " (%s)", *dd->condition,
diagbib1_str(*dd->condition));
/* Both types of addinfo are the same, so use type-pun */
if (dd->u.v2Addinfo != 0)
diagbib1_str(*dd->condition));
/* Both types of addinfo are the same, so use type-pun */
if (dd->u.v2Addinfo != 0)
@@
-706,10
+706,6
@@
int session_connect(const char *arg)
}
#endif
protocol = conn->protocol;
}
#endif
protocol = conn->protocol;
- if (conn->protocol == PROTO_HTTP)
- set_base("");
- else
- set_base("Default");
printf("Connecting...");
fflush(stdout);
if (cs_connect(conn, add) < 0)
printf("Connecting...");
fflush(stdout);
if (cs_connect(conn, add) < 0)
@@
-722,7
+718,10
@@
int session_connect(const char *arg)
printf("OK.\n");
cs_print_session_info(conn);
if (basep && *basep)
printf("OK.\n");
cs_print_session_info(conn);
if (basep && *basep)
- set_base (basep);
+ set_base(basep);
+ else if (protocol == PROTO_Z3950)
+ set_base("Default");
+
if (protocol == PROTO_Z3950)
{
send_initRequest(type_and_host);
if (protocol == PROTO_Z3950)
{
send_initRequest(type_and_host);
@@
-739,9
+738,13
@@
int cmd_open(const char *arg)
strncpy(cur_host, arg, sizeof(cur_host)-1);
cur_host[sizeof(cur_host)-1] = 0;
}
strncpy(cur_host, arg, sizeof(cur_host)-1);
cur_host[sizeof(cur_host)-1] = 0;
}
+
+ set_base("");
r = session_connect(cur_host);
if (conn && conn->protocol == PROTO_HTTP)
queryType = QueryType_CQL;
r = session_connect(cur_host);
if (conn && conn->protocol == PROTO_HTTP)
queryType = QueryType_CQL;
+
+
return r;
}
return r;
}
@@
-1123,7
+1126,8
@@
static void display_diagrecs(Z_DiagRec **pp, int num)
if (oid_oidcmp(r->diagnosticSetId, yaz_oid_diagset_bib_1))
printf("Unknown diagset: %s\n", diag_name);
}
if (oid_oidcmp(r->diagnosticSetId, yaz_oid_diagset_bib_1))
printf("Unknown diagset: %s\n", diag_name);
}
- printf(" [%d] %s", *r->condition, diagbib1_str(*r->condition));
+ printf(" [" ODR_INT_PRINTF "] %s",
+ *r->condition, diagbib1_str(*r->condition));
switch (r->which)
{
case Z_DefaultDiagFormat_v2Addinfo:
switch (r->which)
{
case Z_DefaultDiagFormat_v2Addinfo:
@@
-1184,8
+1188,7
@@
static int send_deleteResultSetRequest(const char *arg)
names[0], names[1], names[2], names[3],
names[4], names[5], names[6], names[7]);
names[0], names[1], names[2], names[3],
names[4], names[5], names[6], names[7]);
- req->deleteFunction = (int *)
- odr_malloc(out, sizeof(*req->deleteFunction));
+ req->deleteFunction = odr_intdup(out, 0);
if (req->num_resultSetList > 0)
{
*req->deleteFunction = Z_DeleteResultSetRequest_list;
if (req->num_resultSetList > 0)
{
*req->deleteFunction = Z_DeleteResultSetRequest_list;
@@
-1212,11
+1215,7
@@
static int send_srw(Z_SRW_PDU *sr)
const char *charset = negotiationCharset;
const char *host_port = cur_host;
Z_GDU *gdu;
const char *charset = negotiationCharset;
const char *host_port = cur_host;
Z_GDU *gdu;
- char *path = 0;
-
- path = (char *) odr_malloc(out, 2+strlen(databaseNames[0]));
- *path = '/';
- strcpy(path+1, databaseNames[0]);
+ char *path = yaz_encode_sru_dbpath_odr(out, databaseNames[0]);
gdu = z_get_HTTP_Request_host_path(out, host_port, path);
gdu = z_get_HTTP_Request_host_path(out, host_port, path);
@@
-1544,7
+1543,7
@@
static void display_queryExpression(const char *lead, Z_QueryExpression *qe)
printf("%s", term->u.characterString);
break;
case Z_Term_numeric:
printf("%s", term->u.characterString);
break;
case Z_Term_numeric:
- printf("%d", *term->u.numeric);
+ printf(ODR_INT_PRINTF, *term->u.numeric);
break;
case Z_Term_null:
printf("null");
break;
case Z_Term_null:
printf("null");
@@
-1584,7
+1583,8
@@
static void display_searchResult(Z_OtherInformation *o)
display_queryExpression("recommendation",
sr->elements[j]->subqueryRecommendation);
if (sr->elements[j]->subqueryCount)
display_queryExpression("recommendation",
sr->elements[j]->subqueryRecommendation);
if (sr->elements[j]->subqueryCount)
- printf(" cnt=%d", *sr->elements[j]->subqueryCount);
+ printf(" cnt=" ODR_INT_PRINTF,
+ *sr->elements[j]->subqueryCount);
if (sr->elements[j]->subqueryId)
printf(" id=%s ", sr->elements[j]->subqueryId);
}
if (sr->elements[j]->subqueryId)
printf(" id=%s ", sr->elements[j]->subqueryId);
}
@@
-1602,7
+1602,7
@@
static int process_searchResponse(Z_SearchResponse *res)
printf("Search was a success.\n");
else
printf("Search was a bloomin' failure.\n");
printf("Search was a success.\n");
else
printf("Search was a bloomin' failure.\n");
- printf("Number of hits: %d", *res->resultCount);
+ printf("Number of hits: " ODR_INT_PRINTF, *res->resultCount);
last_hit_count = *res->resultCount;
if (setnumber >= 0)
printf(", setno %d", setnumber);
last_hit_count = *res->resultCount;
if (setnumber >= 0)
printf(", setno %d", setnumber);
@@
-1621,12
+1621,12
@@
static int process_searchResponse(Z_SearchResponse *res)
case Z_SearchResponse_estimate:
printf("estimate"); break;
default:
case Z_SearchResponse_estimate:
printf("estimate"); break;
default:
- printf("%d", *res->resultSetStatus);
+ printf(ODR_INT_PRINTF, *res->resultSetStatus);
}
putchar('\n');
}
display_searchResult(res->additionalSearchInfo);
}
putchar('\n');
}
display_searchResult(res->additionalSearchInfo);
- printf("records returned: %d\n",
+ printf("records returned: " ODR_INT_PRINTF "\n",
*res->numberOfRecordsReturned);
setno += *res->numberOfRecordsReturned;
if (res->records)
*res->numberOfRecordsReturned);
setno += *res->numberOfRecordsReturned;
if (res->records)
@@
-1641,7
+1641,16
@@
static void print_level(int iLevel)
printf(" ");
}
printf(" ");
}
-static void print_int(int iLevel, const char *pTag, int *pInt)
+static void print_int(int iLevel, const char *pTag, Odr_int *pInt)
+{
+ if (pInt != NULL)
+ {
+ print_level(iLevel);
+ printf("%s: " ODR_INT_PRINTF "\n", pTag, *pInt);
+ }
+}
+
+static void print_bool(int iLevel, const char *pTag, Odr_bool *pInt)
{
if (pInt != NULL)
{
{
if (pInt != NULL)
{
@@
-1794,10
+1803,10
@@
static int process_resourceControlRequest(Z_ResourceControlRequest *req)
{
printf("Received ResourceControlRequest.\n");
print_referenceId(1, req->referenceId);
{
printf("Received ResourceControlRequest.\n");
print_referenceId(1, req->referenceId);
- print_int(1, "Suspended Flag", req->suspendedFlag);
+ print_bool(1, "Suspended Flag", req->suspendedFlag);
print_int(1, "Partial Results Available", req->partialResultsAvailable);
print_int(1, "Partial Results Available", req->partialResultsAvailable);
- print_int(1, "Response Required", req->responseRequired);
- print_int(1, "Triggered Request Flag", req->triggeredRequestFlag);
+ print_bool(1, "Response Required", req->responseRequired);
+ print_bool(1, "Triggered Request Flag", req->triggeredRequestFlag);
print_external(1, req->resourceReport);
return 0;
}
print_external(1, req->resourceReport);
return 0;
}
@@
-2046,9
+2055,7
@@
static Z_External *create_ItemOrderExternal(const char *type, int itemno,
r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->resultSetId = "1";
r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item =
r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->resultSetId = "1";
r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item =
- (int *) odr_malloc(out, sizeof(int));
- *r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item = itemno;
-
+ odr_intdup(out, itemno);
if (!strcmp (type, "item") || !strcmp(type, "2"))
{
printf("using item-request\n");
if (!strcmp (type, "item") || !strcmp(type, "2"))
{
printf("using item-request\n");
@@
-2285,8
+2292,7
@@
static int cmd_update_Z3950(int version, int action_no, const char *recid,
}
toKeep->elementSetName = 0;
}
toKeep->elementSetName = 0;
- toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action));
- *toKeep->action = action_no;
+ toKeep->action = odr_intdup(out, action_no);
notToKeep = r->u.update0->u.esRequest->notToKeep = (Z_IU0SuppliedRecords *)
odr_malloc(out, sizeof(*r->u.update0->u.esRequest->notToKeep));
notToKeep = r->u.update0->u.esRequest->notToKeep = (Z_IU0SuppliedRecords *)
odr_malloc(out, sizeof(*r->u.update0->u.esRequest->notToKeep));
@@
-2333,8
+2339,7
@@
static int cmd_update_Z3950(int version, int action_no, const char *recid,
}
toKeep->elementSetName = 0;
toKeep->actionQualifier = 0;
}
toKeep->elementSetName = 0;
toKeep->actionQualifier = 0;
- toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action));
- *toKeep->action = action_no;
+ toKeep->action = odr_intdup(out, action_no);
notToKeep = r->u.update->u.esRequest->notToKeep = (Z_IUSuppliedRecords *)
odr_malloc(out, sizeof(*r->u.update->u.esRequest->notToKeep));
notToKeep = r->u.update->u.esRequest->notToKeep = (Z_IUSuppliedRecords *)
odr_malloc(out, sizeof(*r->u.update->u.esRequest->notToKeep));
@@
-2655,7
+2660,7
@@
static int cmd_setnames(const char *arg)
/* PRESENT SERVICE ----------------------------- */
static void parse_show_args(const char *arg_c, char *setstring,
/* PRESENT SERVICE ----------------------------- */
static void parse_show_args(const char *arg_c, char *setstring,
- int *start, int *number)
+ Odr_int *start, Odr_int *number)
{
char arg[40];
char *p;
{
char arg[40];
char *p;
@@
-2691,7
+2696,7
@@
static int send_presentRequest(const char *arg)
Z_APDU *apdu = zget_APDU(out, Z_APDU_presentRequest);
Z_PresentRequest *req = apdu->u.presentRequest;
Z_RecordComposition compo;
Z_APDU *apdu = zget_APDU(out, Z_APDU_presentRequest);
Z_PresentRequest *req = apdu->u.presentRequest;
Z_RecordComposition compo;
- int nos = 1;
+ Odr_int nos = 1;
char setstring[100];
req->referenceId = set_refid(out);
char setstring[100];
req->referenceId = set_refid(out);
@@
-2773,7
+2778,8
@@
static int send_presentRequest(const char *arg)
compo.u.simple = elementSetNames;
}
send_apdu(apdu);
compo.u.simple = elementSetNames;
}
send_apdu(apdu);
- printf("Sent presentRequest (%d+%d).\n", setno, nos);
+ printf("Sent presentRequest (" ODR_INT_PRINTF "+" ODR_INT_PRINTF ").\n",
+ setno, nos);
return 2;
}
return 2;
}
@@
-2781,7
+2787,7
@@
static int send_presentRequest(const char *arg)
static int send_SRW_presentRequest(const char *arg)
{
char setstring[100];
static int send_SRW_presentRequest(const char *arg)
{
char setstring[100];
- int nos = 1;
+ Odr_int nos = 1;
Z_SRW_PDU *sr = srw_sr;
if (!sr)
Z_SRW_PDU *sr = srw_sr;
if (!sr)
@@
-2927,7
+2933,7
@@
int cmd_cancel_find(const char *arg) {
}
int send_scanrequest(const char *set, const char *query,
}
int send_scanrequest(const char *set, const char *query,
- int pp, int num, const char *term)
+ Odr_int pp, Odr_int num, const char *term)
{
Z_APDU *apdu = zget_APDU(out, Z_APDU_scanRequest);
Z_ScanRequest *req = apdu->u.scanRequest;
{
Z_APDU *apdu = zget_APDU(out, Z_APDU_scanRequest);
Z_ScanRequest *req = apdu->u.scanRequest;
@@
-3063,7
+3069,7
@@
void display_term(Z_TermInfo *t)
t->term->u.general->buf);
if (t->globalOccurrences)
t->term->u.general->buf);
if (t->globalOccurrences)
- printf(" (%d)\n", *t->globalOccurrences);
+ printf(" (" ODR_INT_PRINTF ")\n", *t->globalOccurrences);
else
printf("\n");
}
else
printf("\n");
}
@@
-3076,12
+3082,12
@@
void process_scanResponse(Z_ScanResponse *res)
printf("Received ScanResponse\n");
print_refid(res->referenceId);
printf("Received ScanResponse\n");
print_refid(res->referenceId);
- printf("%d entries", *res->numberOfEntriesReturned);
+ printf(ODR_INT_PRINTF " entries", *res->numberOfEntriesReturned);
if (res->positionOfTerm)
if (res->positionOfTerm)
- printf(", position=%d", *res->positionOfTerm);
+ printf(", position=" ODR_INT_PRINTF, *res->positionOfTerm);
printf("\n");
if (*res->scanStatus != Z_Scan_success)
printf("\n");
if (*res->scanStatus != Z_Scan_success)
- printf("Scan returned code %d\n", *res->scanStatus);
+ printf("Scan returned code " ODR_INT_PRINTF "\n", *res->scanStatus);
if (!res->entries)
return;
if ((entries = res->entries->entries))
if (!res->entries)
return;
if ((entries = res->entries->entries))
@@
-3114,7
+3120,7
@@
void process_sortResponse(Z_SortResponse *res)
case Z_SortResponse_failure:
printf("failure"); break;
default:
case Z_SortResponse_failure:
printf("failure"); break;
default:
- printf("unknown (%d)", *res->sortStatus);
+ printf("unknown (" ODR_INT_PRINTF ")", *res->sortStatus);
}
printf("\n");
print_refid (res->referenceId);
}
printf("\n");
print_refid (res->referenceId);
@@
-3125,15
+3131,16
@@
void process_sortResponse(Z_SortResponse *res)
void process_deleteResultSetResponse(Z_DeleteResultSetResponse *res)
{
void process_deleteResultSetResponse(Z_DeleteResultSetResponse *res)
{
- printf("Got deleteResultSetResponse status=%d\n",
+ printf("Got deleteResultSetResponse status=" ODR_INT_PRINTF "\n",
*res->deleteOperationStatus);
if (res->deleteListStatuses)
{
int i;
for (i = 0; i < res->deleteListStatuses->num; i++)
{
*res->deleteOperationStatus);
if (res->deleteListStatuses)
{
int i;
for (i = 0; i < res->deleteListStatuses->num; i++)
{
- printf("%s status=%d\n", res->deleteListStatuses->elements[i]->id,
- *res->deleteListStatuses->elements[i]->status);
+ printf("%s status=" ODR_INT_PRINTF "\n",
+ res->deleteListStatuses->elements[i]->id,
+ *res->deleteListStatuses->elements[i]->status);
}
}
}
}
}
}
@@
-3891,9
+3898,10
@@
static void initialize(const char *rc_file)
cmd_format("usmarc");
cmd_format("usmarc");
+ file_history = file_history_new();
+
source_rc_file(rc_file);
source_rc_file(rc_file);
- file_history = file_history_new();
file_history_load(file_history);
file_history_trav(file_history, 0, add_to_readline_history);
}
file_history_load(file_history);
file_history_trav(file_history, 0, add_to_readline_history);
}
@@
-3908,7
+3916,7
@@
static void handle_srw_record(Z_SRW_record *rec)
{
if (rec->recordPosition)
{
{
if (rec->recordPosition)
{
- printf("pos=%d", *rec->recordPosition);
+ printf("pos=" ODR_INT_PRINTF, *rec->recordPosition);
setno = *rec->recordPosition + 1;
}
if (rec->recordSchema)
setno = *rec->recordPosition + 1;
}
if (rec->recordSchema)
@@
-3948,7
+3956,7
@@
static void handle_srw_response(Z_SRW_searchRetrieveResponse *res)
printf("Details: %s\n", res->diagnostics[i].details);
}
if (res->numberOfRecords)
printf("Details: %s\n", res->diagnostics[i].details);
}
if (res->numberOfRecords)
- printf("Number of hits: %d\n", *res->numberOfRecords);
+ printf("Number of hits: " ODR_INT_PRINTF "\n", *res->numberOfRecords);
for (i = 0; i<res->num_records; i++)
handle_srw_record(res->records + i);
}
for (i = 0; i<res->num_records; i++)
handle_srw_record(res->records + i);
}
@@
-3962,7
+3970,7
@@
static void handle_srw_scan_term(Z_SRW_scanTerm *term)
else
printf("No value:");
if (term->numberOfRecords)
else
printf("No value:");
if (term->numberOfRecords)
- printf(" %d", *term->numberOfRecords);
+ printf(" " ODR_INT_PRINTF, *term->numberOfRecords);
if (term->whereInList)
printf(" %s", term->whereInList);
if (term->value && term->displayTerm)
if (term->whereInList)
printf(" %s", term->whereInList);
if (term->value && term->displayTerm)
@@
-4000,6
+4008,12
@@
static void http_response(Z_HTTP_Response *hres)
int ret = -1;
const char *connection_head = z_HTTP_header_lookup(hres->headers,
"Connection");
int ret = -1;
const char *connection_head = z_HTTP_header_lookup(hres->headers,
"Connection");
+
+ if (hres->code != 200)
+ {
+ printf("HTTP Error Status=%d\n", hres->code);
+ }
+
if (!yaz_srw_check_content_type(hres))
printf("Content type does not appear to be XML\n");
else
if (!yaz_srw_check_content_type(hres))
printf("Content type does not appear to be XML\n");
else
@@
-4027,12
+4041,14
@@
static void http_response(Z_HTTP_Response *hres)
printf("Got update response. Status: %s\n",
sr->u.update_response->operationStatus);
else
printf("Got update response. Status: %s\n",
sr->u.update_response->operationStatus);
else
+ {
+ printf("Decoding of SRW package failed\n");
ret = -1;
ret = -1;
+ }
}
else if (soap_package && (soap_package->which == Z_SOAP_fault
|| soap_package->which == Z_SOAP_error))
{
}
else if (soap_package && (soap_package->which == Z_SOAP_fault
|| soap_package->which == Z_SOAP_error))
{
- printf("HTTP Error Status=%d\n", hres->code);
printf("SOAP Fault code %s\n",
soap_package->u.fault->fault_code);
printf("SOAP Fault string %s\n",
printf("SOAP Fault code %s\n",
soap_package->u.fault->fault_code);
printf("SOAP Fault string %s\n",
@@
-4049,17
+4065,7
@@
static void http_response(Z_HTTP_Response *hres)
odr_destroy(o);
}
if (ret)
odr_destroy(o);
}
if (ret)
- {
- if (hres->code != 200)
- {
- printf("HTTP Error Status=%d\n", hres->code);
- }
- else
- {
- printf("Decoding of SRW package failed\n");
- }
- close_session();
- }
+ close_session(); /* close session on error */
else
{
if (!strcmp(hres->version, "1.0"))
else
{
if (!strcmp(hres->version, "1.0"))
@@
-4178,7
+4184,7
@@
static void wait_and_handle_response(int one_response_only)
display_records(apdu->u.presentResponse->records);
else
printf("No records.\n");
display_records(apdu->u.presentResponse->records);
else
printf("No records.\n");
- printf("nextResultSetPosition = %d\n",
+ printf("nextResultSetPosition = " ODR_INT_PRINTF "\n",
*apdu->u.presentResponse->nextResultSetPosition);
break;
case Z_APDU_sortResponse:
*apdu->u.presentResponse->nextResultSetPosition);
break;
case Z_APDU_sortResponse: