-#define DEFAULT_SYSLOG_USER LOG_LOCAL4
-
-typedef struct _str2intDispatch {
- char *stringVal;
- int abbr;
- int intVal;
-} STRDISP, *STRDISP_P;
-
-
-/* table to compute syslog-options to integer */
-static STRDISP syslog_types[] = {
- { "LOCAL0", sizeof("LOCAL0"), LOG_LOCAL0 },
- { "LOCAL1", sizeof("LOCAL1"), LOG_LOCAL1 },
- { "LOCAL2", sizeof("LOCAL2"), LOG_LOCAL2 },
- { "LOCAL3", sizeof("LOCAL3"), LOG_LOCAL3 },
- { "LOCAL4", sizeof("LOCAL4"), LOG_LOCAL4 },
- { "LOCAL5", sizeof("LOCAL5"), LOG_LOCAL5 },
- { "LOCAL6", sizeof("LOCAL6"), LOG_LOCAL6 },
- { "LOCAL7", sizeof("LOCAL7"), LOG_LOCAL7 },
- { NULL, 0, 0 }
+void *slap_tls_ctx;
+LDAP *slap_tls_ld;
+
+static int
+slapd_opt_slp( const char *val, void *arg )
+{
+#ifdef HAVE_SLP
+ /* NULL is default */
+ if ( val == NULL || *val == '(' || strcasecmp( val, "on" ) == 0 ) {
+ slapd_register_slp = 1;
+ slapd_slp_attrs = (val != NULL && *val == '(') ? val : NULL;
+
+ } else if ( strcasecmp( val, "off" ) == 0 ) {
+ slapd_register_slp = 0;
+
+ /* NOTE: add support for URL specification? */
+
+ } else {
+ fprintf(stderr, "unrecognized value \"%s\" for SLP option\n", val );
+ return -1;
+ }
+
+ return 0;
+
+#else
+ fputs( "slapd: SLP support is not available\n", stderr );
+ return 0;
+#endif
+}
+
+/*
+ * Option helper structure:
+ *
+ * oh_nam is left-hand part of <option>[=<value>]
+ * oh_fnc is handler function
+ * oh_arg is an optional arg to oh_fnc
+ * oh_usage is the one-line usage string related to the option,
+ * which is assumed to start with <option>[=<value>]
+ *
+ * please leave valid options in the structure, and optionally #ifdef
+ * their processing inside the helper, so that reasonable and helpful
+ * error messages can be generated if a disabled option is requested.
+ */
+struct option_helper {
+ struct berval oh_name;
+ int (*oh_fnc)(const char *val, void *arg);
+ void *oh_arg;
+ const char *oh_usage;
+} option_helpers[] = {
+ { BER_BVC("slp"), slapd_opt_slp, NULL, "slp[={on|off|(attrs)}] enable/disable SLP using (attrs)" },
+ { BER_BVNULL, 0, NULL, NULL }