/*
* lxc: linux Container library
*
- * (C) Copyright IBM Corp. 2007, 2008
+ * (C) Copyright IBM Corp. 2007, 2010
*
* Authors:
* Daniel Lezcano <dlezcano at fr.ibm.com>
#undef _GNU_SOURCE
#include <stdlib.h>
#include <unistd.h>
+#include <errno.h>
#include <sys/types.h>
-#include <lxc/lxc.h>
-#include <lxc/log.h>
-
+#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);
int main(int argc, char *argv[])
{
+ char *rcfile = NULL;
+ struct lxc_conf *conf;
+
if (lxc_arguments_parse(&my_args, argc, argv))
return -1;
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);
}