]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
freezer: non-functional changes
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 17 Jan 2018 19:09:13 +0000 (20:09 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Wed, 7 Feb 2018 11:29:16 +0000 (12:29 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/freezer.c

index c79f13951180a88a0e6e02626e1e6bf162f6a152..ae4909ee9d858fc0b4f7609a0b67e59c4dcb0f58 100644 (file)
 #include <sys/param.h>
 
 #include "error.h"
-#include "state.h"
-#include "monitor.h"
 #include "log.h"
 #include "lxc.h"
+#include "monitor.h"
+#include "parse.h"
+#include "state.h"
 
 lxc_log_define(lxc_freezer, lxc);
 
 lxc_state_t freezer_state(const char *name, const char *lxcpath)
 {
+       int ret;
        char v[100];
-       if (lxc_cgroup_get("freezer.state", v, 100, name, lxcpath) < 0)
+
+       ret = lxc_cgroup_get("freezer.state", v, 100, name, lxcpath);
+       if (ret < 0)
                return -1;
 
-       if (v[strlen(v)-1] == '\n')
-               v[strlen(v)-1] = '\0';
+       v[99] = '\0';
+       v[lxc_char_right_gc(v, strlen(v))] = '\0';
+
        return lxc_str2state(v);
 }
 
 static int do_freeze_thaw(int freeze, const char *name, const char *lxcpath)
 {
+       int ret;
        char v[100];
        const char *state = freeze ? "FROZEN" : "THAWED";
 
-       if (lxc_cgroup_set("freezer.state", state, name, lxcpath) < 0) {
-               ERROR("Failed to freeze %s:%s", lxcpath, name);
+       ret = lxc_cgroup_set("freezer.state", state, name, lxcpath);
+       if (ret < 0) {
+               ERROR("Failed to freeze %s", name);
                return -1;
        }
-       while (1) {
-               if (lxc_cgroup_get("freezer.state", v, 100, name, lxcpath) < 0) {
-                       ERROR("Failed to get new freezer state for %s:%s", lxcpath, name);
+
+       for (;;) {
+               ret = lxc_cgroup_get("freezer.state", v, 100, name, lxcpath);
+               if (ret < 0) {
+                       ERROR("Failed to get freezer state of %s", name);
                        return -1;
                }
-               if (v[strlen(v)-1] == '\n')
-                       v[strlen(v)-1] = '\0';
-               if (strncmp(v, state, strlen(state)) == 0) {
-                       if (name)
-                               lxc_monitor_send_state(name, freeze ? FROZEN : THAWED, lxcpath);
+
+               v[99] = '\0';
+               v[lxc_char_right_gc(v, strlen(v))] = '\0';
+
+               ret = strncmp(v, state, strlen(state));
+               if (ret == 0) {
+                       lxc_monitor_send_state(name, freeze ? FROZEN : THAWED, lxcpath);
                        return 0;
                }
+
                sleep(1);
        }
 }