[git commit] udhcpd: code shrink

Denys Vlasenko vda.linux at googlemail.com
Thu May 16 09:27:28 UTC 2019


commit: https://git.busybox.net/busybox/commit/?id=25393fb55e515cab25bb932420813f2c5bbd18f9
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
send_packet_verbose                                    -      35     +35
send_offer                                           443     423     -20
send_ACK                                             152     131     -21
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 35/-41)             Total: -6 bytes

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/udhcp/dhcpd.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c
index f231e4001..3d60abf8f 100644
--- a/networking/udhcp/dhcpd.c
+++ b/networking/udhcp/dhcpd.c
@@ -627,6 +627,15 @@ static void send_packet(struct dhcp_packet *dhcp_pkt, int force_broadcast)
 		send_packet_to_client(dhcp_pkt, force_broadcast);
 }
 
+static void send_packet_verbose(struct dhcp_packet *dhcp_pkt, const char *fmt)
+{
+	struct in_addr addr;
+	addr.s_addr = dhcp_pkt->yiaddr;
+	bb_info_msg(fmt, inet_ntoa(addr));
+	/* send_packet emits error message itself if it detects failure */
+	send_packet(dhcp_pkt, /*force_bcast:*/ 0);
+}
+
 static void init_packet(struct dhcp_packet *packet, struct dhcp_packet *oldpacket, char type)
 {
 	/* Sets op, htype, hlen, cookie fields
@@ -722,7 +731,6 @@ static NOINLINE void send_offer(struct dhcp_packet *oldpacket,
 {
 	struct dhcp_packet packet;
 	uint32_t lease_time_sec;
-	struct in_addr addr;
 
 	init_packet(&packet, oldpacket, DHCPOFFER);
 
@@ -778,10 +786,8 @@ static NOINLINE void send_offer(struct dhcp_packet *oldpacket,
 	udhcp_add_simple_option(&packet, DHCP_LEASE_TIME, htonl(lease_time_sec));
 	add_server_options(&packet);
 
-	addr.s_addr = packet.yiaddr;
-	bb_info_msg("sending OFFER of %s", inet_ntoa(addr));
 	/* send_packet emits error message itself if it detects failure */
-	send_packet(&packet, /*force_bcast:*/ 0);
+	send_packet_verbose(&packet, "sending OFFER to %s");
 }
 
 /* NOINLINE: limit stack usage in caller */
@@ -800,7 +806,6 @@ static NOINLINE void send_ACK(struct dhcp_packet *oldpacket, uint32_t yiaddr)
 {
 	struct dhcp_packet packet;
 	uint32_t lease_time_sec;
-	struct in_addr addr;
 	const char *p_host_name;
 
 	init_packet(&packet, oldpacket, DHCPACK);
@@ -810,9 +815,7 @@ static NOINLINE void send_ACK(struct dhcp_packet *oldpacket, uint32_t yiaddr)
 	udhcp_add_simple_option(&packet, DHCP_LEASE_TIME, htonl(lease_time_sec));
 	add_server_options(&packet);
 
-	addr.s_addr = yiaddr;
-	bb_info_msg("sending ACK to %s", inet_ntoa(addr));
-	send_packet(&packet, /*force_bcast:*/ 0);
+	send_packet_verbose(&packet, "sending ACK to %s");
 
 	p_host_name = (const char*) udhcp_get_option(oldpacket, DHCP_HOST_NAME);
 	add_lease(packet.chaddr, packet.yiaddr,
@@ -852,6 +855,7 @@ static NOINLINE void send_inform(struct dhcp_packet *oldpacket)
 	add_server_options(&packet);
 
 	send_packet(&packet, /*force_bcast:*/ 0);
+	// or maybe? send_packet_verbose(&packet, "sending ACK to %s");
 }
 
 int udhcpd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;


More information about the busybox-cvs mailing list