For example if an ldap entry looks like this:
dn: cn=%T%I_apps, nisMapName=auto_home, ou=foo.bar nismapname: auto_home objectClass: top objectClass: nisobject nismapentry: foo.bar.ti.com:/vol/vol6/TI_apps cn: %T%I_apps cn: TI_apps
Then the auto_home map will only be used in /%T%I_apps
If you try to cd into TI_apps you'll just get an error. The patch forces ldap_search to iterate through all of the different cn's in an entry so you can cd into either %T%I_apps or TI_apps and the proper directory will still be automounted.
Thanks, Chris
--- autofs-4.1.3/modules/lookup_ldap.c.orig 2004-04-03 01:14:33.000000000 -0600
+++ autofs-4.1.3/modules/lookup_ldap.c 2004-12-10 13:06:21.470895667 -0600
@@ -154,7 +154,7 @@
struct lookup_context *context)
{
struct lookup_context *ctxt = (struct lookup_context *) context;
- int rv, i, l, count;
+ int rv, i, j, l, count, keycount;
time_t age = time(NULL);
char *query;
LDAPMessage *result, *e;
@@ -250,10 +250,14 @@
}
count = ldap_count_values(values);
+ keycount = ldap_count_values(keyValue);
for (i = 0; i < count; i++) {
- if (**keyValue == '/' && strlen(*keyValue) == 1)
- **keyValue = '*';
- cache_update(*keyValue, values[i], age);
+ for (j = 0; j < keycount; j++) {
+ if (*(keyValue[j]) == '/' &&
+ strlen(keyValue[j]) == 1)
+ *(keyValue[j]) = '*';
+ cache_update(keyValue[j], values[i], age);
+ }
}
ldap_value_free(values);
_______________________________________________ autofs mailing list [EMAIL PROTECTED] http://linux.kernel.org/mailman/listinfo/autofs
