/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2003 The OpenLDAP Foundation.
+ * Copyright 1998-2011 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#include <ac/time.h>
#include "slap.h"
-#include "external.h"
+#include "back-passwd.h"
+#include "config.h"
-int
-passwd_back_db_config(
- BackendDB *be,
- const char *fname,
- int lineno,
- int argc,
- char **argv
-)
-{
- /* alternate passwd file */
- if ( strcasecmp( argv[0], "file" ) == 0 ) {
+static ConfigTable passwdcfg[] = {
+ { "file", "filename", 2, 2, 0,
#ifdef HAVE_SETPWFILE
- if ( argc < 2 ) {
- fprintf( stderr,
- "%s: line %d: missing filename in \"file <filename>\" line\n",
- fname, lineno );
- return( 1 );
- }
- be->be_private = ch_strdup( argv[1] );
-#else /* HAVE_SETPWFILE */
- fprintf( stderr,
- "%s: line %d: ignoring \"file\" option (not supported on this platform)\n",
- fname, lineno );
-#endif /* HAVE_SETPWFILE */
+ ARG_STRING|ARG_OFFSET, NULL,
+#else
+ ARG_IGNORED, NULL,
+#endif
+ "( OLcfgDbAt:9.1 NAME 'olcPasswdFile' "
+ "DESC 'File containing passwd records' "
+ "EQUALITY caseExactMatch "
+ "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
+ { NULL, NULL, 0, 0, 0, ARG_IGNORED,
+ NULL, NULL, NULL, NULL }
+};
- /* anything else */
- } else {
- fprintf( stderr,
-"%s: line %d: unknown directive \"%s\" in passwd database definition (ignored)\n",
- fname, lineno, argv[0] );
- }
+static ConfigOCs passwdocs[] = {
+ { "( OLcfgDbOc:9.1 "
+ "NAME 'olcPasswdConfig' "
+ "DESC 'Passwd backend configuration' "
+ "SUP olcDatabaseConfig "
+ "MAY olcPasswdFile )",
+ Cft_Database, passwdcfg },
+ { NULL, 0, NULL }
+};
- return( 0 );
+int
+passwd_back_init_cf( BackendInfo *bi )
+{
+ bi->bi_cf_ocs = passwdocs;
+ return config_register_schema( passwdcfg, passwdocs );
}