From: 2xsec Date: Fri, 29 Jun 2018 05:15:22 +0000 (+0900) Subject: tools: lxc-info: share internal API symbols X-Git-Tag: lxc-3.1.0~225^2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=469711c520c6f3ed0984c2c43eca89361575258e;p=thirdparty%2Flxc.git tools: lxc-info: share internal API symbols Signed-off-by: 2xsec --- diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am index f89603927..ca057423d 100644 --- a/src/lxc/Makefile.am +++ b/src/lxc/Makefile.am @@ -274,7 +274,7 @@ lxc_destroy_SOURCES = tools/lxc_destroy.c tools/arguments.c tools/tool_utils.c lxc_device_SOURCES = tools/lxc_device.c tools/arguments.c tools/tool_utils.c lxc_execute_SOURCES = tools/lxc_execute.c tools/arguments.c tools/tool_utils.c lxc_freeze_SOURCES = tools/lxc_freeze.c tools/arguments.c -lxc_info_SOURCES = tools/lxc_info.c tools/arguments.c tools/tool_utils.c +lxc_info_SOURCES = tools/lxc_info.c tools/arguments.c 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 diff --git a/src/lxc/tools/lxc_info.c b/src/lxc/tools/lxc_info.c index 09889e31e..16369b720 100644 --- a/src/lxc/tools/lxc_info.c +++ b/src/lxc/tools/lxc_info.c @@ -34,7 +34,10 @@ #include #include "arguments.h" -#include "tool_utils.h" +#include "log.h" +#include "utils.h" + +lxc_log_define(lxc_info, lxc); static bool ips; static bool state; @@ -45,14 +48,16 @@ static char **key = NULL; static int keys = 0; static int filter_count = 0; -static int my_parser(struct lxc_arguments* args, int c, char* arg) +static int my_parser(struct lxc_arguments *args, int c, char *arg) { char **newk; + switch (c) { case 'c': newk = realloc(key, (keys + 1) * sizeof(key[0])); if (!newk) return -1; + key = newk; key[keys] = arg; keys++; @@ -153,6 +158,7 @@ static void print_net_stats(struct lxc_container *c) for(netnr = 0; ;netnr++) { sprintf(buf, "lxc.net.%d.type", netnr); + type = c->get_running_config_item(c, buf); if (!type) break; @@ -163,9 +169,11 @@ static void print_net_stats(struct lxc_container *c) sprintf(buf, "lxc.net.%d.link", netnr); } free(type); + ifname = c->get_running_config_item(c, buf); if (!ifname) return; + printf("%-15s %s\n", "Link:", ifname); fflush(stdout); @@ -303,11 +311,13 @@ static int print_info(const char *name, const char *lxcpath) if (my_args.rcfile) { c->clear_config(c); + if (!c->load_config(c, my_args.rcfile)) { fprintf(stderr, "Failed to load rcfile\n"); lxc_container_put(c); return -1; } + c->configfile = strdup(my_args.rcfile); if (!c->configfile) { fprintf(stderr, "Out of memory setting new config filename\n"); @@ -333,9 +343,8 @@ static int print_info(const char *name, const char *lxcpath) print_info_msg_str("Name:", c->name); } - if (state) { + if (state) print_info_msg_str("State:", c->state(c)); - } if (c->is_running(c)) { if (pid) { @@ -348,10 +357,12 @@ static int print_info(const char *name, const char *lxcpath) if (ips) { fflush(stdout); + char **addresses = c->get_ips(c, NULL, NULL, 0); if (addresses) { char *address; i = 0; + while (addresses[i]) { address = addresses[i]; print_info_msg_str("IP:", address); @@ -380,6 +391,7 @@ static int print_info(const char *name, const char *lxcpath) else printf("%s = %s\n", key[i], val); } + free(val); } else if (len == 0) { if (!humanize && keys == 1)