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