diff options
author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-07-09 18:37:11 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-07-09 18:37:11 -0400 |
commit | dcdbaa9c66c733a574ebff3769757450a45fe1fd (patch) | |
tree | 97d5ccfec97387786ac7aa3fdfda1cf5a3cee112 /src/defs-nis.c | |
parent | 0947608371101bcb4a739e6c595e2e25f5b426f8 (diff) | |
download | slapi-nis-dcdbaa9c66c733a574ebff3769757450a45fe1fd.tar.gz slapi-nis-dcdbaa9c66c733a574ebff3769757450a45fe1fd.tar.xz slapi-nis-dcdbaa9c66c733a574ebff3769757450a45fe1fd.zip |
- add the ability to specify a default base, specifically for 'ypservers'
Diffstat (limited to 'src/defs-nis.c')
-rw-r--r-- | src/defs-nis.c | 70 |
1 files changed, 46 insertions, 24 deletions
diff --git a/src/defs-nis.c b/src/defs-nis.c index b233d4b..a9dbcc9 100644 --- a/src/defs-nis.c +++ b/src/defs-nis.c @@ -36,130 +36,140 @@ #define DEFAULT_VALUE_FORMAT "%{nisMapEntry}" #define DEFAULT_DISALLOWED_CHARS NULL #define DEFAULT_MAP_SECURE FALSE +#define DEFAULT_CONFIGURATION_SUFFIX "cn=NIS Server, cn=plugins, cn=config" static struct configuration { char *map; enum { config_exact, config_glob } config_match; bool_t secure; + char *base; char *filter; char *key_format, *keys_format, *value_format, *disallowed_chars; } config[] = { - {"passwd.byname", config_exact, FALSE, + {"passwd.byname", config_exact, FALSE, NULL, "(objectClass=posixAccount)", "%{uid}", NULL, "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory:-/}:%{loginShell:-" _PATH_BSHELL "}", ":"}, - {"passwd.byuid", config_exact, FALSE, + {"passwd.byuid", config_exact, FALSE, NULL, "(objectClass=posixAccount)", "%{uidNumber}", NULL, "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory:-/}:%{loginShell:-" _PATH_BSHELL "}", ":"}, - {"group.byname", config_exact, FALSE, + {"group.byname", config_exact, FALSE, NULL, "(objectClass=posixGroup)", "%{cn}", NULL, "%{cn}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{gidNumber}:%merge(\",\",\"%{memberUid}\",\"%deref(\\\"member\\\",\\\"uid\\\")\",\"%deref(\\\"uniqueMember\\\",\\\"uid\\\")\",\"%referred(\\\"passwd.byname\\\",\\\"memberOf\\\",\\\"uid\\\")\")", ":,"}, - {"group.bygid", config_exact, FALSE, + {"group.bygid", config_exact, FALSE, NULL, "(objectClass=posixGroup)", "%{gidNumber}", NULL, "%{cn}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{gidNumber}:%merge(\",\",\"%{memberUid}\",\"%deref(\\\"member\\\",\\\"uid\\\")\",\"%deref(\\\"uniqueMember\\\",\\\"uid\\\")\",\"%referred(\\\"passwd.byname\\\",\\\"memberOf\\\",\\\"uid\\\")\")", ":,"}, - {"netgroup", config_exact, FALSE, + {"netgroup", config_exact, FALSE, NULL, "(objectClass=nisNetgroup)", "%{cn}", NULL, "%merge(\" \",\"%{nisNetgroupTriple}\",\"%{memberNisNetgroup}\")", NULL}, - {"auto.*", config_glob, FALSE, + {"auto.*", config_glob, FALSE, NULL, "(objectClass=automount)", "%{automountKey}", NULL, "%{automountInformation}", NULL}, - {"ethers.byaddr", config_exact, FALSE, + {"ethers.byaddr", config_exact, FALSE, NULL, "(&(ipHostNumber=*)(macAddress=*))", "%{macAddress}", NULL, "%{ipHostNumber}", NULL}, - {"ethers.byname", config_exact, FALSE, + {"ethers.byname", config_exact, FALSE, NULL, "(&(ipHostNumber=*)(macAddress=*))", "%{ipHostNumber}", NULL, "%{macAddress}", NULL}, - {"hosts.byaddr", config_exact, FALSE, + {"hosts.byaddr", config_exact, FALSE, NULL, "(&(ipHostNumber=*)(cn=*))", "%{cn}", NULL, "%first(\"cn\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")", NULL}, - {"hosts.byname", config_exact, FALSE, + {"hosts.byname", config_exact, FALSE, NULL, "(&(ipHostNumber=*)(cn=*))", "%{cn}", NULL, "%first(\"cn\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")", NULL}, - {"mail.byaddr", config_exact, FALSE, + {"mail.byaddr", config_exact, FALSE, NULL, "(objectClass=nisMailAlias)", "%{rfc822MailMember}", NULL, "%merge(\",\",\"%{cn}\")", NULL}, - {"mail.aliases", config_exact, FALSE, + {"mail.aliases", config_exact, FALSE, NULL, "(objectClass=nisMailAlias)", "%{cn}", NULL, "%merge(\",\",\"%{rfc822MailMember}\")", NULL}, - {"netgroup.byuser", config_exact, FALSE, + {"netgroup.byuser", config_exact, FALSE, NULL, "(objectClass=nisNetgroup)", NULL, NULL, NULL, NULL}, - {"netgroup.byhost", config_exact, FALSE, + {"netgroup.byhost", config_exact, FALSE, NULL, "(objectClass=nisNetgroup)", NULL, NULL, NULL, NULL}, - {"netid.byname", config_exact, FALSE, + {"netid.byname", config_exact, FALSE, NULL, "(objectClass=posixAccount)", "unix.%{uidNumber}", NULL, "%{uidNumber}:%merge(\",\",\"%{gidNumber}\",\"%deref(\\\"memberOf\\\",\\\"gidNumber\\\")\",\"%referred(\\\"group.byname\\\",\\\"member\\\",\\\"gidNumber\\\")\",\"%referred(\\\"group.byname\\\",\\\"uniqueMember\\\",\\\"gidNumber\\\")\")", NULL}, - {"networks.byaddr", config_exact, FALSE, + {"networks.byaddr", config_exact, FALSE, NULL, "(objectClass=ipNetwork)", "%{ipNetworkNumber}", NULL, "%{cn}", NULL}, - {"networks.byname", config_exact, FALSE, + {"networks.byname", config_exact, FALSE, NULL, "(objectClass=ipNetwork)", "%{cn}", NULL, "%{ipNetworkNumber}", NULL}, - {"protocols.byname", config_exact, FALSE, + {"protocols.byname", config_exact, FALSE, NULL, "(objectClass=ipProtocol)", "%{cn}", NULL, "%first(\"cn\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")", NULL}, - {"protocols.bynumber", config_exact, FALSE, + {"protocols.bynumber", config_exact, FALSE, NULL, "(objectClass=ipProtocol)", "%{cn}", NULL, "%first(\"cn\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")", NULL}, - {"rpc.byname", config_exact, FALSE, + {"rpc.byname", config_exact, FALSE, NULL, "(objectClass=oncRpc)", "%{cn}", NULL, "%first(\"cn\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")", NULL}, - {"rpc.bynumber", config_exact, FALSE, + {"rpc.bynumber", config_exact, FALSE, NULL, "(objectClass=oncRpc)", "%{oncRpcNumber}", NULL, "%first(\"cn\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")", NULL}, - {"services.byname", config_exact, FALSE, + {"services.byname", config_exact, FALSE, NULL, "(objectClass=ipService)", NULL, NULL, NULL, NULL}, - {"services.byservicename", config_exact, FALSE, + {"services.byservicename", config_exact, FALSE, NULL, "(objectClass=ipService)", NULL, NULL, NULL, NULL}, + {"ypservers", config_exact, FALSE, + "cn=nis-servers, " DEFAULT_CONFIGURATION_SUFFIX, + "(&(" NIS_MAP_CONFIGURATION_MAP_ATTR "=nis-servers)" + "(" NIS_MAP_CONFIGURATION_DOMAIN_ATTR "=%d)" + "(" NIS_PLUGIN_CONFIGURATION_SERVER_ATTR "=*))", + "%{" NIS_PLUGIN_CONFIGURATION_SERVER_ATTR "}", NULL, + "%{" NIS_PLUGIN_CONFIGURATION_SERVER_ATTR "}", + NULL}, }; void @@ -275,6 +285,12 @@ main(int argc, char **argv) if (fnmatch(map, config[i].map, 0) != 0) { continue; } + printf("dn: " + NIS_MAP_CONFIGURATION_DOMAIN_ATTR "=%s+" + NIS_MAP_CONFIGURATION_MAP_ATTR "=%s, " + DEFAULT_CONFIGURATION_SUFFIX "\n", + domain, config[i].map, + NIS_MAP_CONFIGURATION_DOMAIN_ATTR, domain); printf("%s: %s\n", NIS_MAP_CONFIGURATION_DOMAIN_ATTR, domain); printf("%s: %s%s%s\n", @@ -282,7 +298,13 @@ main(int argc, char **argv) (config[i].config_match == config_glob) ? "@" : "", config[i].map, (config[i].config_match == config_glob) ? "@" : ""); - printf("%s: %s\n", NIS_MAP_CONFIGURATION_BASE_ATTR, suffix); + if (config[i].base != NULL) { + printf("%s: %s\n", NIS_MAP_CONFIGURATION_BASE_ATTR, + config[i].base); + } else { + printf("%s: %s\n", NIS_MAP_CONFIGURATION_BASE_ATTR, + suffix); + } printf("%s: %s\n", NIS_MAP_CONFIGURATION_FILTER_ATTR, config[i].filter ? config[i].filter : ""); |