[Fedora-directory-commits] ldapserver/ldap/servers/slapd/tools pwenc.c, 1.6, 1.7
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/tools
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/servers/slapd/tools
Modified Files:
pwenc.c
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: pwenc.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/tools/pwenc.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- pwenc.c 11 Apr 2006 02:14:51 -0000 1.6
+++ pwenc.c 27 Sep 2006 23:40:52 -0000 1.7
@@ -82,7 +82,7 @@
usage( name )
char *name;
{
- fprintf( stderr, "usage: %s -D instance-dir [-H] [-s scheme | -c comparepwd ] password...\n", name );
+ fprintf( stderr, "usage: %s -D config-dir [-H] [-s scheme | -c comparepwd ] password...\n", name );
exit( 1 );
}
@@ -133,7 +133,7 @@
slapdFrontendConfig_t *slapdFrontendConfig = NULL;
char *opts = "Hs:c:D:";
- char *instancedir = NULL;
+ char *configdir = NULL;
name = argv[ 0 ];
pwsp = cmppwsp = NULL;
@@ -157,13 +157,13 @@
/* kexcoff: quite the same as slapd_bootstrap_config */
FrontendConfig_init();
- instancedir = rel2abspath( optarg );
- if ( config_set_instancedir( "configdir (-D)", instancedir,
+ configdir = rel2abspath( optarg );
+ if ( config_set_configdir( "configdir (-D)", configdir,
errorbuf, 1) != LDAP_SUCCESS ) {
fprintf( stderr, "%s\n", errorbuf );
return( 1 );
}
- slapi_ch_free((void **)&instancedir);
+ slapi_ch_free((void **)&configdir);
slapdFrontendConfig = getFrontendConfig();
17 years, 7 months
[Fedora-directory-commits] ldapserver/ldap/servers/slapd/test-plugins testbind.c, 1.8, 1.9
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/test-plugins
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/servers/slapd/test-plugins
Modified Files:
testbind.c
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: testbind.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/test-plugins/testbind.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- testbind.c 23 Feb 2006 01:20:17 -0000 1.8
+++ testbind.c 27 Sep 2006 23:40:51 -0000 1.9
@@ -49,7 +49,7 @@
as the root DN.
To test this plug-in function, stop the server, edit the dse.ldif file
- (in the <server_root>/slapd-<server_id>/config directory)
+ (in the config directory)
and add the following lines before restarting the server :
dn: cn=Test Bind,cn=plugins,cn=config
17 years, 7 months
[Fedora-directory-commits] ldapserver/ldap/servers/slapd auth.c, 1.6, 1.7 config.c, 1.6, 1.7 dse.c, 1.5, 1.6 fedse.c, 1.7, 1.8 libglobs.c, 1.9, 1.10 main.c, 1.11, 1.12 proto-slap.h, 1.20, 1.21 schema.c, 1.8, 1.9 slap.h, 1.14, 1.15
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/servers/slapd
Modified Files:
auth.c config.c dse.c fedse.c libglobs.c main.c proto-slap.h
schema.c slap.h
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: auth.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/auth.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- auth.c 11 Apr 2006 02:14:44 -0000 1.6
+++ auth.c 27 Sep 2006 23:40:51 -0000 1.7
@@ -272,41 +272,27 @@
client_auth_init ()
{
char *instancedir;
- int len = 0;
- char *val = NULL;
- char* filename;
- char netsite_root[MAXPATHLEN];
int err;
if (client_auth_config_file == NULL) {
- client_auth_config_file = "shared/config/certmap.conf";
- }
-
- /* calculate the server_root from instance dir */
- instancedir = config_get_instancedir();
- /* make sure path does not end in the path separator character */
- len = strlen(instancedir);
- if (instancedir[len-1] == '/' || instancedir[len-1] == '\\') {
- instancedir[len-1] = '\0';
- }
-
- /* get the server root from the path */
- val = strrchr(instancedir, '/');
- if (!val) {
- val = strrchr(instancedir, '\\');
+ char *confdir = config_get_configdir();
+ if (NULL == confdir) {
+ LDAPDebug (LDAP_DEBUG_ANY,
+ "client_auth_init: failed to get configdir\n",
+ 0, 0, 0);
+ return;
+ }
+ client_auth_config_file = PR_smprintf("%s/certmap.conf", confdir);
+ if (NULL == client_auth_config_file) {
+ LDAPDebug (LDAP_DEBUG_ANY,
+ "client_auth_init: failed to duplicate \"%s/certmap\"\n",
+ confdir, 0, 0);
+ return;
+ }
}
- if (val) {
- val++;
- *val = '\0';
- }
-
- PL_strncpyz(netsite_root, instancedir, MAXPATHLEN);
- slapi_ch_free_string(&instancedir);
- filename = PR_smprintf("%s%s", netsite_root, client_auth_config_file);
-
- err = ldaputil_init (filename, "", netsite_root, "slapd", NULL);
+ err = ldaputil_init (client_auth_config_file, "", NULL, "slapd", NULL);
if (err != LDAPU_SUCCESS) {
LDAPDebug (LDAP_DEBUG_TRACE, "ldaputil_init(%s,...) %i\n",
- filename, err, 0);
+ client_auth_config_file, err, 0);
} else {
LDAPUVTable_t vtable = {
NULL /* ssl_init */,
@@ -329,9 +315,6 @@
slapu_value_free_len};
ldapu_VTable_set (&vtable);
}
- PR_smprintf_free (filename);
- /* why do we define these strings if we never use them? */
- if (ldapu_strings != NULL);
/* Generate a component id for cert-based authentication */
generate_id();
Index: config.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/config.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- config.c 24 Nov 2005 01:39:44 -0000 1.6
+++ config.c 27 Sep 2006 23:40:51 -0000 1.7
@@ -160,30 +160,40 @@
char *buf = 0;
char *lastp = 0;
char *entrystr = 0;
+ char *instancedir = NULL;
+ if (NULL == configdir) {
+ slapi_log_error(SLAPI_LOG_FATAL,
+ "startup", "Passed null config directory\n");
+ return rc; /* Fail */
+ }
PR_snprintf(configfile, sizeof(configfile), "%s/%s", configdir,
- CONFIG_FILENAME);
+ CONFIG_FILENAME);
if ( (rc = PR_GetFileInfo( configfile, &prfinfo )) != PR_SUCCESS )
{
/* the "real" file does not exist; see if there is a tmpfile */
char tmpfile[MAXPATHLEN+1];
+ slapi_log_error(SLAPI_LOG_FATAL, "config",
+ "The configuration file %s does not exist\n", configfile);
PR_snprintf(tmpfile, sizeof(tmpfile), "%s/%s.tmp", configdir,
- CONFIG_FILENAME);
+ CONFIG_FILENAME);
if ( PR_GetFileInfo( tmpfile, &prfinfo ) == PR_SUCCESS ) {
rc = PR_Rename(tmpfile, configfile);
if (rc == PR_SUCCESS) {
slapi_log_error(SLAPI_LOG_FATAL, "config",
"The configuration file %s was restored from backup %s\n",
configfile, tmpfile);
- rc = 1;
} else {
slapi_log_error(SLAPI_LOG_FATAL, "config",
"The configuration file %s was not restored from backup %s, error %d\n",
configfile, tmpfile, rc);
- rc = 0;
+ return rc; /* Fail */
}
} else {
- rc = 0; /* fail */
+ slapi_log_error(SLAPI_LOG_FATAL, "config",
+ "The backup configuration file %s does not exist, either.\n",
+ tmpfile);
+ return rc; /* Fail */
}
}
if ( (rc = PR_GetFileInfo( configfile, &prfinfo )) != PR_SUCCESS )
@@ -191,7 +201,7 @@
PRErrorCode prerr = PR_GetError();
slapi_log_error(SLAPI_LOG_FATAL, "config", "The given config file %s could not be accessed, " SLAPI_COMPONENT_NAME_NSPR " error %d (%s)\n",
configfile, prerr, slapd_pr_strerror(prerr));
- rc = 0; /* Fail */
+ return rc;
}
else if (( prfd = PR_Open( configfile, PR_RDONLY,
SLAPD_DEFAULT_FILE_MODE )) == NULL )
@@ -199,7 +209,7 @@
PRErrorCode prerr = PR_GetError();
slapi_log_error(SLAPI_LOG_FATAL, "config", "The given config file %s could not be opened for reading, " SLAPI_COMPONENT_NAME_NSPR " error %d (%s)\n",
configfile, prerr, slapd_pr_strerror(prerr));
- rc = 0; /* Fail */
+ return rc; /* Fail */
}
else
{
@@ -218,7 +228,7 @@
if(!done)
{
- char errorlog[MAXPATHLEN+1];
+ char workpath[MAXPATHLEN+1];
char loglevel[BUFSIZ];
char maxdescriptors[BUFSIZ];
char val[BUFSIZ];
@@ -227,7 +237,7 @@
char schemacheck[BUFSIZ];
Slapi_DN plug_dn;
- errorlog[0] = loglevel[0] = maxdescriptors[0] = '\0';
+ workpath[0] = loglevel[0] = maxdescriptors[0] = '\0';
val[0] = logenabled[0] = schemacheck[0] = '\0';
_localuser[0] = '\0';
@@ -252,6 +262,28 @@
continue;
}
+ /* if instancedir is not set, set it first */
+ {
+ instancedir = config_get_instancedir();
+ if (NULL == instancedir) {
+ workpath[0] = '\0';
+ if (entry_has_attr_and_value(e,
+ CONFIG_INSTANCEDIR_ATTRIBUTE,
+ workpath, sizeof(workpath))) {
+ if (config_set_instancedir(
+ CONFIG_INSTANCEDIR_ATTRIBUTE,
+ workpath, errorbuf, CONFIG_APPLY)
+ != LDAP_SUCCESS) {
+ LDAPDebug(LDAP_DEBUG_ANY, "%s: %s: %s\n",
+ configfile, CONFIG_INSTANCEDIR_ATTRIBUTE,
+ errorbuf);
+ }
+ }
+ } else {
+ slapi_ch_free((void **)&instancedir);
+ }
+ }
+
/* increase file descriptors */
#if !defined(_WIN32) && !defined(AIX)
if (!maxdescriptors[0] &&
@@ -301,12 +333,13 @@
#endif
/* set the log file name */
- if (!errorlog[0] &&
+ workpath[0] = '\0';
+ if (!workpath[0] &&
entry_has_attr_and_value(e, CONFIG_ERRORLOG_ATTRIBUTE,
- errorlog, sizeof(errorlog)))
+ workpath, sizeof(workpath)))
{
if (config_set_errorlog(CONFIG_ERRORLOG_ATTRIBUTE,
- errorlog, errorbuf, CONFIG_APPLY) != LDAP_SUCCESS)
+ workpath, errorbuf, CONFIG_APPLY) != LDAP_SUCCESS)
{
LDAPDebug(LDAP_DEBUG_ANY, "%s: %s: %s. \n", configfile,
CONFIG_ERRORLOG_ATTRIBUTE, errorbuf);
@@ -485,6 +518,18 @@
slapi_entry_free(e);
}
+ /*
+ * check if the instance dir is set.
+ */
+ if ( NULL == ( instancedir = config_get_instancedir() )) {
+ slapi_log_error(SLAPI_LOG_FATAL, "startup",
+ "Instance directory is not specifiled in the file %s. It is mandatory.\n",
+ configfile);
+ exit (1);
+ } else {
+ slapi_ch_free((void **)&instancedir);
+ }
+
/* kexcoff: initialize rootpwstoragescheme and pw_storagescheme
* if not explicilty set in the config file
*/
Index: dse.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/dse.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- dse.c 19 Apr 2005 22:07:36 -0000 1.5
+++ dse.c 27 Sep 2006 23:40:51 -0000 1.6
@@ -38,10 +38,9 @@
/*
* dse.c - DSE (DSA-Specific Entry) persistent storage.
*
- * The DSE store is an LDIF file contained in the file
- * INSTANCEDIR/config/XXX.ldif, where INSTANCEDIR is
- * the directory of the server instance, and XXX is
- * dfined by the caller of dse_new.
+ * The DSE store is an LDIF file contained in the file dse.ldif.
+ * The file is located in the directory specified with '-D'
+ * when staring the server.
*
* In core, the DSEs are stored in an AVL tree, keyed on
* DN. Whenever a modification is made to a DSE, the
@@ -354,14 +353,15 @@
dse_new( char *filename, char *tmpfilename, char *backfilename, char *startokfilename, const char *configdir)
{
struct dse *pdse= NULL;
- const char *config_sub_dir = "config";
- char *id = config_get_instancedir();
char *realconfigdir = NULL;
- if (configdir!=NULL) {
- realconfigdir = slapi_ch_strdup(configdir);
- } else if (id!=NULL) {
- realconfigdir = slapi_ch_smprintf("%s/%s", id, config_sub_dir);
+ if (configdir!=NULL)
+ {
+ realconfigdir = slapi_ch_strdup(configdir);
+ }
+ else
+ {
+ realconfigdir = config_get_configdir();
}
if(realconfigdir!=NULL)
{
@@ -412,7 +412,6 @@
}
slapi_ch_free( (void **) &realconfigdir );
}
- slapi_ch_free( (void **) &id );
return pdse;
}
Index: fedse.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/fedse.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- fedse.c 19 Apr 2005 22:07:36 -0000 1.7
+++ fedse.c 27 Sep 2006 23:40:51 -0000 1.8
@@ -38,9 +38,9 @@
/*
* fedse.c - Front End DSE (DSA-Specific Entry) persistent storage.
*
- * The DSE store is an LDIF file contained in the file
- * INSTANCEDIR/config/dse.ldif, where INSTANCEDIR is
- * the directory of the server instance.
+ * The DSE store is an LDIF file contained in the file dse.ldif.
+ * The file is located in the directory specified with '-D'
+ * when staring the server.
*
* In core, the DSEs are stored in an AVL tree, keyed on
* DN. Whenever a modification is made to a DSE, the
@@ -1866,48 +1866,54 @@
int fedse_create_startOK(char *filename, char *startokfilename, const char *configdir)
{
- const char *config_sub_dir = "config";
- char *id = config_get_instancedir();
char *realconfigdir = NULL;
- char *dse_filename = NULL;
- char *dse_filestartOK = NULL;
- int rc = -1;
+ char *dse_filename = NULL;
+ char *dse_filestartOK = NULL;
+ int rc = -1;
- if (configdir!=NULL) {
+ if (configdir!=NULL)
+ {
realconfigdir = slapi_ch_strdup(configdir);
- } else if (id!=NULL) {
- realconfigdir = slapi_ch_smprintf("%s/%s", id, config_sub_dir);
}
- slapi_ch_free_string(&id);
+ else
+ {
+ realconfigdir = config_get_configdir();
+ }
if(realconfigdir!=NULL)
{
- /* Set the full path name for the config DSE entry */
- if (!strstr(filename, realconfigdir))
- {
- dse_filename = slapi_ch_smprintf("%s/%s", realconfigdir, filename );
- }
- else
- dse_filename = slapi_ch_strdup(filename);
+ /* Set the full path name for the config DSE entry */
+ if (!strstr(filename, realconfigdir))
+ {
+ dse_filename = slapi_ch_smprintf("%s/%s", realconfigdir, filename);
+ }
+ else
+ {
+ dse_filename = slapi_ch_strdup(filename);
+ }
- if (!strstr(startokfilename, realconfigdir)) {
- dse_filestartOK = slapi_ch_smprintf("%s/%s", realconfigdir, startokfilename );
- }
- else
- dse_filestartOK = slapi_ch_strdup(startokfilename);
+ if (!strstr(startokfilename, realconfigdir))
+ {
+ dse_filestartOK = slapi_ch_smprintf("%s/%s",
+ realconfigdir, startokfilename);
+ }
+ else
+ {
+ dse_filestartOK = slapi_ch_strdup(startokfilename);
+ }
- rc = slapi_copy(dse_filename, dse_filestartOK);
- if ( rc != 0 )
- {
- slapi_log_error( SLAPI_LOG_FATAL, "dse", "Cannot copy"
- " DSE file \"%s\" to \"%s\" OS error %d (%s)\n",
- dse_filename, dse_filestartOK,
- rc, slapd_system_strerror(rc) );
- }
-
- slapi_ch_free_string(&dse_filename);
- slapi_ch_free_string(&dse_filestartOK);
- slapi_ch_free_string(&realconfigdir);
- }
+ rc = slapi_copy(dse_filename, dse_filestartOK);
+ if ( rc != 0 )
+ {
+ slapi_log_error( SLAPI_LOG_FATAL, "dse", "Cannot copy"
+ " DSE file \"%s\" to \"%s\" OS error %d (%s)\n",
+ dse_filename, dse_filestartOK,
+ rc, slapd_system_strerror(rc) );
+ }
+
+ slapi_ch_free_string(&dse_filename);
+ slapi_ch_free_string(&dse_filestartOK);
+ slapi_ch_free_string(&realconfigdir);
+ }
- return rc;
+ return rc;
}
Index: libglobs.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/libglobs.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- libglobs.c 31 Aug 2006 22:52:07 -0000 1.9
+++ libglobs.c 27 Sep 2006 23:40:51 -0000 1.10
@@ -513,9 +513,16 @@
CONFIG_CONSTANT_STRING, NULL},
{CONFIG_HASH_FILTERS_ATTRIBUTE, config_set_hash_filters,
NULL, 0, NULL, CONFIG_ON_OFF, (ConfigGetFunc)config_get_hash_filters},
- {CONFIG_INSTANCEDIR_ATTRIBUTE, NULL /* read only */,
+ {CONFIG_INSTANCEDIR_ATTRIBUTE, config_set_instancedir,
NULL, 0,
(void**)&global_slapdFrontendConfig.instancedir, CONFIG_STRING, NULL},
+ /* parameterizing schema dir */
+ {CONFIG_SCHEMADIR_ATTRIBUTE, config_set_schemadir,
+ NULL, 0,
+ (void**)&global_slapdFrontendConfig.schemadir, CONFIG_STRING, NULL},
+ /* parameterizing ldif dir */
+ {CONFIG_LDIFDIR_ATTRIBUTE, config_set_ldifdir,
+ NULL, 0, NULL, CONFIG_STRING, NULL},
{CONFIG_REWRITE_RFC1274_ATTRIBUTE, config_set_rewrite_rfc1274,
NULL, 0,
(void**)&global_slapdFrontendConfig.rewrite_rfc1274, CONFIG_ON_OFF, NULL},
@@ -2344,7 +2351,7 @@
/* Set the slapd type also */
config_set_slapd_type ();
- /* Set the configdir if not set */
+ /* Set the configdir if not set (it must be set since 7.2) */
if (!slapdFrontendConfig->configdir)
{
char newdir[MAXPATHLEN+1];
@@ -4220,6 +4227,49 @@
return retVal;
}
+char *
+config_get_schemadir()
+{
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ char *retVal;
+
+ CFG_LOCK_READ(slapdFrontendConfig);
+ retVal = config_copy_strval(slapdFrontendConfig->schemadir);
+ CFG_UNLOCK_READ(slapdFrontendConfig);
+
+ return retVal;
+}
+
+int
+config_set_schemadir(const char *attrname, char *value, char *errorbuf, int apply)
+{
+ int retVal = LDAP_SUCCESS;
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+
+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) {
+ return LDAP_OPERATIONS_ERROR;
+ }
+
+ if (!apply) {
+ return retVal;
+ }
+
+ CFG_LOCK_WRITE(slapdFrontendConfig);
+ slapi_ch_free((void **)&slapdFrontendConfig->schemadir);
+
+ slapdFrontendConfig->schemadir = slapi_ch_strdup(value);
+
+ CFG_UNLOCK_WRITE(slapdFrontendConfig);
+ return retVal;
+}
+
+int
+config_set_ldifdir(const char *attrname, char *value, char *errorbuf, int apply)
+{
+ /* noop */
+ return LDAP_SUCCESS;
+}
+
char **
config_get_errorlog_list()
{
Index: main.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/main.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- main.c 23 Nov 2005 17:58:01 -0000 1.11
+++ main.c 27 Sep 2006 23:40:51 -0000 1.12
@@ -255,7 +255,7 @@
}
/* Changes the owner of the files in the logs and
- * config directorys to the user that the server runs as.
+ * config directory to the user that the server runs as.
*/
static void
@@ -276,13 +276,26 @@
}
/* The instance directory needs to be owned by the local user */
- slapd_chown_if_not_owner( slapdFrontendConfig->instancedir, pw->pw_uid, -1 );
- PR_snprintf(dirname,sizeof(dirname),"%s/config",slapdFrontendConfig->instancedir);
- chown_dir_files(dirname, pw, PR_FALSE); /* config directory */
- chown_dir_files(slapdFrontendConfig->accesslog, pw, PR_TRUE); /* do access log directory */
- chown_dir_files(slapdFrontendConfig->auditlog, pw, PR_TRUE); /* do audit log directory */
- chown_dir_files(slapdFrontendConfig->errorlog, pw, PR_TRUE); /* do error log directory */
-
+ if (slapdFrontendConfig->instancedir) {
+ slapd_chown_if_not_owner(slapdFrontendConfig->instancedir,
+ pw->pw_uid, -1);
+ }
+ /* config directory */
+ if (slapdFrontendConfig->configdir) {
+ chown_dir_files(slapdFrontendConfig->configdir, pw, PR_FALSE);
+ }
+ /* do access log file, if any */
+ if (slapdFrontendConfig->accesslog) {
+ chown_dir_files(slapdFrontendConfig->accesslog, pw, PR_TRUE);
+ }
+ /* do audit log file, if any */
+ if (slapdFrontendConfig->auditlog) {
+ chown_dir_files(slapdFrontendConfig->auditlog, pw, PR_TRUE);
+ }
+ /* do error log file, if any */
+ if (slapdFrontendConfig->errorlog) {
+ chown_dir_files(slapdFrontendConfig->errorlog, pw, PR_TRUE);
+ }
}
#endif
@@ -365,7 +378,7 @@
}
#endif
else if ( exit_if_unknown ) {
- fprintf( stderr, "usage: %s -D instancedir "
+ fprintf( stderr, "usage: %s -D configdir "
"[ldif2db | db2ldif | archive2db "
"| db2archive | db2index | refer | suffix2instance"
#if defined(UPGRADEDB)
@@ -397,46 +410,46 @@
switch( slapd_exemode ) {
case SLAPD_EXEMODE_DB2LDIF:
- usagestr = "usage: %s %s%s-D instancedir [-n backend-instance-name] [-d debuglevel] "
+ usagestr = "usage: %s %s%s-D configdir [-n backend-instance-name] [-d debuglevel] "
"[-N] [-a outputfile] [-r] [-C] [{-s includesuffix}*] "
"[{-x excludesuffix}*] [-u] [-U] [-m] [-M] [-E]\n"
"Note: either \"-n backend_instance_name\" or \"-s includesuffix\" is required.\n";
break;
case SLAPD_EXEMODE_LDIF2DB:
- usagestr = "usage: %s %s%s-D instancedir [-d debuglevel] "
+ usagestr = "usage: %s %s%s-D configdir [-d debuglevel] "
"[-n backend_instance_name] [-O] [-g uniqueid_type] [--namespaceid uniqueID]"
"[{-s includesuffix}*] [{-x excludesuffix}*] [-E] {-i ldif-file}*\n"
"Note: either \"-n backend_instance_name\" or \"-s includesuffix\" is required.\n";
break;
case SLAPD_EXEMODE_DB2ARCHIVE:
- usagestr = "usage: %s %s%s-D instancedir [-d debuglevel] -a archivedir\n";
+ usagestr = "usage: %s %s%s-D configdir [-d debuglevel] -a archivedir\n";
break;
case SLAPD_EXEMODE_ARCHIVE2DB:
- usagestr = "usage: %s %s%s-D instancedir [-d debuglevel] -a archivedir\n";
+ usagestr = "usage: %s %s%s-D configdir [-d debuglevel] -a archivedir\n";
break;
case SLAPD_EXEMODE_DB2INDEX:
- usagestr = "usage: %s %s%s-D instancedir -n backend-instance-name "
+ usagestr = "usage: %s %s%s-D configdir -n backend-instance-name "
"[-d debuglevel] {-t attributetype}* {-T VLV Search Name}*\n";
/* JCM should say 'Address Book' or something instead of VLV */
break;
case SLAPD_EXEMODE_REFERRAL:
- usagestr = "usage: %s %s%s-D instancedir -r referral-url [-p port]\n";
+ usagestr = "usage: %s %s%s-D configdir -r referral-url [-p port]\n";
break;
case SLAPD_EXEMODE_DBTEST:
- usagestr = "usage: %s %s%s-D instancedir -n backend-instance-name "
+ usagestr = "usage: %s %s%s-D configdir -n backend-instance-name "
"[-d debuglevel] [-S] [-v]\n";
break;
case SLAPD_EXEMODE_SUFFIX2INSTANCE:
- usagestr = "usage: %s %s%s -D instancedir {-s suffix}*\n";
+ usagestr = "usage: %s %s%s -D configdir {-s suffix}*\n";
break;
#if defined(UPGRADEDB)
case SLAPD_EXEMODE_UPGRADEDB:
- usagestr = "usage: %s %s%s-D instancedir [-d debuglevel] [-f] -a archivedir\n";
+ usagestr = "usage: %s %s%s-D configdir [-d debuglevel] [-f] -a archivedir\n";
break;
#endif
default: /* SLAPD_EXEMODE_SLAPD */
- usagestr = "usage: %s %s%s-D instancedir [-d debuglevel] "
+ usagestr = "usage: %s %s%s-D configdir [-d debuglevel] "
"[-i pidlogfile] [-v] [-V]\n";
}
@@ -683,9 +696,9 @@
}
#endif
- process_command_line(argc,argv,myname,&extraname);
+ process_command_line(argc,argv,myname,&extraname);
- if (!slapdFrontendConfig->instancedir ||
+ if (!slapdFrontendConfig->instancedir &&
!slapdFrontendConfig->configdir) {
usage( myname, extraname );
exit( 1 );
@@ -698,7 +711,7 @@
}
#ifndef LDAP_DONT_USE_SMARTHEAP
- MemRegisterTask();
+ MemRegisterTask();
#endif
slapd_init();
@@ -706,39 +719,52 @@
vattr_init();
if (slapd_exemode == SLAPD_EXEMODE_REFERRAL) {
- /* make up the config stuff */
- referral_set_defaults();
- n_port = config_get_port();
- s_port = config_get_secureport();
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ /* make up the config stuff */
+ referral_set_defaults();
+ /*
+ * Process the config files.
+ */
+ if (0 == slapd_bootstrap_config(slapdFrontendConfig->configdir)) {
+ slapi_log_error(SLAPI_LOG_FATAL, "startup",
+ "The configuration files in directory %s could not be read or were not found. Please refer to the error log or output for more information.\n",
+ slapdFrontendConfig->configdir);
+ exit(1);
+ }
+
+ n_port = config_get_port();
+ s_port = config_get_secureport();
register_objects();
} else {
- slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- /* The 2 calls below have been moved to this place to make sure that they
- * are called before setup_internal_backends to avoid bug 524439 */
- /*
- * The 2 calls below where being sometimes called AFTER ldapi_register_extended_op
- * (such fact was being stated and reproducible for some optimized installations
- * at startup (bug 524439)... Such bad call was happening in the context of
- * setup_internal_backends -> dse_read_file -> load_plugin_entry ->
- * plugin_setup -> replication_multimaster_plugin_init ->
- * slapi_register_plugin -> plugin_setup -> multimaster_start_extop_init ->
- * slapi_pblock_set -> ldapi_register_extended_op... Unfortunately, the server
- * design is such that it is assumed that ldapi_init_extended_ops is always
- * called first.
- * THE FIX: Move the two calls below before a call to setup_internal_backends
- * (down in this same function)
- */
- init_saslmechanisms();
- ldapi_init_extended_ops();
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ /* The 2 calls below have been moved to this place to make sure that
+ * they are called before setup_internal_backends to avoid bug 524439 */
+ /*
+ * The 2 calls below where being sometimes called AFTER
+ * ldapi_register_extended_op (such fact was being stated and
+ * reproducible for some optimized installations at startup (bug
+ * 524439)... Such bad call was happening in the context of
+ * setup_internal_backends -> dse_read_file -> load_plugin_entry ->
+ * plugin_setup -> replication_multimaster_plugin_init ->
+ * slapi_register_plugin -> plugin_setup ->
+ * multimaster_start_extop_init -> * slapi_pblock_set ->
+ * ldapi_register_extended_op... Unfortunately, the server
+ * design is such that it is assumed that ldapi_init_extended_ops is
+ * always called first.
+ * THE FIX: Move the two calls below before a call to
+ * setup_internal_backends (down in this same function)
+ */
+ init_saslmechanisms();
+ ldapi_init_extended_ops();
- /*
- * Initialize the default backend. This should be done before we
- * process the config. files
- */
- defbackend_init();
-
+ /*
+ * Initialize the default backend. This should be done before we
+ * process the config. files
+ */
+ defbackend_init();
+
/*
* Register the extensible objects with the factory.
*/
@@ -746,12 +772,12 @@
/*
* Register the controls that we support.
*/
- init_controls();
+ init_controls();
- /*
- * Process the config files.
- */
- if (0 == slapd_bootstrap_config(slapdFrontendConfig->configdir)) {
+ /*
+ * Process the config files.
+ */
+ if (0 == slapd_bootstrap_config(slapdFrontendConfig->configdir)) {
slapi_log_error(SLAPI_LOG_FATAL, "startup",
"The configuration files in directory %s could not be read or were not found. Please refer to the error log or output for more information.\n",
slapdFrontendConfig->configdir);
@@ -759,7 +785,7 @@
}
/* -sduloutre: must be done before any internal search */
- /* do it before splitting off to other modes too -robey */
+ /* do it before splitting off to other modes too -robey */
/* -richm: must be done before reading config files */
if (0 != (return_value = compute_init())) {
LDAPDebug(LDAP_DEBUG_ANY, "Initialization Failed 0 %d\n",return_value,0,0);
@@ -774,8 +800,8 @@
exit(1);
}
- n_port = config_get_port();
- s_port = config_get_secureport();
+ n_port = config_get_port();
+ s_port = config_get_secureport();
}
raise_process_limits(); /* should be done ASAP once config file read */
@@ -792,22 +818,22 @@
set_entry_points();
#if defined( XP_WIN32 )
- if (slapd_exemode == SLAPD_EXEMODE_SLAPD) {
- /* Register with the NT EventLog */
- hSlapdEventSource = RegisterEventSource(NULL, pszServerName );
- if( !hSlapdEventSource ) {
- char szMessage[256];
- PR_snprintf( szMessage, sizeof(szMessage), "Directory Server %s is terminating. Failed "
- "to set the EventLog source.", pszServerName);
- MessageBox(GetDesktopWindow(), szMessage, " ",
- MB_ICONEXCLAMATION | MB_OK);
- exit( 1 );
- }
+ if (slapd_exemode == SLAPD_EXEMODE_SLAPD) {
+ /* Register with the NT EventLog */
+ hSlapdEventSource = RegisterEventSource(NULL, pszServerName );
+ if( !hSlapdEventSource ) {
+ char szMessage[256];
+ PR_snprintf( szMessage, sizeof(szMessage), "Directory Server %s is terminating. Failed "
+ "to set the EventLog source.", pszServerName);
+ MessageBox(GetDesktopWindow(), szMessage, " ",
+ MB_ICONEXCLAMATION | MB_OK);
+ exit( 1 );
+ }
- /* Check to ensure there isn't a copy of this server already running. */
- if( MultipleInstances() )
- exit( 1 );
- }
+ /* Check to ensure there isn't a copy of this server already running. */
+ if( MultipleInstances() )
+ exit( 1 );
+ }
#endif
/*
@@ -826,8 +852,8 @@
* we need to be root in order to open them.
*/
- if ((slapd_exemode == SLAPD_EXEMODE_SLAPD) ||
- (slapd_exemode == SLAPD_EXEMODE_REFERRAL)) {
+ if ((slapd_exemode == SLAPD_EXEMODE_SLAPD) ||
+ (slapd_exemode == SLAPD_EXEMODE_REFERRAL)) {
ports_info.n_port = (unsigned short)n_port;
if ( slapd_listenhost2addr( config_get_listenhost(),
&ports_info.n_listenaddr ) != 0 ) {
@@ -842,9 +868,9 @@
return_value = daemon_pre_setuid_init(&ports_info);
if (0 != return_value) {
- LDAPDebug( LDAP_DEBUG_ANY, "Failed to init daemon\n",
- 0, 0, 0 );
- exit(1);
+ LDAPDebug( LDAP_DEBUG_ANY, "Failed to init daemon\n",
+ 0, 0, 0 );
+ exit(1);
}
}
@@ -853,9 +879,9 @@
#ifndef _WIN32
return_value = main_setuid(slapdFrontendConfig->localuser);
if (0 != return_value) {
- LDAPDebug( LDAP_DEBUG_ANY, "Failed to change user and group identity to that of %s\n",
+ LDAPDebug( LDAP_DEBUG_ANY, "Failed to change user and group identity to that of %s\n",
slapdFrontendConfig->localuser, 0, 0 );
- exit(1);
+ exit(1);
}
#endif
@@ -870,7 +896,7 @@
&& (0 != s_port) && (s_port <= LDAP_PORT_MAX);
/* As of DS 6.1, always do a full initialization so that other
* modules can assume NSS is available
- */
+ */
if ( slapd_nss_init((slapd_exemode == SLAPD_EXEMODE_SLAPD),
(slapd_exemode != SLAPD_EXEMODE_REFERRAL) /* have config? */ )) {
LDAPDebug(LDAP_DEBUG_ANY,
@@ -888,14 +914,14 @@
exit( 1 );
}
- if ((slapd_exemode == SLAPD_EXEMODE_SLAPD) ||
- (slapd_exemode == SLAPD_EXEMODE_REFERRAL)) {
- if ( init_ssl && ( 0 != slapd_ssl_init2(&ports_info.s_socket, 0) ) ) {
- LDAPDebug(LDAP_DEBUG_ANY,
- "ERROR: SSL Initialization phase 2 Failed.\n", 0, 0, 0 );
- exit( 1 );
- }
- }
+ if ((slapd_exemode == SLAPD_EXEMODE_SLAPD) ||
+ (slapd_exemode == SLAPD_EXEMODE_REFERRAL)) {
+ if ( init_ssl && ( 0 != slapd_ssl_init2(&ports_info.s_socket, 0) ) ) {
+ LDAPDebug(LDAP_DEBUG_ANY,
+ "ERROR: SSL Initialization phase 2 Failed.\n", 0, 0, 0 );
+ exit( 1 );
+ }
+ }
/*
* if we were called upon to do special database stuff, do it and be
@@ -903,52 +929,52 @@
*/
switch ( slapd_exemode ) {
case SLAPD_EXEMODE_LDIF2DB:
- return slapd_exemode_ldif2db();
+ return slapd_exemode_ldif2db();
case SLAPD_EXEMODE_DB2LDIF:
- return slapd_exemode_db2ldif(argc,argv);
+ return slapd_exemode_db2ldif(argc,argv);
case SLAPD_EXEMODE_DB2INDEX:
- return slapd_exemode_db2index();
+ return slapd_exemode_db2index();
case SLAPD_EXEMODE_ARCHIVE2DB:
- return slapd_exemode_archive2db();
+ return slapd_exemode_archive2db();
case SLAPD_EXEMODE_DB2ARCHIVE:
- return slapd_exemode_db2archive();
+ return slapd_exemode_db2archive();
case SLAPD_EXEMODE_DBTEST:
- return slapd_exemode_dbtest();
+ return slapd_exemode_dbtest();
case SLAPD_EXEMODE_REFERRAL:
/* check that all the necessary info was given, then go on */
- if (! config_check_referral_mode()) {
- LDAPDebug(LDAP_DEBUG_ANY,
- "ERROR: No referral URL supplied\n", 0, 0, 0);
+ if (! config_check_referral_mode()) {
+ LDAPDebug(LDAP_DEBUG_ANY,
+ "ERROR: No referral URL supplied\n", 0, 0, 0);
usage( myname, extraname );
- exit(1);
+ exit(1);
}
break;
case SLAPD_EXEMODE_SUFFIX2INSTANCE:
- return slapd_exemode_suffix2instance();
+ return slapd_exemode_suffix2instance();
#if defined(UPGRADEDB)
case SLAPD_EXEMODE_UPGRADEDB:
- return slapd_exemode_upgradedb();
+ return slapd_exemode_upgradedb();
#endif
case SLAPD_EXEMODE_PRINTVERSION:
- slapd_print_version(1);
- exit(1);
+ slapd_print_version(1);
+ exit(1);
}
/*
* Detach ourselves from the terminal (unless running in debug mode).
* We must detach before we start any threads since detach forks() on
* UNIX.
- * Have to detach after ssl_init - the user may be prompted for the PIN
- * on the terminal, so it must be open.
+ * Have to detach after ssl_init - the user may be prompted for the PIN
+ * on the terminal, so it must be open.
*/
detach();
@@ -969,8 +995,8 @@
* slapd processes that are currently running
*/
if ((slapd_exemode != SLAPD_EXEMODE_REFERRAL) &&
- ( add_new_slapd_process(slapd_exemode, db2ldif_dump_replica,
- skip_db_protect_check) == -1 )) {
+ ( add_new_slapd_process(slapd_exemode, db2ldif_dump_replica,
+ skip_db_protect_check) == -1 )) {
LDAPDebug( LDAP_DEBUG_ANY,
"Shutting down due to possible conflicts with other slapd processes\n",
0, 0, 0 );
@@ -988,7 +1014,7 @@
char *versionstring = config_get_versionstring();
char *buildnum = config_get_buildnum();
LDAPDebug( LDAP_DEBUG_ANY, "%s B%s starting up\n",
- versionstring, buildnum, 0 );
+ versionstring, buildnum, 0 );
slapi_ch_free((void **)&buildnum);
slapi_ch_free((void **)&versionstring);
}
@@ -1003,8 +1029,8 @@
slapdFrontendConfig->configdir);
eq_init(); /* must be done before plugins started */
- snmp_collator_start();
- ps_init_psearch_system(); /* must come before plugin_startall() */
+ snmp_collator_start();
+ ps_init_psearch_system(); /* must come before plugin_startall() */
/* Initailize the mapping tree */
@@ -1012,12 +1038,12 @@
{
LDAPDebug( LDAP_DEBUG_ANY, "Failed to init mapping tree\n",
0, 0, 0 );
- exit(1);
+ exit(1);
}
/* initialize UniqueID generator - must be done once backends are started
- and event queue is initialized but before plugins are started */
+ and event queue is initialized but before plugins are started */
sdn = slapi_sdn_new_dn_byval ("cn=uniqueid generator,cn=config");
rc = uniqueIDGenInit (NULL, sdn, slapd_exemode == SLAPD_EXEMODE_SLAPD);
slapi_sdn_free (&sdn);
@@ -1025,7 +1051,7 @@
{
LDAPDebug( LDAP_DEBUG_ANY,
"Fatal Error---Failed to initialize uniqueid generator; error = %d. "
- "Exiting now.\n", rc, 0, 0 );
+ "Exiting now.\n", rc, 0, 0 );
exit( 1 );
}
@@ -1034,17 +1060,17 @@
if ( slapd_security_library_is_initialized() != 0 ) {
- start_tls_register_plugin();
+ start_tls_register_plugin();
LDAPDebug( LDAP_DEBUG_PLUGIN,
- "Start TLS plugin registered.\n",
- 0, 0, 0 );
+ "Start TLS plugin registered.\n",
+ 0, 0, 0 );
}
#endif
- passwd_modify_register_plugin();
- LDAPDebug( LDAP_DEBUG_PLUGIN,
- "Password Modify plugin registered.\n", 0, 0, 0 );
+ passwd_modify_register_plugin();
+ LDAPDebug( LDAP_DEBUG_PLUGIN,
+ "Password Modify plugin registered.\n", 0, 0, 0 );
- plugin_startall(argc, argv, 1 /* Start Backends */, 1 /* Start Globals */);
+ plugin_startall(argc, argv, 1 /* Start Backends */, 1 /* Start Globals */);
if (housekeeping_start((time_t)0, NULL) == NULL) {
exit (1);
}
@@ -1052,50 +1078,50 @@
eq_start(); /* must be done after plugins started */
#ifdef HPUX10
- /* HPUX linker voodoo */
- if (collation_init == NULL) {
+ /* HPUX linker voodoo */
+ if (collation_init == NULL) {
exit (1);
- }
-
+ }
+
#endif /* HPUX */
- normalize_oc();
+ normalize_oc();
- if (n_port) {
+ if (n_port) {
#if defined(NET_SSL)
- } else if ( config_get_security()) {
+ } else if ( config_get_security()) {
#endif
- } else {
+ } else {
#ifdef _WIN32
- if( SlapdIsAService() )
- {
- LDAPServerStatus.dwCurrentState = SERVICE_STOPPED;
- LDAPServerStatus.dwCheckPoint = 0;
- LDAPServerStatus.dwWaitHint = 0;
- LDAPServerStatus.dwWin32ExitCode = 1;
- LDAPServerStatus.dwServiceSpecificExitCode = 1;
-
- SetServiceStatus(hLDAPServerServiceStatus, &LDAPServerStatus);
-
- /* Log this event */
- ReportSlapdEvent(EVENTLOG_INFORMATION_TYPE, MSG_SERVER_START_FAILED, 1,
- "Check server port specification");
- }
- else
- {
- char szMessage[256];
- PR_snprintf( szMessage, sizeof(szMessage), "The Directory Server %s is terminating due to an error. Check server port specification", pszServerName);
- MessageBox(GetDesktopWindow(), szMessage, " ", MB_ICONEXCLAMATION | MB_OK);
- }
+ if( SlapdIsAService() )
+ {
+ LDAPServerStatus.dwCurrentState = SERVICE_STOPPED;
+ LDAPServerStatus.dwCheckPoint = 0;
+ LDAPServerStatus.dwWaitHint = 0;
+ LDAPServerStatus.dwWin32ExitCode = 1;
+ LDAPServerStatus.dwServiceSpecificExitCode = 1;
+
+ SetServiceStatus(hLDAPServerServiceStatus, &LDAPServerStatus);
+
+ /* Log this event */
+ ReportSlapdEvent(EVENTLOG_INFORMATION_TYPE, MSG_SERVER_START_FAILED, 1,
+ "Check server port specification");
+ }
+ else
+ {
+ char szMessage[256];
+ PR_snprintf( szMessage, sizeof(szMessage), "The Directory Server %s is terminating due to an error. Check server port specification", pszServerName);
+ MessageBox(GetDesktopWindow(), szMessage, " ", MB_ICONEXCLAMATION | MB_OK);
+ }
#endif
- exit(1);
- }
+ exit(1);
+ }
}
- {
- Slapi_PBlock pb;
- memset( &pb, '\0', sizeof(pb) );
- pb.pb_backend = be;
+ {
+ Slapi_PBlock pb;
+ memset( &pb, '\0', sizeof(pb) );
+ pb.pb_backend = be;
}
if (slapd_exemode != SLAPD_EXEMODE_REFERRAL) {
@@ -1224,7 +1250,7 @@
{"debug",ArgRequired,'d'},
{"backend",ArgRequired,'n'},
{"allowMultipleProcesses",ArgNone,'S'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{0,0,0}};
@@ -1240,7 +1266,7 @@
/*{"whatshouldwecallthis",ArgNone,'C'},*/
{"allowMultipleProcesses",ArgNone,'S'},
{"noUniqueIds",ArgNone,'u'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{"encrypt",ArgOptional,'E'},
{"nowrap",ArgNone,'U'},
{"minimalEncode",ArgNone,'m'},
@@ -1264,7 +1290,7 @@
{"allowMultipleProcesses",ArgNone,'S'},
{"namespaceid", ArgRequired, 'G'},
{"nostate",ArgNone,'Z'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{"encrypt",ArgOptional,'E'},
{0,0,0}};
@@ -1276,7 +1302,7 @@
{"archive",ArgRequired,'a'},
{"backEndInstName",ArgRequired,'n'},
{"allowMultipleProcesses",ArgNone,'S'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{0,0,0}};
@@ -1287,7 +1313,7 @@
{"pidfile",ArgRequired,'i'},
{"archive",ArgRequired,'a'},
{"allowMultipleProcesses",ArgNone,'S'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{0,0,0}};
char *opts_db2index = "vd:a:t:T:SD:n:s:x:";
@@ -1299,7 +1325,7 @@
{"indexAttribute",ArgRequired,'t'},
{"vlvIndex",ArgRequired,'T'},
{"allowMultipleProcesses",ArgNone,'S'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{"include",ArgRequired,'s'},
{"exclude",ArgRequired,'x'},
{0,0,0}};
@@ -1311,7 +1337,7 @@
{"debug",ArgRequired,'d'},
{"force",ArgNone,'f'},
{"archive",ArgRequired,'a'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{0,0,0}};
#endif
@@ -1322,7 +1348,7 @@
{"port",ArgRequired,'p'},
{"referralMode",ArgRequired,'r'},
{"allowMultipleProcesses",ArgNone,'S'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{0,0,0}};
char *opts_suffix2instance = "s:D:";
@@ -1338,7 +1364,7 @@
{"debug",ArgRequired,'d'},
{"pidfile",ArgRequired,'i'},
{"allowMultipleProcesses",ArgNone,'S'},
- {"instanceDir",ArgRequired,'D'},
+ {"configDir",ArgRequired,'D'},
{"startpidfile",ArgRequired,'w'},
{0,0,0}};
@@ -1420,7 +1446,7 @@
while ( (i = getopt_ext( argc, argv, opts,
long_opts, &longopt_index)) != EOF ) {
- char *instancedir = 0;
+ char *configdir = 0;
switch ( i ) {
#ifdef LDAP_DEBUG
case 'd': /* turn on debugging */
@@ -1446,11 +1472,11 @@
#endif
case 'D': /* config dir */
- instancedir = rel2abspath( optarg_ext );
+ configdir = rel2abspath( optarg_ext );
#if defined( XP_WIN32 )
pszServerName = slapi_ch_malloc( MAX_SERVICE_NAME );
- if( !SlapdGetServerNameFromCmdline(pszServerName, instancedir, 1) )
+ if( !SlapdGetServerNameFromCmdline(pszServerName, configdir, 1) )
{
MessageBox(GetDesktopWindow(), "Failed to get the Directory"
" Server name from the command-line argument.",
@@ -1458,13 +1484,13 @@
exit( 1 );
}
#endif
- if ( config_set_instancedir( "instancedir (-D)",
- instancedir, errorbuf, 1) != LDAP_SUCCESS ) {
+ if ( config_set_configdir( "configdir (-D)",
+ configdir, errorbuf, 1) != LDAP_SUCCESS ) {
fprintf( stderr, "%s: aborting now\n", errorbuf );
usage( myname, *extraname );
exit( 1 );
}
- slapi_ch_free((void **)&instancedir);
+ slapi_ch_free((void **)&configdir);
break;
Index: proto-slap.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/proto-slap.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- proto-slap.h 1 Sep 2006 21:25:08 -0000 1.20
+++ proto-slap.h 27 Sep 2006 23:40:51 -0000 1.21
@@ -301,6 +301,8 @@
int config_set_enquote_sup_oc(const char *attrname, char *value, char *errorbuf, int apply );
int config_set_basedn( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_configdir( const char *attrname, char *value, char *errorbuf, int apply );
+int config_set_schemadir( const char *attrname, char *value, char *errorbuf, int apply );
+int config_set_ldifdir( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_attrname_exceptions( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_hash_filters( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_rewrite_rfc1274( const char *attrname, char *value, char *errorbuf, int apply );
@@ -398,6 +400,7 @@
int config_get_enquote_sup_oc();
char *config_get_basedn();
char *config_get_configdir();
+char *config_get_schemadir();
char **config_get_errorlog_list();
char **config_get_accesslog_list();
char **config_get_auditlog_list();
Index: schema.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/schema.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- schema.c 11 Apr 2006 02:14:44 -0000 1.8
+++ schema.c 27 Sep 2006 23:40:51 -0000 1.9
@@ -4014,7 +4014,11 @@
slapi_sdn_init_dn_byref(&schema,"cn=schema");
- schemadir = slapi_ch_smprintf("%s/%s", configdir, SCHEMA_SUBDIR_NAME);
+ schemadir = config_get_schemadir();
+ if (NULL == schemadir) {
+ /* schemadir info is not configured, let's use the default place */
+ schemadir = slapi_ch_smprintf("%s/%s", configdir, SCHEMA_SUBDIR_NAME);
+ }
filelist = get_priority_filelist(schemadir, ".*ldif$");
if (!filelist || !*filelist)
Index: slap.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slap.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- slap.h 31 Aug 2006 22:52:07 -0000 1.14
+++ slap.h 27 Sep 2006 23:40:51 -0000 1.15
@@ -1708,6 +1708,8 @@
#define CONFIG_REWRITE_RFC1274_ATTRIBUTE "nsslapd-rewrite-rfc1274"
#define CONFIG_CONFIG_ATTRIBUTE "nsslapd-config"
+#define CONFIG_SCHEMADIR_ATTRIBUTE "nsslapd-schemadir"
+#define CONFIG_LDIFDIR_ATTRIBUTE "nsslapd-ldifdir"
#define CONFIG_SSLCLIENTAUTH_ATTRIBUTE "nsslapd-SSLclientAuth"
#define CONFIG_SSL_CHECK_HOSTNAME_ATTRIBUTE "nsslapd-ssl-check-hostname"
#define CONFIG_HASH_FILTERS_ATTRIBUTE "nsslapd-hash-filters"
@@ -1882,6 +1884,7 @@
char *workingdir; /* full path of directory before detach */
char *configdir; /* full path name of directory containing configuration files */
+ char *schemadir; /* full path name of directory containing schema files */
int attrname_exceptions; /* if true, allow questionable attribute names */
int rewrite_rfc1274; /* return attrs for both v2 and v3 names */
char *schemareplace; /* see CONFIG_SCHEMAREPLACE_* #defines below */
17 years, 7 months
[Fedora-directory-commits] ldapserver/ldap/cm Makefile,1.61,1.62
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/cm
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/cm
Modified Files:
Makefile
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: Makefile
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/cm/Makefile,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- Makefile 15 Sep 2006 19:33:42 -0000 1.61
+++ Makefile 27 Sep 2006 23:40:50 -0000 1.62
@@ -310,7 +310,7 @@
$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/*.ldif $(RELDIR)/bin/slapd/install/schema
$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/slapd-collations.conf $(RELDIR)/bin/slapd/install/config
- $(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/lib/ldaputil/certmap.conf $(RELDIR)/shared/config
+ $(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/lib/ldaputil/certmap.conf $(RELDIR)/bin/slapd/install/config
# the httpd library
ifneq ($(ARCH), WINNT)
17 years, 7 months
[Fedora-directory-commits] ldapserver/ldap/admin/src cfg_sspt.c, 1.9, 1.10 create_instance.c, 1.28, 1.29 create_instance.h, 1.6, 1.7 ds_newinst.c, 1.4, 1.5 ds_newinst.pl, 1.7, 1.8 makemccvlvindexes, 1.5, 1.6
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/admin/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/admin/src
Modified Files:
cfg_sspt.c create_instance.c create_instance.h ds_newinst.c
ds_newinst.pl makemccvlvindexes
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: cfg_sspt.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/cfg_sspt.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- cfg_sspt.c 11 Apr 2006 02:14:31 -0000 1.9
+++ cfg_sspt.c 27 Sep 2006 23:40:50 -0000 1.10
@@ -52,7 +52,7 @@
/*#define CGI_DEBUG 1*/
-#define TEST_CONFIG /* for testing cn=config40 dummy entry instead of real one */
+#undef TEST_CONFIG /* for testing cn=config40 dummy entry instead of real one */
char* const NULLSTR = 0;
@@ -1054,6 +1054,7 @@
return ret;
}
+#ifdef TEST_CONFIG
static int
create_configEntry(LDAP* ld)
{
@@ -1121,6 +1122,7 @@
return ret;
}
+#endif
int
create_group(LDAP* ld, char* base, char* group)
@@ -1388,6 +1390,7 @@
return ret;
}
+#ifdef TEST_CONFIG
int
config_configEntry(LDAP* connection, QUERY_VARS* query)
{
@@ -1396,6 +1399,7 @@
int ret = add_aci_v (connection, value_config40DN, ACI_self_allow, NULLSTR);
return ret;
}
+#endif
int
config_suitespot(SLAPD_CONFIG* slapd, QUERY_VARS* query)
@@ -1629,11 +1633,13 @@
write_ldap_info(slapd, query->suffix, query->ssAdmID);
}
+#ifdef TEST_CONFIG
if (!status && query->testconfig)
status = create_configEntry(connection);
if (!status && query->testconfig)
status = config_configEntry(connection, query);
+#endif
if (connection)
ldap_unbind (connection);
Index: create_instance.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- create_instance.c 14 Sep 2006 20:30:19 -0000 1.28
+++ create_instance.c 27 Sep 2006 23:40:50 -0000 1.29
@@ -82,18 +82,22 @@
#include <regparms.h>
#include <nt/ntos.h>
#define SHLIB_EXT "dll"
-#else
+
+#else /* !XP_WIN32 */
+
#define NOT_ABSOLUTE_PATH(str) (str[0] != '/')
#include <errno.h>
#include <sys/types.h>
+#include <unistd.h>
+#include <pwd.h>
-#if !defined(HPUX) && !defined(LINUX2_0)
+#if !defined(HPUX)
#include <sys/select.h> /* FD_SETSIZE */
#else
#include <sys/types.h> /* FD_SETSIZE is in types.h on HPUX */
#endif
-#if !defined(_WIN32) && !defined(AIX)
+#if !defined(AIX)
#include <sys/resource.h> /* get/setrlimit stuff */
#endif
@@ -110,7 +114,7 @@
#define SHLIB_EXT "so"
#endif
-#endif
+#endif /* !XP_WIN32 */
/*
NT doesn't strictly need these, but the libadmin API which is emulated
@@ -124,14 +128,12 @@
#include <stdarg.h>
#ifdef XP_WIN32
-
OS_TYPE NS_WINAPI INFO_GetOperatingSystem ();
DWORD NS_WINAPI SERVICE_ReinstallNTService( LPCTSTR szServiceName,
LPCTSTR szServiceDisplayName,
LPCTSTR szServiceExe );
-
-
#endif
+
static void ds_gen_index(FILE* f, char* belowdn);
static char *ds_gen_orgchart_conf(char *sroot, char *cs_path, server_config_s *cf);
static char *ds_gen_gw_conf(char *sroot, char *cs_path, server_config_s *cf, int conf_type);
@@ -182,15 +184,6 @@
return 0;
}
-static char *
-myStrdup(const char *s)
-{
- if (s == NULL)
- return (char *)s;
-
- return strdup(s);
-}
-
static int getSuiteSpotUserGroup(server_config_s* cf)
{
#ifdef XP_UNIX
@@ -248,7 +241,7 @@
{
if( (t = strchr(hn, '.')) )
*t = '\0';
- id = PR_smprintf("%s", hn);
+ id = PR_smprintf("%s", hn);
if(t)
*t = '.';
}
@@ -314,20 +307,31 @@
conf->consumerdn = NULL;
conf->disable_schema_checking = NULL;
conf->install_ldif_file = NULL;
-}
+ conf->sysconfdir = NULL;
+ conf->datadir = NULL;
+ conf->docdir = NULL;
+ conf->inst_dir = NULL;
+ conf->config_dir = NULL;
+ conf->schema_dir = NULL;
+ conf->lock_dir = NULL;
+ conf->log_dir = NULL;
+ conf->run_dir = NULL;
+ conf->db_dir = NULL;
+ conf->bak_dir = NULL;
+ conf->ldif_dir = NULL;
+}
/* ----------------- Sanity check a server configuration ------------------ */
-
char *create_instance_checkport(char *, char *);
char *create_instance_checkuser(char *);
int create_instance_numbers(char *);
-int create_instance_exists(char *fn);
+int create_instance_exists(char *fn, int type);
char *create_instance_copy(char *, char *, int);
char *create_instance_concatenate(char *, char *, int);
int create_instance_mkdir(char *, int);
-char *create_instance_mkdir_p(char *, int);
+char *create_instance_mkdir_p(char *, char *, int, struct passwd *);
#if defined( SOLARIS )
/*
@@ -419,8 +423,11 @@
static char *sanity_check(server_config_s *cf, char *param_name)
{
- char *t, fn[PATH_SIZE];
+ char *t;
register int x;
+#if 0
+ char fn[PATH_SIZE];
+#endif
if (!param_name)
return "Parameter param_name is null";
@@ -461,6 +468,7 @@
cf->servid[x]);
}
}
+#if 0
/* has that identifier already been used? */
PR_snprintf(fn, sizeof(fn), "%s%c%s-%s", cf->sroot, FILE_PATHSEP,
PRODUCT_NAME, cf->servid);
@@ -475,6 +483,7 @@
}
}
*/
+#endif
#ifdef XP_UNIX
if( (t = create_instance_checkuser(cf->servuser)) )
@@ -614,10 +623,7 @@
#ifdef XP_UNIX
-#include <unistd.h>
-#include <pwd.h>
-
-char*
+static char*
chownfile (struct passwd* pw, char* fn)
{
if (pw != NULL && chown (fn, pw->pw_uid, pw->pw_gid) == -1) {
@@ -632,30 +638,14 @@
return NULL;
}
-char *chownlogs(char *sroot, char *user)
-{
- struct passwd *pw;
- char fn[PATH_SIZE];
- if(user && *user && !geteuid()) {
- if(!(pw = getpwnam(user)))
- return make_error("Could not find UID and GID of user '%s'.",
- user);
- PR_snprintf(fn, sizeof(fn), "%s%clogs", sroot, FILE_PATHSEP);
- return chownfile (pw, fn);
- }
- return NULL;
-}
-
-char *chownconfig(char *sroot, char *user)
+static char *
+chowndir(char *dir, char *user)
{
struct passwd *pw;
- char fn[PATH_SIZE];
- if(user && *user && !geteuid()) {
+ if (dir && *dir && user && *user && !geteuid()) {
if(!(pw = getpwnam(user)))
- return make_error("Could not find UID and GID of user '%s'.",
- user);
- PR_snprintf(fn, sizeof(fn), "%s%cconfig", sroot, FILE_PATHSEP);
- return chownfile (pw, fn);
+ return make_error("Could not find UID and GID of user '%s'.", user);
+ return chownfile (pw, dir);
}
return NULL;
}
@@ -663,8 +653,7 @@
#else
#define chownfile(a, b)
-#define chownlogs(a, b)
-#define chownconfig(a, b)
+#define chowndir(a, b)
#define chownsearch(a, b)
#endif
@@ -740,10 +729,10 @@
FILE *f;
va_list args;
- if (PR_FAILURE == PR_Access(cs_path, PR_ACCESS_EXISTS)) {
- printf("Notice: %s does not exist, skipping %s . . .\n", cs_path, name);
- return NULL;
- }
+ if (PR_FAILURE == PR_Access(cs_path, PR_ACCESS_EXISTS)) {
+ printf("Notice: %s does not exist, skipping %s . . .\n", cs_path, name);
+ return NULL;
+ }
PR_snprintf(fn, sizeof(fn), "%s%c%s", cs_path, FILE_PATHSEP, name);
PR_snprintf(myperl, sizeof(myperl), "%s%cbin%cslapd%cadmin%cbin%cperl",
@@ -775,10 +764,10 @@
char fn[PATH_SIZE], ofn[PATH_SIZE];
const char *table[10][2];
- if (PR_FAILURE == PR_Access(cs_path, PR_ACCESS_EXISTS)) {
- printf("Notice: %s does not exist, skipping %s . . .\n", cs_path, name);
- return NULL;
- }
+ if (PR_FAILURE == PR_Access(cs_path, PR_ACCESS_EXISTS)) {
+ printf("Notice: %s does not exist, skipping %s . . .\n", cs_path, name);
+ return NULL;
+ }
PR_snprintf(ofn, sizeof(ofn), "%s%cbin%cslapd%cadmin%cscripts%ctemplate-%s", s_root,
FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
@@ -789,7 +778,7 @@
s_root, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP);
#else
- strcpy(myperl, "!/usr/bin/env perl");
+ strcpy(myperl, "!/usr/bin/env perl");
#endif
table[0][0] = "DS-ROOT";
@@ -840,7 +829,7 @@
s_root, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP);
#else
- strcpy(myperl, "!/usr/bin/env perl");
+ strcpy(myperl, "!/usr/bin/env perl");
#endif
table[0][0] = "DS-ROOT";
@@ -1083,8 +1072,8 @@
char subdir[PATH_SIZE];
/* Create slapd-nickname directory */
- PR_snprintf(subdir, sizeof(subdir), "%s%c"PRODUCT_NAME"-%s", sroot, FILE_PATHSEP,
- cf->servid);
+ PR_snprintf(subdir, sizeof(subdir), "%s%c"PRODUCT_NAME"-%s",
+ sroot, FILE_PATHSEP, cf->servid);
#ifdef XP_UNIX
/* Start/stop/rotate/restart scripts */
if (getenv("USE_DEBUGGER"))
@@ -1092,17 +1081,17 @@
char *debugger = getenv("DSINST_DEBUGGER");
char *debugger_command = getenv("DSINST_DEBUGGER_CMD");
if (! debugger) {
- debugger = "/tools/ns/workshop/bin/dbx";
+ debugger = "gdb";
}
if (! debugger_command) {
debugger_command = "echo"; /* e.g. do nothing */
}
#ifdef OSF1
- printf("-D %s -i %s/logs/pid -d %s -z\n", subdir, subdir,
+ printf("-D %s -i %s/pid -d %s -z\n", cf->config_dir, cf->run_dir,
cf->loglevel ? cf->loglevel : "0");
- t = gen_script(subdir, START_SCRIPT,
+ t = gen_script(cf->inst_dir, START_SCRIPT,
"\n"
- "# Script that starts the ns-slapd server.\n"
+ "# Script that starts the %s.\n"
"# Exit status can be:\n"
"# 0: Server started successfully\n"
"# 1: Server could not be started\n"
@@ -1110,17 +1099,19 @@
"\n"
"NETSITE_ROOT=%s\n"
"export NETSITE_ROOT\n"
- "PIDFILE=%s/logs/pid\n"
+ "%s=%s\n"
+ "export %s\n"
+ "PIDFILE=%s/pid\n"
"if test -f $PIDFILE ; then\n"
" PID=`cat $PIDFILE`\n"
" if kill -0 $PID > /dev/null 2>&1 ; then\n"
- " echo There is an ns-slapd process already running: $PID\n"
+ " echo There is an %s process already running: $PID\n"
" exit 2;\n"
" else\n"
" rm -f $PIDFILE\n"
" fi\n"
"fi\n"
- "cd %s/bin/%s/server; ./%s -D %s -i %s/logs/pid -d %s -z \"$@\" &\n"
+ "cd %s; ./%s -D %s -i %s/pid -d %s -z \"$@\" &\n"
"loop_counter=1\n"
"max_count=120\n"
"while test $loop_counter -le $max_count; do\n"
@@ -1129,19 +1120,21 @@
" sleep 1;\n"
" else\n"
" PID=`cat $PIDFILE`\n"
- /* rbyrne: setuputil takes any message here as an error:
- " echo Server has been started. ns-slapd process started: $PID\n"*/
+ /* rbyrne: setuputil takes any message here as an error:
+ " echo Server has been started. ns-slapd process started: $PID\n"*/
" exit 0;\n"
" fi\n"
"done\n"
"echo Server not running!! Failed to start ns-slapd process.\n"
"exit 1\n",
- sroot, subdir, sroot, PRODUCT_NAME, PRODUCT_BIN, subdir,
- subdir,
- cf->loglevel ? cf->loglevel : "0"
+ PRODUCT_BIN,
+ sroot, DS_CONFIG_DIR, cf->config_dir, DS_CONFIG_DIR, cf->run_dir,
+ PRODUCT_BIN,
+ sroot, PRODUCT_BIN, cf->config_dir, cf->run_dir,
+ cf->loglevel ? cf->loglevel : "0"
);
#else
- t = gen_script(subdir, START_SCRIPT,
+ t = gen_script(cf->inst_dir, START_SCRIPT,
"\n"
"# Script that starts the ns-slapd server.\n"
"# Exit status can be:\n"
@@ -1151,7 +1144,9 @@
"\n"
"NETSITE_ROOT=%s\n"
"export NETSITE_ROOT\n"
- "PIDFILE=%s/logs/pid\n"
+ "%s=%s\n"
+ "export %s\n"
+ "PIDFILE=%s/pid\n"
"if test -f $PIDFILE ; then\n"
" PID=`cat $PIDFILE`\n"
" if kill -0 $PID > /dev/null 2>&1 ; then\n"
@@ -1161,12 +1156,12 @@
" rm -f $PIDFILE\n"
" fi\n"
"fi\n"
- "if [ -x /usr/local/bin/xterm ]; then\n"
- " xterm=/usr/local/bin/xterm\n"
+ "if [ -x /usr/bin/xterm ]; then\n"
+ " xterm=/usr/bin/xterm\n"
"else\n"
" xterm=/usr/openwin/bin/xterm\n"
"fi\n"
- "cd %s/bin/%s/server; $xterm -title debugger -e %s -c \"dbxenv follow_fork_mode child ; stop in main ; %s ; run -D %s -i %s/logs/pid -d %s -z $*\" %s &\n"
+ "cd %s; $xterm -title debugger -e %s -c \"dbxenv follow_fork_mode child ; break main ; %s ; run -D %s -i %s/pid -d %s -z $*\" %s &\n"
"loop_counter=1\n"
"max_count=120\n"
"while test $loop_counter -le $max_count; do\n"
@@ -1182,15 +1177,15 @@
"done\n"
"echo Server not running!! Failed to start ns-slapd process.\n"
"exit 1\n",
- sroot, subdir, sroot, PRODUCT_NAME, debugger, debugger_command,
- subdir,
- subdir, cf->loglevel ? cf->loglevel : "0", PRODUCT_BIN
+ sroot, DS_CONFIG_DIR, cf->config_dir, DS_CONFIG_DIR, cf->run_dir,
+ sroot, debugger, debugger_command, cf->config_dir, cf->run_dir,
+ cf->loglevel ? cf->loglevel : "0", PRODUCT_BIN
);
#endif
}
else
{
- t = gen_script(subdir, START_SCRIPT,
+ t = gen_script(cf->inst_dir, START_SCRIPT,
"\n"
"# Script that starts the ns-slapd server.\n"
"# Exit status can be:\n"
@@ -1200,12 +1195,14 @@
"\n"
"NETSITE_ROOT=%s\n"
"export NETSITE_ROOT\n"
- "PIDFILE=%s/logs/pid\n"
- "STARTPIDFILE=%s/logs/startpid\n"
+ "%s=%s\n"
+ "export %s\n"
+ "PIDFILE=%s/pid\n"
+ "STARTPIDFILE=%s/startpid\n"
"if test -f $STARTPIDFILE ; then\n"
" PID=`cat $STARTPIDFILE`\n"
" if kill -0 $PID > /dev/null 2>&1 ; then\n"
- " echo There is an ns-slapd process already running: $PID\n"
+ " echo There is an %s process already running: $PID\n"
" exit 2;\n"
" else\n"
" rm -f $STARTPIDFILE\n"
@@ -1214,13 +1211,17 @@
"if test -f $PIDFILE ; then\n"
" PID=`cat $PIDFILE`\n"
" if kill -0 $PID > /dev/null 2>&1 ; then\n"
- " echo There is an ns-slapd process already running: $PID\n"
+ " echo There is an %s running: $PID\n"
" exit 2;\n"
" else\n"
" rm -f $PIDFILE\n"
" fi\n"
"fi\n"
- "cd %s/bin/%s/server; ./%s -D %s -i %s/logs/pid -w $STARTPIDFILE \"$@\"\n"
+#if 0
+ "cd %s; ./%s -D %s -i %s/pid -w $STARTPIDFILE \"$@\"\n"
+#else /* will go away */
+ "cd %s/bin/slapd/server; ./%s -D %s -i %s/pid -w $STARTPIDFILE \"$@\"\n"
+#endif
"if [ $? -ne 0 ]; then\n"
" exit 1\n"
"fi\n"
@@ -1261,13 +1262,14 @@
"done\n"
"echo Server not running!! Failed to start ns-slapd process. Please check the errors log for problems.\n"
"exit 1\n",
- sroot, subdir, subdir, sroot, PRODUCT_NAME, PRODUCT_BIN, subdir,
- subdir
+ sroot, DS_CONFIG_DIR, cf->config_dir, DS_CONFIG_DIR, cf->run_dir,
+ cf->run_dir, PRODUCT_BIN, PRODUCT_BIN,
+ sroot, PRODUCT_BIN, cf->config_dir, cf->run_dir
);
}
if(t) return t;
- t = gen_script(subdir, STOP_SCRIPT,
+ t = gen_script(cf->inst_dir, STOP_SCRIPT,
"\n"
"# Script that stops the ns-slapd server.\n"
"# Exit status can be:\n"
@@ -1275,7 +1277,7 @@
"# 1: Server could not be stopped\n"
"# 2: Server was not running\n"
"\n"
- "PIDFILE=%s/logs/pid\n"
+ "PIDFILE=%s/pid\n"
"if test ! -f $PIDFILE ; then\n"
" echo No ns-slapd PID file found. Server is probably not running\n"
" exit 2\n"
@@ -1302,8 +1304,8 @@
" if test -f $PIDFILE ; then\n"
" rm -f $PIDFILE\n"
" fi\n"
- /* rbyrne: setuputil takes any message here as an error:
- " echo Server has been stopped. ns-slapd process stopped: $PID\n"*/
+ /* rbyrne: setuputil takes any message here as an error:
+ " echo Server has been stopped. ns-slapd process stopped: $PID\n"*/
" exit 0\n"
" fi\n"
"done\n"
@@ -1311,10 +1313,10 @@
" echo Server still running!! Failed to stop the ns-slapd process: $PID. Please check the errors log for problems.\n"
"fi\n"
"exit 1\n",
- subdir);
+ cf->run_dir);
if(t) return t;
- t = gen_script(subdir, RESTART_SCRIPT,
+ t = gen_script(cf->inst_dir, RESTART_SCRIPT,
"\n"
"# Script that restarts the ns-slapd server.\n"
"# Exit status can be:\n"
@@ -1339,17 +1341,9 @@
" exit 2;\n"
"fi\n"
"exit $status\n",
- subdir, subdir );
+ cf->inst_dir, cf->inst_dir );
if(t) return t;
- /* logs subdir owned by server user */
- if( (t = chownlogs(subdir, cf->servuser)) )
- return t;
-
- /* config subdir owned by server user */
- if( (t = chownconfig(subdir, cf->servuser)) )
- return t;
-
#else /* XP_WIN32 */
/* Windows platforms have some extra setup */
if( (t = setup_ntserver(cf)) )
@@ -1376,7 +1370,7 @@
int update_server(server_config_s *cf)
{
char *t;
- char error_param[BIG_LINE] = {0};
+ char error_param[BIG_LINE] = {0};
#if defined( SOLARIS )
/*
@@ -1409,31 +1403,35 @@
out:
if(t)
- {
- char *msg;
- if (error_param[0])
- {
- msg = PR_smprintf("%s.error:could not update server %s - %s",
- error_param, cf->servid, t);
- }
- else
- {
- msg = PR_smprintf("error:could not update server %s - %s",
- cf->servid, t);
- }
- ds_show_message(msg);
- PR_smprintf_free(msg);
- return 1;
- }
- else
- return 0;
+ {
+ char *msg;
+ if (error_param[0])
+ {
+ msg = PR_smprintf("%s.error:could not update server %s - %s",
+ error_param, cf->servid, t);
+ }
+ else
+ {
+ msg = PR_smprintf("error:could not update server %s - %s",
+ cf->servid, t);
+ }
+ ds_show_message(msg);
+ PR_smprintf_free(msg);
+ return 1;
+ }
+ else
+ return 0;
}
/* ---------------------- Create configuration files ---------------------- */
char *create_server(server_config_s *cf, char *param_name)
{
- char line[PATH_SIZE], *t, *sroot = cf->sroot;
+#if 0
+ char line[PATH_SIZE]
char subdir[PATH_SIZE];
+#endif
+ char *t, *sroot = cf->sroot;
+ struct passwd *pw = getpwnam(cf->servuser);
#if defined( SOLARIS )
/*
@@ -1462,39 +1460,49 @@
if( (t = sanity_check(cf, param_name)) )
return t;
- /* Create slapd-nickname directory */
- PR_snprintf(subdir, sizeof(subdir), "%s%c"PRODUCT_NAME"-%s", sroot, FILE_PATHSEP,
- cf->servid);
- if( (create_instance_mkdir(subdir, NEWDIR_MODE)) )
- return make_error("mkdir %s failed (%s)", subdir, ds_system_errmsg());
+ /* Create slapd-nickname directory (instance directory) */
+ if( (create_instance_mkdir_p("inst dir", cf->inst_dir, NEWDIR_MODE, pw)) )
+ return make_error("make inst dir %s failed (%s)",
+ cf->inst_dir, ds_system_errmsg());
- /* Create slapd-nickname/config directory */
- PR_snprintf(line, sizeof(line), "%s%cconfig", subdir, FILE_PATHSEP);
- if( (create_instance_mkdir(line, NEWDIR_MODE)) )
- return make_error("mkdir %s failed (%s)", line, ds_system_errmsg());
-
- /* Create slapd-nickname/config/schema directory */
- PR_snprintf(line, sizeof(line), "%s%cconfig%cschema", subdir, FILE_PATHSEP, FILE_PATHSEP);
- if( (create_instance_mkdir(line, NEWDIR_MODE)) )
- return make_error("mkdir %s failed (%s)", line, ds_system_errmsg());
+ /* Create config directory */
+ if( (create_instance_mkdir_p("config dir", cf->config_dir, NEWDIR_MODE, pw)) )
+ return make_error("make config dir %s failed (%s)",
+ cf->config_dir, ds_system_errmsg());
+
+ /* Create config_dir/schema directory */
+ if( (create_instance_mkdir_p("schema dir", cf->schema_dir, NEWDIR_MODE, pw)) )
+ return make_error("make schema dir %s failed (%s)",
+ cf->schema_dir, ds_system_errmsg());
#if defined (BUILD_PRESENCE)
- /* Create slapd-nickname/config/presence directory */
- PR_snprintf(line, sizeof(line), "%s%cconfig%cpresence", subdir, FILE_PATHSEP, FILE_PATHSEP);
+ /* Create config_dir/presence directory */
+ PR_snprintf(line, sizeof(line), "%s%cpresence",
+ cf->config_dir, FILE_PATHSEP);
if( (create_instance_mkdir(line, NEWDIR_MODE)) )
return make_error("mkdir %s failed (%s)", line, ds_system_errmsg());
#endif
- /* Create slapd-nickname/logs directory */
- PR_snprintf(line, sizeof(line), "%s%clogs", subdir, FILE_PATHSEP);
- if( (create_instance_mkdir(line, NEWSECDIR_MODE)) )
- return make_error("mkdir %s failed (%s)", line, ds_system_errmsg());
-
+ /* Create log directory */
+ if( (create_instance_mkdir_p("log dir", cf->log_dir, NEWSECDIR_MODE, pw)) )
+ return make_error("make log dir %s failed (%s)",
+ cf->log_dir, ds_system_errmsg());
+
+ /* Create lock directory */
+ if( (create_instance_mkdir_p("lock dir", cf->lock_dir, NEWSECDIR_MODE, pw)) )
+ return make_error("make lock dir %s failed (%s)",
+ cf->lock_dir, ds_system_errmsg());
+
+ /* Create run directory */
+ if( (create_instance_mkdir_p("run dir", cf->run_dir, NEWSECDIR_MODE, pw)) )
+ return make_error("make run dir %s failed (%s)",
+ cf->run_dir, ds_system_errmsg());
+# if 0
/* Create httpacl directory */
PR_snprintf(line, sizeof(line), "%s%chttpacl", cf->sroot, FILE_PATHSEP);
if( (create_instance_mkdir(line, NEWDIR_MODE)) )
return make_error("mkdir %s failed (%s)", line, ds_system_errmsg());
-
+#endif
t = create_scripts(cf, param_name);
if(t) return t;
@@ -1514,12 +1522,8 @@
return NULL;
}
-
-
-
/* ------------------------- Copied from libadmin ------------------------- */
-
/*
These replace the versions in libadmin to allow error returns.
@@ -1528,20 +1532,53 @@
*/
-int create_instance_exists(char *fn)
+/*
+ * input:
+ * fn: file/dir name
+ * type:
+ * if you don't care of the file type, 0
+ * if file, PR_FILE_FILE
+ * if directory, PR_FILE_DIRECTORY
+ * else, PR_FILE_OTHER
+ *
+ * return value:
+ * 0: does not exist
+ * 1: exists
+ * -1: exists, but unexpected type
+ */
+int
+create_instance_exists(char *fn, int type)
{
- struct stat finfo;
+ PRFileInfo finfo;
- if(stat(fn, &finfo) < 0)
- return 0;
- else
- return 1;
+ if(PR_GetFileInfo(fn, &finfo) == PR_FAILURE)
+ return 0; /* does not exist */
+ else {
+ if (type > 0) {
+ if (type == finfo.type) {
+ return 1;
+ } else {
+ return -1;
+ }
+ } else {
+ return 1;
+ }
+ }
}
-int create_instance_mkdir(char *dir, int mode)
+int
+create_instance_mkdir(char *dir, int mode)
{
- if(!create_instance_exists(dir)) {
+ int rv = 0;
+ if (NULL == dir)
+ return -1;
+ rv = create_instance_exists(dir, PR_FILE_DIRECTORY);
+ if (rv < 0) { /* not a directory */
+ PR_Delete(dir);
+ rv = 0;
+ }
+ if(0 == rv) { /* dir does not exist */
#ifdef XP_UNIX
if(mkdir(dir, mode) == -1)
#else /* XP_WIN32 */
@@ -1553,12 +1590,18 @@
}
-char *create_instance_mkdir_p(char *dir, int mode)
+char *create_instance_mkdir_p(char *str, char *dir, int mode, struct passwd *pw)
{
static char errmsg[ERR_SIZE];
struct stat fi;
char *t;
+ if (NULL == dir) {
+ PR_snprintf(errmsg, sizeof(errmsg), "NULL is passed to make \"%s\"",
+ str?str:"unknown");
+ return errmsg;
+ }
+
#ifdef XP_UNIX
t = dir + 1;
#else /* XP_WIN32 */
@@ -1571,9 +1614,11 @@
if(t) *t = '\0';
if(stat(dir, &fi) == -1) {
if(create_instance_mkdir(dir, mode) == -1) {
- PR_snprintf(errmsg, sizeof(errmsg), "mkdir %s failed (%s)", dir, ds_system_errmsg());
+ PR_snprintf(errmsg, sizeof(errmsg), "mkdir %s for \"%s\" failed (%s)", dir, str, ds_system_errmsg());
return errmsg;
}
+ if (pw)
+ chownfile(pw, dir);
}
if(t)
{
@@ -1892,7 +1937,7 @@
if(is_a_dir(src_dir, d->name)) {
char *sub_src_dir = strdup(src_file);
char *sub_dest_dir = strdup(dest_file);
- if( (t = create_instance_mkdir_p(sub_dest_dir, NEWDIR_MODE)) )
+ if( (t = create_instance_mkdir_p(sub_dest_dir, sub_dest_dir, NEWDIR_MODE, NULL)) )
return(t);
if( (t = ds_copy_group_files_using_mode(sub_src_dir, sub_dest_dir, filter, use_mode)) )
return t;
@@ -1949,54 +1994,49 @@
/* ------------- Create config files for Directory Server -------------- */
-char *ds_cre_subdirs(char *sroot, server_config_s *cf, char *cs_path,
- struct passwd* pw)
+static char *
+ds_cre_subdirs(server_config_s *cf, struct passwd* pw)
{
char subdir[PATH_SIZE], *t = NULL;
- /* create subdir <a_server>/db */
- PR_snprintf(subdir, sizeof(subdir), "%s%cdb", cs_path, FILE_PATHSEP);
- if( (t = create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+ /* create db dir */
+ if( (t = create_instance_mkdir_p("db dir", cf->db_dir, NEWDIR_MODE, pw)) )
return(t);
- chownfile (pw, subdir);
- /* create subdir <a_server>/ldif */
- PR_snprintf(subdir, sizeof(subdir), "%s%cldif", cs_path, FILE_PATHSEP);
- if( (t = create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+ /* create ldif dir */
+ if( (t = create_instance_mkdir_p("ldif dir", cf->ldif_dir, NEWDIR_MODE, pw)) )
return(t);
- chownfile (pw, subdir);
+#ifdef DSML
/* create subdir <a_server>/dsml */
PR_snprintf(subdir, sizeof(subdir), "%s%cdsml", cs_path, FILE_PATHSEP);
- if( (t = create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+ if( (t = create_instance_mkdir_p("dsml dir", subdir, NEWDIR_MODE, pw)) )
return(t);
- chownfile (pw, subdir);
-
- /* create subdir <a_server>/bak */
- PR_snprintf(subdir, sizeof(subdir), "%s%cbak", cs_path, FILE_PATHSEP);
- if( (t = create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+#endif
+ /* create bak dir */
+ if( (t = create_instance_mkdir_p("backup dir", cf->bak_dir, NEWDIR_MODE, pw)) )
return(t);
- chownfile (pw, subdir);
/* Create slapd-nickname/confbak directory */
- PR_snprintf(subdir, sizeof(subdir), "%s%cconfbak", cs_path, FILE_PATHSEP);
- if( (t=create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+ PR_snprintf(subdir, sizeof(subdir), "%s%cconfbak", cf->config_dir, FILE_PATHSEP);
+ if( (t=create_instance_mkdir_p("config bak dir", subdir, NEWDIR_MODE, pw)) )
return(t);
- chownfile (pw, subdir);
+#ifdef DSGW
/* create subdir <server_root>/dsgw/context */
PR_snprintf(subdir, sizeof(subdir), "%s%cclients", sroot, FILE_PATHSEP);
if (is_a_dir(subdir, "dsgw")) { /* only create dsgw stuff if we are installing it */
PR_snprintf(subdir, sizeof(subdir), "%s%cclients%cdsgw%ccontext", sroot, FILE_PATHSEP,FILE_PATHSEP,FILE_PATHSEP);
- if( (t = create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+ if( (t = create_instance_mkdir_p("dsgw context dir", subdir, NEWDIR_MODE, pw)) )
return(t);
}
/* create subdir <server_root>/bin/slapd/authck */
+ /* dsgw cookie dir */
PR_snprintf(subdir, sizeof(subdir), "%s%cbin%cslapd%cauthck", sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP);
- if( (t = create_instance_mkdir_p(subdir, NEWDIR_MODE)) )
+ if( (t = create_instance_mkdir_p("authck dir", subdir, NEWDIR_MODE, pw)) )
return(t);
- chownfile (pw, subdir);
+#endif
return (t);
}
@@ -2019,8 +2059,9 @@
#define CREATE_VERIFYDB() \
gen_perl_script_auto(mysroot, mycs_path, "verify-db.pl", cf)
+/* tentatively moved to mycs_path */
#define CREATE_REPL_MONITOR_CGI() \
- gen_perl_script_auto(mysroot, cgics_path, "repl-monitor-cgi.pl", cf)
+ gen_perl_script_auto(mysroot, mycs_path, "repl-monitor-cgi.pl", cf)
#define CREATE_ACCOUNT_INACT(_commandName) \
gen_perl_script_auto(mysroot, cs_path, _commandName, cf)
@@ -2065,7 +2106,15 @@
char *ds_gen_scripts(char *sroot, server_config_s *cf, char *cs_path)
{
char *t = NULL;
- char server[PATH_SIZE], admin[PATH_SIZE], tools[PATH_SIZE];
+#if 0
+ char *server = sroot;
+ char *admin = sroot;
+ char *tools = cf->bindir;
+#else
+ char server[PATH_SIZE];
+ char admin[PATH_SIZE];
+ char tools[PATH_SIZE];
+#endif
char cgics_path[PATH_SIZE];
char *cl_scripts[7] = {"dsstop", "dsstart", "dsrestart", "dsrestore", "dsbackup", "dsimport", "dsexport"};
char *cl_javafiles[7] = {"DSStop", "DSStart", "DSRestart", "DSRestore", "DSBackup", "DSImport", "DSExport"};
@@ -2082,12 +2131,16 @@
mysroot = sroot;
mycs_path = cs_path;
- PR_snprintf(server, sizeof(server), "%s/bin/"PRODUCT_NAME"/server", sroot);
- PR_snprintf(admin, sizeof(admin), "%s/bin/"PRODUCT_NAME"/admin/bin", sroot);
- PR_snprintf(tools, sizeof(tools), "%s/shared/bin", sroot);
+#if 0
+ /* nothing to do for server, admin, tools */
PR_snprintf(cgics_path, sizeof(cgics_path), "%s%cbin%cadmin%cadmin%cbin", sroot,
FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP);
+#else /* will go away */
+ PR_snprintf(server, sizeof(server), "%s/bin/"PRODUCT_NAME"/server", sroot);
+ PR_snprintf(admin, sizeof(admin), "%s/bin/"PRODUCT_NAME"/admin/bin", sroot);
+ PR_snprintf(tools, sizeof(tools), "%s/shared/bin", sroot);
+#endif
t = gen_script(cs_path, "monitor",
"if [ \"x$1\" != \"x\" ];\nthen MDN=\"$1\";\nelse MDN=\"cn=monitor\";\n fi\n"
@@ -2100,14 +2153,14 @@
"cd %s\n"
"echo saving configuration ...\n"
"conf_ldif=%s/confbak/`date +%%Y_%%m_%%d_%%H%%M%%S`.ldif\n"
- "./ns-slapd db2ldif -N -D %s "
+ "./%s db2ldif -N -D %s "
"-s \"%s\" -a $conf_ldif -n NetscapeRoot 2>&1\n"
"if [ \"$?\" -ge 1 ] \nthen\n"
" echo Error occurred while saving configuration\n"
" exit 1\n"
"fi\n"
"exit 0\n",
- server, cs_path, cs_path, cf->netscaperoot);
+ server, cf->config_dir, PRODUCT_BIN, cf->config_dir, cf->netscaperoot);
if(t) return t;
t = gen_script(cs_path, "restoreconfig",
@@ -2118,10 +2171,10 @@
" echo No configuration to restore in %s/confbak ; exit 1\n"
"fi\n"
"echo Restoring $conf_ldif\n"
- "./ns-slapd ldif2db -D %s"
+ "./%s ldif2db -D %s"
" -i $conf_ldif -n NetscapeRoot 2>&1\n"
"exit $?\n",
- server, cs_path, cs_path, cs_path);
+ server, cf->config_dir, cf->config_dir, PRODUCT_BIN, cf->config_dir);
if(t) return t;
t = gen_script(cs_path, "ldif2db",
@@ -2133,9 +2186,9 @@
"\texit 1\n"
"fi\n\n"
"echo importing data ...\n"
- "./ns-slapd ldif2db -D %s \"$@\" 2>&1\n"
+ "./%s ldif2db -D %s \"$@\" 2>&1\n"
"exit $?\n",
- server, cs_path);
+ server, PRODUCT_BIN, cf->config_dir);
if(t) return t;
#if defined(UPGRADEDB)
@@ -2143,14 +2196,15 @@
"cd %s\n"
"if [ \"$#\" -eq 1 ]\nthen\n"
"\tbak_dir=$1\nelse\n"
- "\tbak_dir=%s/bak/upgradedb_`date +%%Y_%%m_%%d_%%H_%%M_%%S`\nfi\n\n"
+ "\tbak_dir=%s/upgradedb_`date +%%Y_%%m_%%d_%%H_%%M_%%S`\nfi\n\n"
"echo upgrade index files ...\n"
- "./ns-slapd upgradedb -D %s -a $bak_dir\n",
- server, cs_path, cs_path);
+ "./%s upgradedb -D %s -a $bak_dir\n",
+ server, cf->bak_dir, PRODUCT_BIN, cf->config_dir);
if(t) return t;
#endif
/* new code for dsml import */
+ /* OBSOLETE??? */
t = gen_script(cs_path, "dsml2db",
"cd %s\n"
"if [ $# -lt 4 ]\nthen\n"
@@ -2250,7 +2304,7 @@
"\texit 1\n"
"fi\n\n"
"pwdhash -D %s -H -s \"$@\"\n",
- server, server, cs_path);
+ server, cf->config_dir, cs_path);
if(t) return t;
t = gen_script(cs_path, "db2ldif",
@@ -2275,9 +2329,11 @@
"if [ $ldif_file = \"mydummy\" ]\nthen\n"
"\tldif_file=%s/ldif/`date +%%Y_%%m_%%d_%%H%%M%%S`.ldif\nfi\n"
"if [ $set_ldif -eq 2 ]\nthen\n"
- "./ns-slapd db2ldif -D %s \"$@\"\nelse\n"
- "./ns-slapd db2ldif -D %s -a $ldif_file \"$@\"\nfi\n",
- server, cs_path, cs_path, cs_path);
+ "./%s db2ldif -D %s \"$@\"\nelse\n"
+ "./%s db2ldif -D %s -a $ldif_file \"$@\"\nfi\n",
+ server, cf->ldif_dir,
+ PRODUCT_BIN, cf->config_dir,
+ PRODUCT_BIN, cf->config_dir);
if(t) return t;
/* new code for dsml export */
@@ -2324,15 +2380,17 @@
"if [ $# -eq 0 ]\n"
"then\n"
"\tbak_dir=%s/bak/reindex_`date +%%Y_%%m_%%d_%%H_%%M_%%S`\n"
- "\t./ns-slapd upgradedb -D %s -f -a \"$bak_dir\"\n"
+ "\t./%s upgradedb -D %s -f -a \"$bak_dir\"\n"
"elif [ $# -lt 4 ]\n"
"then\n"
"\techo \"Usage: db2index [-n backend_instance | {-s includesuffix}* -t attribute[:indextypes[:matchingrules]] -T vlvattribute]\"\n"
"\texit 1\n"
"else\n"
- "\t./ns-slapd db2index -D %s \"$@\"\n"
+ "\t./%s db2index -D %s \"$@\"\n"
"fi\n\n",
- server, cs_path, cs_path, cs_path);
+ server, cf->ldif_dir,
+ PRODUCT_BIN, cf->config_dir,
+ PRODUCT_BIN, cf->config_dir);
if(t) return t;
#endif
@@ -2344,17 +2402,17 @@
"\techo Note: either \\\"-n backend_instance\\\" or \\\"-s includesuffix\\\" are required.\n"
"\texit 1\n"
"fi\n\n"
- "./ns-slapd db2index -D %s \"$@\"\n",
- server, cs_path);
+ "./%s db2index -D %s \"$@\"\n",
+ server, PRODUCT_BIN, cf->config_dir);
if(t) return t;
t = gen_script(cs_path, "db2bak",
"cd %s\n"
"if [ \"$#\" -eq 1 ]\nthen\n"
"\tbak_dir=$1\nelse\n"
- "\tbak_dir=%s/bak/`date +%%Y_%%m_%%d_%%H_%%M_%%S`\nfi\n\n"
- "./ns-slapd db2archive -D %s -a $bak_dir\n",
- server, cs_path, cs_path);
+ "\tbak_dir=%s/`date +%%Y_%%m_%%d_%%H_%%M_%%S`\nfi\n\n"
+ "./%s db2archive -D %s -a $bak_dir\n",
+ server, cf->bak_dir, PRODUCT_BIN, cf->config_dir);
if(t) return t;
t = CREATE_DB2BAK();
@@ -2365,14 +2423,14 @@
" echo \"Usage: bak2db archivedir [-n backendname]\"\n"
" exit 1\n"
"else\n"
- " archivedir=$1\n"
- " shift\n"
+ " archivedir=$1\n"
+ " shift\n"
"fi\n"
"while getopts \"n:\" flag\ndo\n"
- " case $flag in\n"
- " n) bename=$OPTARG;;\n"
- " *) echo \"Usage: bak2db archivedir [-n backendname]\"; exit 2;;\n"
- " esac\n"
+ " case $flag in\n"
+ " n) bename=$OPTARG;;\n"
+ " *) echo \"Usage: bak2db archivedir [-n backendname]\"; exit 2;;\n"
+ " esac\n"
"done\n\n"
"if [ 1 = `expr $archivedir : \"\\/\"` ]\nthen\n"
" archivedir=$archivedir\n"
@@ -2381,11 +2439,11 @@
" archivedir=`pwd`/$archivedir\nfi\n\n"
"cd %s\n"
"if [ \"$#\" -eq 2 ]\nthen\n"
- " ./ns-slapd archive2db -D %s -a $archivedir -n $bename\n"
+ " ./%s archive2db -D %s -a $archivedir -n $bename\n"
"else\n"
- " ./ns-slapd archive2db -D %s -a $archivedir\n"
+ " ./%s archive2db -D %s -a $archivedir\n"
"fi\n",
- server, cs_path, cs_path);
+ server, PRODUCT_BIN, cf->config_dir, PRODUCT_BIN, cf->config_dir);
if(t) return t;
t = CREATE_BAK2DB();
@@ -2419,8 +2477,8 @@
"\techo Usage: suffix2instance {-s includesuffix}*\n"
"\texit 1\n"
"fi\n\n"
- "./ns-slapd suffix2instance -D %s \"$@\" 2>&1\n",
- server, cs_path);
+ "./%s suffix2instance -D %s \"$@\" 2>&1\n",
+ server, PRODUCT_BIN, cf->config_dir);
if(t) return t;
/*Generate the java commandline tools in bin/slapd/server*/
@@ -2450,11 +2508,10 @@
if(t) return t;
}
-
-
return (t);
}
#else
+/* Windows; haven't updated */
char *ds_gen_scripts(char *sroot, server_config_s *cf, char *cs_path)
{
char *t = NULL;
@@ -3146,7 +3203,7 @@
belowdn = PR_smprintf("cn=index,cn=%s,cn=ldbm database,cn=plugins,cn=config", be_name);
ds_gen_index(f, belowdn);
- PR_smprintf_free(belowdn);
+ PR_smprintf_free(belowdn);
/* done with ldbm entries */
}
@@ -3164,8 +3221,7 @@
fprintf(f, "\n"); \
} while (0)
-char *ds_gen_confs(char *sroot, server_config_s *cf,
- char *cs_path)
+char *ds_gen_confs(char *sroot, server_config_s *cf, char *cs_path)
{
char* t = NULL;
char src[PATH_SIZE], dest[PATH_SIZE];
@@ -3173,10 +3229,13 @@
FILE *f = 0, *srcf = 0;
int rootdse = 0;
char *shared_lib;
+ struct passwd *pw = getpwnam(cf->servuser);
- PR_snprintf(fn, sizeof(fn), "%s%cconfig%cdse.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
+ PR_snprintf(fn, sizeof(fn), "%s%c%s",
+ cf->config_dir, FILE_PATHSEP, DS_CONFIG_FILE);
if(!(f = fopen(fn, "w")))
- return make_error("Can't write to %s (%s)", fn, ds_system_errmsg());
+ return make_error("Can't write to %s (%s)",
+ cf->config_dir, ds_system_errmsg());
#if defined( XP_WIN32 )
shared_lib = ".dll";
@@ -3205,6 +3264,9 @@
fprintf(f, "objectclass:top\n");
fprintf(f, "objectclass:extensibleObject\n");
fprintf(f, "objectclass:nsslapdConfig\n");
+ fprintf(f, "nsslapd-instancedir: %s\n", cf->inst_dir);
+ fprintf(f, "nsslapd-schemadir: %s\n", cf->schema_dir);
+ fprintf(f, "nsslapd-ldifdir: %s\n", cf->ldif_dir);
fprintf(f, "nsslapd-accesslog-logging-enabled: on\n");
fprintf(f, "nsslapd-accesslog-maxlogsperdir: 10\n");
fprintf(f, "nsslapd-accesslog-mode: 600\n");
@@ -3214,7 +3276,11 @@
fprintf(f, "nsslapd-accesslog-logrotationsync-enabled: off\n");
fprintf(f, "nsslapd-accesslog-logrotationsynchour: 0\n");
fprintf(f, "nsslapd-accesslog-logrotationsyncmin: 0\n");
+#if 0
+ fprintf(f, "nsslapd-accesslog: %s/access\n", cf->log_dir);
+#else /* will go away */
fprintf(f, "nsslapd-accesslog: %s/logs/access\n", cs_path);
+#endif
fprintf(f, "nsslapd-enquote-sup-oc: off\n");
fprintf(f, "nsslapd-localhost: %s\n", cf->servname);
fprintf(f, "nsslapd-schemacheck: %s\n",
@@ -3237,10 +3303,18 @@
fprintf(f, "nsslapd-errorlog-logrotationsync-enabled: off\n");
fprintf(f, "nsslapd-errorlog-logrotationsynchour: 0\n");
fprintf(f, "nsslapd-errorlog-logrotationsyncmin: 0\n");
+#if 0
+ fprintf(f, "nsslapd-errorlog: %s/errors\n", cf->log_dir);
+#else /* will go away */
fprintf(f, "nsslapd-errorlog: %s/logs/errors\n", cs_path);
+#endif
if (cf->loglevel)
fprintf(f, "nsslapd-errorlog-level: %s\n", cf->loglevel);
+#if 0
+ fprintf(f, "nsslapd-auditlog: %s/audit\n", cf->log_dir);
+#else /* will go away */
fprintf(f, "nsslapd-auditlog: %s/logs/audit\n", cs_path);
+#endif
fprintf(f, "nsslapd-auditlog-mode: 600\n");
fprintf(f, "nsslapd-auditlog-maxlogsize: 100\n");
fprintf(f, "nsslapd-auditlog-logrotationtime: 1\n");
@@ -3360,15 +3434,15 @@
fprintf(f, "\n");
#endif
- fprintf(f, "dn: cn=MD5,cn=Password Storage Schemes,cn=plugins,cn=config\n");
- fprintf(f, "objectclass: top\n");
- fprintf(f, "objectclass: nsSlapdPlugin\n");
- fprintf(f, "cn: MD5\n");
- fprintf(f, "nsslapd-pluginpath: %s/lib/pwdstorage-plugin%s\n", sroot, shared_lib);
- fprintf(f, "nsslapd-plugininitfunc: md5_pwd_storage_scheme_init\n");
- fprintf(f, "nsslapd-plugintype: pwdstoragescheme\n");
- fprintf(f, "nsslapd-pluginenabled: on\n");
- fprintf(f, "\n");
+ fprintf(f, "dn: cn=MD5,cn=Password Storage Schemes,cn=plugins,cn=config\n");
+ fprintf(f, "objectclass: top\n");
+ fprintf(f, "objectclass: nsSlapdPlugin\n");
+ fprintf(f, "cn: MD5\n");
+ fprintf(f, "nsslapd-pluginpath: %s/lib/pwdstorage-plugin%s\n", sroot, shared_lib);
+ fprintf(f, "nsslapd-plugininitfunc: md5_pwd_storage_scheme_init\n");
+ fprintf(f, "nsslapd-plugintype: pwdstoragescheme\n");
+ fprintf(f, "nsslapd-pluginenabled: on\n");
+ fprintf(f, "\n");
fprintf(f, "dn: cn=CLEAR,cn=Password Storage Schemes,cn=plugins,cn=config\n");
fprintf(f, "objectclass: top\n");
@@ -3635,7 +3709,7 @@
fprintf(f, "nsslapd-plugininitfunc: orderingRule_init\n");
fprintf(f, "nsslapd-plugintype: matchingRule\n");
fprintf(f, "nsslapd-pluginenabled: on\n");
- fprintf(f, "nsslapd-pluginarg0: %s/config/slapd-collations.conf\n", cs_path);
+ fprintf(f, "nsslapd-pluginarg0: %s/slapd-collations.conf\n", cf->config_dir);
fprintf(f, "\n");
/* The HTTP client plugin */
@@ -3767,29 +3841,29 @@
#ifdef BUILD_PAM_PASSTHRU
#if !defined( XP_WIN32 )
- /* PAM Pass Through Auth plugin - off by default */
- fprintf(f, "dn: cn=PAM Pass Through Auth,cn=plugins,cn=config\n");
- fprintf(f, "objectclass: top\n");
- fprintf(f, "objectclass: nsSlapdPlugin\n");
- fprintf(f, "objectclass: extensibleObject\n");
- fprintf(f, "objectclass: pamConfig\n");
- fprintf(f, "cn: PAM Pass Through Auth\n");
- fprintf(f, "nsslapd-pluginpath: %s/lib/pam-passthru-plugin%s\n", sroot, shared_lib);
- fprintf(f, "nsslapd-plugininitfunc: pam_passthruauth_init\n");
- fprintf(f, "nsslapd-plugintype: preoperation\n");
- fprintf(f, "nsslapd-pluginenabled: off\n");
- fprintf(f, "nsslapd-pluginLoadGlobal: true\n");
- fprintf(f, "nsslapd-plugin-depends-on-type: database\n");
- fprintf(f, "pamMissingSuffix: ALLOW\n");
- if (cf->netscaperoot) {
- fprintf(f, "pamExcludeSuffix: %s\n", cf->netscaperoot);
- }
- fprintf(f, "pamExcludeSuffix: cn=config\n");
- fprintf(f, "pamMapMethod: RDN\n");
- fprintf(f, "pamFallback: FALSE\n");
- fprintf(f, "pamSecure: TRUE\n");
- fprintf(f, "pamService: ldapserver\n");
- fprintf(f, "\n");
+ /* PAM Pass Through Auth plugin - off by default */
+ fprintf(f, "dn: cn=PAM Pass Through Auth,cn=plugins,cn=config\n");
+ fprintf(f, "objectclass: top\n");
+ fprintf(f, "objectclass: nsSlapdPlugin\n");
+ fprintf(f, "objectclass: extensibleObject\n");
+ fprintf(f, "objectclass: pamConfig\n");
+ fprintf(f, "cn: PAM Pass Through Auth\n");
+ fprintf(f, "nsslapd-pluginpath: %s/lib/pam-passthru-plugin%s\n", sroot, shared_lib);
+ fprintf(f, "nsslapd-plugininitfunc: pam_passthruauth_init\n");
+ fprintf(f, "nsslapd-plugintype: preoperation\n");
+ fprintf(f, "nsslapd-pluginenabled: off\n");
+ fprintf(f, "nsslapd-pluginLoadGlobal: true\n");
+ fprintf(f, "nsslapd-plugin-depends-on-type: database\n");
+ fprintf(f, "pamMissingSuffix: ALLOW\n");
+ if (cf->netscaperoot) {
+ fprintf(f, "pamExcludeSuffix: %s\n", cf->netscaperoot);
+ }
+ fprintf(f, "pamExcludeSuffix: cn=config\n");
+ fprintf(f, "pamMapMethod: RDN\n");
+ fprintf(f, "pamFallback: FALSE\n");
+ fprintf(f, "pamSecure: TRUE\n");
+ fprintf(f, "pamService: ldapserver\n");
+ fprintf(f, "\n");
#endif /* NO PAM FOR WINDOWS */
#endif /* BUILD_PAM_PASSTHRU */
@@ -3980,24 +4054,28 @@
fprintf(f, "\n");
/* create the changelog directory */
- if( (t = create_instance_mkdir_p(cf->changelogdir, NEWDIR_MODE)) )
+ if( (t = create_instance_mkdir_p("changelog dir", cf->changelogdir, NEWDIR_MODE, pw)) )
return(t);
}
fclose (f);
- PR_snprintf(src, sizeof(src), "%s%cconfig%cdse.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
- PR_snprintf(fn, sizeof(fn), "%s%cconfig%cdse_original.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
- create_instance_copy(src, fn, 0600);
-
- /*
- * generate slapd-collations.conf
- */
- PR_snprintf(src, sizeof(src), "%s%cbin%c"PRODUCT_NAME"%cinstall%cconfig%c%s-collations.conf",
- sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
- FILE_PATHSEP, PRODUCT_NAME);
- PR_snprintf(dest, sizeof(dest), "%s%cconfig%c%s-collations.conf", cs_path, FILE_PATHSEP,
- FILE_PATHSEP, PRODUCT_NAME);
+ PR_snprintf(src, sizeof(src), "%s%cdse.ldif", cf->config_dir, FILE_PATHSEP);
+ PR_snprintf(dest, sizeof(dest), "%s%cdse_original.ldif", cf->config_dir, FILE_PATHSEP);
+ create_instance_copy(src, dest, 0600);
+
+ /* install certmap.conf at <sysconfig>/BRAND_DS */
+ PR_snprintf(src, sizeof(src), "%s/bin/slapd/install/config/certmap.conf",
+ cf->sroot);
+ PR_snprintf(dest, sizeof(dest), "%s/certmap.conf", cf->config_dir);
+ create_instance_copy(src, dest, 0600);
+
+ /* generate <sysconfdir>/BRAND_DS/slapd-collations.conf */
+ PR_snprintf(src, sizeof(src),
+ "%s/bin/slapd/install/config/%s-collations.conf",
+ cf->sroot, PRODUCT_NAME);
+ PR_snprintf(dest, sizeof(dest), "%s%c%s-collations.conf",
+ cf->config_dir, FILE_PATHSEP, PRODUCT_NAME);
if (!(srcf = fopen(src, "r"))) {
return make_error("Can't read from %s (%s)", src, ds_system_errmsg());
}
@@ -4016,9 +4094,16 @@
fclose(srcf);
fclose(f);
+ /*
+ * <sysconfdir>/BRAND_DS/schema to schema_dir
+ */
+#if 0 /* going to be 1 !! */
+ PR_snprintf(src, sizeof(src), "%s%c%s%cschema",
+ cf->sysconfdir, FILE_PATHSEP, BRAND_DS, FILE_PATHSEP);
+#else
PR_snprintf(src, sizeof(src), "%s/bin/slapd/install/schema", sroot);
- PR_snprintf(dest, sizeof(dest), "%s/config/schema", cs_path);
- if (NULL != (t = ds_copy_group_files(src, dest, 0)))
+#endif
+ if (NULL != (t = ds_copy_group_files(src, cf->schema_dir, 0)))
return t;
#if defined (BUILD_PRESENCE)
@@ -4028,6 +4113,7 @@
return t;
#endif
+#if defined (ORGCHART)
/* Generate the orgchart configuration */
PR_snprintf(src, sizeof(src), "%s/clients", sroot);
if (is_a_dir(src, "orgchart")) {
@@ -4035,7 +4121,9 @@
return t;
}
}
+#endif
+#if defined (DSGW)
/* Generate dsgw.conf */
PR_snprintf(src, sizeof(src), "%s/clients", sroot);
if (is_a_dir(src, "dsgw")) {
@@ -4048,6 +4136,7 @@
return t;
}
}
+#endif
return NULL; /* Everything worked fine */
}
@@ -4088,9 +4177,8 @@
PR_snprintf(dest, sizeof(dest), "%s%cclients%cdsgw%ccontext%c%s.conf", sroot, FILE_PATHSEP,FILE_PATHSEP,
FILE_PATHSEP, FILE_PATHSEP, ctxt);
-
/* If the config file already exists, just return success */
- if (create_instance_exists(dest)) {
+ if (create_instance_exists(dest, PR_FILE_FILE)) {
return(NULL);
}
@@ -4205,7 +4293,7 @@
FILE_PATHSEP, FILE_PATHSEP);
/* If the config file already exists, just return success */
- if (create_instance_exists(dest)) {
+ if (create_instance_exists(dest, PR_FILE_FILE)) {
return(NULL);
}
@@ -4382,13 +4470,13 @@
ds_gen_index(FILE* f, char* belowdn)
{
#define MKINDEX(_name, _inst, _sys, _type1, _type2, _type3) do { \
- char *_type2str = (_type2), *_type3str = (_type3); \
+ char *_type2str = (_type2), *_type3str = (_type3); \
fprintf(f, "dn: cn=%s,%s\n", (_name), (_inst)); \
fprintf(f, "objectclass: top\n"); \
fprintf(f, "objectclass: nsIndex\n"); \
fprintf(f, "cn: %s\n", (_name)); \
fprintf(f, "nssystemindex: %s\n", (_sys) ? "true" : "false"); \
- if (_type1) \
+ if (_type1) \
fprintf(f, "nsindextype: %s\n", (_type1)); \
if (_type2str) \
fprintf(f, "nsindextype: %s\n", _type2str); \
@@ -4455,7 +4543,7 @@
PR_snprintf(cs_path, sizeof(cs_path), "%s%c"PRODUCT_NAME"-%s", sroot, FILE_PATHSEP, cf->servid);
/* create all <a_server>/<subdirs> */
- if ( (t = ds_cre_subdirs(sroot, cf, cs_path, pw)) )
+ if ( (t = ds_cre_subdirs(cf, pw)) )
return(t);
/* Generate all scripts */
@@ -4473,28 +4561,29 @@
PR_snprintf(src, sizeof(src), "%s%cbin%c"PRODUCT_NAME"%cinstall%cldif%cExample.ldif", sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP);
- PR_snprintf(dest, sizeof(dest), "%s%cldif%cExample.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
+ PR_snprintf(dest, sizeof(dest), "%s%cExample.ldif", cf->ldif_dir, FILE_PATHSEP);
create_instance_copy(src, dest, NEWFILE_MODE);
chownfile (pw, dest);
PR_snprintf(src, sizeof(src), "%s%cbin%c"PRODUCT_NAME"%cinstall%cldif%cExample-roles.ldif", sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP);
- PR_snprintf(dest, sizeof(dest), "%s%cldif%cExample-roles.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
+ PR_snprintf(dest, sizeof(dest), "%s%cExample-roles.ldif", cf->ldif_dir, FILE_PATHSEP);
create_instance_copy(src, dest, NEWFILE_MODE);
chownfile (pw, dest);
PR_snprintf(src, sizeof(src), "%s%cbin%c"PRODUCT_NAME"%cinstall%cldif%cExample-views.ldif", sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP);
- PR_snprintf(dest, sizeof(dest), "%s%cldif%cExample-views.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
+ PR_snprintf(dest, sizeof(dest), "%s%cExample-views.ldif", cf->ldif_dir, FILE_PATHSEP);
create_instance_copy(src, dest, NEWFILE_MODE);
chownfile (pw, dest);
PR_snprintf(src, sizeof(src), "%s%cbin%c"PRODUCT_NAME"%cinstall%cldif%cEuropean.ldif", sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP);
- PR_snprintf(dest, sizeof(dest), "%s%cldif%cEuropean.ldif", cs_path, FILE_PATHSEP, FILE_PATHSEP);
+ PR_snprintf(dest, sizeof(dest), "%s%cEuropean.ldif", cf->ldif_dir, FILE_PATHSEP);
create_instance_copy(src, dest, NEWFILE_MODE);
chownfile (pw, dest);
+#ifdef DSML
/* new code for dsml sample files */
PR_snprintf(src, sizeof(src), "%s%cbin%c"PRODUCT_NAME"%cinstall%cdsml%cExample.dsml", sroot, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP, FILE_PATHSEP,
FILE_PATHSEP);
@@ -4513,6 +4602,7 @@
PR_snprintf(dest, sizeof(dest), "%s%cdsml%cEuropean.dsml", cs_path, FILE_PATHSEP, FILE_PATHSEP);
create_instance_copy(src, dest, NEWFILE_MODE);
chownfile (pw, dest);
+#endif
/*
If the user has specified an LDIF file to use to initialize the database,
@@ -4552,17 +4642,17 @@
{
int start_status = 0;
int verbose = 1;
- char instance_dir[PATH_SIZE], errorlog[PATH_SIZE];
+ char errorlog[PATH_SIZE];
if (getenv("USE_DEBUGGER"))
verbose = 0;
- /* slapd-nickname directory */
- PR_snprintf(instance_dir, sizeof(instance_dir), "%s%c"PRODUCT_NAME"-%s", sroot, FILE_PATHSEP,
- cf->servid);
/* error log file */
- PR_snprintf(errorlog, sizeof(errorlog), "%s%clogs%cerrors", instance_dir, FILE_PATHSEP,
- FILE_PATHSEP);
- start_status = ds_bring_up_server_install(verbose, instance_dir, errorlog);
+#if 0
+ PR_snprintf(errorlog, sizeof(errorlog), "%s%cerrors", cf->log_dir, FILE_PATHSEP,
+#else /* will go away */
+ PR_snprintf(errorlog, sizeof(errorlog), "%s%clogs%cerrors", cf->inst_dir, FILE_PATHSEP, FILE_PATHSEP);
+#endif
+ start_status = ds_bring_up_server_install(verbose, cf->inst_dir, errorlog);
if (start_status != DS_SERVER_UP)
{
@@ -4628,27 +4718,23 @@
memset( &query_vars, 0, sizeof(query_vars) );
if (!cf->use_existing_user_ds)
- query_vars.suffix = myStrdup( cf->suffix );
- query_vars.ssAdmID = myStrdup( cf->cfg_sspt_uid );
- query_vars.ssAdmPW1 = myStrdup( cf->cfg_sspt_uidpw );
- query_vars.ssAdmPW2 = myStrdup( cf->cfg_sspt_uidpw );
- query_vars.rootDN = myStrdup( cf->rootdn );
- query_vars.rootPW = myStrdup( cf->rootpw );
- query_vars.admin_domain =
- myStrdup( cf->admin_domain );
- query_vars.netscaperoot = myStrdup( cf->netscaperoot );
- query_vars.testconfig = myStrdup( cf->testconfig );
- query_vars.consumerDN = myStrdup(cf->consumerdn);
- query_vars.consumerPW = myStrdup(cf->consumerhashedpw);
+ query_vars.suffix = PL_strdup( cf->suffix );
+ query_vars.ssAdmID = PL_strdup( cf->cfg_sspt_uid );
+ query_vars.ssAdmPW1 = PL_strdup( cf->cfg_sspt_uidpw );
+ query_vars.ssAdmPW2 = PL_strdup( cf->cfg_sspt_uidpw );
+ query_vars.rootDN = PL_strdup( cf->rootdn );
+ query_vars.rootPW = PL_strdup( cf->rootpw );
+ query_vars.admin_domain = PL_strdup( cf->admin_domain );
+ query_vars.netscaperoot = PL_strdup( cf->netscaperoot );
+ query_vars.testconfig = PL_strdup( cf->testconfig );
+ query_vars.consumerDN = PL_strdup(cf->consumerdn);
+ query_vars.consumerPW = PL_strdup(cf->consumerhashedpw);
if (cf->cfg_sspt && !strcmp(cf->cfg_sspt, "1"))
query_vars.cfg_sspt = 1;
else
query_vars.cfg_sspt = 0;
- if (cf->suitespot3x_uid)
- query_vars.config_admin_uid = myStrdup(cf->suitespot3x_uid);
- else
- query_vars.config_admin_uid = myStrdup(cf->cfg_sspt_uid);
+ query_vars.config_admin_uid = PL_strdup(cf->cfg_sspt_uid);
memset(&slapd_conf, 0, sizeof(SLAPD_CONFIG));
if (sroot)
@@ -4734,30 +4820,30 @@
int create_config(server_config_s *cf)
{
char *t = NULL;
- char error_param[BIG_LINE] = {0};
+ char error_param[BIG_LINE] = {0};
t = create_server(cf, error_param);
if(t)
- {
- char *msg;
- if (error_param[0])
- {
- msg = PR_smprintf("%s.error:could not create server %s - %s",
- error_param, cf->servid, t);
- }
- else
- {
- msg = PR_smprintf("error:could not create server %s - %s",
- cf->servid, t);
- }
- ds_show_message(msg);
- PR_smprintf_free(msg);
- }
- else
- {
- ds_show_message("Created new Directory Server");
- return 0;
- }
+ {
+ char *msg;
+ if (error_param[0])
+ {
+ msg = PR_smprintf("%s.error:could not create server %s - %s",
+ error_param, cf->servid, t);
+ }
+ else
+ {
+ msg = PR_smprintf("error:could not create server %s - %s",
+ cf->servid, t);
+ }
+ ds_show_message(msg);
+ PR_smprintf_free(msg);
+ }
+ else
+ {
+ ds_show_message("Created new Directory Server");
+ return 0;
+ }
return 1;
}
@@ -4767,23 +4853,59 @@
static int check_passwords(char *pw1, char *pw2)
{
if (strcmp (pw1, pw2) != 0) {
- ds_report_error (DS_INCORRECT_USAGE, " different passwords",
- "Enter the password again."
- " The two passwords you entered are different.");
- return 1;
- }
-
+ ds_report_error (DS_INCORRECT_USAGE, " different passwords",
+ "Enter the password again."
+ " The two passwords you entered are different.");
+ return 1;
+ }
+
if ( ((int) strlen(pw1)) < 8 ) {
- ds_report_error (DS_INCORRECT_USAGE, " password too short",
- "The password must be at least 8 characters long.");
- return 1;
- }
+ ds_report_error (DS_INCORRECT_USAGE, " password too short",
+ "The password must be at least 8 characters long.");
+ return 1;
+ }
- return 0;
+ return 0;
}
-/* ------ Parse the results of a form and create a server from them ------- */
+static char *
+set_path_attribute(char *attr, char *defaultval, char *prefix)
+{
+ char *temp = ds_a_get_cgi_var(attr, NULL, NULL);
+ char *rstr = NULL;
+ if (prefix) {
+ if (NULL == temp || '\0' == *temp) {
+ rstr = PR_smprintf("%s%c%s", prefix, FILE_PATHSEP, defaultval);
+ } else {
+ rstr = PR_smprintf("%s%c%s", prefix, FILE_PATHSEP, temp);
+ }
+ } else {
+ if (NULL == temp || '\0' == *temp) {
+ rstr = defaultval;
+ } else {
+ rstr = PL_strdup(temp);
+ }
+ }
+ return rstr;
+}
+/* ------ Parse the results of a form and create a server from them ------- */
+/*
+ * FHS description
+ * cf->prefix: %{_prefix}
+ * cf->sroot: %{_libdir}/BRAND_DS
+ * cf->localstatedir: %{_localstatedir}
+ * cf->sysconfdir: %{_sysconfdir}
+ * cf->bindir: %{_bindir}
+ * cf->datadir: %{_datadir}
+ * cf->docdir: %{_docdir}
+ * cf->inst_dir: <sroot>/slapd-<servid>
+ * cf->config_dir: <localstatedir>/lib/slapd-<servid>
+ * cf->schema_dir: <localstatedir>/lib/slapd-<servid>/schema
+ * cf->lock_dir: <localstatedir>/lock/slapd-<servid>
+ * cf->log_dir: <localstatedir>/log/slapd-<servid>
+ * cf->run_dir: <localstatedir>/run/slapd-<servid>
+ */
int parse_form(server_config_s *cf)
{
@@ -4793,94 +4915,103 @@
char* cfg_sspt_uid_pw2;
LDAPURLDesc *desc = 0;
char *temp = 0;
+ char *prefix = NULL;
- if (!(cf->sroot = getenv("NETSITE_ROOT"))) {
- ds_report_error (DS_INCORRECT_USAGE, " NETSITE_ROOT environment variable not set.",
- "The environment variable NETSITE_ROOT must be set to the server root directory.");
- return 1;
- }
+ cf->brand_ds = BRAND_DS;
+ temp = getenv("NETSITE_ROOT");
+ if (NULL == temp) {
+ ds_report_error (DS_INCORRECT_USAGE,
+ " NETSITE_ROOT environment variable not set.",
+ "The environment variable NETSITE_ROOT must be set to the server root directory.");
+ return 1;
+ }
+ cf->sroot = PL_strdup(temp);
if (rm && qs && !strcmp(rm, "GET"))
- {
- ds_get_begin(qs);
- }
+ {
+ ds_get_begin(qs);
+ }
else if (ds_post_begin(stdin))
- {
- return 1;
- }
+ {
+ return 1;
+ }
if (rm)
- {
- printf("Content-type: text/plain\n\n");
- }
+ {
+ printf("Content-type: text/plain\n\n");
+ }
/* else we are being called from server installation; no output */
+ temp = ds_a_get_cgi_var("prefix", NULL, NULL);
+ if (NULL != temp) {
+ prefix = cf->prefix = PL_strdup(temp);
+ }
+
if (!(cf->servname = ds_a_get_cgi_var("servname", "Server Name",
- "Please give a hostname for your server.")))
- {
- return 1;
- }
+ "Please give a hostname for your server.")))
+ {
+ return 1;
+ }
- cf->bindaddr = ds_a_get_cgi_var("bindaddr", NULL, NULL);
+ cf->bindaddr = ds_a_get_cgi_var("bindaddr", NULL, NULL);
if (!(cf->servport = ds_a_get_cgi_var("servport", "Server Port",
- "Please specify the TCP port number for this server.")))
- {
- return 1;
- }
+ "Please specify the TCP port number for this server.")))
+ {
+ return 1;
+ }
- cf->suitespot3x_uid = ds_a_get_cgi_var("suitespot3x_uid", NULL, NULL);
cf->cfg_sspt = ds_a_get_cgi_var("cfg_sspt", NULL, NULL);
cf->cfg_sspt_uid = ds_a_get_cgi_var("cfg_sspt_uid", NULL, NULL);
if (cf->cfg_sspt_uid && *(cf->cfg_sspt_uid) &&
- !(cf->cfg_sspt_uidpw = ds_a_get_cgi_var("cfg_sspt_uid_pw", NULL, NULL)))
- {
+ !(cf->cfg_sspt_uidpw = ds_a_get_cgi_var("cfg_sspt_uid_pw", NULL, NULL)))
+ {
+
+ if (!(cfg_sspt_uid_pw1 = ds_a_get_cgi_var("cfg_sspt_uid_pw1", "Password",
+ "Enter the password for the Mission Control Administrator's account.")))
+ {
+ return 1;
+ }
- if (!(cfg_sspt_uid_pw1 = ds_a_get_cgi_var("cfg_sspt_uid_pw1", "Password",
- "Enter the password for the Mission Control Administrator's account.")))
- {
- return 1;
- }
-
- if (!(cfg_sspt_uid_pw2 = ds_a_get_cgi_var("cfg_sspt_uid_pw2", "Password",
- "Enter the password for the Mission Control Administrator account, "
- "twice.")))
- {
- return 1;
- }
-
- if (strcmp (cfg_sspt_uid_pw1, cfg_sspt_uid_pw2) != 0)
- {
- ds_report_error (DS_INCORRECT_USAGE, " different passwords",
- "Enter the Mission Control Administrator account password again."
- " The two Mission Control Administrator account passwords "
- "you entered are different.");
- return 1;
- }
- if ( ((int) strlen(cfg_sspt_uid_pw1)) < 1 ) {
- ds_report_error (DS_INCORRECT_USAGE, " password too short",
- "The password must be at least 1 character long.");
- return 1;
- }
- cf->cfg_sspt_uidpw = cfg_sspt_uid_pw1;
- }
+ if (!(cfg_sspt_uid_pw2 = ds_a_get_cgi_var("cfg_sspt_uid_pw2", "Password",
+ "Enter the password for the Mission Control Administrator account, "
+ "twice.")))
+ {
+ return 1;
+ }
+
+ if (strcmp (cfg_sspt_uid_pw1, cfg_sspt_uid_pw2) != 0)
+ {
+ ds_report_error (DS_INCORRECT_USAGE, " different passwords",
+ "Enter the Mission Control Administrator account password again."
+ " The two Mission Control Administrator account passwords "
+ "you entered are different.");
+ return 1;
+ }
+ if ( ((int) strlen(cfg_sspt_uid_pw1)) < 1 ) {
+ ds_report_error (DS_INCORRECT_USAGE, " password too short",
+ "The password must be at least 1 character long.");
+ return 1;
+ }
+ cf->cfg_sspt_uidpw = cfg_sspt_uid_pw1;
+ }
if (cf->cfg_sspt && *cf->cfg_sspt && !strcmp(cf->cfg_sspt, "1") &&
- !cf->cfg_sspt_uid)
- {
- ds_report_error (DS_INCORRECT_USAGE,
- " Userid not specified",
- "A Userid for Mission Control Administrator must be specified.");
- return 1;
- }
+ !cf->cfg_sspt_uid)
+ {
+ ds_report_error (DS_INCORRECT_USAGE,
+ " Userid not specified",
+ "A Userid for Mission Control Administrator must be specified.");
+ return 1;
+ }
cf->start_server = ds_a_get_cgi_var("start_server", NULL, NULL);
cf->secserv = ds_a_get_cgi_var("secserv", NULL, NULL);
if (cf->secserv && strcmp(cf->secserv, "off"))
- cf->secservport = ds_a_get_cgi_var("secservport", NULL, NULL);
+ cf->secservport = ds_a_get_cgi_var("secservport", NULL, NULL);
if (!(cf->servid = ds_a_get_cgi_var("servid", "Server Identifier",
- "Please give your server a short identifier.")))
- {
- return 1;
- }
+ "Please give your server a short identifier.")))
+ {
+ return 1;
+ }
#ifdef XP_UNIX
cf->servuser = ds_a_get_cgi_var("servuser", NULL, NULL);
@@ -4889,82 +5020,177 @@
cf->suffix = dn_normalize_convert(ds_a_get_cgi_var("suffix", NULL, NULL));
if (cf->suffix == NULL) {
- cf->suffix = "";
+ cf->suffix = "";
}
cf->rootdn = dn_normalize_convert(ds_a_get_cgi_var("rootdn", NULL, NULL));
if (cf->rootdn && *(cf->rootdn)) {
- if (!(cf->rootpw = ds_a_get_cgi_var("rootpw", NULL, NULL)))
- {
- char* pw1 = ds_a_get_cgi_var("rootpw1", "Password",
- "Enter the password for the unrestricted user.");
- char* pw2 = ds_a_get_cgi_var("rootpw2", "Password",
- "Enter the password for the unrestricted user, twice.");
-
- if (!pw1 || !pw2 || check_passwords(pw1, pw2))
- {
- return 1;
- }
-
- cf->rootpw = pw1;
- }
- /* Encode the password in SSHA by default */
- cf->roothashedpw = (char *)ds_salted_sha1_pw_enc (cf->rootpw);
+ if (!(cf->rootpw = ds_a_get_cgi_var("rootpw", NULL, NULL)))
+ {
+ char* pw1 = ds_a_get_cgi_var("rootpw1", "Password",
+ "Enter the password for the unrestricted user.");
+ char* pw2 = ds_a_get_cgi_var("rootpw2", "Password",
+ "Enter the password for the unrestricted user, twice.");
+
+ if (!pw1 || !pw2 || check_passwords(pw1, pw2))
+ {
+ return 1;
+ }
+
+ cf->rootpw = pw1;
+ }
+ /* Encode the password in SSHA by default */
+ cf->roothashedpw = (char *)ds_salted_sha1_pw_enc (cf->rootpw);
}
cf->admin_domain = ds_a_get_cgi_var("admin_domain", NULL, NULL);
- if ((temp = ds_a_get_cgi_var("use_existing_config_ds", NULL, NULL))) {
- cf->use_existing_config_ds = atoi(temp);
- } else {
- cf->use_existing_config_ds = 1; /* there must already be one */
- }
-
- if ((temp = ds_a_get_cgi_var("use_existing_user_ds", NULL, NULL))) {
- cf->use_existing_config_ds = atoi(temp);
- } else {
- cf->use_existing_user_ds = 0; /* we are creating it */
- }
+ if ((temp = ds_a_get_cgi_var("use_existing_config_ds", NULL, NULL))) {
+ cf->use_existing_config_ds = atoi(temp);
+ } else {
+ cf->use_existing_config_ds = 1; /* there must already be one */
+ }
+
+ if ((temp = ds_a_get_cgi_var("use_existing_user_ds", NULL, NULL))) {
+ cf->use_existing_config_ds = atoi(temp);
+ } else {
+ cf->use_existing_user_ds = 0; /* we are creating it */
+ }
temp = ds_a_get_cgi_var("ldap_url", NULL, NULL);
if (temp && !ldap_url_parse(temp, &desc) && desc)
- {
- char *suffix;
- int isSSL;
-
- if (desc->lud_dn && *desc->lud_dn) { /* use given DN for netscaperoot suffix */
- cf->netscaperoot = strdup(desc->lud_dn);
- suffix = cf->netscaperoot;
- } else { /* use the default */
- suffix = dn_normalize_convert(strdup(cf->netscaperoot));
- }
- /* the config ds connection may require SSL */
- isSSL = !strncmp(temp, "ldaps:", strlen("ldaps:"));
- cf->config_ldap_url = PR_smprintf("ldap%s://%s:%d/%s",
- (isSSL ? "s" : ""), desc->lud_host,
- desc->lud_port, suffix);
- ldap_free_urldesc(desc);
- }
+ {
+ char *suffix;
+ int isSSL;
+
+ if (desc->lud_dn && *desc->lud_dn) { /* use given DN for netscaperoot suffix */
+ cf->netscaperoot = strdup(desc->lud_dn);
+ suffix = cf->netscaperoot;
+ } else { /* use the default */
+ suffix = dn_normalize_convert(strdup(cf->netscaperoot));
+ }
+ /* the config ds connection may require SSL */
+ isSSL = !strncmp(temp, "ldaps:", strlen("ldaps:"));
+ cf->config_ldap_url = PR_smprintf("ldap%s://%s:%d/%s",
+ (isSSL ? "s" : ""), desc->lud_host,
+ desc->lud_port, suffix);
+ ldap_free_urldesc(desc);
+ }
/* if being called as a CGI, the user_ldap_url will be the directory
we're creating */
/* this is the directory we're creating, and we cannot create an ssl
directory, so we don't have to worry about ldap vs ldaps here */
- if ((temp = ds_a_get_cgi_var("user_ldap_url", NULL, NULL))) {
- cf->user_ldap_url = strdup(temp);
- } else {
- cf->user_ldap_url = PR_smprintf("ldap://%s:%s/%s", cf->servname,
- cf->servport, cf->suffix);
- }
+ if ((temp = ds_a_get_cgi_var("user_ldap_url", NULL, NULL))) {
+ cf->user_ldap_url = strdup(temp);
+ } else {
+ cf->user_ldap_url = PR_smprintf("ldap://%s:%s/%s", cf->servname,
+ cf->servport, cf->suffix);
+ }
cf->samplesuffix = NULL;
cf->disable_schema_checking = ds_a_get_cgi_var("disable_schema_checking",
- NULL, NULL);
+ NULL, NULL);
cf->adminport = ds_a_get_cgi_var("adminport", NULL, NULL);
cf->install_ldif_file = ds_a_get_cgi_var("install_ldif_file", NULL, NULL);
+ cf->localstatedir = set_path_attribute("localstatedir", LOCALSTATEDIR, prefix);
+ cf->sysconfdir = set_path_attribute("sysconfdir", SYSCONFDIR, prefix);
+ cf->bindir = set_path_attribute("bindir", BINDIR, prefix);
+ cf->datadir = set_path_attribute("datadir", DATADIR, prefix);
+ cf->docdir = set_path_attribute("docdir", DOCDIR, prefix);
+
+ temp = ds_a_get_cgi_var("inst_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->inst_dir = PR_smprintf("%s%c%s-%s",
+ cf->sroot, FILE_PATHSEP, PRODUCT_NAME, cf->servid);
+ } else {
+ cf->inst_dir = PL_strdup(temp);
+ }
+
+ temp = ds_a_get_cgi_var("config_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->config_dir = PR_smprintf("%s%clib%c%s-%s",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid);
+ } else {
+ cf->config_dir = PL_strdup(temp);
+ }
+ /* set config dir to the environment variable DS_CONFIG_DIR */
+ ds_set_config_dir(cf->config_dir);
+
+ cf->schema_dir = ds_a_get_cgi_var("schema_dir", NULL, NULL);
+ temp = ds_a_get_cgi_var("schema_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->schema_dir = PR_smprintf("%s%clib%c%s-%s%cschema",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid, FILE_PATHSEP);
+ } else {
+ cf->schema_dir = PL_strdup(temp);
+ }
+
+ temp = ds_a_get_cgi_var("lock_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->lock_dir = PR_smprintf("%s%clock%c%s-%s",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid);
+ } else {
+ cf->lock_dir = PL_strdup(temp);
+ }
+
+ temp = ds_a_get_cgi_var("log_dir", NULL, NULL);
+ if (NULL == temp) {
+#if 0
+ cf->log_dir = PR_smprintf("%s%clog%c%s-%s",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid);
+#else /* will go away */
+ cf->log_dir = PR_smprintf("%s%clogs",
+ cf->inst_dir, FILE_PATHSEP);
+#endif
+ } else {
+ cf->log_dir = PL_strdup(temp);
+ }
+
+ temp = ds_a_get_cgi_var("run_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->run_dir = PR_smprintf("%s%crun%c%s-%s",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid);
+ } else {
+ cf->run_dir = PL_strdup(temp);
+ }
+ /* set run dir to the environment variable DS_RUN_DIR */
+ ds_set_run_dir(cf->run_dir);
+
+ temp = ds_a_get_cgi_var("db_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->db_dir = PR_smprintf("%s%clib%c%s-%s%cdb",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid, FILE_PATHSEP);
+ } else {
+ cf->db_dir = PL_strdup(temp);
+ }
+
+ temp = ds_a_get_cgi_var("bak_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->bak_dir = PR_smprintf("%s%clib%c%s-%s%cbak",
+ cf->localstatedir, FILE_PATHSEP, FILE_PATHSEP,
+ PRODUCT_NAME, cf->servid, FILE_PATHSEP);
+ } else {
+ cf->bak_dir = PL_strdup(temp);
+ }
+
+ temp = ds_a_get_cgi_var("ldif_dir", NULL, NULL);
+ if (NULL == temp) {
+ cf->ldif_dir = PR_smprintf("%s%c%s%cldif",
+ cf->datadir, FILE_PATHSEP, BRAND_DS, FILE_PATHSEP);
+ } else {
+ cf->ldif_dir = PL_strdup(temp);
+ }
+
return 0;
}
Index: create_instance.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- create_instance.h 14 Mar 2006 17:13:38 -0000 1.6
+++ create_instance.h 27 Sep 2006 23:40:50 -0000 1.7
@@ -49,31 +49,46 @@
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
+#define BRAND_DS "fedora-ds"
+#define DS_CONFIG_DIR "DS_CONFIG_DIR"
+#define DS_CONFIG_FILE "dse.ldif"
#ifdef XP_UNIX
-#define PRODUCT_NAME "slapd"
-
-#define PRODUCT_BIN "ns-slapd"
-
+#define PRODUCT_NAME "slapd"
+#define PRODUCT_BIN "ns-slapd"
#endif
+#define LOCALSTATEDIR "/var"
+#define SYSCONFDIR "/etc"
+#define BINDIR "/bin"
+#define DATADIR "/share"
+#define DOCDIR "/usr/doc"
+
typedef struct {
- char *sroot;
+ char *sroot; /* _libdir */
+ char *localstatedir;
+ char *sysconfdir;
+ char *bindir;
+ char *datadir;
+ char *docdir;
+
+ char *brand_ds;
+ char *lang;
char *servname;
char *bindaddr;
char *servport;
- char *suitespot3x_uid;
- char *cfg_sspt;
- char *cfg_sspt_uid;
- char *cfg_sspt_uidpw;
+ char *suitespot3x_uid;
+ char *cfg_sspt;
+ char *cfg_sspt_uid;
+ char *cfg_sspt_uidpw;
char *secserv;
char *secservport;
char *ntsynch;
char *ntsynchssl;
char *ntsynchport;
char *rootdn;
- char *rootpw;
+ char *rootpw;
char *roothashedpw;
char *replicationdn;
char *replicationpw;
@@ -84,10 +99,10 @@
char *changelogdir;
char *changelogsuffix;
char *suffix;
- char *loglevel;
- char *netscaperoot;
- char *samplesuffix;
- char *testconfig;
+ char *loglevel;
+ char *netscaperoot;
+ char *samplesuffix;
+ char *testconfig;
char *servid;
#ifdef XP_UNIX
char *servuser;
@@ -97,16 +112,26 @@
char *maxthreads;
int upgradingServer;
- char * start_server;
+ char * start_server;
- char * admin_domain;
- char * config_ldap_url;
- char * user_ldap_url;
- int use_existing_user_ds;
- int use_existing_config_ds;
- char * disable_schema_checking;
- char * install_ldif_file;
- char *adminport;
+ char * admin_domain;
+ char * config_ldap_url;
+ char * user_ldap_url;
+ int use_existing_user_ds;
+ int use_existing_config_ds;
+ char * disable_schema_checking;
+ char * install_ldif_file;
+ char *adminport;
+ char *inst_dir;
+ char *config_dir;
+ char *schema_dir;
+ char *lock_dir;
+ char *log_dir;
+ char *run_dir;
+ char *db_dir;
+ char *bak_dir;
+ char *ldif_dir;
+ char *prefix;
} server_config_s;
Index: ds_newinst.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/ds_newinst.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ds_newinst.c 2 Sep 2005 20:40:48 -0000 1.4
+++ ds_newinst.c 27 Sep 2006 23:40:50 -0000 1.5
@@ -145,6 +145,7 @@
#if defined( hpux )
_exit(status);
+#else
+ exit(status);
#endif
- return status;
}
Index: ds_newinst.pl
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/ds_newinst.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ds_newinst.pl 15 Sep 2006 14:59:47 -0000 1.7
+++ ds_newinst.pl 27 Sep 2006 23:40:50 -0000 1.8
@@ -213,6 +213,10 @@
$cgiargs{user_ldap_url} = $cgiargs{ldap_url};
}
+if ($table{General}->{prefix}) {
+ $cgiargs{prefix} = $table{General}->{prefix};
+}
+
# populate the DS with this file - the suffix in this file must
# be the suffix specified in the suffix argument above
# the filename should use the full absolute path
Index: makemccvlvindexes
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/makemccvlvindexes,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- makemccvlvindexes 21 Oct 2005 19:21:10 -0000 1.5
+++ makemccvlvindexes 27 Sep 2006 23:40:50 -0000 1.6
@@ -235,9 +235,9 @@
print "\n";
print "$#vlvnames VLV indices have been declared. Execute the following commands to build the index files.\n";
print "\n";
- print "<instance-dir>\\stop\n";
- print "slapd db2index -f <instance-dir>\\config\\slapd.conf -V @vlvnames\n";
- print "<instance-dir>\\start\n";
+ print "<config-dir>\\stop\n";
+ print "slapd db2index -f <config-dir> -V @vlvnames\n";
+ print "<config-dir>\\start\n";
}
17 years, 7 months
[Fedora-directory-commits] ldapserver/ldap/admin/lib dsalib_conf.c, 1.5, 1.6 dsalib_location.c, 1.6, 1.7 dsalib_updown.c, 1.6, 1.7
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/admin/lib
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/admin/lib
Modified Files:
dsalib_conf.c dsalib_location.c dsalib_updown.c
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: dsalib_conf.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/lib/dsalib_conf.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- dsalib_conf.c 19 Apr 2005 22:06:54 -0000 1.5
+++ dsalib_conf.c 27 Sep 2006 23:40:44 -0000 1.6
@@ -51,7 +51,7 @@
#include "nspr.h"
-#define CONF_FILE_NAME "config/dse.ldif"
+#define CONF_FILE_NAME "dse.ldif"
#define CONF_SUFFIX "cn=config"
DS_EXPORT_SYMBOL char *
@@ -69,7 +69,7 @@
ds_get_config(int type)
{
char conffile[PATH_MAX];
- char *root;
+ char *configdir;
FILE *sf = NULL;
char **conf_list = NULL;
@@ -78,12 +78,12 @@
return(NULL);
}
- if ( (root = ds_get_install_root()) == NULL ) {
- ds_send_error("Cannot find server root directory.", 0);
+ if ( (configdir = ds_get_config_dir()) == NULL ) {
+ ds_send_error("Cannot find configuration directory.", 0);
return(NULL);
}
- PR_snprintf(conffile, PATH_MAX, "%s/%s", root, CONF_FILE_NAME);
+ PR_snprintf(conffile, PATH_MAX, "%s/%s", configdir, CONF_FILE_NAME);
if ( !(sf = fopen(conffile, "r")) ) {
ds_send_error("could not read config file.", 1);
Index: dsalib_location.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/lib/dsalib_location.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dsalib_location.c 19 Apr 2005 22:06:54 -0000 1.6
+++ dsalib_location.c 27 Sep 2006 23:40:44 -0000 1.7
@@ -58,11 +58,11 @@
if ( (root = getenv("NETSITE_ROOT")) == NULL )
return(NULL);
- /* WIN32: Needed to take care of embedded space, */
- /* otherwise system() call fails */
- root = ds_makeshort( root );
+ /* WIN32: Needed to take care of embedded space, */
+ /* otherwise system() call fails */
+ root = ds_makeshort( root );
- return root;
+ return root;
}
/*
@@ -87,6 +87,52 @@
}
/*
+ * Returns the config file location of the server. Info is
+ * returned in a static area. The caller must copy it
+ * for reuse if needed.
+ */
+DS_EXPORT_SYMBOL char *
+ds_get_config_dir()
+{
+ return getenv("DS_CONFIG_DIR");
+}
+
+/*
+ * set config_dir to environment variable DS_CONFIG_DIR
+ * to retrieve the value using ds_get_config_dir later.
+ */
+DS_EXPORT_SYMBOL void
+ds_set_config_dir(char *config_dir)
+{
+ static char env[PATH_MAX];
+ PR_snprintf(env, sizeof(env), "DS_CONFIG_DIR=%s", config_dir);
+ putenv(env);
+}
+
+/*
+ * Returns the run dir of the server, where pid files are put.
+ * Info is returned in a static area. The caller must copy it
+ * for reuse if needed.
+ */
+DS_EXPORT_SYMBOL char *
+ds_get_run_dir()
+{
+ return getenv("DS_RUN_DIR");
+}
+
+/*
+ * set run_dir to environment variable DS_RUN_DIR
+ * to retrieve the value using ds_get_run_dir later.
+ */
+DS_EXPORT_SYMBOL void
+ds_set_run_dir(char *run_dir)
+{
+ static char env[PATH_MAX];
+ PR_snprintf(env, sizeof(env), "DS_RUN_DIR=%s", run_dir);
+ putenv(env);
+}
+
+/*
* Returns the install location of the server under the admserv
* directory.
*/
@@ -109,50 +155,50 @@
ds_get_server_name()
{
if( getenv("SERVER_NAMES") )
- return( getenv("SERVER_NAMES") );
- else {
- static char logfile[PATH_MAX];
- char *buf;
- char *out = logfile;
- buf = getenv("SCRIPT_NAME");
- if ( buf && (*buf == '/') )
- buf++;
- while ( *buf && (*buf != '/') ) {
- *out++ = *buf++;
- }
- *out = 0;
- return logfile;
- }
+ return( getenv("SERVER_NAMES") );
+ else {
+ static char logfile[PATH_MAX];
+ char *buf;
+ char *out = logfile;
+ buf = getenv("SCRIPT_NAME");
+ if ( buf && (*buf == '/') )
+ buf++;
+ while ( *buf && (*buf != '/') ) {
+ *out++ = *buf++;
+ }
+ *out = 0;
+ return logfile;
+ }
}
DS_EXPORT_SYMBOL char *
ds_get_logfile_name(int config_type)
{
char *filename;
- char **ds_config = NULL;
+ char **ds_config = NULL;
static char logfile[PATH_MAX+1];
if ( (ds_config = ds_get_config(DS_REAL_CONFIG)) == NULL ) {
- /* For DS 4.0, no error output if file doesn't exist - that's
- a normal situation */
- /* ds_send_error("ds_get_config(DS_REAL_CONFIG) == NULL", 0); */
+ /* For DS 4.0, no error output if file doesn't exist - that's
+ a normal situation */
+ /* ds_send_error("ds_get_config(DS_REAL_CONFIG) == NULL", 0); */
return(NULL);
}
filename = ds_get_value(ds_config, ds_get_var_name(config_type), 0, 1);
if ( filename == NULL ) {
- /* For DS 4.0, no error output if file doesn't exist - that's
- a normal situation */
- /* ds_send_error("ds_get_logfile_name: filename == NULL", 0); */
+ /* For DS 4.0, no error output if file doesn't exist - that's
+ a normal situation */
+ /* ds_send_error("ds_get_logfile_name: filename == NULL", 0); */
return(NULL);
}
if ( ((int) strlen(filename)) >= PATH_MAX ) {
- ds_send_error("ds_get_logfile_name: filename too long", 0);
- free(filename);
+ ds_send_error("ds_get_logfile_name: filename too long", 0);
+ free(filename);
return(NULL);
}
PL_strncpyz(logfile, filename, sizeof(logfile));
- free(filename);
+ free(filename);
return(logfile);
}
Index: dsalib_updown.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/lib/dsalib_updown.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dsalib_updown.c 19 Apr 2005 22:06:54 -0000 1.6
+++ dsalib_updown.c 27 Sep 2006 23:40:44 -0000 1.7
@@ -80,44 +80,44 @@
DS_EXPORT_SYMBOL int
ds_get_updown_status()
{
- char pid_file_name[BIG_LINE];
- char *root;
- FILE *pidfile;
- int ipid = -1;
- int status = 0;
+ char pid_file_name[BIG_LINE];
+ char *rundir;
+ FILE *pidfile;
+ int ipid = -1;
+ int status = 0;
- if ( (root = ds_get_install_root()) == NULL ) {
- fprintf(stderr, "ds_get_updown_status: could not get install root\n");
+ if ( (rundir = ds_get_run_dir()) == NULL ) {
+ fprintf(stderr, "ds_get_updown_status: could not get install root\n");
return(DS_SERVER_UNKNOWN);
- }
- PR_snprintf(pid_file_name, BIG_LINE, "%s/logs/pid", root);
+ }
+ PR_snprintf(pid_file_name, BIG_LINE, "%s/pid", rundir);
pidfile = fopen(pid_file_name, "r");
if ( pidfile == NULL ) {
-/*
- fprintf(stderr,
- "ds_get_updown_status: could not open pid file=%s errno=%d\n",
- pid_file_name, errno);
+/*
+ fprintf(stderr,
+ "ds_get_updown_status: could not open pid file=%s errno=%d\n",
+ pid_file_name, errno);
*/
return(DS_SERVER_DOWN);
- }
- status = fscanf(pidfile, "%d\n", &ipid);
- fclose(pidfile);
+ }
+ status = fscanf(pidfile, "%d\n", &ipid);
+ fclose(pidfile);
if ( status == -1 ) {
- fprintf(stderr,
- "ds_get_updown_status: pidfile=%s server_pid=%d errno=%d\n",
- pid_file_name, ipid, errno);
+ fprintf(stderr,
+ "ds_get_updown_status: pidfile=%s server_pid=%d errno=%d\n",
+ pid_file_name, ipid, errno);
unlink(pid_file_name); /* junk in file? */
return(DS_SERVER_DOWN);
}
server_pid = (pid_t) ipid;
if ( (status = kill(server_pid, 0)) != 0 && errno != EPERM ) {
- /* we should get ESRCH if the server is down, anything else may be
- a real problem */
- if (errno != ESRCH) {
- fprintf(stderr,
- "ds_get_updown_status: pidfile=%s server_pid=%d status=%d errno=%d\n",
- pid_file_name, server_pid, status, errno);
- }
+ /* we should get ESRCH if the server is down, anything else may be
+ a real problem */
+ if (errno != ESRCH) {
+ fprintf(stderr,
+ "ds_get_updown_status: pidfile=%s server_pid=%d status=%d errno=%d\n",
+ pid_file_name, server_pid, status, errno);
+ }
unlink(pid_file_name); /* pid does not exist! */
return(DS_SERVER_DOWN);
}
@@ -127,12 +127,12 @@
DS_EXPORT_SYMBOL int
ds_get_updown_status()
{
- char *ds_name = ds_get_server_name();
+ char *ds_name = ds_get_server_name();
HANDLE hServerDoneEvent = NULL;
/* watchdog.c creates a global event of this same name */
if((hServerDoneEvent = OpenEvent(EVENT_ALL_ACCESS, TRUE, ds_name)) != NULL)
- {
+ {
CloseHandle(hServerDoneEvent);
return(DS_SERVER_UP);
}
@@ -154,17 +154,17 @@
ds_bring_up_server_install(int verbose, char *root, char *errorlog)
{
#if !defined( XP_WIN32 )
- char startup_line[BIG_LINE];
- char statfile[PATH_MAX];
- char *tmp_dir;
+ char startup_line[BIG_LINE];
+ char statfile[PATH_MAX];
+ char *tmp_dir;
#endif
int error = -1;
- int status = DS_SERVER_DOWN;
- int cur_size = 0;
- FILE *sf = NULL;
- char msgBuf[BIG_LINE] = {0};
- int secondsToWaitForServer = 600;
- char *serverStartupString = "slapd started.";
+ int status = DS_SERVER_DOWN;
+ int cur_size = 0;
+ FILE *sf = NULL;
+ char msgBuf[BIG_LINE] = {0};
+ int secondsToWaitForServer = 600;
+ char *serverStartupString = "slapd started.";
status = ds_get_updown_status();
if ( status == DS_SERVER_UP )
@@ -173,116 +173,116 @@
return(DS_SERVER_UNKNOWN);
if (verbose) {
- ds_send_status("starting up server ...");
- cur_size = ds_get_file_size(errorlog);
- }
+ ds_send_status("starting up server ...");
+ cur_size = ds_get_file_size(errorlog);
+ }
#if !defined( XP_WIN32 )
tmp_dir = ds_get_tmp_dir();
PR_snprintf(statfile, PATH_MAX, "%s%cstartup.%d", tmp_dir, FILE_SEP, (int)getpid());
PR_snprintf(startup_line, BIG_LINE, "%s%c%s > %s 2>&1",
- root, FILE_SEP, START_SCRIPT, statfile);
+ root, FILE_SEP, START_SCRIPT, statfile);
alter_startup_line(startup_line);
error = system(startup_line);
if (error == -1)
- error = DS_SERVER_DOWN; /* could not start server */
+ error = DS_SERVER_DOWN; /* could not start server */
else
- error = DS_SERVER_UP; /* started server */
+ error = DS_SERVER_UP; /* started server */
#else
error = StartServer();
#endif
- if (error != DS_SERVER_UP)
- {
+ if (error != DS_SERVER_UP)
+ {
#if !defined( XP_WIN32 )
- FILE* fp = fopen(statfile, "r");
- if (fp)
- {
- while(fgets(msgBuf, BIG_LINE, fp))
- ds_send_status(msgBuf);
- fclose(fp);
- }
+ FILE* fp = fopen(statfile, "r");
+ if (fp)
+ {
+ while(fgets(msgBuf, BIG_LINE, fp))
+ ds_send_status(msgBuf);
+ fclose(fp);
+ }
#endif
- return DS_SERVER_COULD_NOT_START;
- }
+ return DS_SERVER_COULD_NOT_START;
+ }
if (verbose)
{
- /*
- * Stop in N secs or whenever the startup message comes up.
- * Do whichever happens first. msgBuf will contain the last
- * line read from the errorlog.
- */
- ds_display_tail(errorlog, secondsToWaitForServer, cur_size,
- serverStartupString, msgBuf);
+ /*
+ * Stop in N secs or whenever the startup message comes up.
+ * Do whichever happens first. msgBuf will contain the last
+ * line read from the errorlog.
+ */
+ ds_display_tail(errorlog, secondsToWaitForServer, cur_size,
+ serverStartupString, msgBuf);
}
if ( error != DS_SERVER_UP ) {
- int retval = DS_SERVER_UNKNOWN;
- if (strstr(msgBuf, "semget"))
- retval = DS_SERVER_MAX_SEMAPHORES;
- else if (strstr(msgBuf, "Back-End Initialization Failed"))
- retval = DS_SERVER_CORRUPTED_DB;
- else if (strstr(msgBuf, "not initialized... exiting"))
- retval = DS_SERVER_CORRUPTED_DB;
- else if (strstr(msgBuf, "address is in use"))
- retval = DS_SERVER_PORT_IN_USE;
+ int retval = DS_SERVER_UNKNOWN;
+ if (strstr(msgBuf, "semget"))
+ retval = DS_SERVER_MAX_SEMAPHORES;
+ else if (strstr(msgBuf, "Back-End Initialization Failed"))
+ retval = DS_SERVER_CORRUPTED_DB;
+ else if (strstr(msgBuf, "not initialized... exiting"))
+ retval = DS_SERVER_CORRUPTED_DB;
+ else if (strstr(msgBuf, "address is in use"))
+ retval = DS_SERVER_PORT_IN_USE;
#if defined( XP_WIN32 )
- /* on NT, if we run out of resources, there will not even be an error
- log
- */
- else if (msgBuf[0] == 0) {
- retval = DS_SERVER_NO_RESOURCES;
- }
-#endif
- if (verbose)
- ds_send_error("error in starting server.", 1);
- return(retval);
+ /* on NT, if we run out of resources, there will not even be an error
+ log
+ */
+ else if (msgBuf[0] == 0) {
+ retval = DS_SERVER_NO_RESOURCES;
+ }
+#endif
+ if (verbose)
+ ds_send_error("error in starting server.", 1);
+ return(retval);
}
if (verbose) {
#if !defined( XP_WIN32 )
- if( !(sf = fopen(statfile, "r")) ) {
- ds_send_error("could not read status file.", 1);
- return(DS_SERVER_UNKNOWN);
- }
-
- while ( fgets(startup_line, BIG_LINE, sf) )
- ds_send_error(startup_line, 0);
- fclose(sf);
- unlink(statfile);
-#endif
- status = DS_SERVER_UNKNOWN;
- if (strstr(msgBuf, "semget"))
- status = DS_SERVER_MAX_SEMAPHORES;
- else if (strstr(msgBuf, "Back-End Initialization Failed"))
- status = DS_SERVER_CORRUPTED_DB;
- else if (strstr(msgBuf, "not initialized... exiting"))
- status = DS_SERVER_CORRUPTED_DB;
- else if (strstr(msgBuf, "address is in use"))
- status = DS_SERVER_PORT_IN_USE;
+ if( !(sf = fopen(statfile, "r")) ) {
+ ds_send_error("could not read status file.", 1);
+ return(DS_SERVER_UNKNOWN);
+ }
+
+ while ( fgets(startup_line, BIG_LINE, sf) )
+ ds_send_error(startup_line, 0);
+ fclose(sf);
+ unlink(statfile);
+#endif
+ status = DS_SERVER_UNKNOWN;
+ if (strstr(msgBuf, "semget"))
+ status = DS_SERVER_MAX_SEMAPHORES;
+ else if (strstr(msgBuf, "Back-End Initialization Failed"))
+ status = DS_SERVER_CORRUPTED_DB;
+ else if (strstr(msgBuf, "not initialized... exiting"))
+ status = DS_SERVER_CORRUPTED_DB;
+ else if (strstr(msgBuf, "address is in use"))
+ status = DS_SERVER_PORT_IN_USE;
#if defined( XP_WIN32 )
- /* on NT, if we run out of resources, there will not even be an error
- log
- */
- else if (msgBuf[0] == 0) {
- status = DS_SERVER_NO_RESOURCES;
- }
+ /* on NT, if we run out of resources, there will not even be an error
+ log
+ */
+ else if (msgBuf[0] == 0) {
+ status = DS_SERVER_NO_RESOURCES;
+ }
#endif
} else {
- int tries;
- for (tries = 0; tries < secondsToWaitForServer; tries++) {
- if (ds_get_updown_status() == DS_SERVER_UP) break;
- PR_Sleep(PR_SecondsToInterval(1));
- }
- if (verbose) {
- char str[100];
- PR_snprintf(str, sizeof(str), "Had to retry %d times", tries);
- ds_send_status(str);
- }
+ int tries;
+ for (tries = 0; tries < secondsToWaitForServer; tries++) {
+ if (ds_get_updown_status() == DS_SERVER_UP) break;
+ PR_Sleep(PR_SecondsToInterval(1));
+ }
+ if (verbose) {
+ char str[100];
+ PR_snprintf(str, sizeof(str), "Had to retry %d times", tries);
+ ds_send_status(str);
+ }
}
if ( (status == DS_SERVER_DOWN) || (status == DS_SERVER_UNKNOWN) )
- status = ds_get_updown_status();
+ status = ds_get_updown_status();
return(status);
}
@@ -300,8 +300,8 @@
ds_bring_up_server(int verbose)
{
char *root;
- int status;
- char *errorlog;
+ int status;
+ char *errorlog;
status = ds_get_updown_status();
if ( status == DS_SERVER_UP )
return(DS_SERVER_ALREADY_UP);
@@ -310,66 +310,66 @@
errorlog = ds_get_config_value(DS_ERRORLOG);
if ( errorlog == NULL ) {
- errorlog = ds_get_errors_name(); /* fallback */
+ errorlog = ds_get_errors_name(); /* fallback */
}
- return ds_bring_up_server_install(verbose, root, errorlog);
+ return ds_bring_up_server_install(verbose, root, errorlog);
}
DS_EXPORT_SYMBOL int
ds_bring_down_server()
{
char *root;
- int status;
- int cur_size;
+ int status;
+ int cur_size;
char *errorlog;
- status = ds_get_updown_status(); /* set server_pid too! */
+ status = ds_get_updown_status(); /* set server_pid too! */
if ( status != DS_SERVER_UP ) {
- ds_send_error("The server is not up.", 0);
+ ds_send_error("The server is not up.", 0);
return(DS_SERVER_ALREADY_DOWN);
}
if ( (root = ds_get_install_root()) == NULL ) {
- ds_send_error("Could not get the server root directory.", 0);
+ ds_send_error("Could not get the server root directory.", 0);
return(DS_SERVER_UNKNOWN);
}
ds_send_status("shutting down server ...");
if (!(errorlog = ds_get_errors_name())) {
- ds_send_error("Could not get the error log filename.", 0);
- return DS_SERVER_UNKNOWN;
+ ds_send_error("Could not get the error log filename.", 0);
+ return DS_SERVER_UNKNOWN;
}
cur_size = ds_get_file_size(errorlog);
#if !defined( XP_WIN32 )
if ( (kill(server_pid, SIGTERM)) != 0) {
- if (errno == EPERM) {
- ds_send_error("Not permitted to kill server.", 0);
- fprintf (stdout, "[%s]: kill (%li, SIGTERM) failed with errno = EPERM.<br>\n",
- ds_get_server_name(), (long)server_pid);
- } else {
- ds_send_error("error in killing server.", 1);
- }
+ if (errno == EPERM) {
+ ds_send_error("Not permitted to kill server.", 0);
+ fprintf (stdout, "[%s]: kill (%li, SIGTERM) failed with errno = EPERM.<br>\n",
+ ds_get_server_name(), (long)server_pid);
+ } else {
+ ds_send_error("error in killing server.", 1);
+ }
return(DS_SERVER_UNKNOWN);
}
#else
if( StopServer() == DS_SERVER_DOWN )
- {
- ds_send_status("shutdown: server shut down");
- }
- else
- {
+ {
+ ds_send_status("shutdown: server shut down");
+ }
+ else
+ {
ds_send_error("error in killing server.", 1);
return(DS_SERVER_UNKNOWN);
- }
+ }
#endif
/*
* Wait up to SERVER_STOP_TIMEOUT seconds for the stopped message to
- * appear in the error log.
+ * appear in the error log.
*/
ds_display_tail(errorlog, SERVER_STOP_TIMEOUT, cur_size, "slapd stopped.", NULL);
/* in some cases, the server will tell us it's down when it's really not,
so give the OS a chance to remove it from the process table */
- PR_Sleep(PR_SecondsToInterval(1));
+ PR_Sleep(PR_SecondsToInterval(1));
return(ds_get_updown_status());
}
@@ -379,32 +379,32 @@
IsService()
{
#if 0
- CHAR ServerKey[512], *ValueString;
- HKEY hServerKey;
- DWORD dwType, ValueLength, Result;
-
- PR_snprintf(ServerKey,sizeof(ServerKey), "%s\\%s", COMPANY_KEY, PRODUCT_KEY);
-
- Result = RegOpenKey(HKEY_LOCAL_MACHINE, ServerKey, &hServerKey);
- if (Result != ERROR_SUCCESS) {
- return TRUE;
- }
- ValueLength = 512;
- ValueString = (PCHAR)malloc(ValueLength);
-
- Result = RegQueryValueEx(hServerKey, IS_SERVICE_KEY, NULL,
- &dwType, ValueString, &ValueLength);
- if (Result != ERROR_SUCCESS) {
- return TRUE;
- }
- if (strcmp(ValueString, "yes")) {
- return FALSE;
- }
- else {
- return TRUE;
- }
+ CHAR ServerKey[512], *ValueString;
+ HKEY hServerKey;
+ DWORD dwType, ValueLength, Result;
+
+ PR_snprintf(ServerKey,sizeof(ServerKey), "%s\\%s", COMPANY_KEY, PRODUCT_KEY);
+
+ Result = RegOpenKey(HKEY_LOCAL_MACHINE, ServerKey, &hServerKey);
+ if (Result != ERROR_SUCCESS) {
+ return TRUE;
+ }
+ ValueLength = 512;
+ ValueString = (PCHAR)malloc(ValueLength);
+
+ Result = RegQueryValueEx(hServerKey, IS_SERVICE_KEY, NULL,
+ &dwType, ValueString, &ValueLength);
+ if (Result != ERROR_SUCCESS) {
+ return TRUE;
+ }
+ if (strcmp(ValueString, "yes")) {
+ return FALSE;
+ }
+ else {
+ return TRUE;
+ }
#else
- return TRUE;
+ return TRUE;
#endif
}
@@ -412,29 +412,29 @@
NSAPI_PUBLIC BOOLEAN
IsAdminService()
{
- CHAR AdminKey[512], *ValueString;
- HKEY hAdminKey;
- DWORD dwType, ValueLength, Result;
-
- PR_snprintf(AdminKey,sizeof(AdminKey), "%s\\%s", COMPANY_KEY, ADMIN_REGISTRY_ROOT_KEY);
-
- Result = RegOpenKey(HKEY_LOCAL_MACHINE, AdminKey, &hAdminKey);
- if (Result != ERROR_SUCCESS) {
- return TRUE;
- }
- ValueLength = 512;
- ValueString = (PCHAR)malloc(ValueLength);
-
- Result = RegQueryValueEx(hAdminKey, IS_SERVICE_KEY, NULL,
- &dwType, ValueString, &ValueLength);
- if (Result != ERROR_SUCCESS) {
- return TRUE;
- }
- if (strcmp(ValueString, "yes")) {
- return FALSE;
- } else {
- return TRUE;
- }
+ CHAR AdminKey[512], *ValueString;
+ HKEY hAdminKey;
+ DWORD dwType, ValueLength, Result;
+
+ PR_snprintf(AdminKey,sizeof(AdminKey), "%s\\%s", COMPANY_KEY, ADMIN_REGISTRY_ROOT_KEY);
+
+ Result = RegOpenKey(HKEY_LOCAL_MACHINE, AdminKey, &hAdminKey);
+ if (Result != ERROR_SUCCESS) {
+ return TRUE;
+ }
+ ValueLength = 512;
+ ValueString = (PCHAR)malloc(ValueLength);
+
+ Result = RegQueryValueEx(hAdminKey, IS_SERVICE_KEY, NULL,
+ &dwType, ValueString, &ValueLength);
+ if (Result != ERROR_SUCCESS) {
+ return TRUE;
+ }
+ if (strcmp(ValueString, "yes")) {
+ return FALSE;
+ } else {
+ return TRUE;
+ }
}
#endif
@@ -453,7 +453,7 @@
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
))) {
- PR_snprintf(ErrorString, sizeof(ErrorString),
+ PR_snprintf(ErrorString, sizeof(ErrorString),
"Error: Could not open the ServiceControlManager:%d "
"Please restart the server %s from the Services Program Item "
"in the Control Panel", ds_get_server_name(), GetLastError());
@@ -519,7 +519,7 @@
"Error: Could not open the ServiceControlManager:%d "
"Please restart the server %s from the Services Program Item "
"in the Control Panel", ds_get_server_name(), GetLastError());
- ds_send_error(ErrorString, 0);
+ ds_send_error(ErrorString, 0);
return(DS_SERVER_UNKNOWN);
}
return(StopNetscapeService());
@@ -534,9 +534,9 @@
char line[BIG_LINE], cmd[BIG_LINE];
char *tmp = ds_get_install_root();
- CHAR ErrorString[512];
- STARTUPINFO siStartInfo;
- PROCESS_INFORMATION piProcInfo;
+ CHAR ErrorString[512];
+ STARTUPINFO siStartInfo;
+ PROCESS_INFORMATION piProcInfo;
FILE *CmdFile;
ZeroMemory(line, sizeof(line));
@@ -545,7 +545,7 @@
CmdFile = fopen(line, "r");
if (!CmdFile)
- {
+ {
PR_snprintf(ErrorString, sizeof(ErrorString), "Error:Tried to start server %s "
": Could not open the startup script %s :Error %d. Please "
"run startsrv.bat from the server's root directory.",
@@ -556,7 +556,7 @@
ZeroMemory(cmd, sizeof(cmd));
if (!fread(cmd, 1, BIG_LINE, CmdFile))
- {
+ {
PR_snprintf(ErrorString, sizeof(ErrorString), "Error:Tried to start server %s "
": Could not read the startup script %s :Error %d. Please "
"run startsrv.bat from the server's root directory.",
@@ -565,25 +565,25 @@
return(DS_SERVER_DOWN);
}
- ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));
- siStartInfo.cb = sizeof(STARTUPINFO);
- siStartInfo.lpReserved = siStartInfo.lpReserved2 = NULL;
- siStartInfo.cbReserved2 = 0;
- siStartInfo.lpDesktop = NULL;
-
- if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE,
- 0, NULL, NULL, &siStartInfo, &piProcInfo))
- {
+ ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));
+ siStartInfo.cb = sizeof(STARTUPINFO);
+ siStartInfo.lpReserved = siStartInfo.lpReserved2 = NULL;
+ siStartInfo.cbReserved2 = 0;
+ siStartInfo.lpDesktop = NULL;
+
+ if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE,
+ 0, NULL, NULL, &siStartInfo, &piProcInfo))
+ {
PR_snprintf(ErrorString, sizeof(ErrorString), "Error:Tried to start server %s "
": Could not start up the startup script %s :Error %d. Please "
"run startsrv.bat from the server's root directory.",
ds_get_server_name(), line, GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_DOWN);
- }
+ }
- CloseHandle(piProcInfo.hProcess);
- CloseHandle(piProcInfo.hThread);
+ CloseHandle(piProcInfo.hProcess);
+ CloseHandle(piProcInfo.hThread);
return(DS_SERVER_UP);
}
@@ -596,7 +596,7 @@
hEvent = CreateEvent(NULL, TRUE, FALSE, servid);
if(!SetEvent(hEvent))
- {
+ {
PR_snprintf(ErrorString, sizeof(ErrorString), "Tried to stop existing server %s"
": Could not signal it to stop :Error %d",
servid, GetLastError());
@@ -619,7 +619,7 @@
schService = OpenService(schSCManager, serviceName, SERVICE_ALL_ACCESS);
if (schService == NULL)
- {
+ {
PR_snprintf(ErrorString, sizeof(ErrorString), "Tried to open service"
" %s: Error %d (%s). Please"
" stop the server from the Services Item in the Control Panel",
@@ -644,7 +644,7 @@
return(DS_SERVER_DOWN);
}
else if (Error != ERROR_SERVICE_NOT_ACTIVE)
- {
+ {
PR_snprintf(ErrorString, sizeof(ErrorString), "Tried to stop service"
" %s: Error %d (%s)."
" Please stop the server from the Services Item in the"
@@ -668,7 +668,7 @@
serviceName, // name of service
SERVICE_ALL_ACCESS);
if (schService == NULL)
- {
+ {
CloseServiceHandle(schService);
PR_snprintf(ErrorString, sizeof(ErrorString),"Tried to start"
" the service %s: Error %d. Please"
@@ -679,7 +679,7 @@
}
if (!StartService(schService, 0, NULL))
- {
+ {
CloseServiceHandle(schService);
PR_snprintf(ErrorString, sizeof(ErrorString), "StartService:Could not start "
"the Directory service %s: Error %d. Please restart the server "
@@ -703,7 +703,7 @@
RETRY:
- newServiceName = PR_smprintf("NS_%s", serviceName);
+ newServiceName = PR_smprintf("NS_%s", serviceName);
hServDoneSemaphore = CreateSemaphore(
NULL, // security attributes
17 years, 7 months
[Fedora-directory-commits] ldapserver/ldap/admin/include dsalib.h, 1.5, 1.6
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/admin/include
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16463/ldap/admin/include
Modified Files:
dsalib.h
Log Message:
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Index: dsalib.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/include/dsalib.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- dsalib.h 19 Apr 2005 22:06:53 -0000 1.5
+++ dsalib.h 27 Sep 2006 23:40:43 -0000 1.6
@@ -318,6 +318,10 @@
extern DS_EXPORT_SYMBOL int ds_get_bemonitor(char *bemdn, char *port);
extern DS_EXPORT_SYMBOL int ds_client_access(char *port, char *dn);
extern DS_EXPORT_SYMBOL char **ds_get_config(int type);
+extern DS_EXPORT_SYMBOL char *ds_get_config_dir();
+extern DS_EXPORT_SYMBOL void ds_set_config_dir(char *config_dir);
+extern DS_EXPORT_SYMBOL char *ds_get_run_dir();
+extern DS_EXPORT_SYMBOL void ds_set_run_dir(char *run_dir);
extern DS_EXPORT_SYMBOL char *ds_get_pwenc(char *passwd_hash, char *password);
extern DS_EXPORT_SYMBOL int ds_check_config(int type);
extern DS_EXPORT_SYMBOL int ds_check_pw(char *pwhash, char *pwclear);
17 years, 7 months
[Fedora-directory-commits] esc/src/app/xul/esc/chrome/content/esc MineOverlay.xul, NONE, 1.1 certManager.xul, NONE, 1.1
by Doctor Conrad
Author: jmagne
Update of /cvs/dirsec/esc/src/app/xul/esc/chrome/content/esc
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27586
Added Files:
MineOverlay.xul certManager.xul
Log Message:
Initial revision.
--- NEW FILE MineOverlay.xul ---
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is mozilla.org code.
-
- The Initial Developer of the Original Code is
- Netscape Communications Corp.
- Portions created by the Initial Developer are Copyright (C) 2001
- the Initial Developer. All Rights Reserved.
-
- Portions created by Jack Magne are Copyright (C) 2006 Red Hat, Inc.
- Contributor(s):
- Bob Lord <lord(a)netscape.com>
- Ian McGreer <mcgreer(a)netscape.com>
- Jack Magne <jmagne(a)redhat.com>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the GPL or the LGPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://pippki/locale/certManager.dtd">
<overlay id="MineOverlay"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cert="http://netscape.com/rdf-cert#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<vbox id="myCerts">
<description>&certmgr.mine;</description>
<separator class="thin"/>
<tree id="user-tree" flex="1" enableColumnDrag="true"
onselect="mine_enableButtons()">
<treecols>
<treecol id="certcol" label="&certmgr.certname;" primary="true"
persist="hidden width ordinal" flex="1"/>
<splitter class="tree-splitter"/>
<treecol id="tokencol" label="&certmgr.tokenname;"
persist="hidden width ordinal" flex="1"/>
<splitter class="tree-splitter"/>
<treecol id="purposecol" label="&certmgr.purpose;"
persist="hidden width ordinal" flex="1"/>
<splitter class="tree-splitter"/>
<treecol id="serialnumcol" label="&certmgr.serial;"
persist="hidden width ordinal" flex="1"/>
<splitter class="tree-splitter"/>
<treecol id="issuedcol" label="&certmgr.issued;"
hidden="true" persist="hidden width ordinal" flex="1"/>
<splitter class="tree-splitter"/>
<treecol id="expiredcol" label="&certmgr.expires;"
persist="hidden width ordinal" flex="1"/>
<!-- <treecol id="certdbkeycol" collapsed="true" flex="1"/> -->
</treecols>
<treechildren ondblclick="viewCerts();"/>
</tree>
<separator class="thin"/>
<hbox>
<button id="mine_viewButton" class="normal"
label="&certmgr.view.label;"
disabled="true" oncommand="viewCerts();"/>
<button id="mine_backupButton" class="normal"
label="&certmgr.backup.label;"
hidden="true" oncommand="backupCerts();"/>
<button hidden="true" id="mine_backupAllButton" class="normal"
label="&certmgr.backupall.label;"
oncommand="backupAllCerts();"/>
<button id="mine_restoreButton" class="normal"
hidden="true" label="&certmgr.restore.label;"
oncommand="restoreCerts();"/>
<button id="mine_deleteButton" class="normal"
hidden="true" label="&certmgr.delete.label;"
disabled="true" oncommand="deleteCerts();"/>
</hbox>
</vbox>
</overlay>
--- NEW FILE certManager.xul ---
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is mozilla.org code.
-
- The Initial Developer of the Original Code is
- Netscape Communications Corp.
- Portions created by the Initial Developer are Copyright (C) 2001
- the Initial Developer. All Rights Reserved.
-
- Portions created by Jack Magne are Copyright (C) 2006 Red Hat, Inc.
- Contributor(s):
- Bob Lord <lord(a)netscape.com>
- Ian McGreer <mcgreer(a)netscape.com>
- Jack Magne<jmagne(a)redhat.com>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the GPL or the LGPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xul-overlay href="chrome://esc/content/MineOverlay.xul"?>
<?xul-overlay href="chrome://pippki/content/OthersOverlay.xul"?>
<?xul-overlay href="chrome://pippki/content/WebSitesOverlay.xul"?>
<?xul-overlay href="chrome://pippki/content/CAOverlay.xul"?>
<!DOCTYPE dialog SYSTEM "chrome://pippki/locale/certManager.dtd">
<dialog id="certmanager"
windowtype="mozilla:certmanager"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="&certmgr.title;"
onload="LoadCerts();"
ondialoghelp="return doHelpButton();"
style="width: 48em; height: 32em;"
persist="screenX screenY width height">
<script type="application/x-javascript" src="chrome://help/content/contextHelp.js"/>
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<script type="application/x-javascript" src="chrome://pippki/content/pippki.js"/>
<script type="application/x-javascript" src="chrome://pippki/content/certManager.js"/>
<vbox flex="1">
<tabbox flex="1" style="margin:5px">
<tabs id="certMgrTabbox">
<tab id="mine_tab" label="&certmgr.tab.mine;"/>
<tab id="others_tab" hidden="true" label="&certmgr.tab.others;"/>
<tab id="websites_tab" hidden="true" label="&certmgr.tab.websites;"/>
<tab id="ca_tab" hidden="true" label="&certmgr.tab.ca;" selected="true"/>
</tabs>
<tabpanels flex="1">
<vbox id="myCerts" flex="1"/>
<vbox id="othersCerts" flex="1"/>
<vbox id="webCerts" flex="1"/>
<vbox id="CACerts" flex="1"/>
</tabpanels>
</tabbox>
</vbox>
</dialog>
17 years, 7 months
[Fedora-directory-commits] esc/src Makefile,1.2,1.3
by Doctor Conrad
Author: jmagne
Update of /cvs/dirsec/esc/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27531
Modified Files:
Makefile
Log Message:
Latest updates.
Index: Makefile
===================================================================
RCS file: /cvs/dirsec/esc/src/Makefile,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Makefile 13 Sep 2006 17:46:53 -0000 1.2
+++ Makefile 27 Sep 2006 17:50:24 -0000 1.3
@@ -31,7 +31,7 @@
endif
ifeq ($(OS_ARCH), Linux)
-DIRS += xulrunner lib/notifytray app/xpcom/tray app/xpcom
+DIRS += xulrunner lib/notifytray app/daemon app/xpcom/tray app/xpcom
endif
17 years, 7 months
[Fedora-directory-commits] esc/src/lib/NssHttpClient HttpClientNss.h, 1.1.1.1, 1.2 Iterator.h, 1.1.1.1, 1.2 NssHttpClient.cpp, 1.1.1.1, 1.2 engine.cpp, 1.1.1.1, 1.2 http.cpp, 1.1.1.1, 1.2 http.h, 1.1.1.1, 1.2 httpClientNss.cpp, 1.1.1.1, 1.2 manifest.mn, 1.1.1.1, 1.2 request.cpp, 1.1.1.1, 1.2 response.cpp, 1.1.1.1, 1.2
by Doctor Conrad
Author: jmagne
Update of /cvs/dirsec/esc/src/lib/NssHttpClient
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27475
Modified Files:
HttpClientNss.h Iterator.h NssHttpClient.cpp engine.cpp
http.cpp http.h httpClientNss.cpp manifest.mn request.cpp
response.cpp
Log Message:
Latest updates.
Index: HttpClientNss.h
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/HttpClientNss.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- HttpClientNss.h 12 Jun 2006 23:39:52 -0000 1.1.1.1
+++ HttpClientNss.h 27 Sep 2006 17:49:21 -0000 1.2
@@ -33,8 +33,6 @@
PSHttpRequest * _request;
PSHttpResponse* _response;
-
- PSHttpResponse *httpSend(char *host_port, char *uri, char *method, char *body);
PSHttpResponse *httpSendChunked(char *host_port, char *uri, char *method, char *body,PSChunkedResponseCallback cb,void *uw,PRBool doSSL = PR_FALSE,int messageTimeout =30);
PRBool sendChunkedEntityData(int body_len,unsigned char * body);
Index: Iterator.h
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/Iterator.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Iterator.h 12 Jun 2006 23:39:53 -0000 1.1.1.1
+++ Iterator.h 27 Sep 2006 17:49:21 -0000 1.2
@@ -39,6 +39,9 @@
* @return The next element, if any, or NULL
*/
virtual void *Next() = 0;
+
+ virtual ~Iterator(){};
+
};
#endif // _ITERATOR_H_
Index: NssHttpClient.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/NssHttpClient.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- NssHttpClient.cpp 12 Jun 2006 23:39:52 -0000 1.1.1.1
+++ NssHttpClient.cpp 27 Sep 2006 17:49:21 -0000 1.2
@@ -69,9 +69,8 @@
{
PRBool result = InitSecurity(NULL, NULL, NULL, NULL,1 );
- if(result = PR_FALSE)
+ if(result == PR_FALSE)
{
-
return 0;
}
Index: engine.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/engine.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- engine.cpp 12 Jun 2006 23:39:53 -0000 1.1.1.1
+++ engine.cpp 27 Sep 2006 17:49:21 -0000 1.2
@@ -27,7 +27,6 @@
#include "certt.h"
#include "sslerr.h"
#include "secerr.h"
-#include "secutil.h"
#include "engine.h"
#include "http.h"
@@ -42,18 +41,6 @@
PRIntervalTime Engine::globaltimeout = PR_TicksPerSecond()*30;
-static char * ownPasswd( PK11SlotInfo *slot, PRBool retry, void *arg) {
- if (!retry) {
- if( password != NULL ) {
- return PL_strdup(password);
- } else {
- return PL_strdup( "httptest" );
- }
- } else {
- return NULL;
- }
-}
-
/**
* Function: SECStatus myBadCertHandler()
* <BR>
@@ -248,9 +235,6 @@
}
}
- PRErrorCode error = PR_GetError();
-
-
/* If this is a server, we're finished. */
if (isServer || secStatus != SECSuccess) {
return secStatus;
Index: http.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/http.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- http.cpp 12 Jun 2006 23:39:53 -0000 1.1.1.1
+++ http.cpp 27 Sep 2006 17:49:21 -0000 1.2
@@ -144,6 +144,8 @@
return "HTTP/1.1";
case HTTPBOGUS:
return "BOGO-PROTO";
+ default:
+ break;
}
return NULL;
Index: http.h
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/http.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- http.h 12 Jun 2006 23:39:53 -0000 1.1.1.1
+++ http.h 27 Sep 2006 17:49:21 -0000 1.2
@@ -43,7 +43,6 @@
typedef bool ( *PSChunkedResponseCallback)(unsigned char *entity_data,unsigned entity_data_len,void *uw, int status);
class PSHttpResponse;
-extern PSHttpResponse *httpSend(char *host_port, char *uri, char *method, char *body);
PSHttpResponse *httpSendChunked(char *host_port, char *uri, char *method, char *body,PSChunkedResponseCallback cb,void *uw);
Index: httpClientNss.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/httpClientNss.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- httpClientNss.cpp 12 Jun 2006 23:39:53 -0000 1.1.1.1
+++ httpClientNss.cpp 27 Sep 2006 17:49:21 -0000 1.2
@@ -53,45 +53,6 @@
}
/*
- * httpSend: sends to an HTTP server
- * Standard Http, may not work in this version.
- */
-PSHttpResponse *HttpClientNss::httpSend(char *host_port, char *uri, char *method, char *body)
-{
- const char* nickname = NULL;
-
- int timeout = 30;
-
- PSHttpServer server(host_port, PR_AF_INET);
- server.setSSL(PR_TRUE);
- // use "HTTP10" if no chunking
- PSHttpRequest request( &server, uri, HTTP11, 0 );
-
-
- _request = &request;
- request.setSSL(PR_FALSE);
-
- request.setMethod(method);
- if (body != NULL)
- request.setBody( (int)strlen(body), body);
-
- // use with "POST" only
- request.addHeader( "Content-Type", "text/xml" );
- request.addHeader( "Connection", "keep-alive" );
- HttpEngine engine;
- PSHttpResponse *resp = engine.makeRequest( request, server, 30 /*_timeout*/ , PR_FALSE /* expect chunked*/);
-
- _response = resp;
-
- if(resp->getStatus() != 200)
- {
- return NULL;
-
- }
- return resp;
-}
-
-/*
Send a http message with a persistant transfer chunked encoded message type
*/
@@ -147,17 +108,14 @@
}
void HttpClientNss::CloseConnection()
{
-
if(_engine)
{
_engine->CloseConnection();
-
}
}
PRBool HttpClientNss::sendChunkedEntityData(int body_len,unsigned char *body)
{
-
int timeout = PR_TicksPerSecond()*60;
char chunked_message[4096];
@@ -171,7 +129,6 @@
return PR_FALSE;
}
-
HttpEngine *engine= getEngine();
if(!engine)
Index: manifest.mn
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/manifest.mn,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- manifest.mn 12 Jun 2006 23:39:52 -0000 1.1.1.1
+++ manifest.mn 27 Sep 2006 17:49:21 -0000 1.2
@@ -17,11 +17,16 @@
CORE_DEPTH = ../../..
+SYS_INC = /usr/include
MODULE = httpchunked
LIBRARY_NAME = $(MODULE)
SHARED_NAME = $(MODULE)
REQUIRES = nss nspr
+ifndef MOZ_OFFSET
+MOZ_OFFSET = mozilla-1.7.13
+endif
MAPFILE = $(OBJDIR)/httpchunked.def
+DEFINES = -I$(SYS_INC)/nspr4 -I$(SYS_INC)/nss3 -I$(SYS_INC)/$(MOZ_OFFSET)/nspr -I$(SYS_INC)/$(MOZ_OFFSET)/nss
CPPSRCS = \
Cache.cpp \
Index: request.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/request.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- request.cpp 12 Jun 2006 23:39:53 -0000 1.1.1.1
+++ request.cpp 27 Sep 2006 17:49:21 -0000 1.2
@@ -17,13 +17,15 @@
* All rights reserved.
* END COPYRIGHT BLOCK **/
+#define FORCE_PR_LOG 1
+
#include <string.h>
#include <stdio.h>
#include "request.h"
#include "engine.h"
#include <prlog.h>
-PRLogModuleInfo *httpLog = PR_NewLogModule("coolkey");
+PRLogModuleInfo *httpLog = PR_NewLogModule("coolKeyHttpReq");
/**
* Constructor
Index: response.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/response.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- response.cpp 12 Jun 2006 23:39:52 -0000 1.1.1.1
+++ response.cpp 27 Sep 2006 17:49:21 -0000 1.2
@@ -16,6 +16,8 @@
* All rights reserved.
* END COPYRIGHT BLOCK **/
+#define FORCE_PR_LOG 1
+
/**
* HTTP response handler
*/
@@ -35,10 +37,8 @@
#endif
#include "Util.h"
-PRLogModuleInfo *httpRespLog = PR_NewLogModule("coolkey");
+PRLogModuleInfo *httpRespLog = PR_NewLogModule("coolKeyHttpRes");
-void printBuf(int , char* );
-void dump_data(unsigned char *aData, int aLen);
/**
* Constructor. This class is used by the HttpResponse class for reading and
@@ -174,16 +174,12 @@
if(!_streamMode )
{
- _content = (char *) PR_Malloc(_curSize+1);
- if (_content == NULL) {
- return PR_FALSE;
+ _content = (char *) PR_Malloc(_curSize+1);
+ if (_content == NULL)
+ return PR_FALSE;
- memcpy((char*) _content, (const char *)_buf, _curSize+1);
- _contentSize = _curSize +1;
-
- }
-
- //dump_data(( unsigned char *) _content,_contentSize);
+ memcpy((char*) _content, (const char *)_buf, _curSize+1);
+ _contentSize = _curSize +1;
}
@@ -229,9 +225,6 @@
return 0;
}
-void printBuf(int len, char* buf) {
-}
-
/**
* gets the next char from the buffer. If all the data in the buffer is read,
* read a chunk to the buffer
@@ -240,11 +233,7 @@
char RecvBuf::_getChar() {
if (_curPos >= _curSize) {
if (!_getBytes(_allocSize)) {
- /* bugscape #55624: Solaris RA exited
- with a signal ABRT if we raised exception
- without handling it */
return -1;
- /* throw RecvBuf::EndOfFile(); */
}
}
@@ -281,7 +270,7 @@
if (ch != '\r' || ch2 != '\n')
{
PR_LOG(httpRespLog, PR_LOG_DEBUG,
- ("did not find chunk trailer at end of chunk 1. \n"));
+ ("did not find chunk trailer at end of chunk . \n"));
}
}
@@ -316,7 +305,7 @@
if (ch1 != '\r' || ch2 != '\n')
{
PR_LOG(httpRespLog, PR_LOG_DEBUG,
- ("did not find chunk trailer at the end of chunk 2. ch1 %c ch2 %c \n",ch1,ch2));
+ ("did not find chunk trailer at the end of chunk . ch1 %c ch2 %c \n",ch1,ch2));
};
_currentChunkSize = _currentChunkBytesRead = 0;
@@ -681,8 +670,6 @@
char chunk[4096];
- int len = sizeof(chunk);
-
int i = 0;
PSChunkedResponseCallback cb = _request->getChunkedCallback();
@@ -743,7 +730,6 @@
PR_LOG(httpRespLog, PR_LOG_DEBUG,
("PSHttpResponse::_handleChunkedConversation"
" chunk complete normal condition. chunk: %s\n",(char *) chunk));
- //dump_data((unsigned char *)chunk,i);
(*cb)((unsigned char *) chunk,i,uw,HTTP_CHUNK_COMPLETE);
}
@@ -779,7 +765,7 @@
if(cb != NULL)
{// We need to process the chunked encoded conversation
- PRBool res = _handleChunkedConversation(buf);
+ _handleChunkedConversation(buf);
}
} else {
@@ -1062,27 +1048,3 @@
}
}
}
-
-
-void dump_data(unsigned char *aData, int aLen) {
-
- if(!aData || !aLen)
- return;
-
-
- for(int i = 0; i < aLen ; i++)
- {
-
-
-
- PR_LOG(httpRespLog, PR_LOG_DEBUG,
- ("dumpdata at %d: %c \n", i, aData[i]
- ));
-
-
- }
-
-
-
-
-}
17 years, 7 months