summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2013-08-01 16:10:15 -0500
committerDan Williams <dcbw@redhat.com>2013-08-02 17:19:36 -0500
commit873df63e7813bf966d127bdbae0fca69b340e635 (patch)
treeb91220191b0fe119f6afde39d3d4e5f81834cffb
parent0aada347c1aead97519fe9f3e73421b1527c40b0 (diff)
downloadNetworkManager-873df63e7813bf966d127bdbae0fca69b340e635.tar.gz
core: add nm_ip4_config_dump()
-rw-r--r--src/nm-ip4-config.c81
-rw-r--r--src/nm-ip4-config.h1
2 files changed, 82 insertions, 0 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
index 8de188c513..7e76e0ddee 100644
--- a/src/nm-ip4-config.c
+++ b/src/nm-ip4-config.c
@@ -511,6 +511,87 @@ nm_ip4_config_subtract (NMIP4Config *dst, NMIP4Config *src)
}
}
+void
+nm_ip4_config_dump (NMIP4Config *config, const char *detail)
+{
+ guint32 i, tmp;
+ char buf[INET_ADDRSTRLEN];
+ char buf2[INET_ADDRSTRLEN];
+
+ g_return_if_fail (config != NULL);
+
+ g_message ("--------- NMIP4Config %p (%s)", config, detail);
+
+ /* addresses */
+ for (i = 0; i < nm_ip4_config_get_num_addresses (config); i++) {
+ const NMPlatformIP4Address *addr = nm_ip4_config_get_address (config, i);
+
+ if (inet_ntop (AF_INET, (void *) &addr->address, buf, sizeof (buf))) {
+ g_message (" a: %s/%u timestamp:%u lifetime:%u preferred:%u",
+ buf, addr->plen, addr->timestamp, addr->lifetime, addr->preferred);
+ }
+ }
+
+ /* ptp address */
+ tmp = nm_ip4_config_get_ptp_address (config);
+ if (inet_ntop (AF_INET, (void *) &tmp, buf, sizeof (buf)))
+ g_message (" ptp: %s", buf);
+
+ /* default gateway */
+ tmp = nm_ip4_config_get_gateway (config);
+ if (inet_ntop (AF_INET, (void *) &tmp, buf, sizeof (buf)))
+ g_message (" gw: %s", buf);
+
+ /* nameservers */
+ for (i = 0; i < nm_ip4_config_get_num_nameservers (config); i++) {
+ tmp = nm_ip4_config_get_nameserver (config, i);
+ if (inet_ntop (AF_INET, (void *) &tmp, buf, sizeof (buf)))
+ g_message (" ns: %s", buf);
+ }
+
+ /* routes */
+ for (i = 0; i < nm_ip4_config_get_num_routes (config); i++) {
+ NMIP4Route *route = nm_ip4_config_get_route (config, i);
+ guint dest = nm_ip4_route_get_dest (route);
+ guint nh = nm_ip4_route_get_next_hop (route);
+
+ if (inet_ntop (AF_INET, (void *) &dest, buf, sizeof (buf)) &&
+ inet_ntop (AF_INET, (void *) &nh, buf2, sizeof (buf2))) {
+ g_message (" rt: %s/%u via %s metric:%u",
+ buf, nm_ip4_route_get_prefix (route), buf2,
+ nm_ip4_route_get_metric (route));
+ }
+ }
+
+ /* domains */
+ for (i = 0; i < nm_ip4_config_get_num_domains (config); i++)
+ g_message (" domain: %s", nm_ip4_config_get_domain (config, i));
+
+ /* dns searches */
+ for (i = 0; i < nm_ip4_config_get_num_searches (config); i++)
+ g_message (" search: %s", nm_ip4_config_get_search (config, i));
+
+ g_message (" mss: %u", nm_ip4_config_get_mss (config));
+
+ /* NIS */
+ for (i = 0; i < nm_ip4_config_get_num_nis_servers (config); i++) {
+ guint32 nis = nm_ip4_config_get_nis_server (config, i);
+
+ if (inet_ntop (AF_INET, (void *) &nis, buf, sizeof (buf)))
+ g_message (" nis: %s", buf);
+ }
+
+ g_message (" nisdmn: %s", nm_ip4_config_get_nis_domain (config));
+
+ /* WINS */
+ for (i = 0; i < nm_ip4_config_get_num_wins (config); i++) {
+ guint32 wins = nm_ip4_config_get_wins (config, i);
+
+ if (inet_ntop (AF_INET, (void *) &wins, buf, sizeof (buf)))
+ g_message (" wins: %s", buf);
+ }
+}
+
gboolean
nm_ip4_config_destination_is_direct (NMIP4Config *config, guint32 network, int plen)
{
diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h
index adef22e8c3..73451d8bfe 100644
--- a/src/nm-ip4-config.h
+++ b/src/nm-ip4-config.h
@@ -67,6 +67,7 @@ void nm_ip4_config_update_setting (NMIP4Config *config, NMSettingIP4Config *sett
void nm_ip4_config_merge (NMIP4Config *dst, NMIP4Config *src);
void nm_ip4_config_subtract (NMIP4Config *dst, NMIP4Config *src);
gboolean nm_ip4_config_destination_is_direct (NMIP4Config *config, guint32 dest, int plen);
+void nm_ip4_config_dump (NMIP4Config *config, const char *detail);
/* Gateways */
void nm_ip4_config_set_never_default (NMIP4Config *config, gboolean never_default);