summaryrefslogtreecommitdiffstats
path: root/src/defs-nis.c
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-09 18:37:11 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-09 18:37:11 -0400
commitdcdbaa9c66c733a574ebff3769757450a45fe1fd (patch)
tree97d5ccfec97387786ac7aa3fdfda1cf5a3cee112 /src/defs-nis.c
parent0947608371101bcb4a739e6c595e2e25f5b426f8 (diff)
downloadslapi-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.c70
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 : "");