[3/6] actions: Add rpc notify with separate call

Submitted by Pavel Emelianov on April 21, 2016, 12:56 p.m.

Details

Message ID 5718CDF8.2070300@virtuozzo.com
State Accepted
Series "Cleanup action scripts"
Commit e777ff7d128989239037dc90d1e0da4274f7bff2
Headers show

Commit Message

Pavel Emelianov April 21, 2016, 12:56 p.m.
This lets us clean the action-script.c eventually.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
---
 criu/action-scripts.c         | 21 +++++++++++++++++++--
 criu/cr-service.c             |  3 +--
 criu/crtools.c                |  2 +-
 criu/include/action-scripts.h |  5 ++---
 4 files changed, 23 insertions(+), 8 deletions(-)

Patch hide | download patch | download mbox

diff --git a/criu/action-scripts.c b/criu/action-scripts.c
index 691085f..4529767 100644
--- a/criu/action-scripts.c
+++ b/criu/action-scripts.c
@@ -32,6 +32,8 @@  struct script {
 
 static LIST_HEAD(scripts);
 
+#define SCRIPT_RPC_NOTIFY	(char *)0x1
+
 int run_scripts(enum script_actions act)
 {
 	struct script *script;
@@ -80,7 +82,7 @@  int run_scripts(enum script_actions act)
 	return ret;
 }
 
-int add_script(char *path, int arg)
+int add_script(char *path)
 {
 	struct script *script;
 
@@ -89,7 +91,22 @@  int add_script(char *path, int arg)
 		return 1;
 
 	script->path = path;
-	script->arg = arg;
+	script->arg = 0;
+	list_add(&script->node, &scripts);
+
+	return 0;
+}
+
+int add_rpc_notify(int sk)
+{
+	struct script *script;
+
+	script = xmalloc(sizeof(struct script));
+	if (script == NULL)
+		return 1;
+
+	script->path = SCRIPT_RPC_NOTIFY;
+	script->arg = sk;
 	list_add(&script->node, &scripts);
 
 	return 0;
diff --git a/criu/cr-service.c b/criu/cr-service.c
index ae4f0b5..219a986 100644
--- a/criu/cr-service.c
+++ b/criu/cr-service.c
@@ -361,8 +361,7 @@  static int setup_opts_from_req(int sk, CriuOpts *req)
 		}
 	}
 
-	if (req->notify_scripts &&
-			add_script(SCRIPT_RPC_NOTIFY, sk))
+	if (req->notify_scripts && add_rpc_notify(sk))
 		goto err;
 
 	for (i = 0; i < req->n_veths; i++) {
diff --git a/criu/crtools.c b/criu/crtools.c
index de1f00c..7a0f977 100644
--- a/criu/crtools.c
+++ b/criu/crtools.c
@@ -465,7 +465,7 @@  int main(int argc, char *argv[], char *envp[])
 			}
 			break;
 		case 1049:
-			if (add_script(optarg, 0))
+			if (add_script(optarg))
 				return 1;
 
 			break;
diff --git a/criu/include/action-scripts.h b/criu/include/action-scripts.h
index e12fb0c..4d56300 100644
--- a/criu/include/action-scripts.h
+++ b/criu/include/action-scripts.h
@@ -1,8 +1,6 @@ 
 #ifndef __CR_ACTION_SCRIPTS_H__
 #define __CR_ACTION_SCRIPTS_H__
 
-#define SCRIPT_RPC_NOTIFY	(char *)0x1
-
 enum script_actions {
 	ACT_PRE_DUMP		= 0,
 	ACT_POST_DUMP		= 1,
@@ -17,7 +15,8 @@  enum script_actions {
 	ACT_MAX
 };
 
-extern int add_script(char *path, int arg);
+extern int add_script(char *path);
+extern int add_rpc_notify(int sk);
 extern int run_scripts(enum script_actions);
 extern int send_criu_rpc_script(enum script_actions act, char *name, int arg);