On Thu, 2011-02-24 at 19:45 +1100, Dave Chinner wrote: > On Fri, Feb 18, 2011 at 03:21:02PM -0600, Alex Elder wrote: > > There is probably not much need for an extreme amount of randomness > > in the obfuscated names produced in metadumps. Limit the character > > set used for (most of) these names to printable characters rather > > than every permittable byte. The result makes metadumps a bit more > > natural to work with. > > > > I chose the set of all upper- and lower-case letters, digits, and > > the dash and underscore for the alphabet. It could easily be > > expanded to include others (or reduced for that matter). > > > > This change also avoids ever having to retry after picking an > > unusable character. > > > > Signed-off-by: Alex Elder <aelder@xxxxxxx> > > > > No significant changes in this version from the last version posted. > > > > --- > > db/metadump.c | 9 ++++----- > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > Index: b/db/metadump.c > > =================================================================== > > --- a/db/metadump.c > > +++ b/db/metadump.c > > @@ -412,12 +412,11 @@ nametable_add(xfs_dahash_t hash, int nam > > static inline uchar_t > > random_filename_char(void) > > { > > - uchar_t c; > > + static uchar_t filename_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" > > + "abcdefghijklmnopqrstuvwxyz" > > + "0123456789-_"; > > > > - do { > > - c = random() % 127 + 1; > > - } while (c == '/'); > > - return c; > > + return filename_alphabet[random() % (sizeof filename_alphabet - 1)]; > > } > > Why not just: > > do { > c = random() % 127 + 1; > } while (!isalnum(c)); > > return c; > Mainly because I wasn't sure what people would want as an acceptable alphabet to select from. We could just use [a-z], for example, and this way that could easily be changed without changing how the function worked. It's also locale-independent (which may or may not be good I suppose). Plus as an added bonus, it will never need to compute any unnecessary random numbers, thereby saving about 12 CPU cycles. :) I don't really care much, but would lean toward leaving it the way I have it. Do you feel strongly that I should change it? Do you think [a-z] (islower()) would be even better? -Alex _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs