X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-my-client.cpp;h=3a143bf6812791cd7d4f442c1544dcf866a9c30a;hb=5e3f7e1a720a08d30c407049c94c6ca825a5ed27;hp=6bb36ebcca1c021753a1cb35edc326a76d39ca57;hpb=966d1a0443071c2b75426d0214bfb9960c5c3fba;p=yazpp-moved-to-github.git diff --git a/src/yaz-my-client.cpp b/src/yaz-my-client.cpp index 6bb36eb..3a143bf 100644 --- a/src/yaz-my-client.cpp +++ b/src/yaz-my-client.cpp @@ -1,21 +1,18 @@ /* - * Copyright (c) 1998-2001, Index Data. + * Copyright (c) 1998-2004, Index Data. * See the file LICENSE for details. * - * $Id: yaz-my-client.cpp,v 1.10 2001-11-04 22:36:21 adam Exp $ + * $Id: yaz-my-client.cpp,v 1.18 2005-01-17 09:55:58 adam Exp $ */ +#include #include #include #include #include -#include -#include -#include - -#if HAVE_YAZ_URSULA_H -#include -#endif +#include +#include +#include extern "C" { #if HAVE_READLINE_READLINE_H @@ -51,9 +48,6 @@ public: const char *databaseName); void recv_textRecord(int type, const char *buf, size_t len); void recv_genericRecord(Z_GenericRecord *r); -#if HAVE_YAZ_URSULA_H - void recv_extendedServicesResponse(Z_ExtendedServicesResponse *extendedServicesResponse); -#endif void display_genericRecord(Z_GenericRecord *r, int level); void display_variant(Z_Variant *v, int level); void connectNotify(); @@ -72,10 +66,6 @@ public: int cmd_init(char *args); int cmd_format(char *args); int cmd_proxy(char *args); -#if HAVE_YAZ_URSULA_H - int cmd_ursula(char *args); - int cmd_ursula_renew(char *args); -#endif }; @@ -446,19 +436,6 @@ void MyClient::recv_presentResponse(Z_PresentResponse *presentResponse) recv_records (presentResponse->records); } -#if HAVE_YAZ_URSULA_H -void MyClient::recv_extendedServicesResponse(Z_ExtendedServicesResponse *extendedServicesResponse) -{ - printf("Got ESresponse\n"); - printf(" OperationStatus=%d with %d diagnostics:\n", - *extendedServicesResponse->operationStatus, - extendedServicesResponse->num_diagnostics); - recv_diagrecs(extendedServicesResponse->diagnostics, - extendedServicesResponse->num_diagnostics); - //TODO: Add more info ! -} -#endif - int MyClient::wait() { set_lastReceived(0); @@ -478,7 +455,7 @@ int MyClient::cmd_connect(char *host) client (host); timeout (10); wait (); - timeout (0); + timeout (-1); return 1; } @@ -487,7 +464,7 @@ int MyClient::cmd_open(char *host) client (host); timeout (10); wait (); - timeout (0); + timeout (-1); send_initRequest(); wait (); return 1; @@ -560,131 +537,15 @@ int MyClient::cmd_proxy(char *args) return 1; } -#if HAVE_YAZ_URSULA_H -int MyClient::cmd_ursula(char *args) -{ - Z_APDU *apdu = create_Z_PDU(Z_APDU_extendedServicesRequest); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - - req->packageType = odr_getoidbystr(odr_encode(), "1.2.840.10003"); -// req->packageType = odr_getoidbystr(odr_encode(), "1.2.840.10003.9.1000.105.3"); - - Z_External *ext = (Z_External *) odr_malloc(odr_encode(), sizeof(*ext)); - req->taskSpecificParameters = ext; - ext->direct_reference = req->packageType; - ext->descriptor = 0; - ext->indirect_reference = 0; - - ext->which = Z_External_octet; - ext->u.single_ASN1_type = (Odr_oct *) - odr_malloc (odr_encode(), sizeof(Odr_oct)); - - Z_UrsPDU *pdu = (Z_UrsPDU *) odr_malloc (odr_encode(), sizeof(*pdu)); - pdu->which = Z_UrsPDU_request; - pdu->u.request = (Z_UrsRequest *) - odr_malloc (odr_encode(), sizeof(*pdu->u.request)); - pdu->u.request->libraryNo = odr_strdup(odr_encode(), "000200"); - pdu->u.request->borrowerTickerNo = odr_strdup(odr_encode(),"1234567973"); - pdu->u.request->disposalType = 0; - pdu->u.request->lastUseDate = odr_strdup(odr_encode(),"20011224"); -#ifdef SKIPTHIS - pdu->u.request->num_items = 0; - pdu->u.request->items = (Z_UrsRequestItem **) odr_nullval(); -#else - pdu->u.request->num_items = 1; - pdu->u.request->items = (Z_UrsRequestItem **) - odr_malloc(odr_encode(), 1 * sizeof(Z_UrsRequestItem*) ); - pdu->u.request->items[0] = (Z_UrsRequestItem*) - odr_malloc(odr_encode(), sizeof(Z_UrsRequestItem) ); - pdu->u.request->items[0]->id = odr_strdup(odr_encode(),"002231336x"); - pdu->u.request->items[0]->titlePartNo=odr_strdup(odr_encode(),"31"); -#endif - - pdu->u.request->counter = odr_strdup(odr_encode(),"HB"); - pdu->u.request->priority = 0; - pdu->u.request->disposalNote = 0; - pdu->u.request->overrule=(bool_t*)odr_malloc(odr_encode(),sizeof(bool_t)); - *pdu->u.request->overrule = false; - - if (!z_UrsPDU (odr_encode(), &pdu, 0, "")) - { - yaz_log (LOG_LOG, "ursula encoding failed"); - return 1; - } - char *buf = - odr_getbuf (odr_encode(), &ext->u.single_ASN1_type->len, 0); - - ext->u.single_ASN1_type->buf = (unsigned char*) - odr_malloc (odr_encode(), ext->u.single_ASN1_type->len); - memcpy (ext->u.single_ASN1_type->buf, buf, ext->u.single_ASN1_type->len); - ext->u.single_ASN1_type->size = ext->u.single_ASN1_type->len; - - if (send_Z_PDU(apdu) >= 0) - wait(); - return 1; -} - -int MyClient::cmd_ursula_renew(char *args) -{ - Z_APDU *apdu = create_Z_PDU(Z_APDU_extendedServicesRequest); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - - req->packageType = odr_getoidbystr(odr_encode(), "1.2.840.10003"); - - Z_External *ext = (Z_External *) odr_malloc(odr_encode(), sizeof(*ext)); - req->taskSpecificParameters = ext; - ext->direct_reference = req->packageType; - ext->descriptor = 0; - ext->indirect_reference = 0; - - ext->which = Z_External_octet; - ext->u.single_ASN1_type = (Odr_oct *) - odr_malloc (odr_encode(), sizeof(Odr_oct)); - - Z_UrsPDU *pdu = (Z_UrsPDU *) odr_malloc (odr_encode(), sizeof(*pdu)); - pdu->which = Z_UrsPDU_renewal; - pdu->u.renewal = (Z_UrsRenewal *) - odr_malloc (odr_encode(), sizeof(*pdu->u.renewal)); - pdu->u.renewal->libraryNo = odr_strdup(odr_encode(), "000200"); - pdu->u.renewal->borrowerTicketNo = odr_strdup(odr_encode(),"1234567973"); - pdu->u.renewal->num_copies=1; - pdu->u.renewal->copies = (Z_InternationalString **) - odr_malloc(odr_encode(),1* sizeof(Z_InternationalString *) ); - pdu->u.renewal->copies[0]= odr_strdup(odr_encode(), "000035238"); - pdu->u.renewal->newReturnDate=odr_strdup(odr_encode(), "20011224"); - pdu->u.renewal->overrule=(bool_t*)odr_malloc(odr_encode(),sizeof(bool_t)); - *pdu->u.renewal->overrule=false; - - if (!z_UrsPDU (odr_encode(), &pdu, 0, "")) - { - yaz_log (LOG_LOG, "ursula encoding failed"); - return 1; - } - char *buf = - odr_getbuf (odr_encode(), &ext->u.single_ASN1_type->len, 0); - - ext->u.single_ASN1_type->buf = (unsigned char*) - odr_malloc (odr_encode(), ext->u.single_ASN1_type->len); - memcpy (ext->u.single_ASN1_type->buf, buf, ext->u.single_ASN1_type->len); - ext->u.single_ASN1_type->size = ext->u.single_ASN1_type->len; - - if (send_Z_PDU(apdu) >= 0) - wait(); - return 1; -} - - -#endif - int MyClient::processCommand(const char *commandLine) { char cmdStr[1024], cmdArgs[1024]; cmdArgs[0] = '\0'; cmdStr[0] = '\0'; static struct { - char *cmd; + const char *cmd; int (MyClient::*fun)(char *arg); - char *ad; + const char *ad; } cmd[] = { {"open", &MyClient::cmd_open, "[':'][/]"}, {"connect", &MyClient::cmd_connect, "[':'][/]"}, @@ -696,13 +557,6 @@ int MyClient::processCommand(const char *commandLine) {"init", &MyClient::cmd_init, ""}, {"format", &MyClient::cmd_format, ""}, {"proxy", &MyClient::cmd_proxy, ":[':']"}, -#if HAVE_YAZ_URSULA_H - {"ursula", &MyClient::cmd_ursula, ""}, - {"ursula_request", &MyClient::cmd_ursula, ""}, - {"ursreq", &MyClient::cmd_ursula, ""}, - {"ursnew", &MyClient::cmd_ursula_renew, ""}, - {"ursula_renew", &MyClient::cmd_ursula_renew, ""}, -#endif {0,0,0} }; @@ -823,7 +677,7 @@ int MyClient::args(Yaz_SocketManager *socketManager, int argc, char **argv) client (host); timeout (10); wait (); - timeout (0); + timeout (-1); send_initRequest(); wait (); }