[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