[Fedora-directory-commits] ldapserver/ldap/admin/src create_instance.c, 1.24, 1.25 create_instance.h, 1.5, 1.6 instindex.cpp, 1.8, 1.9
Noriko Hosoi (nhosoi)
fedora-directory-commits at redhat.com
Tue Mar 14 17:13:49 UTC 2006
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/admin/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1852
Modified Files:
create_instance.c create_instance.h instindex.cpp
Log Message:
[185364] Can't update scripts (e.g., start-slapd) in the instance
When ds_create is called with -r (update), scripts in the instance directory
were not updated. They are recreated with this change.
Index: create_instance.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- create_instance.c 7 Dec 2005 21:29:08 -0000 1.24
+++ create_instance.c 14 Mar 2006 17:13:38 -0000 1.25
@@ -1057,74 +1057,15 @@
}
#endif
-/* ---------------------- Create configuration files ---------------------- */
-
-
-char *create_server(server_config_s *cf, char *param_name)
+static char *
+create_scripts(server_config_s *cf, char *param_name)
{
- char line[PATH_SIZE], *t, *sroot = cf->sroot;
+ char *t, *sroot = cf->sroot;
char subdir[PATH_SIZE];
-#if defined( SOLARIS )
- /*
- * Solaris 9+ specific installation
- */
- char otherline[PATH_SIZE];
- char subdirvar[PATH_SIZE];
- char subdiretc[PATH_SIZE];
- char *sub;
-#endif /* SOLARIS */
-
- if (param_name)
- param_name[0] = 0; /* init to empty string */
-
-#ifdef XP_UNIX
- if (!cf->servuser)
- getSuiteSpotUserGroup(cf);
-#else
- /* Abort if the service exists on NT */
- if (t = service_exists(cf->servid)) {
- PL_strncpyz(param_name, "servid", BIG_LINE);
- return t;
- }
-#endif
-
- 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/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());
-
-#if defined (BUILD_PRESENCE)
- /* Create slapd-nickname/config/presence directory */
- PR_snprintf(line, sizeof(line), "%s%cconfig%cpresence", subdir, FILE_PATHSEP, 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 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());
-
#ifdef XP_UNIX
/* Start/stop/rotate/restart scripts */
if (getenv("USE_DEBUGGER"))
@@ -1180,17 +1121,6 @@
subdir,
cf->loglevel ? cf->loglevel : "0"
);
-/*
- t = gen_script(subdir, START_SCRIPT,
- "NETSITE_ROOT=%s\n"
- "export NETSITE_ROOT\n"
- "cd %s/bin/%s/server; /usr/bin/X11/xterm -fn 10x20 -sb -sl 2000 -e /bin/ladebug "
- "-I /u/richm/ds50/ldapserver/ldap/servers/slapd/back-ldbm "
- "-I /u/richm/ds50/ldapserver/ldap/servers/slapd "
- "%s &\n",
- sroot, sroot, PRODUCT_NAME, PRODUCT_BIN
- );
-*/
#else
t = gen_script(subdir, START_SCRIPT,
"\n"
@@ -1418,12 +1348,137 @@
t = gen_script(subdir, RESTART_SCRIPT".bat", "net stop slapd-%s\n"
"net start slapd-%s\n", cf->servid, cf->servid);
if(t) return t;
+#endif /* XP_WIN32 */
+}
+/* ---------------------- Update server script files ---------------------- */
+int update_server(server_config_s *cf)
+{
+ char line[PATH_SIZE], *t, *sroot = cf->sroot;
+ char subdir[PATH_SIZE];
+ char error_param[BIG_LINE] = {0};
-#endif /* XP_WIN32 */
+#if defined( SOLARIS )
+ /*
+ * Solaris 9+ specific installation
+ */
+ char otherline[PATH_SIZE];
+ char subdirvar[PATH_SIZE];
+ char subdiretc[PATH_SIZE];
+ char *sub;
+#endif /* SOLARIS */
-#ifdef XP_WIN32
+ error_param[0] = 0; /* init to empty string */
+
+#ifdef XP_UNIX
+ if (!cf->servuser)
+ getSuiteSpotUserGroup(cf);
+#else
+ /* Abort if the service exists on NT */
+ if (t = service_exists(cf->servid)) {
+ PL_strncpyz(error_param, "servid", BIG_LINE);
+ goto out;
+ }
+#endif
+
+ if( (t = sanity_check(cf, error_param)) )
+ goto out;
+
+ t = create_scripts(cf, error_param);
+ if(t) goto out;
+
+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;
+}
+
+/* ---------------------- Create configuration files ---------------------- */
+char *create_server(server_config_s *cf, char *param_name)
+{
+ char line[PATH_SIZE], *t, *sroot = cf->sroot;
+ char subdir[PATH_SIZE];
+
+#if defined( SOLARIS )
+ /*
+ * Solaris 9+ specific installation
+ */
+ char otherline[PATH_SIZE];
+ char subdirvar[PATH_SIZE];
+ char subdiretc[PATH_SIZE];
+ char *sub;
+#endif /* SOLARIS */
+
+ if (param_name)
+ param_name[0] = 0; /* init to empty string */
+
+#ifdef XP_UNIX
+ if (!cf->servuser)
+ getSuiteSpotUserGroup(cf);
+#else
+ /* Abort if the service exists on NT */
+ if (t = service_exists(cf->servid)) {
+ PL_strncpyz(param_name, "servid", BIG_LINE);
+ return t;
+ }
+#endif
+
+ 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/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());
+
+#if defined (BUILD_PRESENCE)
+ /* Create slapd-nickname/config/presence directory */
+ PR_snprintf(line, sizeof(line), "%s%cconfig%cpresence", subdir, FILE_PATHSEP, 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 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());
+
+ t = create_scripts(cf, param_name);
+ if(t) return t;
+
+#ifdef XP_WIN32
if ( INFO_GetOperatingSystem () == OS_WINNT ) {
if( (t = add_ntservice(cf)) )
Index: create_instance.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- create_instance.h 19 Apr 2005 22:06:55 -0000 1.5
+++ create_instance.h 14 Mar 2006 17:13:38 -0000 1.6
@@ -132,6 +132,10 @@
additional detail
*/
char *create_server(server_config_s *cf, char *param_name);
+/*
+ Update script files in the instance directory
+*/
+int update_server(server_config_s *cf);
/* from script-gen.c */
int generate_script(const char *inpath, const char *outpath, int mode,
Index: instindex.cpp
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/instindex.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- instindex.cpp 19 Apr 2005 22:06:55 -0000 1.8
+++ instindex.cpp 14 Mar 2006 17:13:38 -0000 1.9
@@ -134,12 +134,16 @@
else
fclose(infFile);
+ if (!status)
+ status = create_config_from_inf(&cf, argc, argv);
if (reconfig)
- status = reconfigure_instance(argc, argv);
- else
{
+ status = update_server(&cf);
if (!status)
- status = create_config_from_inf(&cf, argc, argv);
+ status = reconfigure_instance(argc, argv);
+ }
+ else
+ {
if (!status)
status = create_config(&cf);
if (!status)
More information about the Fedora-directory-commits
mailing list