summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-09 17:10:53 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-09 17:10:53 -0400
commitbc742c5d8b38de54801e2ba3e25a1878f7e06737 (patch)
tree1888efea130df83d0a8113092898eed8528bb59e /src
parent5f222f47f1a6b07c92c1e2e1205ec18c5ba7c661 (diff)
- add a way to print out the values we hard-code for map default settings
- correct for %list() being gone now
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am4
-rw-r--r--src/defs-nis.c85
2 files changed, 80 insertions, 9 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 638f026..77215f6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -15,6 +15,10 @@ if SCHEMA
plugin_LTLIBRARIES += schemacompat-plugin.la
endif
+noinst_PROGRAMS = nisserver-plugin-defs
+nisserver_plugin_defs_CFLAGS = $(AM_CFLAGS) -DDEFS_NIS_MAIN
+nisserver_plugin_defs_SOURCES = defs-nis.c
+
nisserver_plugin_la_SOURCES = \
back-nis.c \
backend.h \
diff --git a/src/defs-nis.c b/src/defs-nis.c
index b5783a4..9059248 100644
--- a/src/defs-nis.c
+++ b/src/defs-nis.c
@@ -66,7 +66,7 @@ static struct configuration {
{"netgroup", config_exact, FALSE,
"(objectClass=nisNetgroup)",
"%{cn}", NULL,
- "%list(\" \",\"nisNetgroupTriple\",\"memberNisNetgroup\")",
+ "%merge(\" \",\"%{nisNetgroupTriple}\",\"%{memberNisNetgroup}\")",
NULL},
{"auto.*", config_glob, FALSE,
"(objectClass=automount)",
@@ -87,22 +87,22 @@ static struct configuration {
{"hosts.byaddr", config_exact, FALSE,
"(&(ipHostNumber=*)(cn=*))",
"%{cn}", NULL,
- "%first(\"cn\")\t%{ipHostNumber} %list(\" \",\"cn\")",
+ "%first(\"cn\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")",
NULL},
{"hosts.byname", config_exact, FALSE,
"(&(ipHostNumber=*)(cn=*))",
"%{cn}", NULL,
- "%first(\"cn\")\t%{ipHostNumber} %list(\" \",\"cn\")",
+ "%first(\"cn\")\t%{ipHostNumber} %merge(\" \",\"%{cn}\")",
NULL},
{"mail.byaddr", config_exact, FALSE,
"(objectClass=nisMailAlias)",
"%{rfc822MailMember}", NULL,
- "%list(\",\",\"cn\")",
+ "%merge(\",\",\"%{cn}\")",
NULL},
{"mail.aliases", config_exact, FALSE,
"(objectClass=nisMailAlias)",
"%{cn}", NULL,
- "%list(\",\",\"rfc822MailMember\")",
+ "%merge(\",\",\"%{rfc822MailMember}\")",
NULL},
{"netgroup.byuser", config_exact, FALSE,
"(objectClass=nisNetgroup)",
@@ -132,22 +132,22 @@ static struct configuration {
{"protocols.byname", config_exact, FALSE,
"(objectClass=ipProtocol)",
"%{cn}", NULL,
- "%first(\"cn\")\t%{ipProtocolNumber}\t%list(\" \",\"cn\")",
+ "%first(\"cn\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")",
NULL},
{"protocols.bynumber", config_exact, FALSE,
"(objectClass=ipProtocol)",
"%{cn}", NULL,
- "%first(\"cn\")\t%{ipProtocolNumber}\t%list(\" \",\"cn\")",
+ "%first(\"cn\")\t%{ipProtocolNumber}\t%merge(\" \",\"%{cn}\")",
NULL},
{"rpc.byname", config_exact, FALSE,
"(objectClass=oncRpc)",
"%{cn}", NULL,
- "%first(\"cn\")\t%{oncRpcNumber}\t%list(\" \",\"cn\")",
+ "%first(\"cn\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")",
NULL},
{"rpc.bynumber", config_exact, FALSE,
"(objectClass=oncRpc)",
"%{oncRpcNumber}", NULL,
- "%first(\"cn\")\t%{oncRpcNumber}\t%list(\" \",\"cn\")",
+ "%first(\"cn\")\t%{oncRpcNumber}\t%merge(\" \",\"%{cn}\")",
NULL},
{"services.byname", config_exact, FALSE,
"(objectClass=ipService)",
@@ -231,3 +231,70 @@ defaults_get_map_config(const char *mapname,
}
}
}
+
+#ifdef DEFS_NIS_MAIN
+#include <getopt.h>
+int
+main(int argc, char **argv)
+{
+ unsigned int i;
+ int c;
+ const char *domain, *suffix;
+ domain = "@example.com@";
+ suffix = "@suffix@";
+ while ((c = getopt(argc, argv, "d:s:")) != -1) {
+ switch (c) {
+ case 'd':
+ domain = optarg;
+ break;
+ case 's':
+ suffix = optarg;
+ break;
+ default:
+ fprintf(stderr, "Usage: %s [-d domain] [-s suffix]\n",
+ strchr(argv[0], '/') ?
+ strrchr(argv[0], '/') + 1 :
+ argv[0]);
+ return 1;
+ break;
+ }
+ }
+ for (i = 0; i < sizeof(config) / sizeof(config[0]); i++) {
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_DOMAIN_ATTR, domain);
+ printf("%s: %s%s%s\n",
+ NIS_MAP_CONFIGURATION_MAP_ATTR,
+ (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);
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_FILTER_ATTR,
+ config[i].filter ? config[i].filter : "");
+ if (config[i].keys_format != NULL) {
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_KEYS_ATTR,
+ config[i].keys_format);
+ } else {
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_KEY_ATTR,
+ 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].disallowed_chars != NULL) {
+ printf("%s: %s\n",
+ NIS_MAP_CONFIGURATION_DISALLOWED_CHARS_ATTR,
+ config[i].disallowed_chars);
+ }
+ if (config[i].secure) {
+ printf("%s: yes\n", NIS_MAP_CONFIGURATION_SECURE_ATTR);
+ }
+ printf("\n");
+ }
+ return 0;
+}
+#endif