Skip to content

Commit

Permalink
tools: lxc-stop: share internal API symbols
Browse files Browse the repository at this point in the history
Signed-off-by: 2xsec <dh48.jeong@samsung.com>
  • Loading branch information
2xsec authored and Christian Brauner committed Jul 2, 2018
1 parent 591d987 commit 09896a3
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/lxc/Makefile.am
Expand Up @@ -279,7 +279,7 @@ lxc_monitor_SOURCES = tools/lxc_monitor.c tools/arguments.c tools/tool_utils.c
lxc_ls_SOURCES = tools/lxc_ls.c tools/arguments.c tools/tool_utils.c
lxc_copy_SOURCES = tools/lxc_copy.c tools/arguments.c tools/tool_utils.c
lxc_start_SOURCES = tools/lxc_start.c tools/arguments.c
lxc_stop_SOURCES = tools/lxc_stop.c tools/arguments.c tools/tool_utils.c
lxc_stop_SOURCES = tools/lxc_stop.c tools/arguments.c
lxc_top_SOURCES = tools/lxc_top.c tools/arguments.c tools/tool_utils.c
lxc_unfreeze_SOURCES = tools/lxc_unfreeze.c tools/arguments.c tools/tool_utils.c
lxc_unshare_SOURCES = tools/lxc_unshare.c tools/arguments.c tools/tool_utils.c
Expand Down
25 changes: 14 additions & 11 deletions src/lxc/tools/lxc_stop.c
Expand Up @@ -31,11 +31,14 @@
#include <lxc/lxccontainer.h>

#include "arguments.h"
#include "tool_utils.h"
#include "log.h"
#include "utils.h"

#define OPT_NO_LOCK OPT_USAGE + 1
#define OPT_NO_KILL OPT_USAGE + 2

lxc_log_define(lxc_stop, lxc);

static int my_parser(struct lxc_arguments *args, int c, char *arg)
{
switch (c) {
Expand Down Expand Up @@ -130,58 +133,58 @@ int main(int argc, char *argv[])

/* some checks */
if (!my_args.hardstop && my_args.timeout < -1) {
lxc_error(&my_args, "Invalid timeout");
ERROR("Invalid timeout");
exit(ret);
}

if (my_args.hardstop && my_args.nokill) {
lxc_error(&my_args, "-k can't be used with --nokill");
ERROR("-k can't be used with --nokill");
exit(ret);
}

if (my_args.hardstop && my_args.reboot) {
lxc_error(&my_args, "-k can't be used with -r");
ERROR("-k can't be used with -r");
exit(ret);
}

if (my_args.hardstop && my_args.timeout) {
lxc_error(&my_args, "-k doesn't allow timeouts");
ERROR("-k doesn't allow timeouts");
exit(ret);
}

if (my_args.nolock && !my_args.hardstop) {
lxc_error(&my_args, "--nolock may only be used with -k");
ERROR("--nolock may only be used with -k");
exit(ret);
}

c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) {
lxc_error(&my_args, "Error opening container");
ERROR("Error opening container");
goto out;
}

if (my_args.rcfile) {
c->clear_config(c);

if (!c->load_config(c, my_args.rcfile)) {
lxc_error(&my_args, "Failed to load rcfile");
ERROR("Failed to load rcfile");
goto out;
}

c->configfile = strdup(my_args.rcfile);
if (!c->configfile) {
lxc_error(&my_args, "Out of memory setting new config filename");
ERROR("Out of memory setting new config filename");
goto out;
}
}

if (!c->may_control(c)) {
lxc_error(&my_args, "Insufficent privileges to control %s", c->name);
ERROR("Insufficent privileges to control %s", c->name);
goto out;
}

if (!c->is_running(c)) {
lxc_error(&my_args, "%s is not running", c->name);
ERROR("%s is not running", c->name);

/* Per our manpage we need to exit with exit code:
* 2: The specified container exists but was not running.
Expand Down

0 comments on commit 09896a3

Please sign in to comment.