Impl. display of suggestions
[yaz-moved-to-github.git] / client / admin.c
index 134812f..fed8c55 100644 (file)
@@ -1,9 +1,10 @@
-/*
- * Copyright (C) 1995-2005, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2011 Index Data
  * See the file LICENSE for details.
- *
- * $Id: admin.c,v 1.22 2006-10-04 16:59:33 mike Exp $
  */
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -27,7 +28,7 @@
 #include <yaz/proto.h>
 #include <yaz/marcdisp.h>
 #include <yaz/diagbib1.h>
-
+#include <yaz/oid_db.h>
 #include <yaz/pquery.h>
 
 #include "admin.h"
@@ -38,7 +39,7 @@ ODR getODROutputStream(void);
 extern char *databaseNames[];
 extern int num_databaseNames;
 
-int sendAdminES(int type, char* param1)
+static int sendAdminES(int type, char* param1)
 {
     ODR out = getODROutputStream();
     char *dbname = odr_strdup (out, databaseNames[0]);
@@ -47,20 +48,15 @@ int sendAdminES(int type, char* param1)
     Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest );
     Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest;
     Z_External *r;
-    int oid[OID_SIZE];
+    Odr_oid *oid;
     Z_ESAdminOriginPartToKeep  *toKeep;
     Z_ESAdminOriginPartNotToKeep  *notToKeep;
-    oident update_oid;
     printf ("Admin request\n");
     fflush(stdout);
 
-    /* Set up the OID for the external */
-    update_oid.proto = PROTO_Z3950;
-    update_oid.oclass = CLASS_EXTSERV;
-    update_oid.value = VAL_ADMINSERVICE;
+    oid = odr_oiddup(out, yaz_oid_extserv_admin);
 
-    oid_ent_to_oid (&update_oid, oid);
-    req->packageType = odr_oiddup(out,oid);
+    req->packageType = oid;
     req->packageName = "1.Extendedserveq";
 
     /* Allocate the external */
@@ -243,8 +239,14 @@ int cmd_adm_import(const char *arg)
                 
                 oct->len = oct->size = status.st_size;
                 oct->buf = (unsigned char *) odr_malloc (out, oct->size);
-                fread (oct->buf, 1, oct->size, inf);
-                fclose (inf);
+                if (fread(oct->buf, 1, oct->size, inf) != (size_t) oct->size)
+                {
+                    printf("Incomplete read of file %s\n", fname);
+                }
+                if (fclose(inf))
+                {
+                    printf("Close failed for file %s\n", fname);
+                }
                 
                 segment->segmentRecords[segment->num_segmentRecords++] = rec;
 
@@ -306,6 +308,7 @@ int cmd_adm_startup(const char *arg)
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab