X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=09c9a85ce36479404f27caa27e2e4aa137eeaca4;hb=0e9d6161b51ba5335ae4afa911e9f174b23a4b46;hp=7add65b5f8707212d362fccbe9a9c88cdd59dff9;hpb=552662f6f80c211b5b4ab81b8ea7afc2ba44f58a;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index 7add65b..09c9a85 100644 --- a/client/client.c +++ b/client/client.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data + * Copyright (C) 1995-2010 Index Data * See the file LICENSE for details. */ /** \file client.c @@ -1200,6 +1200,25 @@ static int send_srw(Z_SRW_PDU *sr) gdu = z_get_HTTP_Request_host_path(out, host_port, path); + if (auth) + { + if (auth->which == Z_IdAuthentication_open) + { + char **darray; + int num; + nmem_strsplit(out->mem, "/", auth->u.open, &darray, &num); + if (num >= 1) + sr->username = darray[0]; + if (num >= 2) + sr->password = darray[1]; + } + else if (auth->which == Z_IdAuthentication_idPass) + { + sr->username = auth->u.idPass->userId; + sr->password = auth->u.idPass->password; + } + } + if (!yaz_matchstr(sru_method, "get")) { yaz_sru_get_encode(gdu->u.HTTP_Request, sr, out, charset); @@ -1945,7 +1964,7 @@ static Z_External *create_external_itemRequest(void) return r; } -static Z_External *create_external_ILL_APDU(int which) +static Z_External *create_external_ILL_APDU(void) { struct ill_get_ctl ctl; ILL_APDU *ill_apdu; @@ -2047,7 +2066,7 @@ static Z_External *create_ItemOrderExternal(const char *type, int itemno, { printf("using ILL-request\n"); r->u.itemOrder->u.esRequest->notToKeep->itemRequest = - create_external_ILL_APDU(ILL_APDU_ILL_Request); + create_external_ILL_APDU(); } else if (!strcmp(type, "xml") || !strcmp(type, "3")) { @@ -4965,7 +4984,10 @@ static void client(void) { line_in=readline(C_PROMPT); if (!line_in) + { + putchar('\n'); break; + } #if HAVE_READLINE_HISTORY_H if (*line_in) add_history(line_in);