X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Flibadmin%2Fvos%2Fvosutils.c;h=fbdb0e6d7d53c5a7162e6d9780b6668502ae3c14;hp=6ac500abd94b61394eb64fb7e175cff9394f4b6c;hb=941ac04165a9239a11b4ab908350dbfae24edfb9;hpb=fb5bcd00fc6f1560d7d02115a0b5beaa3014a0e7 diff --git a/src/libadmin/vos/vosutils.c b/src/libadmin/vos/vosutils.c index 6ac500a..fbdb0e6 100644 --- a/src/libadmin/vos/vosutils.c +++ b/src/libadmin/vos/vosutils.c @@ -7,16 +7,23 @@ * directory or online at http://www.openafs.org/dl/license10.html */ +#include +#include + +RCSID + ("$Header$"); + #include "vosutils.h" #include "vsprocs.h" #include "lockprocs.h" #include - -/* - * Functions that aren't prototyped, but that we use - */ - -extern int VL_CreateEntryN(), VL_CreateEntry(), VL_GetEntryByIDN(), VL_GetEntryByID(), VL_GetEntryByNameN(), VL_GetEntryByNameO(), VL_ReplaceEntryN(), VL_ReplaceEntry(), VL_ListAttributesN(), VL_ListAttributes(), VL_GetAddrsU(); +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif /* * VLDB entry conversion routines. @@ -24,16 +31,15 @@ extern int VL_CreateEntryN(), VL_CreateEntry(), VL_GetEntryByIDN(), VL_GetEntryB * two types "old" and "new". */ -static int OldVLDB_to_NewVLDB( - struct vldbentry *source, - struct nvldbentry *dest, - afs_status_p st) +static int +OldVLDB_to_NewVLDB(struct vldbentry *source, struct nvldbentry *dest, + afs_status_p st) { register int i; int rc = 0; afs_status_t tst = 0; - bzero(dest, sizeof(struct nvldbentry)); + memset(dest, 0, sizeof(struct nvldbentry)); strncpy(dest->name, source->name, sizeof(dest->name)); for (i = 0; i < source->nServers; i++) { dest->serverNumber[i] = source->serverNumber[i]; @@ -44,7 +50,7 @@ static int OldVLDB_to_NewVLDB( for (i = 0; i < MAXTYPES; i++) dest->volumeId[i] = source->volumeId[i]; dest->cloneId = source->cloneId; - dest->flags = source->flags; + dest->flags = source->flags; rc = 1; @@ -60,16 +66,15 @@ static int OldVLDB_to_NewVLDB( * return an error. */ -static int NewVLDB_to_OldVLDB( - struct nvldbentry *source, - struct vldbentry *dest, - afs_status_p st) +static int +NewVLDB_to_OldVLDB(struct nvldbentry *source, struct vldbentry *dest, + afs_status_p st) { register int i; afs_status_t tst = 0; int rc = 0; - bzero(dest, sizeof(struct vldbentry)); + memset(dest, 0, sizeof(struct vldbentry)); strncpy(dest->name, source->name, sizeof(dest->name)); if (source->nServers <= OMAXNSERVERS) { for (i = 0; i < source->nServers; i++) { @@ -93,10 +98,9 @@ static int NewVLDB_to_OldVLDB( return rc; } -int VLDB_CreateEntry( - afs_cell_handle_p cellHandle, - struct nvldbentry *entryp, - afs_status_p st) +int +VLDB_CreateEntry(afs_cell_handle_p cellHandle, struct nvldbentry *entryp, + afs_status_p st) { struct vldbentry oentry; afs_status_t tst = 0; @@ -124,16 +128,14 @@ int VLDB_CreateEntry( if (st != NULL) { *st = tst; - } + } return rc; } -int VLDB_GetEntryByID( - afs_cell_handle_p cellHandle, - afs_int32 volid, - afs_int32 voltype, - struct nvldbentry *entryp, - afs_status_p st) +int +aVLDB_GetEntryByID(afs_cell_handle_p cellHandle, afs_int32 volid, + afs_int32 voltype, struct nvldbentry *entryp, + afs_status_p st) { struct vldbentry oentry; afs_status_t tst = 0; @@ -141,8 +143,9 @@ int VLDB_GetEntryByID( do { if (cellHandle->vos_new) { - tst = ubik_Call(VL_GetEntryByIDN, cellHandle->vos, 0, volid, - voltype, entryp); + tst = + ubik_Call(VL_GetEntryByIDN, cellHandle->vos, 0, volid, + voltype, entryp); if (tst) { if (tst == RXGEN_OPCODE) { cellHandle->vos_new = 0; @@ -151,8 +154,9 @@ int VLDB_GetEntryByID( rc = 1; } } else { - tst = ubik_Call(VL_GetEntryByID, cellHandle->vos, 0, volid, - voltype, &oentry); + tst = + ubik_Call(VL_GetEntryByID, cellHandle->vos, 0, volid, voltype, + &oentry); if (tst == 0) { rc = OldVLDB_to_NewVLDB(&oentry, entryp, &tst); } @@ -162,15 +166,13 @@ int VLDB_GetEntryByID( if (st != NULL) { *st = tst; - } + } return rc; } -int VLDB_GetEntryByName( - afs_cell_handle_p cellHandle, - const char *namep, - struct nvldbentry *entryp, - afs_status_p st) +int +aVLDB_GetEntryByName(afs_cell_handle_p cellHandle, const char *namep, + struct nvldbentry *entryp, afs_status_p st) { struct vldbentry oentry; afs_status_t tst = 0; @@ -178,8 +180,9 @@ int VLDB_GetEntryByName( do { if (cellHandle->vos_new) { - tst = ubik_Call(VL_GetEntryByNameN, cellHandle->vos, 0, namep, - entryp); + tst = + ubik_Call(VL_GetEntryByNameN, cellHandle->vos, 0, namep, + entryp); if (tst) { if (tst == RXGEN_OPCODE) { cellHandle->vos_new = 0; @@ -188,8 +191,9 @@ int VLDB_GetEntryByName( rc = 1; } } else { - tst = ubik_Call(VL_GetEntryByNameO, cellHandle->vos, 0, namep, - &oentry); + tst = + ubik_Call(VL_GetEntryByNameO, cellHandle->vos, 0, namep, + &oentry); if (tst == 0) { rc = OldVLDB_to_NewVLDB(&oentry, entryp, &tst); } @@ -199,17 +203,14 @@ int VLDB_GetEntryByName( if (st != NULL) { *st = tst; - } + } return rc; } -int VLDB_ReplaceEntry( - afs_cell_handle_p cellHandle, - afs_int32 volid, - afs_int32 voltype, - struct nvldbentry *entryp, - afs_int32 releasetype, - afs_status_p st) +int +VLDB_ReplaceEntry(afs_cell_handle_p cellHandle, afs_int32 volid, + afs_int32 voltype, struct nvldbentry *entryp, + afs_int32 releasetype, afs_status_p st) { struct vldbentry oentry; afs_status_t tst = 0; @@ -217,8 +218,9 @@ int VLDB_ReplaceEntry( do { if (cellHandle->vos_new) { - tst = ubik_Call(VL_ReplaceEntryN, cellHandle->vos, 0, volid, - voltype, entryp, releasetype); + tst = + ubik_Call(VL_ReplaceEntryN, cellHandle->vos, 0, volid, + voltype, entryp, releasetype); if (tst) { if (tst == RXGEN_OPCODE) { cellHandle->vos_new = 0; @@ -228,8 +230,9 @@ int VLDB_ReplaceEntry( } } else { if (NewVLDB_to_OldVLDB(entryp, &oentry, &tst)) { - tst = ubik_Call(VL_ReplaceEntry, cellHandle->vos, 0, volid, - voltype, &oentry, releasetype); + tst = + ubik_Call(VL_ReplaceEntry, cellHandle->vos, 0, volid, + voltype, &oentry, releasetype); if (!tst) { rc = 1; } @@ -239,16 +242,14 @@ int VLDB_ReplaceEntry( if (st != NULL) { *st = tst; - } + } return rc; } -int VLDB_ListAttributes( - afs_cell_handle_p cellHandle, - VldbListByAttributes *attrp, - afs_int32 *entriesp, - nbulkentries *blkentriesp, - afs_status_p st) +int +VLDB_ListAttributes(afs_cell_handle_p cellHandle, + VldbListByAttributes * attrp, afs_int32 * entriesp, + nbulkentries * blkentriesp, afs_status_p st) { bulkentries arrayEntries; int i; @@ -257,8 +258,9 @@ int VLDB_ListAttributes( do { if (cellHandle->vos_new) { - tst = ubik_Call(VL_ListAttributesN, cellHandle->vos, 0, attrp, - entriesp, blkentriesp); + tst = + ubik_Call(VL_ListAttributesN, cellHandle->vos, 0, attrp, + entriesp, blkentriesp); if (tst) { if (tst == RXGEN_OPCODE) { cellHandle->vos_new = 0; @@ -267,14 +269,19 @@ int VLDB_ListAttributes( rc = 1; } } else { - memset((void *) &arrayEntries, 0, sizeof(arrayEntries)); - tst = ubik_Call(VL_ListAttributes, cellHandle->vos, 0, attrp, - entriesp, arrayEntries); + memset((void *)&arrayEntries, 0, sizeof(arrayEntries)); + tst = + ubik_Call(VL_ListAttributes, cellHandle->vos, 0, attrp, + entriesp, arrayEntries); if (tst == 0) { - blkentriesp->nbulkentries_val = (nvldbentry *) malloc(*entriesp * sizeof(*blkentriesp)); + blkentriesp->nbulkentries_val = + (nvldbentry *) malloc(*entriesp * sizeof(*blkentriesp)); if (blkentriesp->nbulkentries_val != NULL) { - for(i=0;i< *entriesp;i++) { - OldVLDB_to_NewVLDB((struct vldbentry *) &arrayEntries.bulkentries_val[i], (struct nvldbentry *) &blkentriesp->nbulkentries_val[i], &tst); + for (i = 0; i < *entriesp; i++) { + OldVLDB_to_NewVLDB((struct vldbentry *)&arrayEntries. + bulkentries_val[i], + (struct nvldbentry *)&blkentriesp-> + nbulkentries_val[i], &tst); } } else { tst = ADMNOMEM; @@ -290,26 +297,24 @@ int VLDB_ListAttributes( if (st != NULL) { *st = tst; - } + } return rc; } -int VLDB_ListAttributesN2( - afs_cell_handle_p cellHandle, - VldbListByAttributes *attrp, - char *name, - afs_int32 thisindex, - afs_int32 *nentriesp, - nbulkentries *blkentriesp, - afs_int32 *nextindexp, - afs_status_p st) +int +VLDB_ListAttributesN2(afs_cell_handle_p cellHandle, + VldbListByAttributes * attrp, char *name, + afs_int32 thisindex, afs_int32 * nentriesp, + nbulkentries * blkentriesp, afs_int32 * nextindexp, + afs_status_p st) { int rc = 0; afs_status_t tst = 0; - tst = ubik_Call(VL_ListAttributesN2, cellHandle->vos, 0, - attrp, (name ? name : ""), thisindex, - nentriesp, blkentriesp, nextindexp); + tst = + ubik_Call(VL_ListAttributesN2, cellHandle->vos, 0, attrp, + (name ? name : ""), thisindex, nentriesp, blkentriesp, + nextindexp); if (!tst) { rc = 1; } @@ -320,22 +325,16 @@ int VLDB_ListAttributesN2( return rc; } -int VLDB_IsSameAddrs( - afs_cell_handle_p cellHandle, - afs_int32 serv1, - afs_int32 serv2, - int *equal, - afs_status_p st) +int +VLDB_IsSameAddrs(afs_cell_handle_p cellHandle, afs_int32 serv1, + afs_int32 serv2, int *equal, afs_status_p st) { int rc = 0; afs_status_t tst = 0; ListAddrByAttributes attrs; bulkaddrs addrs; - afs_uint32 *addrp, - nentries, - unique, - i; + afs_uint32 *addrp, nentries, unique, i; afsUUID uuid; *equal = 0; @@ -346,13 +345,14 @@ int VLDB_IsSameAddrs( goto fail_VLDB_IsSameAddrs; } - bzero(&attrs, sizeof(attrs)); + memset(&attrs, 0, sizeof(attrs)); attrs.Mask = VLADDR_IPADDR; attrs.ipaddr = serv1; - bzero(&addrs, sizeof(addrs)); - bzero(&uuid, sizeof(uuid)); - tst = ubik_Call(VL_GetAddrsU, cellHandle->vos, 0, &attrs, &uuid, - &unique, &nentries, &addrs); + memset(&addrs, 0, sizeof(addrs)); + memset(&uuid, 0, sizeof(uuid)); + tst = + ubik_Call(VL_GetAddrsU, cellHandle->vos, 0, &attrs, &uuid, &unique, + &nentries, &addrs); if (tst) { *equal = 0; goto fail_VLDB_IsSameAddrs; @@ -367,8 +367,8 @@ int VLDB_IsSameAddrs( } rc = 1; -fail_VLDB_IsSameAddrs: - + fail_VLDB_IsSameAddrs: + if (st != NULL) { *st = tst; } @@ -403,56 +403,52 @@ fail_VLDB_IsSameAddrs: * Returns != 0 upon successful completion. */ -int GetVolumeInfo( - afs_cell_handle_p cellHandle, - unsigned int volid, - struct nvldbentry *rentry, - afs_int32 *server, - afs_int32 *partition, - afs_int32 *voltype, - afs_status_p st) +int +GetVolumeInfo(afs_cell_handle_p cellHandle, unsigned int volid, + struct nvldbentry *rentry, afs_int32 * server, + afs_int32 * partition, afs_int32 * voltype, afs_status_p st) { int rc = 0; afs_status_t tst; - int i,index = -1; - - if (!VLDB_GetEntryByID(cellHandle, volid, -1, rentry, &tst)) { + int i, index = -1; + + if (!aVLDB_GetEntryByID(cellHandle, volid, -1, rentry, &tst)) { rc = 0; goto fail_GetVolumeInfo; } - if(volid == rentry->volumeId[ROVOL]){ - *voltype = ROVOL; - for (i = 0; i < rentry->nServers; i++) { - if ( (index == -1) && (rentry->serverFlags[i] & ITSROVOL) && - !(rentry->serverFlags[i] & RO_DONTUSE) ) - index = i; - } - if(index == -1) { + if (volid == rentry->volumeId[ROVOL]) { + *voltype = ROVOL; + for (i = 0; i < rentry->nServers; i++) { + if ((index == -1) && (rentry->serverFlags[i] & ITSROVOL) + && !(rentry->serverFlags[i] & RO_DONTUSE)) + index = i; + } + if (index == -1) { tst = 1; goto fail_GetVolumeInfo; } - *server = rentry->serverNumber[index]; - *partition = rentry->serverPartition[index]; + *server = rentry->serverNumber[index]; + *partition = rentry->serverPartition[index]; rc = 1; goto fail_GetVolumeInfo; } - - if ((index = Lp_GetRwIndex(cellHandle, rentry, &tst))<0) { + + if ((index = Lp_GetRwIndex(cellHandle, rentry, &tst)) < 0) { goto fail_GetVolumeInfo; } - if(volid == rentry->volumeId[RWVOL]){ - *voltype = RWVOL; - *server = rentry->serverNumber[index]; - *partition = rentry->serverPartition[index]; - } else if(volid == rentry->volumeId[BACKVOL]){ - *voltype = BACKVOL; - *server = rentry->serverNumber[index]; - *partition = rentry->serverPartition[index]; + if (volid == rentry->volumeId[RWVOL]) { + *voltype = RWVOL; + *server = rentry->serverNumber[index]; + *partition = rentry->serverPartition[index]; + } else if (volid == rentry->volumeId[BACKVOL]) { + *voltype = BACKVOL; + *server = rentry->serverNumber[index]; + *partition = rentry->serverPartition[index]; } - rc = 1; + rc = 1; -fail_GetVolumeInfo: + fail_GetVolumeInfo: if (st != NULL) { *st = tst; @@ -476,9 +472,8 @@ fail_GetVolumeInfo: * Returns != 0 upon successful completion. */ -int ValidateVolumeName( - const char *volumeName, - afs_status_p st) +int +ValidateVolumeName(const char *volumeName, afs_status_p st) { int rc = 0; afs_status_t tst = 0; @@ -496,15 +491,15 @@ int ValidateVolumeName( len = strlen(volumeName); - if (((len > 8) && (!strcmp(&volumeName[len - 9], ".readonly"))) || - ((len > 6) && (!strcmp(&volumeName[len - 7], ".backup")))) { + if (((len > 8) && (!strcmp(&volumeName[len - 9], ".readonly"))) + || ((len > 6) && (!strcmp(&volumeName[len - 7], ".backup")))) { tst = ADMVOSVOLUMENAMEINVALID; goto fail_ValidateVolumeName; } rc = 1; -fail_ValidateVolumeName: + fail_ValidateVolumeName: if (st != NULL) { *st = tst; @@ -516,30 +511,27 @@ fail_ValidateVolumeName: /*extract the name of volume without readonly or backup suffixes * and return the result as . */ -int vsu_ExtractName( - char *rname, - char *name) +int +vsu_ExtractName(char *rname, char *name) { char sname[32]; size_t total; - - strcpy(sname,name); + + strcpy(sname, name); total = strlen(sname); - if((total > 9) && (!strcmp(&sname[total - 9],".readonly"))) { - /*discard the last 8 chars */ - sname[total - 9] = '\0'; - strcpy(rname,sname); - return 0; - } - else if((total > 7) && (!strcmp(&sname[total - 7 ],".backup"))) { - /*discard last 6 chars */ - sname[total - 7] = '\0'; - strcpy(rname,sname); - return 0; - } - else { - strncpy(rname,name,VOLSER_OLDMAXVOLNAME); - return -1; + if ((total > 9) && (!strcmp(&sname[total - 9], ".readonly"))) { + /*discard the last 8 chars */ + sname[total - 9] = '\0'; + strcpy(rname, sname); + return 0; + } else if ((total > 7) && (!strcmp(&sname[total - 7], ".backup"))) { + /*discard last 6 chars */ + sname[total - 7] = '\0'; + strcpy(rname, sname); + return 0; + } else { + strncpy(rname, name, VOLSER_OLDMAXVOLNAME); + return -1; } } @@ -563,9 +555,8 @@ int vsu_ExtractName( * (where 255 in any byte in the pattern indicates a wildcard). */ -int AddressMatch ( - int addrTest, - int addrPattern) +int +AddressMatch(int addrTest, int addrPattern) { int bTest; int bPattern; @@ -622,7 +613,8 @@ int AddressMatch ( static pthread_once_t badaddr_init_once = PTHREAD_ONCE_INIT; static int addr_to_skip; -static void badaddr_once (void) +static void +badaddr_once(void) { #ifdef AFS_NT40_ENV @@ -639,15 +631,14 @@ static void badaddr_once (void) */ HKEY hk; - addr_to_skip = 0; /* don't ignore any addrs unless we find otherwise */ - if (RegOpenKey (HKEY_LOCAL_MACHINE, cszREG_IGNORE_KEY, &hk) == 0) { + addr_to_skip = 0; /* don't ignore any addrs unless we find otherwise */ + if (RegOpenKey(HKEY_LOCAL_MACHINE, cszREG_IGNORE_KEY, &hk) == 0) { DWORD dwType = REG_DWORD; DWORD dwSize = sizeof(addr_to_skip); - RegQueryValueEx (hk, cszREG_IGNORE_VALUE, 0, - &dwType, (PBYTE)&addr_to_skip, &dwSize); - RegCloseKey (hk); + RegQueryValueEx(hk, cszREG_IGNORE_VALUE, 0, &dwType, + (PBYTE) & addr_to_skip, &dwSize); + RegCloseKey(hk); } - #else /* @@ -657,17 +648,16 @@ static void badaddr_once (void) * */ - addr_to_skip = 0; /* don't skip any addresses */ + addr_to_skip = 0; /* don't skip any addresses */ #endif } -int RemoveBadAddresses( - afs_int32 *totalp, - bulkaddrs *addrsp) +int +RemoveBadAddresses(afs_int32 * totalp, bulkaddrs * addrsp) { - pthread_once (&badaddr_init_once, badaddr_once); + pthread_once(&badaddr_init_once, badaddr_once); /* * If we've been requested to skip anything, addr_to_skip will be @@ -680,13 +670,13 @@ int RemoveBadAddresses( if (addr_to_skip && addrsp && addrsp->bulkaddrs_val) { size_t iiWrite = 0; size_t iiRead = 0; - for ( ; iiRead < addrsp->bulkaddrs_len; ++iiRead) { + for (; iiRead < addrsp->bulkaddrs_len; ++iiRead) { /* * Check this IP address to see if it should be skipped. */ - if (!AddressMatch(addrsp->bulkaddrs_val[iiRead],addr_to_skip)) { + if (!AddressMatch(addrsp->bulkaddrs_val[iiRead], addr_to_skip)) { /* * The address is okay; make sure it stays in the list. @@ -694,16 +684,15 @@ int RemoveBadAddresses( if (iiWrite != iiRead) { addrsp->bulkaddrs_val[iiWrite] = - addrsp->bulkaddrs_val[iiRead]; + addrsp->bulkaddrs_val[iiRead]; } ++iiWrite; } } - *totalp = (afs_int32)iiWrite; + *totalp = (afs_int32) iiWrite; addrsp->bulkaddrs_len = iiWrite; } return TRUE; } -