[OpenAFS-devel] 1.3.71 on AIX 5.2 with VAC 6.0
Harald Barth
haba@pdc.kth.se
Mon, 18 Oct 2004 02:08:00 +0200 (MEST)
----Next_Part(Mon_Oct_18_02_08_00_2004_932)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
While debugging vos I found this huge lump of dead code. Please
test patch I think functionality is the same before/after.
Harald.
----Next_Part(Mon_Oct_18_02_08_00_2004_932)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="patch.vsutils-dead-code"
Index: src/volser/vsutils.c
===================================================================
RCS file: /cvs/openafs/src/volser/vsutils.c,v
retrieving revision 1.17
diff -u -r1.17 vsutils.c
--- src/volser/vsutils.c 10 Oct 2004 01:39:18 -0000 1.17
+++ src/volser/vsutils.c 18 Oct 2004 00:05:13 -0000
@@ -490,67 +490,34 @@
afs_int32 *errp;
char *astring;
{
- afs_uint32 tc, value;
-
- char *str, *ptr, volname[VOLSER_OLDMAXVOLNAME + 1];
- int tryname, curval;
+ afs_uint32 value;
+ char volname[VOLSER_OLDMAXVOLNAME + 1];
struct nvldbentry entry;
afs_int32 vcode = 0;
int total;
*errp = 0;
- total = strlen(astring);
- str = astring;
- ptr = astring;
- tryname = 0;
- while ((curval = *str++)) {
- if (curval < '0' || curval > '9')
- tryname = 1;
- }
- if (tryname) {
- vsu_ExtractName(volname, astring);
- vcode = VLDB_GetEntryByName(volname, &entry);
- if (!vcode) {
- if (!strcmp(&astring[total - 9], ".readonly"))
- return entry.volumeId[ROVOL];
- else if ((!strcmp(&astring[total - 7], ".backup")))
- return entry.volumeId[BACKVOL];
- else
- return (entry.volumeId[RWVOL]);
- } else {
- *errp = vcode;
- return 0; /* can't find volume */
- }
+ if (isdigit(astring[0])) {
+ char *end;
+ afs_uint32 result;
+ result = strtoul(astring, &end, 10);
+ if (result != ULONG_MAX && *end == '\0')
+ return result;
}
- value = 0;
- while ((tc = *astring++)) {
- if (tc & 0x80) {
- if (!tryname)
- fprintf(STDERR, "goofed in volid \n");
- else {
- fprintf(STDERR, "Could not get entry from vldb for %s\n",
- ptr);
- PrintError("", vcode);
- }
- *errp = EINVAL;
- return 0;
- }
- if (tc < '0' || tc > '9') {
- if (!tryname)
- fprintf(STDERR,
- "internal error: out of range char in vol ID\n");
- else {
- fprintf(STDERR, "Could not get entry from vldb for %s\n",
- ptr);
- PrintError("", vcode);
- }
- *errp = ERANGE;
- return 0;
- }
- value *= 10;
- value += (tc - '0');
+ /* It was not a volume number but something else */
+ total = strlen(astring);
+ vsu_ExtractName(volname, astring);
+ vcode = VLDB_GetEntryByName(volname, &entry);
+ if (!vcode) {
+ if (!strcmp(&astring[total - 9], ".readonly"))
+ return entry.volumeId[ROVOL];
+ else if ((!strcmp(&astring[total - 7], ".backup")))
+ return entry.volumeId[BACKVOL];
+ else
+ return (entry.volumeId[RWVOL]);
}
- return value;
+ *errp = vcode;
+ return 0; /* can't find volume */
}
----Next_Part(Mon_Oct_18_02_08_00_2004_932)----