From be1af905852d25e11fdf0cb4f37be2a58567dd94 Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Sat, 21 Mar 2020 18:32:51 +0100 Subject: [PATCH 1/3] network: DHCP lease load SIP copy paste error --- src/libsystemd-network/sd-dhcp-lease.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index 48e8aad8f3..d072f1c57a 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -1175,7 +1175,7 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) { if (r < 0) log_debug_errno(r, "Failed to deserialize SIP servers %s, ignoring: %m", sip); else - lease->ntp_size = r; + lease->sip_size = r; } if (mtu) { From eb46288cca29c1f2f6f2ea697e3469c6babf8970 Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Sun, 22 Mar 2020 10:39:23 +0100 Subject: [PATCH 2/3] sd-network: Provice APIs to access SIP servers given by DHCP4 server --- src/libsystemd/sd-network/sd-network.c | 4 ++++ src/systemd/sd-network.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/libsystemd/sd-network/sd-network.c b/src/libsystemd/sd-network/sd-network.c index b9b618e585..964200a55e 100644 --- a/src/libsystemd/sd-network/sd-network.c +++ b/src/libsystemd/sd-network/sd-network.c @@ -240,6 +240,10 @@ _public_ int sd_network_link_get_ntp(int ifindex, char ***ret) { return network_link_get_strv(ifindex, "NTP", ret); } +_public_ int sd_network_link_get_sip(int ifindex, char ***ret) { + return network_link_get_strv(ifindex, "SIP", ret); +} + _public_ int sd_network_link_get_search_domains(int ifindex, char ***ret) { return network_link_get_strv(ifindex, "DOMAINS", ret); } diff --git a/src/systemd/sd-network.h b/src/systemd/sd-network.h index d0b432274c..1e6d354011 100644 --- a/src/systemd/sd-network.h +++ b/src/systemd/sd-network.h @@ -118,6 +118,10 @@ int sd_network_link_get_dhcp4_address(int ifindex, char **ret); * representations of IP addresses */ int sd_network_link_get_ntp(int ifindex, char ***ret); +/* Get SIP entries for a given link. These are string + * representations of IP addresses */ +int sd_network_link_get_sip(int ifindex, char ***ret); + /* Indicates whether or not LLMNR should be enabled for the link * Possible levels of support: yes, no, resolve * Possible return codes: From 1f807af6de99b0767925ff6f4bf0fee4dbe2afdf Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Sun, 22 Mar 2020 10:40:00 +0100 Subject: [PATCH 3/3] networkctl: Add support to display SIP servers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` ❯ build/networkctl status veth99 ─╯ ● 17: veth99 Link File: /usr/lib/systemd/network/99-default.link Network File: /usr/lib/systemd/network/veth99.network Type: ether State: routable (configured) Driver: veth HW Address: 1e:04:f8:b8:2f:d4 MTU: 1500 (min: 68, max: 65535) QDisc: noqueue IPv6 Address Generation Mode: eui64 Queue Length (Tx/Rx): 1/1 Auto negotiation: no Speed: 10Gbps Duplex: full Port: tp Address: 192.168.5.35 (DHCP4) fe80::1c04:f8ff:feb8:2fd4 Gateway: 192.168.5.1 DNS: 192.168.5.1 NTP: 192.168.5.1 SIP: 192.168.5.4 192.168.5.5 Time Zone: Europe/Berlin Mar 21 23:26:32 Zeus systemd-networkd[671]: veth99: Link DOWN Mar 21 23:26:32 Zeus systemd-networkd[671]: veth99: Lost carrier Mar 22 10:25:35 Zeus systemd-networkd[671]: veth99: Link UP Mar 22 10:25:35 Zeus systemd-networkd[671]: veth99: Gained carrier Mar 22 10:25:36 Zeus systemd-networkd[671]: veth99: Gained IPv6LL Mar 22 10:29:02 Zeus systemd-networkd[671]: veth99: Link DOWN Mar 22 10:29:02 Zeus systemd-networkd[671]: veth99: Lost carrier Mar 22 10:29:13 Zeus systemd-networkd[671]: veth99: Link UP Mar 22 10:29:13 Zeus systemd-networkd[671]: veth99: Gained carrier Mar 22 10:29:14 Zeus systemd-networkd[671]: veth99: Gained IPv6LL ``` --- src/network/networkctl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 772e6a95c2..5f445ece98 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -1221,7 +1221,7 @@ static int link_status_one( sd_hwdb *hwdb, const LinkInfo *info) { - _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **search_domains = NULL, **route_domains = NULL; + _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **sip = NULL, **search_domains = NULL, **route_domains = NULL; _cleanup_free_ char *setup_state = NULL, *operational_state = NULL, *tz = NULL; _cleanup_free_ char *t = NULL, *network = NULL; const char *driver = NULL, *path = NULL, *vendor = NULL, *model = NULL, *link = NULL; @@ -1247,6 +1247,7 @@ static int link_status_one( (void) sd_network_link_get_search_domains(info->ifindex, &search_domains); (void) sd_network_link_get_route_domains(info->ifindex, &route_domains); (void) sd_network_link_get_ntp(info->ifindex, &ntp); + (void) sd_network_link_get_sip(info->ifindex, &sip); if (info->sd_device) { (void) sd_device_get_property_value(info->sd_device, "ID_NET_LINK_FILE", &link); @@ -1749,6 +1750,9 @@ static int link_status_one( if (r < 0) return r; r = dump_list(table, "NTP:", ntp); + if (r < 0) + return r; + r = dump_list(table, "SIP:", sip); if (r < 0) return r; r = dump_ifindexes(table, "Carrier Bound To:", carrier_bound_to);