diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-01 12:36:09 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-01 12:36:09 +0000 |
commit | bd79c3d337304a96dcce4ae4f97b36143919af10 (patch) | |
tree | 75115aadc65ea14c8b038be883abfe74ca5f4ced /networking/udhcp/serverpacket.c | |
parent | 3266aa9ec285dbcf254daa17c103bf69dc755967 (diff) | |
download | busybox-w32-bd79c3d337304a96dcce4ae4f97b36143919af10.tar.gz busybox-w32-bd79c3d337304a96dcce4ae4f97b36143919af10.tar.bz2 busybox-w32-bd79c3d337304a96dcce4ae4f97b36143919af10.zip |
dhcpd: remember and record hostnames; optimize get_option
dumpleases: show hostnames
function old new delta
add_lease 230 292 +62
send_offer 403 421 +18
send_ACK 232 249 +17
read_leases 249 258 +9
dumpleases_main 604 609 +5
nobody_responds_to_arp 84 86 +2
udhcp_end_option 32 30 -2
udhcp_get_option 222 171 -51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 6/2 up/down: 113/-53) Total: 60 bytes
Diffstat (limited to 'networking/udhcp/serverpacket.c')
-rw-r--r-- | networking/udhcp/serverpacket.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/networking/udhcp/serverpacket.c b/networking/udhcp/serverpacket.c index afc0fb40d..8b0f1856b 100644 --- a/networking/udhcp/serverpacket.c +++ b/networking/udhcp/serverpacket.c | |||
@@ -105,7 +105,7 @@ int FAST_FUNC send_offer(struct dhcpMessage *oldpacket) | |||
105 | uint32_t req_align; | 105 | uint32_t req_align; |
106 | uint32_t lease_time_aligned = server_config.lease; | 106 | uint32_t lease_time_aligned = server_config.lease; |
107 | uint32_t static_lease_ip; | 107 | uint32_t static_lease_ip; |
108 | uint8_t *req, *lease_time; | 108 | uint8_t *req, *lease_time, *p_host_name; |
109 | struct option_set *curr; | 109 | struct option_set *curr; |
110 | struct in_addr addr; | 110 | struct in_addr addr; |
111 | 111 | ||
@@ -146,7 +146,8 @@ int FAST_FUNC send_offer(struct dhcpMessage *oldpacket) | |||
146 | bb_error_msg("no IP addresses to give - OFFER abandoned"); | 146 | bb_error_msg("no IP addresses to give - OFFER abandoned"); |
147 | return -1; | 147 | return -1; |
148 | } | 148 | } |
149 | if (!add_lease(packet.chaddr, packet.yiaddr, server_config.offer_time)) { | 149 | p_host_name = get_option(oldpacket, DHCP_HOST_NAME); |
150 | if (!add_lease(packet.chaddr, packet.yiaddr, server_config.offer_time, p_host_name)) { | ||
150 | bb_error_msg("lease pool is full - OFFER abandoned"); | 151 | bb_error_msg("lease pool is full - OFFER abandoned"); |
151 | return -1; | 152 | return -1; |
152 | } | 153 | } |
@@ -201,6 +202,7 @@ int FAST_FUNC send_ACK(struct dhcpMessage *oldpacket, uint32_t yiaddr) | |||
201 | uint8_t *lease_time; | 202 | uint8_t *lease_time; |
202 | uint32_t lease_time_aligned = server_config.lease; | 203 | uint32_t lease_time_aligned = server_config.lease; |
203 | struct in_addr addr; | 204 | struct in_addr addr; |
205 | uint8_t *p_host_name; | ||
204 | 206 | ||
205 | init_packet(&packet, oldpacket, DHCPACK); | 207 | init_packet(&packet, oldpacket, DHCPACK); |
206 | packet.yiaddr = yiaddr; | 208 | packet.yiaddr = yiaddr; |
@@ -232,7 +234,8 @@ int FAST_FUNC send_ACK(struct dhcpMessage *oldpacket, uint32_t yiaddr) | |||
232 | if (send_packet(&packet, 0) < 0) | 234 | if (send_packet(&packet, 0) < 0) |
233 | return -1; | 235 | return -1; |
234 | 236 | ||
235 | add_lease(packet.chaddr, packet.yiaddr, lease_time_aligned); | 237 | p_host_name = get_option(oldpacket, DHCP_HOST_NAME); |
238 | add_lease(packet.chaddr, packet.yiaddr, lease_time_aligned, p_host_name); | ||
236 | if (ENABLE_FEATURE_UDHCPD_WRITE_LEASES_EARLY) { | 239 | if (ENABLE_FEATURE_UDHCPD_WRITE_LEASES_EARLY) { |
237 | /* rewrite the file with leases at every new acceptance */ | 240 | /* rewrite the file with leases at every new acceptance */ |
238 | write_leases(); | 241 | write_leases(); |