diff options
| author | Nalin Dahyabhai <nalin@dahyabhai.net> | 2008-06-17 16:41:04 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin@dahyabhai.net> | 2008-06-17 16:41:04 -0400 |
| commit | cd158d753a24f84a096d1c2211cd1da400a66036 (patch) | |
| tree | 332e0c12dc8e3cc7a8aa021e53aefa2a55ca85bf /src/defaults.c | |
| parent | 4f5e14211ff8238f62cb15186379b6b9ecffef51 (diff) | |
| download | slapi-nis-cd158d753a24f84a096d1c2211cd1da400a66036.tar.gz slapi-nis-cd158d753a24f84a096d1c2211cd1da400a66036.tar.xz slapi-nis-cd158d753a24f84a096d1c2211cd1da400a66036.zip | |
- get most of the tree in shape to handle multiple keys per entry
- make map_next() not expose entry IDs or key indices, because it has to do
all of the heavy lifting anyway
Diffstat (limited to 'src/defaults.c')
| -rw-r--r-- | src/defaults.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/defaults.c b/src/defaults.c index fe2474d..29e0d8d 100644 --- a/src/defaults.c +++ b/src/defaults.c @@ -33,36 +33,37 @@ #define DEFAULT_KEY_FORMAT "%{cn}" #define DEFAULT_VALUE_FORMAT "%{nisMapEntry}" #define DEFAULT_MAP_SECURE FALSE +static const char *default_key_formats[] = {DEFAULT_KEY_FORMAT, NULL}; static struct configuration { char *map; enum { config_exact, config_glob } config_match; bool_t secure; - char *filter, *key_format, *value_format; + char *filter, *key_formats[3], *value_format; } config[] = { {"passwd.byname", config_exact, FALSE, "(objectClass=posixAccount)", - "%{uid}", + {"%{uid}", NULL, NULL}, "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{cn!:}:%{homeDirectory:-/}:%{loginShell!:}"}, {"passwd.byuid", config_exact, FALSE, "(objectClass=posixAccount)", - "%{uidNumber}", + {"%{uidNumber}", NULL, NULL}, "%{uid}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{uidNumber}:%{gidNumber}:%{cn!:}:%{homeDirectory:-/}:%{loginShell!:}"}, {"group.byname", config_exact, FALSE, "(objectClass=posixGroup)", - "%{cn}", + {"%{cn}", NULL, NULL}, "%{cn}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{gidNumber}:%merge(\",\",\"%list(\\\",\\\",\\\"memberUid\\\")\",\"%deref(\\\",\\\",\\\"member\\\",\\\"uid\\\")\",\"%deref(\\\",\\\",\\\"uniqueMember\\\",\\\"uid\\\")\",\"%referred(\\\",\\\",\\\"passwd.byname\\\",\\\"memberOf\\\",\\\"uid\\\")\")"}, {"group.bygid", config_exact, FALSE, "(objectClass=posixGroup)", - "%{gidNumber}", + {"%{gidNumber}", NULL, NULL}, "%{cn}:%regsub(\"userPassword\",\"^\\\\{CRYPT\\\\}(..*)\",\"%1\",\"*\"):%{gidNumber}:%merge(\",\",\"%list(\\\",\\\",\\\"memberUid\\\")\",\"%deref(\\\",\\\",\\\"member\\\",\\\"uid\\\")\",\"%deref(\\\",\\\",\\\"uniqueMember\\\",\\\"uid\\\")\",\"%referred(\\\",\\\",\\\"passwd.byuid\\\",\\\"memberOf\\\",\\\"uid\\\")\")"}, {"netgroup", config_exact, FALSE, "(objectClass=nisNetgroup)", - "%{cn}", + {"%{cn}", NULL, NULL}, "%list(\" \",\"nisNetgroupTriple\",\"memberNisNetgroup\")"}, {"auto.*", config_glob, FALSE, "(objectClass=automount)", - "%{automountKey}", + {"%{automountKey}", NULL, NULL}, "%{automountInformation}"}, }; @@ -70,7 +71,7 @@ void defaults_get_map_config(const char *mapname, bool_t *secure, const char **filter, - const char **key_format, + const char ***key_formats, const char **value_format) { unsigned int i; @@ -80,8 +81,8 @@ defaults_get_map_config(const char *mapname, if (secure) { *secure = DEFAULT_MAP_SECURE; } - if (key_format) { - *key_format = DEFAULT_KEY_FORMAT; + if (key_formats) { + *key_formats = default_key_formats; } if (value_format) { *value_format = DEFAULT_VALUE_FORMAT; @@ -96,8 +97,8 @@ defaults_get_map_config(const char *mapname, if (filter) { *filter = config[i].filter; } - if (key_format) { - *key_format = config[i].key_format; + if (key_formats) { + *key_formats = (const char **) config[i].key_formats; } if (value_format) { *value_format = config[i].value_format; @@ -113,8 +114,8 @@ defaults_get_map_config(const char *mapname, if (filter) { *filter = config[i].filter; } - if (key_format) { - *key_format = config[i].key_format; + if (key_formats) { + *key_formats = (const char **) config[i].key_formats; } if (value_format) { *value_format = config[i].value_format; |
