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; Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs