Vladislav Grishenko
6464f15ddb
udhcpc: on SIGUSR1, limit renew attempts time to 20 seconds; then do total reconfig
...
Scenario:
1. udhcpc gets lease for 86400 secs and sleeps for 43200 before renew attempt
2. PC gets physically disconnected and connected to another network
3. some phy control software sends SIGUSR1 to renew the lease, SIGUSR2 isn't
used because newly connected network could be the same as before
4. udhcpc sends unicast renew requests until lease timeout fall to 60 sec.
They are ignored by new network dhcp servers
5. udhcpc sends broadcast rebind requests for 60 seconds, which are NAKed
or ignored too
6. udhcpc deconfigs and starting from discover state, gets new lease for the
new network
So, pt.4+5 it could take up to 86400 secs without correct lease, which is
too long and not acceptable.
Second SIGUSR1 will immediately run into deconfig/discover state, which is
not preferable in case of the same subnet replugged.
This patch makes sure after SIGUSR1 timeout is no more than -A NUM
(usually 20 sec). It means that renew will be requested via broadcast,
and if no replies come back, full deconf/reconf cycle will be initiated
in 20 seconds.
Signed-off-by: Vladislav Grishenko <themiron@mail.ru>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-10-18 01:37:47 +02:00
Leonid Lisovskiy
6c9c0a1dc9
udhcp: IF_UDHCP_VERBOSE() macro - improve code readability
...
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-10-18 00:35:47 +02:00
Baruch Siach
e8f36330d9
networking: consolidate the IP checksum code. -129 bytes.
...
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-09-07 17:55:40 +02:00
Dan Fandrich
f533ec8767
*: simplify Ethernet header includes
...
Signed-off-by: Dan Fandrich <dan@coneharvesters.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-06-10 05:17:59 +02:00
Denys Vlasenko
5d3aaceb79
udhcpc: allow -O OPT take numeric params
...
function old new delta
udhcpc_main 2623 2654 +31
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-06-04 05:07:16 +02:00
Nigel Hathaway
c37d4c67e8
dhcpc: export unrecognized options in "optNN=XXXXXXXXX" form
...
function old new delta
udhcp_run_script 609 818 +209
Signed-off-by: Nigel Hathaway <Nigel.Hathaway@ubiquisys.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-04-26 02:38:29 +02:00
Denys Vlasenko
9ac5596a51
udhcpc: emit "correct" secs field
...
In theory, sending secs set to constant zero should be ok too.
But some bleeping servers can actually be configured to answer ONLY
if secs is bigger than a preset value (!!)
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/bootpd.8.html
grep for "reply_threshold_seconds"
function old new delta
udhcpc_main 2573 2623 +50
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-03-12 05:37:54 +01:00
Keith Young
e6bb8d339f
udhcpc: add -B option
...
function old new delta
udhcpc_longopts - 262 +262
add_client_options 218 239 +21
packed_usage 28149 28163 +14
static.udhcpc_longopts 250 - -250
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 2/0 up/down: 297/-250) Total: 47 bytes
Signed-off-by: Keith Young <stripydog7@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-03-07 03:19:42 +01:00
Vladislav Grishenko
713e6d78e1
udhcpc: use more correct, and more importantly, more understandable BPF code
...
Signed-off-by: Vladislav Grishenko <themiron@mail.ru>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-02-14 04:50:30 +01:00
Denys Vlasenko
8993c3f260
udhcpc: document SIGUSRn effect in help text
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-12-25 06:21:54 +01:00
Denys Vlasenko
0bb35e19a7
udhcpd: reduce stack usage by ~700 bytes. +28 bytes code size
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-10-21 12:33:10 +02:00
Denys Vlasenko
5d374e9b14
udhcpc: exit if iface disappeared; use correct MAC if it changes
...
function old new delta
udhcpc_main 2560 2618 +58
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-20 22:26:38 +02:00
Denys Vlasenko
c72c1d7b31
udhcpc: reduce stack usage by de-inlining routines with on-stack pkt buf
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-20 22:08:16 +02:00
Denys Vlasenko
a5048fa386
udhcpc: periodically reread our ifindex and mac
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-20 21:38:29 +02:00
Denys Vlasenko
b3af65b95d
udhcpc: emit maxsize option in all non-NAK type packets
...
Before, we were sending them only in DISCOVER packets.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-20 21:37:23 +02:00
Denys Vlasenko
c59e06e471
udhcpc: better help text
...
function old new delta
packed_usage 27452 27486 +34
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-10-20 16:10:59 +02:00
Denys Vlasenko
1cbdc03411
udhcpc: remove -c CLIENTID, it is hard to use, -x 61:hexstring does the same better
...
function old new delta
packed_usage 27802 27808 +6
static.udhcpc_longopts 261 250 -11
udhcpc_main 2799 2780 -19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 6/-30) Total: -24 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-20 01:42:37 +02:00
Denys Vlasenko
9e244c7600
udhcpc: move usage text to .c file. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-20 01:38:56 +02:00
Vladislav Grishenko
ad8def2d8a
udhcpc: fix OPTION_IP_PAIR parsing
...
http://git.busybox.net/busybox/commit/?id=7d3a48a003cd645edfae2b404493688022
revealed incorrect OPTION_IP_PAIR implementation, which doesn't respect
option length and causes erroneous classful routes, composed from garbage
or first bytes from the next DHCP packet option.
Signed-off-by: Vladislav Grishenko <themiron@mail.ru>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-17 12:27:50 +02:00
Denys Vlasenko
dd8adde386
*: introduce and use bb_unsetenv_and_free
...
function old new delta
bb_unsetenv_and_free - 17 +17
tcpudpsvd_main 1819 1810 -9
safe_setenv 58 47 -11
udhcp_run_script 630 616 -14
make_device 1683 1663 -20
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/4 up/down: 17/-54) Total: -37 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-06-24 05:00:50 +02:00
Denys Vlasenko
b7d19cc400
dhcp: readability cleanups and small code shrink
...
function old new delta
udhcp_run_script 654 617 -37
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-05-30 23:41:23 +02:00
Denys Vlasenko
c03602baa4
udhcp: s/dhcp_option/dhcp_optflag/g
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-04 15:28:49 +02:00
Denys Vlasenko
9c0ea86caa
udhcpc: trivial shrink
...
function old new delta
udhcpc_main 2801 2785 -16
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-04 02:12:03 +02:00
Denys Vlasenko
243ddcbc76
udhcpd: support decoding of option 120 "SIP servers". Closes bug 737
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-03 17:34:52 +02:00
Denys Vlasenko
9107b63a7f
udhcp: abort if we see unknown option, and show valid options if so
...
function old new delta
udhcp_option_idx - 77 +77
udhcp_str2optset 366 351 -15
udhcpc_main 2845 2801 -44
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 77/-59) Total: 18 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-27 23:23:41 +01:00
Denys Vlasenko
385b4562e3
udhcp: cosmetic cleanups; one case of s/full_read/xread/
...
function old new delta
dumpleases_main 632 623 -9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-26 10:09:34 +01:00
Denys Vlasenko
7724c766bd
udhcp: pass pointer to whole packet to "add option" functions
...
This is needed for "overflow option" support
function old new delta
udhcp_find_option - 34 +34
udhcp_add_binary_option 94 106 +12
write_leases 227 223 -4
udhcp_init_header 86 82 -4
send_release 104 99 -5
init_packet 87 81 -6
add_client_options 160 154 -6
add_server_options 100 92 -8
udhcpd_main 1964 1954 -10
udhcpc_main 2859 2837 -22
find_option 34 - -34
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/8 up/down: 46/-99) Total: -53 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-26 09:32:09 +01:00
Denys Vlasenko
a8f6b99987
udhcp: move options.c to common.c; disable unused bool and s16 option code
...
function old new delta
udhcp_add_binary_option - 94 +94
udhcp_str2nip - 42 +42
len_of_option_as_string 12 10 -2
dhcp_option_lengths 12 10 -2
udhcpc_main 2859 2851 -8
read_nip 42 - -42
xmalloc_optname_optval 590 536 -54
udhcp_str2optset 443 366 -77
udhcp_add_option_string 86 - -86
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 0/5 up/down: 136/-271) Total: -135 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-26 08:35:24 +01:00
Denys Vlasenko
7e6add1dfc
udhcpc: add -x OPT:VAL option
...
function old new delta
udhcp_str2optset - 443 +443
add_client_options - 160 +160
udhcpc_main 2753 2857 +104
packed_usage 26670 26689 +19
attach_option 380 385 +5
udhcpd_main 1964 1965 +1
udhcp_add_option_string 94 86 -8
add_param_req_option 128 - -128
read_opt 443 - -443
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 4/1 up/down: 732/-579) Total: 153 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-25 20:32:38 +01:00
Denys Vlasenko
dde8bdcc5b
udhcp: merge options.h into common.h, script.c into dhcpc.c
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-22 14:29:13 +01:00
Denys Vlasenko
8d1144565f
udhcpc: do not test for srand init, just do it at the start
...
function old new delta
udhcpc_main 2855 2867 +12
static.initialized 1 - -1
client_background 32 31 -1
perform_release 124 122 -2
random_xid 38 - -38
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 1/2 up/down: 12/-42) Total: -30 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-22 13:44:09 +01:00
Denys Vlasenko
501e35c474
udhcp: merge clientpacket.c into dhcpc.c
...
function old new delta
udhcpc_main 2569 2855 +286
perform_release 122 124 +2
client_background 31 32 +1
init_packet 156 88 -68
send_decline 114 - -114
send_discover 121 - -121
send_select 130 - -130
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 3/1 up/down: 289/-433) Total: -144 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-22 13:43:12 +01:00
Denys Vlasenko
6b24d5354b
udhcpc: merge clientsocket.c into dhcpc.c. +4 bytes.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-22 13:42:13 +01:00
Denys Vlasenko
87fa216e1e
udhcpc: make it possible to disable vendor id; improve help text
...
function old new delta
init_packet 135 139 +4
packed_usage 26789 26786 -3
alloc_dhcp_option 67 63 -4
udhcpc_main 2467 2447 -20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 4/-27) Total: -23 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-20 18:06:23 +01:00
Denys Vlasenko
219757fee9
udhcpc: fix bug 629: use bcast receive when we perform rebinding
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-08 23:05:46 +02:00
Justin Maggard
aa369e0f0d
udhcpc: if got IP successfully, disable -n for future renewals
...
Signed-off-by: Justin Maggard <jmaggard10@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-13 01:26:17 +02:00
Denys Vlasenko
4abfc2642d
udhcpc: small simplification
...
function old new delta
udhcpc_main 2401 2398 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-19 04:35:16 +02:00
Denys Vlasenko
753a3ce73e
typo
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-19 04:27:10 +02:00
Denys Vlasenko
7d6a791ef6
udhcpc: add/edit comments, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-19 04:24:23 +02:00
Denys Vlasenko
13ca4b12e2
udhcpc: simplify manual renew (make it more similar to automatic one)
...
function old new delta
udhcp_run_script 669 673 +4
udhcpc_main 2414 2401 -13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 4/-13) Total: -9 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-19 04:07:21 +02:00
Denys Vlasenko
4248c33a85
udhcpc: fix a read error loop (e.g.: device is down) blocking TERM
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-26 23:23:16 +02:00
Denys Vlasenko
f3b92d3856
getopt: FEATURE_GETOPT_LONG for -l; rename GETOPT_LONG to LONG_OPTS
...
Signed-off-by: Colin Watson <cjwatson@ubuntu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-19 12:10:38 +02:00
Denys Vlasenko
4945ed32d7
udhcpc: fix format of one log message
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-17 11:58:11 +02:00
Denys Vlasenko
31af3d5a1d
udhcp: shorten mac len from 16 to 6 in lease file
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-17 11:57:09 +02:00
Denys Vlasenko
ac906fa85e
udhcp: change UDHCP_DEBUG into int, make verbosity selectable with -v
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-17 11:54:52 +02:00
Denys Vlasenko
26918dd28e
udhcp: rename server/client_config.arp to server_mac and client_mac
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-16 12:04:23 +02:00
Denys Vlasenko
47f2d7ef7d
udhcpd: don't fail ARP check if returned MAC matches client's one
...
Also, do not unicast replies to yiaddr.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-16 10:20:27 +02:00
Denis Vlasenko
5e34ff29bc
*: mass renaming of USE_XXXX to IF_XXXX
...
and SKIP_XXXX to IF_NOT_XXXX - the second one was especially
badly named. It was not skipping anything!
2009-04-21 11:09:40 +00:00
Denis Vlasenko
a19e64933c
docs/logging_and_backgrounding.txt: new mini-doc
...
dnsd: remove statics, remove nerly-useless SIGINT handler
crond: correct more of logfile to 0666 (as usual, umask allows
user to remove unwanted bits).
nameif: print errors to stderr too, not just to syslog
function old new delta
udhcp_read_interface 308 306 -2
ttl 4 - -4
fileconf 4 - -4
dnsentry 4 - -4
interrupt 19 - -19
dnsd_main 1463 1394 -69
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 0/2 up/down: 0/-102) Total: -102 bytes
text data bss dec hex filename
808161 476 7864 816501 c7575 busybox_old
807994 468 7856 816318 c74be busybox_unstripped
2009-03-11 14:40:00 +00:00
Denis Vlasenko
5e4fda0aff
ftpd: code chrink, fixed some minor bugs
...
ls: update comment
*: openlog fixes (added LOG_PID, set LOG_DAEMON as appropriate)
function old new delta
xwrite_str - 26 +26
cmdio_write_ok - 15 +15
handle_cwd 40 45 +5
packed_usage 25668 25670 +2
cmdio_write_raw 7 9 +2
handle_upload_common 322 320 -2
udhcpd_main 1375 1372 -3
udhcpc_main 2362 2359 -3
port_cleanup 27 23 -4
handle_dir_common 221 209 -12
str_netfd_write 26 - -26
cmdio_get_cmd_and_arg 122 - -122
ftpd_main 2208 2050 -158
------------------------------------------------------------------------------
text data bss dec hex filename
809933 476 7864 818273 c7c61 busybox_old
809199 476 7864 817539 c7983 busybox_unstripped
2009-03-08 23:46:48 +00:00