[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)----