diff options
| author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-05-16 18:35:28 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-05-16 18:35:28 -0400 |
| commit | 82ec8e499f87136252e4e9361dcf8ea2c14c6294 (patch) | |
| tree | 0f7dce5718c15231eedde81cf5c4324018a0c56d /src/defaults.c | |
| parent | 8ab5f4b2f802331090068ab3fb655238e561a9a8 (diff) | |
| download | slapi-nis-82ec8e499f87136252e4e9361dcf8ea2c14c6294.tar.gz slapi-nis-82ec8e499f87136252e4e9361dcf8ea2c14c6294.tar.xz slapi-nis-82ec8e499f87136252e4e9361dcf8ea2c14c6294.zip | |
- add a table of defaults
- add a "match" format function ("regmatch" is still needed)
Diffstat (limited to 'src/defaults.c')
| -rw-r--r-- | src/defaults.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/defaults.c b/src/defaults.c new file mode 100644 index 0000000..43b229b --- /dev/null +++ b/src/defaults.c @@ -0,0 +1,46 @@ +#include <string.h> + +#define DEFAULT_ENTRY_FILTER "(&(nisMapName=%m)(objectClass=nisObject))" +#define DEFAULT_KEY_FORMAT "%{cn}" +#define DEFAULT_VALUE_FORMAT "%{nisMapEntry}" + +static struct configuration { + char *map, *filter, *key_format, *value_format; +} config[] = { + {"passwd.byname", + "(objectClass=posixAccount)", + "%{uid}", + "%{uid}:%regmatch(\"userPassword\",\"^{CRYPT}.............*\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn}}:%{homeDirectory:-/}:%{loginShell:-}"}, + {"passwd.bynumber", + "(objectClass=posixAccount)", + "%{uidNumber}", + "%{uid}:%regmatch(\"userPassword\",\"^{CRYPT}.............*\",\"*\"):%{uidNumber}:%{gidNumber}:%{gecos:-%{cn}}:%{homeDirectory:-/}:%{loginShell:-}"}, + {"group.byname", + "(objectClass=posixGroup)", + "%{cn}", + "%{cn}:%regmatch(\"userPassword\",\"^{CRYPT}.............*\",\"*\"):%{gidNumber}:%list(\",\",\"memberUid\")"}, + {"group.bynumber", + "(objectClass=posixGroup)", + "%{gidNumber}", + "%{cn}:%regmatch(\"userPassword\",\"^{CRYPT}.............*\",\"*\"):%{gidNumber}:%list(\",\",\"memberUid\")"}, +}; + +void +defaults_get_map_config(const char *mapname, + const char **filter, + const char **key_format, + const char **value_format) +{ + unsigned int i; + *filter = DEFAULT_ENTRY_FILTER; + *key_format = DEFAULT_KEY_FORMAT; + *value_format = DEFAULT_VALUE_FORMAT; + for (i = 0; i < sizeof(config) / sizeof(config[0]); i++) { + if (strcmp(mapname, config[i].map) == 0) { + *filter = config[i].filter; + *key_format = config[i].key_format; + *value_format = config[i].value_format; + break; + } + } +} |
