From 58a420511cefd3a2ee9271277856eeccb9f3369c Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Sat, 28 Mar 2020 10:56:52 +0100 Subject: [PATCH] nic_router: show offered IPs If verbose_domain_state is enabled, the server logs detailed information about the DHCP offer. --- repos/os/src/server/nic_router/dhcp_client.cc | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/repos/os/src/server/nic_router/dhcp_client.cc b/repos/os/src/server/nic_router/dhcp_client.cc index 99e499a7c6..dd8553897f 100644 --- a/repos/os/src/server/nic_router/dhcp_client.cc +++ b/repos/os/src/server/nic_router/dhcp_client.cc @@ -124,6 +124,28 @@ void Dhcp_client::handle_dhcp_reply(Dhcp_packet &dhcp) Message_type const msg_type = dhcp.option().value(); + if (_interface.config().verbose_domain_state()) { + if (msg_type == Message_type::OFFER) { + Ipv4_address dns_server; + Ipv4_address subnet_mask; + Ipv4_address router_ip; + + try { dns_server = dhcp.option().value(); } + catch (Dhcp_packet::Option_not_found) { } + try { subnet_mask = dhcp.option().value(); } + catch (Dhcp_packet::Option_not_found) { } + try { router_ip = dhcp.option().value(); } + catch (Net::Dhcp_packet::Option_not_found) { } + + log("[", _interface.domain(), "] dhcp offer from ", + dhcp.siaddr(), + ", offering ", dhcp.yiaddr(), + ", subnet-mask ", subnet_mask, + ", gateway ", router_ip, + ", DNS server ", dns_server); + } + } + switch (_state) { case State::SELECT: