aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/arpping.c
AgeCommit message (Collapse)Author
2019-07-02libbb: reduce the overhead of single parameter bb_error_msg() callsJames Byrne
Back in 2007, commit 0c97c9d43707 ("'simple' error message functions by Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower overhead call to bb_perror_msg() when only a string was being printed with no parameters. This saves space for some CPU architectures because it avoids the overhead of a call to a variadic function. However there has never been a simple version of bb_error_msg(), and since 2007 many new calls to bb_perror_msg() have been added that only take a single parameter and so could have been using bb_simple_perror_message(). This changeset introduces 'simple' versions of bb_info_msg(), bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and bb_herror_msg_and_die(), and replaces all calls that only take a single parameter, or use something like ("%s", arg), with calls to the corresponding 'simple' version. Since it is likely that single parameter calls to the variadic functions may be accidentally reintroduced in the future a new debugging config option WARN_SIMPLE_MSG has been introduced. This uses some macro magic which will cause any such calls to generate a warning, but this is turned off by default to avoid use of the unpleasant macros in normal circumstances. This is a large changeset due to the number of calls that have been replaced. The only files that contain changes other than simple substitution of function calls are libbb.h, libbb/herror_msg.c, libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c, networking/udhcp/common.h and util-linux/mdev.c additonal macros have been added for logging so that single parameter and multiple parameter logging variants exist. The amount of space saved varies considerably by architecture, and was found to be as follows (for 'defconfig' using GCC 7.4): Arm: -92 bytes MIPS: -52 bytes PPC: -1836 bytes x86_64: -938 bytes Note that for the MIPS architecture only an exception had to be made disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h) because it made these files larger on MIPS. Signed-off-by: James Byrne <james.byrne@origamienergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-10-04dhcp: merge leases.c and static_leases.c into dhcpd.cDenys Vlasenko
function old new delta send_offer 292 461 +169 udhcpd_main 1531 1588 +57 read_leases 330 332 +2 add_lease 314 312 -2 find_lease_by_mac 68 - -68 find_free_or_expired_nip 174 - -174 ------------------------------------------------------------------------------ (add/remove: 0/4 grow/shrink: 3/1 up/down: 228/-244) Total: -16 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-03-30udhcp: get rid of bb_info_msg()Denys Vlasenko
function old new delta udhcpd_main 1501 1531 +30 d6_recv_raw_packet 251 264 +13 perform_d6_release 188 198 +10 udhcpc6_main 2443 2449 +6 udhcp_recv_raw_packet 582 588 +6 udhcp_recv_kernel_packet 132 138 +6 send_d6_renew 140 146 +6 d6_recv_kernel_packet 118 124 +6 send_renew 77 82 +5 send_discover 85 90 +5 send_decline 84 89 +5 send_d6_select 97 102 +5 send_d6_discover 174 179 +5 perform_release 167 172 +5 count_lines 72 74 +2 udhcpc_main 2836 2837 +1 bb_info_msg 125 - -125 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 17/4 up/down: 117/-180) Total: -63 bytes text data bss dec hex filename 924935 906 17160 943001 e6399 busybox_old 924736 906 17160 942802 e62d2 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-10-30udhcpd: add option for tweaking arppingMichel Stam
Some clients have a very short timeout for sending the DHCP DISCOVER, shorter than the arpping timeout of 2000 milliseconds that udhcpd uses by default. This patch allows tweaking the timeout, or disabling of arpping altogether, at the risk of handing out addresses which are already in use. function old new delta udhcpd_main 1460 1501 +41 udhcpc_main 2814 2851 +37 packed_usage 29957 29974 +17 arpping 477 493 +16 find_free_or_expired_nip 161 174 +13 send_offer 285 292 +7 nobody_responds_to_arp 85 89 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 7/0 up/down: 135/0) Total: 135 bytes Signed-off-by: Michel Stam <m.stam@fugro.nl> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-17udhcp: make arpping code resistant to time jumpsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-16*: make GNU licensing statement forms more regularDenys Vlasenko
This change retains "or later" state! No licensing _changes_ here, only form is adjusted (article, space between "GPL" and "v2" and so on). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-26udhcp: cosmetic cleanups; one case of s/full_read/xread/Denys Vlasenko
function old new delta dumpleases_main 632 623 -9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-02-04*: eliminate more aliasing warningsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-12libbb: introduce and use monotonic_msDenys Vlasenko
function old new delta monotonic_ms - 60 +60 process_stdin 433 443 +10 display_speed 85 90 +5 nmeter_main 672 674 +2 builtin_type 114 116 +2 bb__parsespent 117 119 +2 ifplugd_main 1110 1109 -1 acpid_main 441 440 -1 chat_main 1361 1359 -2 doCommands 2458 2449 -9 arpping 466 450 -16 run_command 268 234 -34 readcmd 1072 1034 -38 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 5/7 up/down: 81/-101) Total: -20 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-12*: add/remove safe_, it seems we had a few incorrect usesDenys Vlasenko
function old new delta chat_main 1359 1361 +2 microcom_main 712 713 +1 ifplugd_main 1109 1110 +1 arpping 465 466 +1 acpid_main 440 441 +1 script_main 1069 1067 -2 cgi_io_loop_and_exit 594 591 -3 telnet_main 1475 1469 -6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 5/3 up/down: 6/-11) Total: -5 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-13*: use "can't" instead of "cannot"Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-17udhcp: cosmetics in arpping.c, no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-17udhcp: logging improvements, field and variable renamesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-17udhcp: change UDHCP_DEBUG into int, make verbosity selectable with -vDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-16udhcpd: don't fail ARP check if returned MAC matches client's oneDenys Vlasenko
Also, do not unicast replies to yiaddr. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2008-12-07Fix forgotten license commentsDenis Vlasenko
2008-09-26dhcp: add FAST_FUNC as appropriate. -160 bytes.Denis Vlasenko
2008-07-05*: rename ATTRIBUTE_XXX to just XXX.Denis Vlasenko
2008-05-09udhcp: protect agianst timer overflowing 32-bit counterDenis Vlasenko
function old new delta arpping 398 387 -11
2007-11-22udhcpc: an option to perform ARP check (Jonas Danielsson ↵Denis Vlasenko
<jonas.danielsson@axis.com>) configurable, ~+300 bytes when on.
2007-09-27introduce safe_poll (fixes a problem in top)Denis Vlasenko
function old new delta safe_poll - 77 +77 svlogd_main 1470 1466 -4 zcip_main 1530 1524 -6 forkexec 1345 1338 -7 decode_format_string 795 788 -7 collect_blk 474 467 -7 buffer_pread 540 532 -8 tftp 1182 1172 -10 microcom_main 763 749 -14 arpping 441 424 -17 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/9 up/down: 77/-80) Total: -3 bytes text data bss dec hex filename 770162 1034 10404 781600 bed20 busybox_old 770158 1034 10404 781596 bed1c busybox_unstripped
2007-09-07*: replace select-for-one descriptor with poll, it's smaller.Denis Vlasenko
$ ./.cmk bloatcheck function old new delta readit 406 364 -42 syslogd_main 1249 1206 -43 traceroute_main 4115 4060 -55 mysleep 112 45 -67 arpping 579 441 -138 tftp 1575 1182 -393 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/6 up/down: 0/-738) Total: -738 bytes text data bss dec hex filename 770580 1051 10764 782395 bf03b busybox_old 769820 1051 10764 781635 bed43 busybox_unstripped
2007-07-03udhcp: many small fixes:Denis Vlasenko
* arpping(): smaller and even probably fixed * lots of variables/params converted: ulong -> uint32_t * uptime() nuked in favor of monotonic_sec() * udhcp_get_packet(): only one "bad vendor", simplify function old new delta reservedIp 36 35 -1 udhcpc_main 2462 2460 -2 addStaticLease 64 62 -2 static.broken_vendors 16 - -16 uptime 19 - -19 udhcpd_main 1273 1238 -35 udhcp_get_packet 223 184 -39 .rodata 144162 144106 -56 arpping 690 609 -81 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 0/7 up/down: 0/-251) Total: -251 bytes text data bss dec hex filename 734241 3028 14400 751669 b7835 busybox_old 734005 3028 14400 751433 b7749 busybox_unstripped
2007-03-24random style fixes (extra spaces deleted)Denis Vlasenko
2006-12-19u_short, ulong exterminatedDenis Vlasenko
fdiskXXX: add a bit of sanity (not enough by far)
2006-11-22introduce setsockopt_reuseaddr(int fd), setsockopt_broadcast(int fd),Denis Vlasenko
use them where appropriate. 200 bytes saved
2006-11-18udhcp: fix indentation and style.Denis Vlasenko
Eliminate (group) a lot of smallish *.h files Remove lots of unneeded #includes
2006-10-20message string changes, mostly for consistency, also -32 bytes in .rodataDenis Vlasenko
2006-10-14add open_read_close() and similar stuffDenis Vlasenko
2006-09-06Implement optional syslog logging using ordinaryDenis Vlasenko
bb_xx_msg calls, and convert networking/* to it. The rest of bbox will be converted gradually.
2006-08-18- remove last reminiscents of IN_BUSYBOXBernhard Reutner-Fischer
2006-07-02Standardize on the vi editing directives being on the first line."Robert P. J. Day"
2006-05-27Consolidate #include <sys/time.h> so libbb.h does it.Rob Landley
2006-05-08add back in udhcp supportMike Frysinger
2006-03-23remove in place of external linkMike Frysinger
2006-01-25just whitespaceTim Riker
2005-05-04Revert the uptime() removal. Let the list sort it out...Rob Landley
2005-05-04Patch from Shaun Jackman:Rob Landley
Replace uptime with time(NULL). time is more portable than uptime and eliminates the need to define uptime, reducing code size slightly.
2004-05-19fix timewarp in client (server fix later)Russ Dill
2004-03-15Remove trailing whitespace. Update copyright to include 2004.Eric Andersen
2004-03-05Patch by Andrew Victor,Glenn L McGrath
In arpping.h, fix structure alignment of "struct arpMsg". GCC can insert padding in the structure which causes udhcpd to send an invalid ARP packet on the network. It will then not receive a valid reply, which can cause it to assign an IP address that's already in use on the network. (With kernels before 2.4.20, the "struct ethhdr" in linux/if_ether.h wasn't marked as packed. This is also an issue if your toolchain was built with a pre-2.4.20 kernel).
2004-01-30Use standard C99 typesEric Andersen
2003-12-18Finish remerging busybox udhcp and udhcp. Some cleanups as well.Russ Dill
2003-06-10Vodz, last_patch_88Glenn L McGrath
2003-02-12sync with udhcp bug fixesRuss Dill
2002-10-14added full udhcp integrationRuss Dill