From: Adam Dickmeiss Date: Tue, 29 Apr 2003 21:53:54 +0000 (+0000) Subject: Database setting for SRW. Minor updates in messages X-Git-Tag: YAZ.2.0.2.RH.2~48 X-Git-Url: http://lists.indexdata.dk/?a=commitdiff_plain;h=7e123f0a39a7e7f22e1d0fda5870ff7b6239c542;p=yaz-moved-to-github.git Database setting for SRW. Minor updates in messages --- diff --git a/client/client.c b/client/client.c index d4986d0..9c3ecd5 100644 --- a/client/client.c +++ b/client/client.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: client.c,v 1.189 2003-04-29 21:20:33 adam Exp $ + * $Id: client.c,v 1.190 2003-04-29 21:53:54 adam Exp $ */ #include @@ -398,16 +398,11 @@ static int process_initResponse(Z_InitResponse *res) return 0; } -static int cmd_base(const char *arg) +static int set_base(const char *arg) { int i; const char *cp; - if (!*arg) - { - printf("Usage: base ...\n"); - return 0; - } for (i = 0; i ...\n"); + return 0; + } + return set_base(arg); +} + void cmd_open_remember_last_open_command(const char* arg, char* new_open_command) { if(last_open_command != arg) @@ -450,8 +460,6 @@ int session_connect(const char *arg) const char *basep = 0; if (conn) { - printf("Already connected.\n"); - cs_close (conn); conn = NULL; if (session_mem) @@ -478,14 +486,18 @@ int session_connect(const char *arg) } #if HAVE_XML2 #else - if (conn->protocol == PROTO_Z3950) + if (conn->protocol == PROTO_HTTP) { - printf ("SRW not enabled in this YAZ\n"); + printf ("SRW/HTTP not enabled in this YAZ\n"); cs_close(conn); conn = 0; return 0; } #endif + if (conn->protocol == PROTO_HTTP) + set_base(""); + else + set_base("Default"); printf("Connecting..."); fflush(stdout); if (cs_connect(conn, add) < 0) @@ -503,7 +515,7 @@ int session_connect(const char *arg) } printf("OK.\n"); if (basep && *basep) - cmd_base (basep); + set_base (basep); if (conn->protocol == PROTO_Z3950) { send_initRequest(type_and_host); @@ -891,7 +903,7 @@ static int send_srw(Z_SRW_PDU *sr) { const char *charset = 0; const char *host_port = 0; - const char *path = "/"; + char *path = 0; char ctype[50]; Z_SOAP_Handler h[2] = { {"http://www.loc.gov/zing/srw/v1.0/", 0, (Z_SOAP_fun) yaz_srw_codec}, @@ -902,6 +914,9 @@ static int send_srw(Z_SRW_PDU *sr) Z_SOAP *p = odr_malloc(o, sizeof(*p)); Z_GDU *gdu; + path = odr_malloc(out, strlen(databaseNames[0])+2); + *path = '/'; + strcpy(path+1, databaseNames[0]); gdu = z_get_HTTP_Request(out); gdu->u.HTTP_Request->path = odr_strdup(out, path); @@ -2855,8 +2870,6 @@ static void initialize(void) ccl_qual_file (bibset, inf); fclose (inf); } - cmd_base("Default"); - #if HAVE_READLINE_READLINE_H rl_attempted_completion_function = (CPPFunction*)readline_completer; #endif @@ -2892,7 +2905,6 @@ static void handle_srw_response(Z_SRW_searchRetrieveResponse *res) printf ("Number of hits: %d\n", *res->numberOfRecords); for (i = 0; inum_records; i++) { - int pos; Z_SRW_record *rec = res->records + i; if (rec->recordPosition) @@ -2911,14 +2923,6 @@ static void handle_srw_response(Z_SRW_searchRetrieveResponse *res) } } -static void set_HTTP_error (int error, - const char *addinfo, const char *addinfo2) -{ - - -} - - static void http_response(Z_HTTP_Response *hres) { int ret = -1; @@ -2926,8 +2930,6 @@ static void http_response(Z_HTTP_Response *hres) "Content-Type"); const char *connection_head = z_HTTP_header_lookup(hres->headers, "Connection"); - yaz_log (LOG_LOG, "http_response"); - if (content_type && !yaz_strcmp_del("text/xml", content_type, "; ")) { Z_SOAP *soap_package = 0; @@ -2965,10 +2967,12 @@ static void http_response(Z_HTTP_Response *hres) if (ret) { if (hres->code != 200) - set_HTTP_error(hres->code, 0, 0); + { + printf ("HTTP Error Status=%d\n", hres->code); + } else { - printf ("decoding of SRW package failed\n"); + printf ("Decoding of SRW package failed\n"); } close_session(); } @@ -2997,7 +3001,6 @@ void wait_and_handle_response() while(conn) { - printf ("cs_get....\n"); res = cs_get(conn, &netbuffer, &netbufferlen); if (reconnect_ok && res <= 0 && conn->protocol == PROTO_HTTP) { @@ -3029,7 +3032,6 @@ void wait_and_handle_response() record_last = 0; odr_setbuf(in, netbuffer, res, 0); - printf ("got input packet %d bytes\n", res); if (!z_GDU(in, &gdu, 0, 0)) { FILE *f = ber_file ? ber_file : stdout;