X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=4f8ccae275389c531ddeba82d79900a953cf7f0c;hb=e63923d5a33d54806b2d73670c26c57480c484da;hp=2204574e1c4a552ffa1322ba37ac92a66e115db8;hpb=9903eb091689a6269e28742a16cb6a8705d96675;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index 2204574..4f8ccae 100644 --- a/client/client.c +++ b/client/client.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2006, Index Data ApS * See the file LICENSE for details. * - * $Id: client.c,v 1.310 2006-06-02 13:12:53 adam Exp $ + * $Id: client.c,v 1.317 2006-10-04 07:26:00 adam Exp $ */ /** \file client.c * \brief yaz-client program @@ -86,7 +86,7 @@ static char *codeset = 0; /* character set for output */ static int hex_dump = 0; static char *dump_file_prefix = 0; static ODR out, in, print; /* encoding and decoding streams */ -#if HAVE_XML2 +#if YAZ_HAVE_XML2 static ODR srw_sr_odr_out = 0; static Z_SRW_PDU *srw_sr = 0; #endif @@ -180,7 +180,7 @@ int cmd_register_tab(const char* arg); static void close_session (void); -ODR getODROutputStream() +ODR getODROutputStream(void) { return out; } @@ -689,7 +689,7 @@ int session_connect(const char *arg) printf ("Couldn't create comstack\n"); return 0; } -#if HAVE_XML2 +#if YAZ_HAVE_XML2 if (conn->protocol == PROTO_HTTP) queryType = QueryType_CQL; #else @@ -766,7 +766,7 @@ int cmd_open(const char *arg) return session_connect(cur_host); } -void try_reconnect() +void try_reconnect(void) { char* open_command; @@ -1257,7 +1257,7 @@ static int send_deleteResultSetRequest(const char *arg) return 2; } -#if HAVE_XML2 +#if YAZ_HAVE_XML2 static int send_srw(Z_SRW_PDU *sr) { const char *charset = negotiationCharset; @@ -1311,7 +1311,7 @@ static int send_srw(Z_SRW_PDU *sr) } #endif -#if HAVE_XML2 +#if YAZ_HAVE_XML2 static char *encode_SRW_term(ODR o, const char *q) { const char *in_charset = "ISO-8859-1"; @@ -1410,7 +1410,7 @@ static int send_SRW_searchRequest(const char *arg) if (record_schema) sr->u.request->recordSchema = record_schema; if (recordsyntax_size == 1 && recordsyntax_list[0] == VAL_TEXT_XML) - sr->u.explain_request->recordPacking = "xml"; + sr->u.request->recordPacking = "xml"; return send_srw(sr); } #endif @@ -1891,7 +1891,7 @@ const char *get_ill_element (void *clientData, const char *element) return 0; } -static Z_External *create_external_itemRequest() +static Z_External *create_external_itemRequest(void) { struct ill_get_ctl ctl; ILL_ItemRequest *req; @@ -2087,6 +2087,9 @@ static int send_itemorder(const char *type, int itemno) Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; oident ItemOrderRequest; + + req->referenceId = set_refid (out); + ItemOrderRequest.proto = PROTO_Z3950; ItemOrderRequest.oclass = CLASS_EXTSERV; ItemOrderRequest.value = VAL_ITEMORDER; @@ -2099,7 +2102,7 @@ static int send_itemorder(const char *type, int itemno) return 0; } -static int only_z3950() +static int only_z3950(void) { if (!conn) { @@ -2291,14 +2294,17 @@ static int cmd_xmles(const char *arg) return 1; else { + char *asn_buf = 0; int noread = 0; char oid_str[51]; int oid_value_xmles = VAL_XMLES; Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest); Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + Z_External *ext = (Z_External *) odr_malloc(out, sizeof(*ext)); + req->referenceId = set_refid (out); req->taskSpecificParameters = ext; ext->indirect_reference = 0; ext->descriptor = 0; @@ -2317,10 +2323,13 @@ static int cmd_xmles(const char *arg) printf("Bad OID: %s\n", oid_str); return 0; } - - if (parse_cmd_doc(&arg, out, (char **) &ext->u.single_ASN1_type->buf, + + if (parse_cmd_doc(&arg, out, &asn_buf, &ext->u.single_ASN1_type->len, 0) == 0) return 0; + + ext->u.single_ASN1_type->buf = (unsigned char *) asn_buf; + req->packageType = yaz_oidval_to_z3950oid(out, CLASS_EXTSERV, oid_value_xmles); @@ -2384,7 +2393,7 @@ static int cmd_explain(const char *arg) { if (protocol != PROTO_HTTP) return 0; -#if HAVE_XML2 +#if YAZ_HAVE_XML2 if (!conn) cmd_open(0); if (conn) @@ -2425,11 +2434,11 @@ static int cmd_sru(const char *arg) } else { - if (yaz_matchstr(arg, "post")) + if (!yaz_matchstr(arg, "post")) sru_method = "post"; - else if (yaz_matchstr(arg, "get")) + else if (!yaz_matchstr(arg, "get")) sru_method = "get"; - else if (yaz_matchstr(arg, "soap")) + else if (!yaz_matchstr(arg, "soap")) sru_method = "soap"; else { @@ -2449,7 +2458,7 @@ static int cmd_find(const char *arg) } if (protocol == PROTO_HTTP) { -#if HAVE_XML2 +#if YAZ_HAVE_XML2 if (!conn) cmd_open(0); if (!conn) @@ -2657,7 +2666,7 @@ static int send_presentRequest(const char *arg) return 2; } -#if HAVE_XML2 +#if YAZ_HAVE_XML2 static int send_SRW_presentRequest(const char *arg) { char setstring[100]; @@ -2725,7 +2734,7 @@ static int cmd_show(const char *arg) { if (protocol == PROTO_HTTP) { -#if HAVE_XML2 +#if YAZ_HAVE_XML2 if (!conn) cmd_open(0); if (!conn) @@ -3046,7 +3055,7 @@ int cmd_scan(const char *arg) { if (protocol == PROTO_HTTP) { -#if HAVE_XML2 +#if YAZ_HAVE_XML2 if (!conn) cmd_open(0); if (!conn) @@ -3633,7 +3642,7 @@ int cmd_push_command(const char* arg) return 1; } -void source_rcfile() +void source_rcfile(void) { /* Look for a $HOME/.yazclientrc and source it if it exists */ struct stat statbuf; @@ -3700,7 +3709,7 @@ static void initialize(void) struct timeval tv_start; #endif -#if HAVE_XML2 +#if YAZ_HAVE_XML2 static void handle_srw_record(Z_SRW_record *rec) { if (rec->recordPosition) @@ -3999,7 +4008,7 @@ void wait_and_handle_response(int one_response_only) close_session (); } } -#if HAVE_XML2 +#if YAZ_HAVE_XML2 else if (gdu->which == Z_GDU_HTTP_Response) { http_response(gdu->u.HTTP_Response); @@ -4307,7 +4316,7 @@ static struct { {"attributeset", cmd_attributeset, "",complete_attributeset,0,NULL}, {"querytype", cmd_querytype, "",complete_querytype,0,NULL}, {"refid", cmd_refid, "",NULL,0,NULL}, - {"itemorder", cmd_itemorder, "ill|item ",NULL,0,NULL}, + {"itemorder", cmd_itemorder, "ill|item|xml ",NULL,0,NULL}, {"update", cmd_update, " []",NULL,0,NULL}, {"update0", cmd_update0, " []",NULL,0,NULL}, {"xmles", cmd_xmles, " ",NULL,0,NULL},