* Sebastian Hammer, Adam Dickmeiss
*
* $Log: client.c,v $
- * Revision 1.82 1999-05-26 13:49:12 adam
+ * Revision 1.85 1999-06-16 11:55:24 adam
+ * Added APDU log to client.
+ *
+ * Revision 1.84 1999/06/01 14:29:11 adam
+ * Work on Extended Services.
+ *
+ * Revision 1.83 1999/05/26 15:24:26 adam
+ * Fixed minor bugs regarding DB Update (introduced by previous commit).
+ *
+ * Revision 1.82 1999/05/26 13:49:12 adam
* DB Update implemented in client (very basic).
*
* Revision 1.81 1999/04/20 09:56:48 adam
#include <yaz-util.h>
-#include <comstack.h>
#include <tcpip.h>
#ifdef USE_XTIMOSI
#include <xmosi.h>
#define C_PROMPT "Z> "
static ODR out, in, print; /* encoding and decoding streams */
+static FILE *apdu_file = 0;
static COMSTACK conn = 0; /* our z-association */
static Z_IdAuthentication *auth = 0; /* our current auth definition */
static char *databaseNames[128];
odr_perror(out, "Encoding APDU");
exit(1);
}
+ if (apdu_file)
+ {
+ z_APDU(print, &a, 0, 0);
+ odr_reset(print);
+ }
buf = odr_getbuf(out, &len, 0);
if (cs_put(conn, buf, len) < 0)
{
void process_ESResponse(Z_ExtendedServicesResponse *res)
{
- printf("process_ESResponse\n");
+ printf("process_ESResponse status=");
+ switch (*res->operationStatus)
+ {
+ case Z_ExtendedServicesResponse_done:
+ printf ("done\n");
+ break;
+ case Z_ExtendedServicesResponse_accepted:
+ printf ("accepted\n");
+ break;
+ case Z_ExtendedServicesResponse_failure:
+ printf ("failure\n");
+ display_diagrecs(res->diagnostics, res->num_diagnostics);
+ break;
+ }
}
static Z_External *CreateItemOrderExternal(int itemno)
ItemOrderRequest.value = VAL_ITEMORDER;
r->direct_reference = odr_oiddup(out,oid_getoidbyent(&ItemOrderRequest));
- r->indirect_reference = (int *) odr_malloc(out,sizeof(int));
- *r->indirect_reference = 0;
-
- r->descriptor = "Extended services item order";
+ r->indirect_reference = 0;
+ r->descriptor = 0;
r->which = Z_External_itemOrder;
r = req->taskSpecificParameters = (Z_External *)
odr_malloc (out, sizeof(*r));
r->direct_reference = odr_oiddup(out,oid);
+ r->indirect_reference = 0;
+ r->descriptor = 0;
r->which = Z_External_update;
r->u.update = (Z_IUUpdate *) odr_malloc(out, sizeof(*r->u.update));
r->u.update->which = Z_IUUpdate_esRequest;
toKeep = r->u.update->u.esRequest->toKeep = (Z_IUOriginPartToKeep *)
odr_malloc(out, sizeof(*r->u.update->u.esRequest->toKeep));
toKeep->databaseName = databaseNames[0];
+ toKeep->schema = 0;
+ toKeep->elementSetName = 0;
+ toKeep->actionQualifier = 0;
toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action));
*toKeep->action = Z_IUOriginPartToKeep_recordInsert;
exit(1);
}
setvbuf(stdout, 0, _IONBF, 0);
+ if (apdu_file)
+ odr_setprint(print, apdu_file);
#if CCL2RPN
bibset = ccl_qual_mk ();
fprintf(stderr, "---------\n");
exit(1);
}
-#if 0
- if (!z_APDU(print, &apdu, 0))
+ if (apdu_file && !z_APDU(print, &apdu, 0, 0))
{
odr_perror(print, "Failed to print incoming APDU");
odr_reset(print);
continue;
}
-#endif
switch(apdu->which)
{
case Z_APDU_initResponse:
int ret;
int opened = 0;
- while ((ret = options("m:v:", argv, argc, &arg)) != -2)
+ while ((ret = options("a:m:v:", argv, argc, &arg)) != -2)
{
switch (ret)
{
exit (1);
}
break;
+ case 'a':
+ if (!strcmp(arg, "-"))
+ apdu_file=stderr;
+ else
+ apdu_file=fopen(arg, "a");
+ break;
case 'v':
log_init (log_mask_str(arg), "", NULL);
break;
default:
- fprintf (stderr, "Usage: %s [-m <marclog>] [<server-addr>]\n",
+ fprintf (stderr, "Usage: %s [-m <marclog>] [ -m <apdulog>] "
+ "[<server-addr>]\n",
prog);
exit (1);
}