cfg_t *cfg, *cfg_general, *cfg_section;
+void **cur_instance;
+
/*
* Set the exit_upon_signal flag, because one cannot do anything in a safe
* manner in a signal handler (e.g. fprintf, which we really want to do for
* (!), not individual plugins, seem very unlikely. */
char buffer[4096];
+ void **per_instance = calloc(cfg_size(cfg, "order"), sizeof(*per_instance));
+
while (1) {
if (exit_upon_signal) {
fprintf(stderr, "Exiting due to signal.\n");
/* Restore the cursor-position, clear line */
printf("\033[u\033[K");
for (j = 0; j < cfg_size(cfg, "order"); j++) {
+ cur_instance = per_instance + j;
if (j > 0)
print_separator(separator);
CASE_SEC_TITLE("wireless") {
SEC_OPEN_MAP("wireless");
- print_wireless_info(json_gen, buffer, title, cfg_getstr(sec, "format_up"), cfg_getstr(sec, "format_down"));
+ const char *interface = NULL;
+ if (strcasecmp(title, "_first_") == 0)
+ interface = first_eth_interface(NET_TYPE_WIRELESS);
+ if (interface == NULL)
+ interface = title;
+ print_wireless_info(json_gen, buffer, interface, cfg_getstr(sec, "format_up"), cfg_getstr(sec, "format_down"));
SEC_CLOSE_MAP;
}
CASE_SEC_TITLE("ethernet") {
SEC_OPEN_MAP("ethernet");
- print_eth_info(json_gen, buffer, title, cfg_getstr(sec, "format_up"), cfg_getstr(sec, "format_down"));
+ const char *interface = NULL;
+ if (strcasecmp(title, "_first_") == 0)
+ interface = first_eth_interface(NET_TYPE_ETHERNET);
+ if (interface == NULL)
+ interface = title;
+ print_eth_info(json_gen, buffer, interface, cfg_getstr(sec, "format_up"), cfg_getstr(sec, "format_down"));
SEC_CLOSE_MAP;
}