107 lines
4.1 KiB
Diff
107 lines
4.1 KiB
Diff
|
From 07a676a01a3157073629692213fcd5e458cf9150 Mon Sep 17 00:00:00 2001
|
||
|
From: Lennart Poettering <lennart@poettering.net>
|
||
|
Date: Fri, 19 Feb 2016 18:20:40 +0100
|
||
|
Subject: [PATCH 3/8] networkctl: split out system status stuff into its own
|
||
|
function
|
||
|
|
||
|
(cherry picked from commit 0070333f26543a319a17aee8b22bdde4071630c4)
|
||
|
Resolves: #1325462
|
||
|
---
|
||
|
src/network/networkctl.c | 67 ++++++++++++++++++++++++++----------------------
|
||
|
1 file changed, 36 insertions(+), 31 deletions(-)
|
||
|
|
||
|
diff --git a/src/network/networkctl.c b/src/network/networkctl.c
|
||
|
index 60724fc..9640e30 100644
|
||
|
--- a/src/network/networkctl.c
|
||
|
+++ b/src/network/networkctl.c
|
||
|
@@ -660,12 +660,46 @@ static int link_status_one(
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
+static int system_status(sd_netlink *rtnl, sd_hwdb *hwdb) {
|
||
|
+ _cleanup_free_ char *operational_state = NULL;
|
||
|
+ _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **search_domains = NULL, **route_domains = NULL;
|
||
|
+ const char *on_color_operational, *off_color_operational;
|
||
|
+
|
||
|
+ assert(rtnl);
|
||
|
+
|
||
|
+ sd_network_get_operational_state(&operational_state);
|
||
|
+ operational_state_to_color(operational_state, &on_color_operational, &off_color_operational);
|
||
|
+
|
||
|
+ printf("%s%s%s State: %s%s%s\n",
|
||
|
+ on_color_operational, draw_special_char(DRAW_BLACK_CIRCLE), off_color_operational,
|
||
|
+ on_color_operational, strna(operational_state), off_color_operational);
|
||
|
+
|
||
|
+ dump_addresses(rtnl, " Address: ", 0);
|
||
|
+ dump_gateways(rtnl, hwdb, " Gateway: ", 0);
|
||
|
+
|
||
|
+ sd_network_get_dns(&dns);
|
||
|
+ dump_list(" DNS: ", dns);
|
||
|
+
|
||
|
+ sd_network_get_search_domains(&search_domains);
|
||
|
+ dump_list("Search Domains: ", search_domains);
|
||
|
+
|
||
|
+ sd_network_get_route_domains(&route_domains);
|
||
|
+ dump_list(" Route Domains: ", route_domains);
|
||
|
+
|
||
|
+ sd_network_get_ntp(&ntp);
|
||
|
+ dump_list(" NTP: ", ntp);
|
||
|
+
|
||
|
+ return 0;
|
||
|
+}
|
||
|
+
|
||
|
static int link_status(int argc, char *argv[], void *userdata) {
|
||
|
_cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL;
|
||
|
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
|
||
|
char **name;
|
||
|
int r;
|
||
|
|
||
|
+ pager_open_if_enabled();
|
||
|
+
|
||
|
r = sd_netlink_open(&rtnl);
|
||
|
if (r < 0)
|
||
|
return log_error_errno(r, "Failed to connect to netlink: %m");
|
||
|
@@ -674,37 +708,8 @@ static int link_status(int argc, char *argv[], void *userdata) {
|
||
|
if (r < 0)
|
||
|
log_debug_errno(r, "Failed to open hardware database: %m");
|
||
|
|
||
|
- if (argc <= 1 && !arg_all) {
|
||
|
- _cleanup_free_ char *operational_state = NULL;
|
||
|
- _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **search_domains = NULL, **route_domains;
|
||
|
- const char *on_color_operational, *off_color_operational;
|
||
|
-
|
||
|
- sd_network_get_operational_state(&operational_state);
|
||
|
- operational_state_to_color(operational_state, &on_color_operational, &off_color_operational);
|
||
|
-
|
||
|
- printf("%s%s%s State: %s%s%s\n",
|
||
|
- on_color_operational, draw_special_char(DRAW_BLACK_CIRCLE), off_color_operational,
|
||
|
- on_color_operational, strna(operational_state), off_color_operational);
|
||
|
-
|
||
|
- dump_addresses(rtnl, " Address: ", 0);
|
||
|
- dump_gateways(rtnl, hwdb, " Gateway: ", 0);
|
||
|
-
|
||
|
- sd_network_get_dns(&dns);
|
||
|
- dump_list(" DNS: ", dns);
|
||
|
-
|
||
|
- sd_network_get_search_domains(&search_domains);
|
||
|
- dump_list("Search Domains: ", search_domains);
|
||
|
-
|
||
|
- sd_network_get_route_domains(&route_domains);
|
||
|
- dump_list(" Route Domains: ", route_domains);
|
||
|
-
|
||
|
- sd_network_get_ntp(&ntp);
|
||
|
- dump_list(" NTP: ", ntp);
|
||
|
-
|
||
|
- return 0;
|
||
|
- }
|
||
|
-
|
||
|
- pager_open_if_enabled();
|
||
|
+ if (argc <= 1 && !arg_all)
|
||
|
+ return system_status(rtnl, hwdb);
|
||
|
|
||
|
if (arg_all) {
|
||
|
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL, *reply = NULL;
|
||
|
--
|
||
|
2.7.4
|
||
|
|