X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=client%2Fadmin.c;h=54167f60f4da46efb9f9797a0f5c1205d3325ab7;hp=b19b75b5809b825e684a648c619f9e4031c7d9df;hb=1a219938c1325105582cdbc2c9a34b6fc3cdf191;hpb=379504a233e3e2cc85bca1e7b6d864f1395aec7c diff --git a/client/admin.c b/client/admin.c index b19b75b..54167f6 100644 --- a/client/admin.c +++ b/client/admin.c @@ -1,7 +1,10 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -36,11 +39,11 @@ 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]); - + /* Type: 1=reindex, 2=truncate, 3=delete, 4=create, 5=import, 6=refresh, 7=commit */ Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest ); Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; @@ -68,11 +71,11 @@ int sendAdminES(int type, char* param1) r->u.adminService->which = Z_Admin_esRequest; r->u.adminService->u.esRequest = (Z_AdminEsRequest *) odr_malloc(out, sizeof(*r->u.adminService->u.esRequest)); - + toKeep = r->u.adminService->u.esRequest->toKeep = - (Z_ESAdminOriginPartToKeep *) + (Z_ESAdminOriginPartToKeep *) odr_malloc(out, sizeof(*r->u.adminService->u.esRequest->toKeep)); - + toKeep->which=type; toKeep->databaseName = dbname; switch ( type ) @@ -80,7 +83,7 @@ int sendAdminES(int type, char* param1) case Z_ESAdminOriginPartToKeep_reIndex: toKeep->u.reIndex=odr_nullval(); break; - + case Z_ESAdminOriginPartToKeep_truncate: toKeep->u.truncate=odr_nullval(); break; @@ -112,15 +115,15 @@ int sendAdminES(int type, char* param1) /* Unknown admin service */ break; } - + notToKeep = r->u.adminService->u.esRequest->notToKeep = (Z_ESAdminOriginPartNotToKeep *) odr_malloc(out, sizeof(*r->u.adminService->u.esRequest->notToKeep)); notToKeep->which=Z_ESAdminOriginPartNotToKeep_recordsWillFollow; notToKeep->u.recordsWillFollow=odr_nullval(); - + send_apdu(apdu); - + return 0; } @@ -133,7 +136,7 @@ int cmd_adm_reindex(const char *arg) } /* cmd_adm_truncate - Truncate the specified database, removing all records and index entries, but leaving + Truncate the specified database, removing all records and index entries, but leaving the database & it's explain information intact ready for new records */ int cmd_adm_truncate(const char *arg) { @@ -195,13 +198,13 @@ int cmd_adm_import(const char *arg) dir = opendir(dir_str); if (!dir) return 0; - + sendAdminES(Z_ESAdminOriginPartToKeep_import, type_str); - + printf ("sent es request\n"); if ((cp=strrchr(dir_str, '/')) && cp[1] == 0) sep=""; - + while ((ent = readdir(dir))) { if (fnmatch (pattern_str, ent->d_name, 0) == 0) @@ -209,7 +212,7 @@ int cmd_adm_import(const char *arg) char fname[1024]; struct stat status; FILE *inf; - + sprintf (fname, "%s%s%s", dir_str, sep, ent->d_name); stat (fname, &status); @@ -233,10 +236,10 @@ int cmd_adm_import(const char *arg) rec->u.intermediateFragment->which = Z_FragmentSyntax_notExternallyTagged; rec->u.intermediateFragment->u.notExternallyTagged = oct; - - oct->len = oct->size = status.st_size; - oct->buf = (unsigned char *) odr_malloc (out, oct->size); - if (fread(oct->buf, 1, oct->size, inf) != oct->size) + + oct->len = status.st_size; + oct->buf = (char *) odr_malloc (out, oct->len); + if (fread(oct->buf, 1, oct->len, inf) != (size_t) oct->len) { printf("Incomplete read of file %s\n", fname); } @@ -244,7 +247,7 @@ int cmd_adm_import(const char *arg) { printf("Close failed for file %s\n", fname); } - + segment->segmentRecords[segment->num_segmentRecords++] = rec; if (segment->num_segmentRecords == chunk) @@ -252,7 +255,7 @@ int cmd_adm_import(const char *arg) send_apdu (apdu); apdu = 0; } - } + } } } if (apdu) @@ -271,7 +274,7 @@ int cmd_adm_import(const char *arg) #endif -/* "Freshen" the specified database, by checking metadata records against the sources from which they were +/* "Freshen" the specified database, by checking metadata records against the sources from which they were generated, and creating a new record if the source has been touched since the last extraction */ int cmd_adm_refresh(const char *arg) { @@ -283,7 +286,7 @@ int cmd_adm_refresh(const char *arg) return 0; } -/* cmd_adm_commit +/* cmd_adm_commit Make imported records a permenant & visible to the live system */ int cmd_adm_commit(const char *arg) {