From: 2xsec Date: Fri, 17 Aug 2018 16:34:28 +0000 (+0900) Subject: tools: lxc-console: add default log priority & cleanups X-Git-Tag: lxc-3.1.0~153^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a291ab7859914980ef9dbd586f8aa0106a8d1b50;p=thirdparty%2Flxc.git tools: lxc-console: add default log priority & cleanups Signed-off-by: 2xsec --- diff --git a/src/lxc/tools/lxc_console.c b/src/lxc/tools/lxc_console.c index 11cddd5fe..c1f99069d 100644 --- a/src/lxc/tools/lxc_console.c +++ b/src/lxc/tools/lxc_console.c @@ -44,28 +44,8 @@ lxc_log_define(lxc_console, lxc); -static char etoc(const char *expr) -{ - /* returns "control code" of given expression */ - char c = expr[0] == '^' ? expr[1] : expr[0]; - - return 1 + ((c > 'Z') ? (c - 'a') : (c - 'Z')); -} - -static int my_parser(struct lxc_arguments *args, int c, char *arg) -{ - switch (c) { - case 't': - if (lxc_safe_uint(arg, &args->ttynum) < 0) - return -1; - break; - case 'e': - args->escape = etoc(arg); - break; - } - - return 0; -} +static int my_parser(struct lxc_arguments *args, int c, char *arg); +static char etoc(const char *expr); static const struct option my_longopts[] = { {"tty", required_argument, 0, 't'}, @@ -74,8 +54,8 @@ static const struct option my_longopts[] = { }; static struct lxc_arguments my_args = { - .progname = "lxc-console", - .help = "\ + .progname = "lxc-console", + .help = "\ --name=NAME [--tty NUMBER]\n\ \n\ lxc-console logs on the container with the identifier NAME\n\ @@ -85,35 +65,56 @@ Options :\n\ -t, --tty=NUMBER console tty number\n\ -e, --escape=PREFIX prefix for escape command\n\ --rcfile=FILE Load configuration file FILE\n", - .options = my_longopts, - .parser = my_parser, - .checker = NULL, - .ttynum = -1, - .escape = 1, + .options = my_longopts, + .parser = my_parser, + .checker = NULL, + .log_priority = "ERROR", + .log_file = "none", + .ttynum = -1, + .escape = 1, }; +static int my_parser(struct lxc_arguments *args, int c, char *arg) +{ + switch (c) { + case 't': + if (lxc_safe_uint(arg, &args->ttynum) < 0) + return -1; + break; + case 'e': + args->escape = etoc(arg); + break; + } + + return 0; +} + +static char etoc(const char *expr) +{ + /* returns "control code" of given expression */ + char c = expr[0] == '^' ? expr[1] : expr[0]; + + return 1 + ((c > 'Z') ? (c - 'a') : (c - 'Z')); +} + int main(int argc, char *argv[]) { int ret; struct lxc_container *c; struct lxc_log log; - ret = lxc_arguments_parse(&my_args, argc, argv); - if (ret) + if (lxc_arguments_parse(&my_args, argc, argv)) exit(EXIT_FAILURE); - /* Only create log if explicitly instructed */ - if (my_args.log_file || my_args.log_priority) { - log.name = my_args.name; - log.file = my_args.log_file; - log.level = my_args.log_priority; - log.prefix = my_args.progname; - log.quiet = my_args.quiet; - log.lxcpath = my_args.lxcpath[0]; + log.name = my_args.name; + log.file = my_args.log_file; + log.level = my_args.log_priority; + log.prefix = my_args.progname; + log.quiet = my_args.quiet; + log.lxcpath = my_args.lxcpath[0]; - if (lxc_log_init(&log)) - exit(EXIT_FAILURE); - } + if (lxc_log_init(&log)) + exit(EXIT_FAILURE); c = lxc_container_new(my_args.name, my_args.lxcpath[0]); if (!c) {