From ab5fd19c2b17bbbf0d8d0bd92bfdf017daa4967f Mon Sep 17 00:00:00 2001 From: Armand Ciejak Date: Wed, 14 Oct 2020 08:49:16 +0200 Subject: [PATCH] net: ip: dhcpv4: Add dhcpv4_update_message_timeout() This avoids code duplication. The same logic was present in dhcpv4_send_request() and dhcpv4_send_discover(). Signed-off-by: Armand Ciejak --- subsys/net/ip/dhcpv4.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/subsys/net/ip/dhcpv4.c b/subsys/net/ip/dhcpv4.c index 62dda720dec..f557323f22d 100644 --- a/subsys/net/ip/dhcpv4.c +++ b/subsys/net/ip/dhcpv4.c @@ -276,6 +276,19 @@ fail: return NULL; } +static uint32_t dhcpv4_update_message_timeout(struct net_if_dhcpv4 *dhcpv4) +{ + uint32_t timeout; + + timeout = DHCPV4_INITIAL_RETRY_TIMEOUT << dhcpv4->attempts; + + dhcpv4->attempts++; + dhcpv4->timer_start = k_uptime_get(); + dhcpv4->request_time = timeout; + + return timeout; +} + /* Prepare DHCPv4 Message request and send it to peer */ static uint32_t dhcpv4_send_request(struct net_if *iface) { @@ -335,9 +348,7 @@ static uint32_t dhcpv4_send_request(struct net_if *iface) goto fail; } - timeout = DHCPV4_INITIAL_RETRY_TIMEOUT << iface->config.dhcpv4.attempts; - - iface->config.dhcpv4.attempts++; + timeout = dhcpv4_update_message_timeout(&iface->config.dhcpv4); NET_DBG("send request dst=%s xid=0x%x ciaddr=%s%s%s timeout=%us", log_strdup(net_sprint_ipv4_addr(server_addr)), @@ -348,9 +359,6 @@ static uint32_t dhcpv4_send_request(struct net_if *iface) with_requested_ip ? " +requested-ip" : "", timeout); - iface->config.dhcpv4.timer_start = k_uptime_get(); - iface->config.dhcpv4.request_time = timeout; - return timeout; fail: @@ -380,16 +388,11 @@ static uint32_t dhcpv4_send_discover(struct net_if *iface) goto fail; } - timeout = DHCPV4_INITIAL_RETRY_TIMEOUT << iface->config.dhcpv4.attempts; - - iface->config.dhcpv4.attempts++; + timeout = dhcpv4_update_message_timeout(&iface->config.dhcpv4); NET_DBG("send discover xid=0x%x timeout=%us", iface->config.dhcpv4.xid, timeout); - iface->config.dhcpv4.timer_start = k_uptime_get(); - iface->config.dhcpv4.request_time = timeout; - return timeout; fail: