From: Cedric Le Goater Date: Thu, 14 Jan 2010 06:43:18 +0000 (+0100) Subject: add --define to restart X-Git-Tag: lxc-0.6.5~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a31b2048d9d7af1308e2aa6ff145afebe7f11525;p=thirdparty%2Flxc.git add --define to restart Signed-off-by: Cedric Le Goater Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/lxc_restart.c b/src/lxc/lxc_restart.c index 9cad3177a..cfadd05be 100644 --- a/src/lxc/lxc_restart.c +++ b/src/lxc/lxc_restart.c @@ -1,7 +1,7 @@ /* * lxc: linux Container library * - * (C) Copyright IBM Corp. 2007, 2008 + * (C) Copyright IBM Corp. 2007, 2010 * * Authors: * Daniel Lezcano @@ -25,11 +25,14 @@ #undef _GNU_SOURCE #include #include +#include #include -#include -#include - +#include "log.h" +#include "lxc.h" +#include "conf.h" +#include "config.h" +#include "confile.h" #include "arguments.h" lxc_log_define(lxc_restart_ui, lxc_restart); @@ -81,6 +84,9 @@ Options :\n\ int main(int argc, char *argv[]) { + char *rcfile = NULL; + struct lxc_conf *conf; + if (lxc_arguments_parse(&my_args, argc, argv)) return -1; @@ -88,6 +94,33 @@ int main(int argc, char *argv[]) my_args.progname, my_args.quiet)) return -1; - return lxc_restart(my_args.name, my_args.statefile, my_args.rcfile, + /* rcfile is specified in the cli option */ + if (my_args.rcfile) + rcfile = (char *)my_args.rcfile; + else { + if (!asprintf(&rcfile, LXCPATH "/%s/config", my_args.name)) { + SYSERROR("failed to allocate memory"); + return -1; + } + + /* container configuration does not exist */ + if (access(rcfile, F_OK)) { + free(rcfile); + rcfile = NULL; + } + } + + conf = lxc_conf_init(); + if (!conf) { + ERROR("failed to initialize configuration"); + return -1; + } + + if (rcfile && lxc_config_read(rcfile, conf)) { + ERROR("failed to read configuration file"); + return -1; + } + + return lxc_restart(my_args.name, my_args.statefile, conf, my_args.flags); }