* Sebastian Hammer, Adam Dickmeiss
*
* $Log: client.c,v $
- * Revision 1.94 2000-01-31 13:15:21 adam
+ * Revision 1.100 2000-03-20 19:29:59 adam
+ * Minor change.
+ *
+ * Revision 1.99 2000/03/20 19:06:25 adam
+ * Added Segment request for fronend server. Work on admin for client.
+ *
+ * Revision 1.98 2000/03/16 13:55:49 ian
+ * Added commands for sending shutdown and startup admin requests via the admin ES.
+ *
+ * Revision 1.97 2000/03/14 14:06:04 ian
+ * Minor change to order of debugging output for send_apdu,
+ * fixed encoding of admin request.
+ *
+ * Revision 1.96 2000/03/14 09:27:07 ian
+ * Added code to enable sending of admin extended service requests
+ *
+ * Revision 1.95 2000/02/28 11:20:05 adam
+ * Using autoconf. New definitions: YAZ_BEGIN_CDECL/YAZ_END_CDECL.
+ *
+ * Revision 1.94 2000/01/31 13:15:21 adam
* Removed uses of assert(3). Cleanup of ODR. CCL parser update so
* that some characters are not surrounded by spaces in resulting term.
* ILL-code updates.
#include <readline/history.h>
#endif
+#include "admin.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];
+char *databaseNames[128];
+int num_databaseNames = 0;
static Z_External *record_last = 0;
-static int num_databaseNames = 0;
static int setnumber = 0; /* current result set number */
static int smallSetUpperBound = 0;
static int largeSetLowerBound = 1;
static CCL_bibset bibset; /* CCL bibset handle */
#endif
-static void send_apdu(Z_APDU *a)
+ODR getODROutputStream()
+{
+ return out;
+}
+
+void send_apdu(Z_APDU *a)
{
char *buf;
int len;
- if (!z_APDU(out, &a, 0, 0))
- {
- odr_perror(out, "Encoding APDU");
- exit(1);
- }
if (apdu_file)
{
z_APDU(print, &a, 0, 0);
odr_reset(print);
}
+ if (!z_APDU(out, &a, 0, 0))
+ {
+ odr_perror(out, "Encoding APDU");
+ exit(1);
+ }
buf = odr_getbuf(out, &len, 0);
/* printf ("sending APDU of size %d\n", len); */
if (cs_put(conn, buf, len) < 0)
}
}
if (ent && ent->value == VAL_SOIF)
- print_record(r->u.octet_aligned->buf, r->u.octet_aligned->len);
+ print_record((const unsigned char *) r->u.octet_aligned->buf, r->u.octet_aligned->len);
else if (r->which == Z_External_octet && p->u.octet_aligned->len)
{
const char *octet_buf = (char*)p->u.octet_aligned->buf;
if (ent->value == VAL_TEXT_XML || ent->value == VAL_APPLICATION_XML ||
ent->value == VAL_HTML)
- print_record(octet_buf, p->u.octet_aligned->len);
+ print_record((const unsigned char *) octet_buf,
+ p->u.octet_aligned->len);
else
{
if (marc_display (octet_buf, NULL) <= 0)
{
printf ("ISO2709 decoding failed, dumping record as is:\n");
- print_record(octet_buf, p->u.octet_aligned->len);
+ print_record((const unsigned char*) octet_buf,
+ p->u.octet_aligned->len);
}
}
if (marcdump)
{"refid", cmd_refid, "<id>"},
{"itemorder", cmd_itemorder, "1|2 <item>"},
{"update", cmd_update, "<item>"},
+ /* Server Admin Functions */
+ {"adm-reindex", cmd_adm_reindex, "<database-name>"},
+ {"adm-truncate", cmd_adm_truncate, "('database'|'index')<object-name>"},
+ {"adm-create", cmd_adm_create, "<database-name>"},
+ {"adm-delete", cmd_adm_delete, "('database'|'index')<object-name>"},
+ {"adm-import", cmd_adm_import, "<record-type> <dir> <pattern>"},
+ {"adm-refresh", cmd_adm_refresh, "<database-name>"},
+ {"adm-commit", cmd_adm_commit, ""},
+ {"adm-shutdown", cmd_adm_shutdown, ""},
+ {"adm-startup", cmd_adm_startup, ""},
{0,0}
};
char *netbuffer= 0;
}
}
wait = 0;
+ if (conn
#ifdef USE_SELECT
- if (conn && FD_ISSET(cs_fileno(conn), &input))
+ && FD_ISSET(cs_fileno(conn), &input)
#endif
+ )
{
do
{