*
* Returns the state on success, < 0 on failure
*/
-int lxc_cmd_get_state(const char *name, const char *lxcpath)
+int lxc_cmd_get_state(const char *name, const char *lxcpath, int timeout)
{
bool stopped = false;
ssize_t ret;
lxc_cmd_init(&cmd, LXC_CMD_GET_STATE);
- ret = lxc_cmd(name, &cmd, &stopped, lxcpath, NULL);
+ ret = lxc_cmd_timeout(name, &cmd, &stopped, lxcpath, NULL, timeout);
if (ret < 0 && stopped)
return STOPPED;
__hidden extern char *lxc_cmd_get_systemd_scope(const char *name, const char *lxcpath);
__hidden extern pid_t lxc_cmd_get_init_pid(const char *name, const char *lxcpath);
__hidden extern int lxc_cmd_get_init_pidfd(const char *name, const char *lxcpath);
-__hidden extern int lxc_cmd_get_state(const char *name, const char *lxcpath);
+__hidden extern int lxc_cmd_get_state(const char *name, const char *lxcpath, int timeout);
__hidden extern int lxc_cmd_stop(const char *name, const char *lxcpath);
/* lxc_cmd_add_state_client Register a new state client fd in the container's
if (!c)
return NULL;
- s = lxc_getstate(c->name, c->config_path);
+ s = lxc_getstate(c->name, c->config_path, c->rcv_timeout);
return lxc_state2str(s);
}
{
lxc_state_t s;
- s = lxc_getstate(c->name, c->config_path);
+ s = lxc_getstate(c->name, c->config_path, c->rcv_timeout);
return (s == STOPPED);
}
if (!c || !c->lxc_conf)
return false;
- s = lxc_getstate(c->name, c->config_path);
+ s = lxc_getstate(c->name, c->config_path, 0);
if (s != FROZEN) {
ret = cgroup_freeze(c->name, c->config_path, -1);
if (ret == -ENOCGROUP2)
if (!c || !c->lxc_conf)
return false;
- s = lxc_getstate(c->name, c->config_path);
+ s = lxc_getstate(c->name, c->config_path, 0);
if (s == FROZEN) {
ret = cgroup_unfreeze(c->name, c->config_path, -1);
if (ret == -ENOCGROUP2)
return -1;
}
-lxc_state_t lxc_getstate(const char *name, const char *lxcpath)
+lxc_state_t lxc_getstate(const char *name, const char *lxcpath, int timeout)
{
- return lxc_cmd_get_state(name, lxcpath);
+ return lxc_cmd_get_state(name, lxcpath, timeout);
}
static int fillwaitedstates(const char *strstates, lxc_state_t *states)
REBOOT_INIT
};
-__hidden extern lxc_state_t lxc_getstate(const char *name, const char *lxcpath);
+__hidden extern lxc_state_t lxc_getstate(const char *name, const char *lxcpath, int timeout);
__hidden extern lxc_state_t lxc_str2state(const char *state);
__hidden extern const char *lxc_state2str(lxc_state_t state);