[Commits] r720 - trunk/daemon/src
new-commit at lists.openvcp.org
new-commit at lists.openvcp.org
Sun Mar 28 21:32:35 UTC 2010
Author: ftx
Date: 2010-03-28 21:32:35 +0000 (Sun, 28 Mar 2010)
New Revision: 720
Modified:
trunk/daemon/src/request.c
trunk/daemon/src/setup.c
Log:
fix for persistent initstyle during image change
Closes: #255
Modified: trunk/daemon/src/request.c
===================================================================
--- trunk/daemon/src/request.c 2010-03-19 18:10:48 UTC (rev 719)
+++ trunk/daemon/src/request.c 2010-03-28 21:32:35 UTC (rev 720)
@@ -344,6 +344,15 @@
if(ret <= 0) return ovcp_response_error(OVCP_ERROR_NORESCUEIMG, OVCP_ERROR_NORESCUEIMG_DESC);
+ //backup initstyle
+ sconcat(srcpath, BUF_SIZE, global_settings.config_dir, "/", name, "/apps/init/style", NULL);
+ if(file_exist(srcpath))
+ {
+ sconcat(destpath, BUF_SIZE, global_settings.config_dir, "/", name, "/apps/init/style.backup", NULL);
+ mv(srcpath, destpath);
+ }
+
+ // backup vserver
snprintf(srcpath, BUF_SIZE, "%s/%s", global_settings.root_dir, name);
snprintf(destpath, BUF_SIZE, "%s/%s", global_settings.backup_dir, name);
@@ -353,12 +362,15 @@
if(!dir_exist(destpath))
return ovcp_response_error(OVCP_ERROR_BACKUPFAIL, OVCP_ERROR_BACKUPFAIL_DESC);
+ // readout rescue image
snprintf(srcpath, BUF_SIZE, "%s/%s", global_settings.image_dir, "rescue");
ret = readlink(srcpath, destpath, BUF_SIZE);
destpath[ret] = 0;
trim_slashes(destpath);
+
+ // install rescue image
if(strncmp(destpath, global_settings.image_dir, strlen(global_settings.image_dir)) == 0)
ret = setup_image(name, destpath+strlen(global_settings.image_dir)+1);
else
@@ -366,6 +378,7 @@
if(!ret) return ovcp_response_error(OVCP_ERROR_UABLCPYIMG, OVCP_ERROR_UABLCPYIMG_DESC);
+ // move vserver backup to subfolder
snprintf(srcpath, BUF_SIZE, "%s/%s", global_settings.backup_dir, name);
snprintf(destpath, BUF_SIZE, "%s/%s/vserver", global_settings.root_dir, name);
@@ -373,6 +386,7 @@
return ovcp_response_error(OVCP_ERROR_UABLRESTORE, OVCP_ERROR_UABLRESTORE_DESC);
+
snprintf(srcpath, BUF_SIZE, "%s/%s/rescue", global_settings.config_dir, name);
file_touch(srcpath);
@@ -404,6 +418,15 @@
snprintf(srcpath, BUF_SIZE, "%s/%s/rescue", global_settings.config_dir, name);
unlink(srcpath);
+
+ //restore initstyle
+ sconcat(srcpath, BUF_SIZE, global_settings.config_dir, "/", name, "/apps/init/style.backup", NULL);
+ if(file_exist(srcpath))
+ {
+ sconcat(destpath, BUF_SIZE, global_settings.config_dir, "/", name, "/apps/init/style", NULL);
+ if(file_exist(destpath)) unlink(destpath);
+ mv(srcpath, destpath);
+ }
response = ovcp_response_new();
ovcp_response_add_string(response, "Off");
Modified: trunk/daemon/src/setup.c
===================================================================
--- trunk/daemon/src/setup.c 2010-03-19 18:10:48 UTC (rev 719)
+++ trunk/daemon/src/setup.c 2010-03-28 21:32:35 UTC (rev 720)
@@ -213,12 +213,19 @@
if(!dir_exist(path)) mkdir(path, 0755);
if(strcmp(image.initstyle, "plain") == 0
- || strcmp(image.initstyle, "gentoo") == 0 || strcmp(image.initstyle, "minit") == 0 )
+ || strcmp(image.initstyle, "gentoo") == 0
+ || strcmp(image.initstyle, "minit") == 0
+ || strcmp(image.initstyle, "sysv") == 0)
{
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/apps/init/style", NULL);
file_write_many(path, image.initstyle, "\n", NULL);
}
}
+ else
+ {
+ sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/apps/init/style", NULL);
+ if(file_exist(path)) unlink(path);
+ }
free_image(&image);
More information about the Commits
mailing list