On Mon, Aug 03, 2009 at 10:53:29AM -0400, Steve Dickson wrote: > commit 528e270be6bb3e4a072cbbb7f3a8b378b64b7fba > Author: Steve Dickson <steved@xxxxxxxxxx> > Date: Mon Mar 9 13:57:10 2009 -0400 > > Store values in lower case. This makes it easier to do string > comparisons when reading lists from the configuration file. Just curious--which parts of the configuration file (section headers, keys, values--looks like maybe all 3?) are you making case-insensitive, and why do they need to be? E.g. the idmapd configuration file contains paths and user/group names, and both those still need to be case sensitive. --b. > > Signed-off-by: Steve Dickson <steved@xxxxxxxxxx> > > diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c > index b36200b..f5e0f79 100644 > --- a/support/nfs/conffile.c > +++ b/support/nfs/conffile.c > @@ -114,7 +114,16 @@ conf_hash(char *s) > } > return hash; > } > +/* > + * Convert letter from upper case to lower case > + */ > +static inline upper2lower(char *str) > +{ > + char *ptr = str; > > + while (*ptr) > + *ptr++ = tolower(*ptr); > +} > /* > * Insert a tag-value combination from LINE (the equal sign is at POS) > */ > @@ -523,7 +532,7 @@ conf_get_tag_list(char *section) > for (; cb; cb = LIST_NEXT(cb, link)) { > if (strcasecmp (section, cb->section) == 0) { > list->cnt++; > - node = calloc (1, sizeof *node); > + node = calloc(1, sizeof *node); > if (!node) > goto cleanup; > node->field = strdup(cb->tag); > @@ -615,7 +624,7 @@ conf_free_list(struct conf_list *list) > } > > int > -conf_begin (void) > +conf_begin(void) > { > static int seq = 0; > > @@ -623,7 +632,7 @@ conf_begin (void) > } > > static struct conf_trans * > -conf_trans_node (int transaction, enum conf_op op) > +conf_trans_node(int transaction, enum conf_op op) > { > struct conf_trans *node; > > @@ -639,9 +648,9 @@ conf_trans_node (int transaction, enum conf_op op) > return node; > } > > -/* Queue a set operation. */ > +/* Queue a set operation. Store value in lower case */ > int > -conf_set (int transaction, char *section, char *tag, > +conf_set(int transaction, char *section, char *tag, > char *value, int override, int is_default) > { > struct conf_trans *node; > @@ -654,16 +663,22 @@ conf_set (int transaction, char *section, char *tag, > xlog_warn("conf_set: strdup(\"%s\") failed", section); > goto fail; > } > + upper2lower(node->section); > + > node->tag = strdup(tag); > if (!node->tag) { > xlog_warn("conf_set: strdup(\"%s\") failed", tag); > goto fail; > } > + upper2lower(node->tag); > + > node->value = strdup(value); > if (!node->value) { > xlog_warn("conf_set: strdup(\"%s\") failed", value); > goto fail; > } > + upper2lower(node->value); > + > node->override = override; > node->is_default = is_default; > return 0; > > _______________________________________________ > NFSv4 mailing list > NFSv4@xxxxxxxxxxxxx > http://linux-nfs.org/cgi-bin/mailman/listinfo/nfsv4 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html