summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-30 14:54:57 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-30 14:54:57 -0400
commit8e1a16d85716bbaf2c530f6890014afbae10ca03 (patch)
treeb8acaf2dfcccc1d5a0cd97819662e510d0d08ae1 /src
parenteccf1c36ecfabb0a33424447fb44be036c62189a (diff)
downloadslapi-nis-8e1a16d85716bbaf2c530f6890014afbae10ca03.tar.gz
slapi-nis-8e1a16d85716bbaf2c530f6890014afbae10ca03.tar.xz
slapi-nis-8e1a16d85716bbaf2c530f6890014afbae10ca03.zip
- add tracking of default values-format settings
Diffstat (limited to 'src')
-rw-r--r--src/defs-nis.c75
-rw-r--r--src/defs-nis.h1
2 files changed, 46 insertions, 30 deletions
diff --git a/src/defs-nis.c b/src/defs-nis.c
index 05ff043..80e4cb9 100644
--- a/src/defs-nis.c
+++ b/src/defs-nis.c
@@ -34,6 +34,7 @@
#define DEFAULT_KEY_FORMAT NULL
#define DEFAULT_KEYS_FORMAT "%{cn}"
#define DEFAULT_VALUE_FORMAT "%{nisMapEntry}"
+#define DEFAULT_VALUES_FORMAT NULL
#define DEFAULT_DISALLOWED_CHARS NULL
#define DEFAULT_MAP_SECURE FALSE
#define DEFAULT_CONFIGURATION_SUFFIX "cn=NIS Server, cn=plugins, cn=config"
@@ -44,131 +45,132 @@ static struct configuration {
bool_t secure;
char *base;
char *filter;
- char *key_format, *keys_format, *value_format, *disallowed_chars;
+ char *key_format, *keys_format, *value_format, *values_format;
+ char *disallowed_chars;
} config[] = {
{"passwd.byname", config_exact, FALSE, NULL,
"(objectClass=posixAccount)",
"%{uid}", NULL,
- "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory:-/}:%{loginShell:-" _PATH_BSHELL "}",
+ "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory:-/}:%{loginShell:-" _PATH_BSHELL "}", NULL,
":"},
{"passwd.byuid", config_exact, FALSE, NULL,
"(objectClass=posixAccount)",
"%{uidNumber}", NULL,
- "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory:-/}:%{loginShell:-" _PATH_BSHELL "}",
+ "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory:-/}:%{loginShell:-" _PATH_BSHELL "}", NULL,
":"},
{"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\\\")\")",
+ "%{cn}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{gidNumber}:%merge(\",\",\"%{memberUid}\",\"%deref(\\\"member\\\",\\\"uid\\\")\",\"%deref(\\\"uniqueMember\\\",\\\"uid\\\")\",\"%referred(\\\"passwd.byname\\\",\\\"memberOf\\\",\\\"uid\\\")\")", NULL,
":,"},
{"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\\\")\")",
+ "%{cn}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{gidNumber}:%merge(\",\",\"%{memberUid}\",\"%deref(\\\"member\\\",\\\"uid\\\")\",\"%deref(\\\"uniqueMember\\\",\\\"uid\\\")\",\"%referred(\\\"passwd.byname\\\",\\\"memberOf\\\",\\\"uid\\\")\")", NULL,
":,"},
{"netgroup", config_exact, FALSE, NULL,
"(objectClass=nisNetgroup)",
"%{cn}", NULL,
- "%merge(\" \",\"%{nisNetgroupTriple}\",\"%{memberNisNetgroup}\")",
+ "%merge(\" \",\"%{nisNetgroupTriple}\",\"%{memberNisNetgroup}\")", NULL,
NULL},
{"auto.*", config_glob, FALSE, NULL,
"(objectClass=automount)",
NULL, "%{automountKey}",
- "%{automountInformation}",
+ "%{automountInformation}", NULL,
NULL},
{"ethers.byaddr", config_exact, FALSE, NULL,
"(&(ipHostNumber=*)(macAddress=*))",
"%{macAddress}", NULL,
- "%{ipHostNumber}",
+ "%{ipHostNumber}", NULL,
NULL},
{"ethers.byname", config_exact, FALSE, NULL,
"(&(ipHostNumber=*)(macAddress=*))",
"%{ipHostNumber}", NULL,
- "%{macAddress}",
+ "%{macAddress}", NULL,
NULL},
{"hosts.byaddr", config_exact, FALSE, NULL,
"(&(ipHostNumber=*)(cn=*))",
"%{ipHostNumber}", NULL,
- "%first(\"%{cn}\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")",
+ "%first(\"%{cn}\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")", NULL,
NULL},
{"hosts.byname", config_exact, FALSE, NULL,
"(&(ipHostNumber=*)(cn=*))",
NULL, "%{cn}",
- "%first(\"%{cn}\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")",
+ "%first(\"%{cn}\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")", NULL,
NULL},
{"mail.aliases", config_exact, FALSE, NULL,
"(objectClass=nisMailAlias)",
"%{cn}", NULL,
- "%merge(\",\",\"%{rfc822MailMember}\")",
+ "%merge(\",\",\"%{rfc822MailMember}\")", NULL,
NULL},
{"mail.byaddr", config_exact, FALSE, NULL,
"(objectClass=nisMailAlias)",
NULL, "%{rfc822MailMember}",
- "%merge(\",\",\"%{cn}\")",
+ "%merge(\",\",\"%{cn}\")", NULL,
NULL},
{"netgroup.byhost", config_exact, FALSE, NULL,
"(objectClass=nisNetgroup)",
NULL, NULL,
- NULL,
+ NULL, NULL,
NULL},
{"netgroup.byuser", config_exact, FALSE, NULL,
"(objectClass=nisNetgroup)",
NULL, NULL,
- NULL,
+ NULL, NULL,
NULL},
{"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\\\")\")",
+ "%{uidNumber}:%merge(\",\",\"%{gidNumber}\",\"%deref(\\\"memberOf\\\",\\\"gidNumber\\\")\",\"%referred(\\\"group.byname\\\",\\\"member\\\",\\\"gidNumber\\\")\",\"%referred(\\\"group.byname\\\",\\\"uniqueMember\\\",\\\"gidNumber\\\")\")", NULL,
NULL},
{"networks.byaddr", config_exact, FALSE, NULL,
"(objectClass=ipNetwork)",
"%{ipNetworkNumber}", NULL,
- "%merge(\"%{cn}\")",
+ "%merge(\"%{cn}\")", NULL,
NULL},
{"networks.byname", config_exact, FALSE, NULL,
"(objectClass=ipNetwork)",
NULL, "%{cn}",
- "%{ipNetworkNumber}",
+ "%{ipNetworkNumber}", NULL,
NULL},
{"protocols.byname", config_exact, FALSE, NULL,
"(objectClass=ipProtocol)",
NULL, "%{cn}",
- "%first(\"%{cn}\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")",
+ "%first(\"%{cn}\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")", NULL,
NULL},
{"protocols.bynumber", config_exact, FALSE, NULL,
"(objectClass=ipProtocol)",
"%{ipProtocolNumber}", NULL,
- "%first(\"%{cn}\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")",
+ "%first(\"%{cn}\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")", NULL,
NULL},
{"rpc.byname", config_exact, FALSE, NULL,
"(objectClass=oncRpc)",
NULL, "%{cn}",
- "%first(\"%{cn}\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")",
+ "%first(\"%{cn}\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")", NULL,
NULL},
{"rpc.bynumber", config_exact, FALSE, NULL,
"(objectClass=oncRpc)",
"%{oncRpcNumber}", NULL,
- "%first(\"%{cn}\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")",
+ "%first(\"%{cn}\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")", NULL,
NULL},
{"services.byname", config_exact, FALSE, NULL,
"(objectClass=ipService)",
NULL, "%{cn}",
- "%{cn} %{ipServicePort}/%{ipServiceProtocol} %merge(\"%{cn}\")",
+ "%{cn} %{ipServicePort}/%{ipServiceProtocol} %merge(\"%{cn}\")", NULL,
NULL},
{"services.byservicename", config_exact, FALSE, NULL,
"(objectClass=ipService)",
NULL, "%{cn}",
- "%{cn} %{ipServicePort}/%{ipServiceProtocol} %merge(\"%{cn}\")",
+ "%{cn} %{ipServicePort}/%{ipServiceProtocol} %merge(\"%{cn}\")", 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, "%{" NIS_PLUGIN_CONFIGURATION_SERVER_ATTR "}",
+ NULL, "%{" NIS_PLUGIN_CONFIGURATION_SERVER_ATTR "}",
NULL},
};
@@ -179,6 +181,7 @@ defaults_get_map_config(const char *mapname,
const char **key_format,
const char **keys_format,
const char **value_format,
+ const char **values_format,
const char **disallowed_chars)
{
unsigned int i;
@@ -216,6 +219,9 @@ defaults_get_map_config(const char *mapname,
if (value_format) {
*value_format = config[i].value_format;
}
+ if (values_format) {
+ *values_format = config[i].values_format;
+ }
if (disallowed_chars) {
*disallowed_chars = config[i].disallowed_chars;
}
@@ -237,6 +243,9 @@ defaults_get_map_config(const char *mapname,
if (value_format) {
*value_format = DEFAULT_VALUE_FORMAT;
}
+ if (values_format) {
+ *values_format = DEFAULT_VALUES_FORMAT;
+ }
if (disallowed_chars) {
*disallowed_chars = DEFAULT_DISALLOWED_CHARS;
}
@@ -324,10 +333,16 @@ main(int argc, char **argv)
config[i].key_format ?
config[i].key_format : "");
}
- printf("%s: %s\n",
- NIS_MAP_CONFIGURATION_VALUE_ATTR,
- config[i].value_format ?
- config[i].value_format : "");
+ if (config[i].values_format != NULL) {
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_VALUES_ATTR,
+ config[i].values_format);
+ } else {
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_VALUE_ATTR,
+ config[i].value_format ?
+ config[i].value_format : "");
+ }
if (config[i].disallowed_chars != NULL) {
printf("%s: %s\n",
NIS_MAP_CONFIGURATION_DISALLOWED_CHARS_ATTR,
diff --git a/src/defs-nis.h b/src/defs-nis.h
index 3155cd5..236f797 100644
--- a/src/defs-nis.h
+++ b/src/defs-nis.h
@@ -27,5 +27,6 @@ void defaults_get_map_config(const char *mapname,
const char **key_format,
const char **keys_format,
const char **value_format,
+ const char **values_format,
const char **disallowed_chars);
#endif