On Fri, 2007-07-27 at 16:21 +0200, Nail El-Sourani wrote:
> Oh! Seems i was too fast with my positiv answer. Your patch checks for %
> only at first position. so when cn: gives something like
>
> cn:ja%Va
>
> it will still give duplicate entry error. what needs to be modified in
> your patch to take first entry when any other one "contains" the %.
I'll sort that out, but a real fix will have to wait for further
discussion about how this should be handled.
>
> love,
> *nail
>
> Ian Kent wrote:
> > On Thu, 2007-07-26 at 15:56 +0200, [EMAIL PROTECTED] wrote:
> >>>> Actually this is an LDAP mixed environment with solaris and linux. The
> >>>> Solaris Automounter will look for %Java by default to ignore
> >>>> case-sensitivity. Is there an option on autofs5 to take the first entry
> >>>> for a key in case there are duplicate entries? if so, how is it done? i
> >>>> am
> >>>> seriously in need of some kind of workaround. is there any possibility?
> >
> > Can you point me to any official documentation that describes exactly
> > how this % hack is supposed to work?
> >
> >>> There isn't .
> >>> This would conflict with the work that was done to reduce the number of
> >>> queries to LDAP servers.
> >>>
> >>> I wasn't aware of the Solaris % function.
> >>> I'll check when I get some time.
> >>>
> >>> I could try and make a one-off patch to just use the first entry as a
> >>> work around for you till we work out what to do about the % thingy.
> >
> > Could you try this patch for the work around please.
> > Ian
> >
> > ---
> > --- autofs-5.0.2/modules/lookup_ldap.c.ignore-duplicates 2007-07-27
> > 11:33:59.000000000 +0800
> > +++ autofs-5.0.2/modules/lookup_ldap.c 2007-07-27 11:53:45.000000000
> > +0800
> > @@ -1238,7 +1238,15 @@ static int read_one_map(struct autofs_po
> > /* Check for the "/" and "*" and use as "/" if found */
> > for (i = 0; i < count; i++) {
> > /* check for wildcard */
> > - if (bvKey[i]->bv_len != 1)
> > + if (bvKey[i]->bv_len > 1) {
> > + /* Sun % hack workaround */
> > + if (*bvKey[i]->bv_val == '%') {
> > + k_val = bvKey[0]->bv_val;
> > + k_len = bvKey[0]->bv_len;
> > + break;
> > + }
> > + continue;
> > + } else if (bvKey[i]->bv_len != 1)
> > continue;
> > if (*bvKey[i]->bv_val != '/' &&
> > *bvKey[i]->bv_val != '*')
> > @@ -1521,7 +1529,15 @@ static int lookup_one(struct autofs_poin
> > /* Check for the "/" and "*" and use as "/" if found */
> > for (i = 0; i < count; i++) {
> > /* check for wildcard */
> > - if (bvKey[i]->bv_len != 1)
> > + if (bvKey[i]->bv_len > 1) {
> > + /* Sun % hack workaround */
> > + if (*bvKey[i]->bv_val == '%') {
> > + k_val = bvKey[0]->bv_val;
> > + k_len = bvKey[0]->bv_len;
> > + break;
> > + }
> > + continue;
> > + } else if (bvKey[i]->bv_len != 1)
> > continue;
> > if (*bvKey[i]->bv_val != '/' &&
> > *bvKey[i]->bv_val != '*')
> >
_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs