Commit Graph

105 Commits

Author SHA1 Message Date
Denys Vlasenko
242d056230 udhcpc6: use a different default config script
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-12-15 11:51:16 +01:00
Denys Vlasenko
301ef96892 udhcpc6: align FF02__1_2[]
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-12-15 11:49:00 +01:00
Denys Vlasenko
e977853e70 udhcpc6: add some comments
RFCs for DHCPv6 are written rather badly...

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-12-14 00:36:59 +01:00
Denys Vlasenko
9898db4c94 udhcpc6: remove stray comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-12-13 23:21:59 +01:00
Denys Vlasenko
84b89b4c22 udhcpc6: downgrade "opening listen socket" log level to 2
This matches udhcpc for IPv4.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-08-02 18:04:51 +02:00
Denys Vlasenko
75aaa8b311 udhcpc6: fix sending of renew messages
function                                             old     new   delta
d6_listen_socket                                       -     150    +150

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-08-02 15:33:51 +02:00
Denys Vlasenko
9b6eb2a8ef udhcpc6: add missed big-endian conversions
function                                             old     new   delta
option_to_env                                        686     694      +8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-07-13 16:15:04 +02:00
Denys Vlasenko
ca466f385a *: slap on a few ALIGN* where appropriate
The result of looking at "grep -F -B2 '*fill*' busybox_unstripped.map"

function                                             old     new   delta
.rodata                                           108586  108460    -126
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-126)           Total: -126 bytes
   text	   data	    bss	    dec	    hex	filename
 970412	   4219	   1848	 976479	  ee65f	busybox_old
 970286	   4219	   1848	 976353	  ee5e1	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2022-02-06 19:53:10 +01:00
Denys Vlasenko
e67b80f473 udhcpc6: fix udhcp_find_option to actually find DHCP6 options
udhcp_insert_new_option treats code for IPv6 as follows:

new->data[D6_OPT_CODE] = code >> 8;
new->data[D6_OPT_CODE + 1] = code & 0xff;

udhcp_find_option tests the code as follows:

while (opt_list && opt_list->data[OPT_CODE] < code)
...
if (opt_list && opt_list->data[OPT_CODE] == code)

So yes, OPT_CODE and D6_OPT_CODE are both 0, but the D6_OPT_CLIENTID =
1 value means that the 1 is in the seconds byte, and udhcp_find_option
is only looking at the first byte,  So the send_d6_release can never
find it the created option.

function                                             old     new   delta
udhcp_find_option                                     28      53     +25
attach_option                                        276     284      +8
udhcpc6_main                                        2602    2607      +5
perform_d6_release                                   262     267      +5
udhcpd_main                                         1518    1520      +2
udhcpc_main                                         2542    2544      +2
add_serverid_and_clientid_options                     46      48      +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 7/0 up/down: 49/0)               Total: 49 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-12-12 17:13:54 +01:00
Denys Vlasenko
609df6f22a *: more --help tweaks
function                                             old     new   delta
packed_usage                                       33522   33534     +12

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-16 14:24:27 +02:00
Denys Vlasenko
827b690fa7 udhcpc[6]: do not pass xid around, keep it in client_data.xid
function                                             old     new   delta
perform_release                                      105     169     +64
perform_d6_release                                   259     262      +3
init_d6_packet                                        84      85      +1
send_d6_discover                                     286     285      -1
send_d6_select                                       128     126      -2
send_d6_renew                                        176     174      -2
send_d6_info_request                                  65      63      -2
udhcpc_main                                         2555    2551      -4
send_select                                          130     122      -8
send_renew                                            99      91      -8
send_discover                                         89      81      -8
udhcpc6_main                                        2636    2602     -34
send_release                                          74       -     -74
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 3/9 up/down: 68/-143)           Total: -75 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-15 01:06:42 +02:00
Denys Vlasenko
ecaf8e8d08 udhcpc[6]: on SIGUSR1, do not go from rebind to renew state
function                                             old     new   delta
udhcpc6_main                                        2628    2636      +8
udhcpc_main                                         2556    2563      +7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 15/0)               Total: 15 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-03 16:22:35 +02:00
Denys Vlasenko
f6def87a2e udhcpc: code shrink, rename functions, no logic changes
function                                             old     new   delta
d4_run_script                                          -     739    +739
d4_recv_raw_packet                                     -     484    +484
d4_run_script_deconfig                                 -      12     +12
perform_release                                      207     200      -7
udhcpc_main                                         2598    2556     -42
udhcp_recv_raw_packet                                484       -    -484
udhcp_run_script                                     739       -    -739
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 0/2 up/down: 1235/-1272)        Total: -37 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-03 16:14:04 +02:00
Denys Vlasenko
1c7253726f udhcpc[6]: when renewing, send 1 packet (not 3), on failure go back to BOUND
This restores old behavior where we slept for 1/2 of lease, then tried renewing,
thel slept for 1/4 and tried again, etc. But now we will NOT be listening to
all packets for 1/2 of lease time, processing (rejecting) everyone else's
DHCP traffic.
We'll go back to bound state, where we have no listening socket at all.

function                                             old     new   delta
udhcpc6_main                                        2600    2655     +55
udhcpc_main                                         2608    2625     +17
.rodata                                           103250  103249      -1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 72/-1)              Total: 71 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-03 10:22:28 +02:00
Denys Vlasenko
01daecca1d udhcpc[6]: remove superfluous "created raw socket" log message
function                                             old     new   delta
change_listen_mode                                   299     280     -19
.rodata                                           103272  103250     -22
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-41)             Total: -41 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-02 20:23:43 +02:00
Denys Vlasenko
4bbc391c7f udhcpc: improve logs - show offer as it is received
function                                             old     new   delta
udhcpc_main                                         2566    2608     +42
.rodata                                           103248  103272     +24
udhcp_recv_raw_packet                                559     562      +3
d6_recv_raw_packet                                   254     255      +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 70/0)               Total: 70 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-02 19:51:52 +02:00
Denys Vlasenko
0ae53451cf udhcpc[6]: close listening socket more eagerly (e.g. across script runs)
function                                             old     new   delta
udhcpc6_main                                        2571    2600     +29
udhcpc_main                                         2588    2566     -22
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 29/-22)              Total: 7 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-02 17:53:09 +02:00
Denys Vlasenko
949e9621d1 udhcpc: get rid of client_data.fqdn field
function                                             old     new   delta
attach_option                                        253     276     +23
udhcpc_main                                         2582    2588      +6
udhcpc6_main                                        2579    2571      -8
add_client_options                                   175     158     -17
udhcp_insert_new_option                              169     138     -31
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/3 up/down: 29/-56)            Total: -27 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-02 15:51:50 +02:00
Denys Vlasenko
698cdef538 udhcpc: remove deprecated -H/-h HOSTNAME options (9 years), deprecate -V VENDOR
function                                             old     new   delta
udhcpc_main                                         2563    2582     +19
dhcp_option_strings                                  294     301      +7
dhcp_optflags                                         80      82      +2
.rodata                                           103250  103248      -2
udhcpc_longopts                                      252     241     -11
add_client_options                                   209     175     -34
alloc_dhcp_option                                     59       -     -59
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 3/3 up/down: 28/-106)           Total: -78 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-02 15:07:46 +02:00
Denys Vlasenko
265fcddd08 udhcpc: include client-id option in DECLINEs, even if it's a custom -x 61:HEX option
client_data.vendorclass, .hostname and .fqdn probably need the same treatment:
just insert them into the list of -x opts, get rid of

        if (client_data.vendorclass)
                udhcp_add_binary_option(packet, client_data.vendorclass);
        if (client_data.hostname)
                udhcp_add_binary_option(packet, client_data.hostname);
        if (client_data.fqdn)
                udhcp_add_binary_option(packet, client_data.fqdn);

function                                             old     new   delta
udhcp_insert_new_option                                -     166    +166
perform_release                                      171     207     +36
perform_d6_release                                   227     259     +32
udhcpc6_main                                        2558    2580     +22
init_d6_packet                                       103      84     -19
udhcpc_main                                         2585    2564     -21
attach_option                                        397     253    -144
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/3 up/down: 256/-184)           Total: 72 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-02 14:07:26 +02:00
Denys Vlasenko
687f41f10b udhcpc[6]: fix "untangle timeout and remaining lease" fallout
As reported in bug 13776, before this fix the renew never times out.

function                                             old     new   delta
udhcpc_main                                         2541    2585     +44
udhcpc6_main                                        2567    2558      -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 44/-9)              Total: 35 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-01 00:19:03 +02:00
Denys Vlasenko
e6007c4911 udhcpc[6]: fold perform_renew() into its only caller
function                                             old     new   delta
udhcpc_main                                         2550    2541      -9
udhcpc6_main                                        2576    2567      -9
change_listen_mode                                   321     299     -22
.rodata                                           103294  103225     -69
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-109)           Total: -109 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-05-01 13:48:50 +02:00
Denys Vlasenko
a1a77ad5ea udhcpc[6]: untangle "timeout" and "remaining lease"; reduce min lease to 30 seconds
This allows to fix a problem that we wait for renew replies
for up to half the lease (!!!) if they never come.

Make it so that lease of 60 seconds is not "rounded up" to 120 seconds -
set lower "sanity limit" to 30 seconds.

After 3 failed renew attempts, switch to rebind.

After this change, we can have more flexible choice of when to do
the first renew - does not need to be equal to lease / 2.

function                                             old     new   delta
udhcpc6_main                                        2568    2576      +8
.rodata                                           103339  103294     -45
udhcpc_main                                         2609    2550     -59
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 8/-104)            Total: -96 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-05-01 12:23:25 +02:00
Denys Vlasenko
a4959eef71 udhcp: reuse strings
text	   data	    bss	    dec	    hex	filename
1019916	    559	   5020	1025495	  fa5d7	busybox_old
1019906	    559	   5020	1025485	  fa5cd	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-02-21 16:32:07 +01:00
Andre Kalb
5f2e00f66d udhcpc: Add support to change default interface name
Signed-off-by: Andre Kalb <Andre.Kalb@sma.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-01-01 19:08:28 +01:00
Denys Vlasenko
8cc3a744fb help text: use -P PORT form
function                                             old     new   delta
packed_usage                                       33502   33491     -11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-18 22:51:46 +01:00
Denys Vlasenko
f3d6711c97 udhcpc6: code shrink - sending functions do not need ifindex parameter
function                                             old     new   delta
d6_send_raw_packet_from_client_data_ifindex            -     427    +427
d6_send_kernel_packet_from_client_data_ifindex         -     275    +275
send_d6_renew                                        182     176      -6
perform_d6_release                                   246     240      -6
d6_mcast_from_client_data_ifindex                     45      39      -6
d6_send_kernel_packet                                274       -    -274
d6_send_raw_packet                                   429       -    -429
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 0/3 up/down: 702/-721)          Total: -19 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-15 21:55:15 +01:00
Denys Vlasenko
4a0eb0370c gcc-9.x warning fixes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-10-01 03:07:22 +02:00
Uwe Glaeser
faab906d28 udhcpc6: use correct multicast MAC
function                                             old     new   delta
static.MAC_DHCP6MCAST_ADDR                             -       6      +6

Signed-off-by: Uwe Glaeser <uwe.glaeser@dormakaba.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-06-21 02:56:12 +02:00
Denys Vlasenko
11e024aa86 udhcpc6: add ELAPSED_TIME option to outgoing packets
function                                             old     new   delta
init_d6_packet                                        53     121     +68
udhcpc_main                                         2577    2582      +5
udhcpc6_main                                        2593    2597      +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 77/0)               Total: 77 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-09-24 14:01:00 +02:00
Eivind Versvik
22a6339627 udhcpc6: support stateless DHCPv6
-l will send Information-Request to request configuration parameters

function                                             old     new   delta
packed_usage                                       33114   33180     +66
send_d6_info_request                                   -      62     +62
udhcpc6_main                                        2534    2593     +59
udhcpc6_longopts                                     199     211     +12
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/0 up/down: 199/0)             Total: 199 bytes

Signed-off-by: Eivind Versvik <versvikeivind@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-08-24 17:24:40 +02:00
James Byrne
6937487be7 libbb: reduce the overhead of single parameter bb_error_msg() calls
Back in 2007, commit 0c97c9d437 ("'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>
2019-07-02 11:35:03 +02:00
Denys Vlasenko
72f12acb6b udhcpc6: fix aliasing warning
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-11 18:18:48 +02:00
Denys Vlasenko
6eb6e6a1e9 dhcp: downgrade "got raw socket fd" message to log3, make log2 default max
log3 messages are very much redundant

function                                             old     new   delta
change_listen_mode                                   322     302     -20

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-31 23:52:16 +02:00
Denys Vlasenko
65c34c52df dhcp: get rid of static data signal_pipe
function                                             old     new   delta
udhcp_sp_setup                                        65     110     +45
udhcp_sp_fd_set                                       60      59      -1
udhcpd_main                                         1442    1437      -5
udhcpc_main                                         2684    2679      -5
signal_pipe                                            8       -      -8
packed_usage                                       33292   33284      -8
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/4 up/down: 45/-27)             Total: 18 bytes
   text	   data	    bss	    dec	    hex	filename
 952746	    481	   7296	 960523	  ea80b	busybox_old
 952768	    481	   7288	 960537	  ea819	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-31 23:39:22 +02:00
Denys Vlasenko
bcb1fc3e6c udhcp: rename client_config to client_data, server_config to server_data
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 15:03:05 +02:00
Denys Vlasenko
a4ed2c45b9 dhcp: get rid of last global data
function                                             old     new   delta
udhcpc_main                                         2680    2684      +4
state                                                  1       -      -1
listen_mode                                            1       -      -1
sockfd                                                 4       -      -4
------------------------------------------------------------------------------
(add/remove: 0/3 grow/shrink: 1/0 up/down: 4/-6)               Total: -2 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 13:05:04 +02:00
Denys Vlasenko
abe248b208 udhcpc6: unbreak
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-15 14:20:32 +02:00
James Byrne
253c4e787a Optionally re-introduce bb_info_msg()
Between Busybox 1.24.2 and 1.25.0 the bb_info_msg() function was
eliminated and calls to it changed to be bb_error_msg(). The downside of
this is that daemons now log all messages to syslog at the LOG_ERR level
which makes it hard to filter errors from informational messages.

This change optionally re-introduces bb_info_msg(), controlled by a new
option FEATURE_SYSLOG_INFO, restores all the calls to bb_info_msg() that
were removed (only in applets that set logmode to LOGMODE_SYSLOG or
LOGMODE_BOTH), and also changes informational messages in ifplugd and
ntpd.

The code size change of this is as follows (using 'defconfig' on x86_64
with gcc 7.3.0-27ubuntu1~18.04)

function                                             old     new   delta
bb_info_msg                                            -     182    +182
bb_vinfo_msg                                           -      27     +27
static.log7                                          194     198      +4
log8                                                 190     191      +1
log5                                                 190     191      +1
crondlog                                              45       -     -45
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 3/0 up/down: 215/-45)           Total: 170 bytes

If you don't care about everything being logged at LOG_ERR level
then when FEATURE_SYSLOG_INFO is disabled Busybox actually gets smaller:

function                                             old     new   delta
static.log7                                          194     200      +6
log8                                                 190     193      +3
log5                                                 190     193      +3
syslog_level                                           1       -      -1
bb_verror_msg                                        583     581      -2
crondlog                                              45       -     -45
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 3/1 up/down: 12/-48)            Total: -36 bytes

Signed-off-by: James Byrne <james.byrne@origamienergy.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-04-30 10:51:27 +02:00
Denys Vlasenko
60bf77f7e7 udhcpc6: code shrink
function                                             old     new   delta
d6_read_interface                                    593     582     -11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-04-14 17:01:10 +02:00
Denys Vlasenko
0d75e8b797 udhcpc6: add a few comments, no code changes.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-04-13 19:43:15 +02:00
Denys Vlasenko
cc45cbcca4 udhcpc6: make it enabled in defconfig
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-04-13 17:32:40 +02:00
Andrey Mazo
87e216294a udhcpc: don't exit after backgrounding on -n -b
Currently, running "udhcpc -n -b" causes udhcpc to go to background and
then exit after some time unless a lease is obtained.

It's not very useful to do so
as the calling process doesn't know
if the lease was obtained or not anyway.

The code actually tries to favor "-b" over "-n",
but doesn't clear "-n" flag while clearing "-b" after backgrounding.

So, clear "-n" flag after going into background.
This effectively makes "-b" override "-n" completely
and "-n -b" behave the same as "-b".

This allows to override default "-n" option, passed to udhcpc by ifupdown,
without recompiling busybox.

URL: https://bugs.busybox.net/11691

Signed-off-by: Andrey Mazo <ahippo@yandex.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-27 08:27:47 +01:00
Denys Vlasenko
b097a84d62 config: update size information
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-28 03:20:17 +01:00
Denys Vlasenko
9d05ad087e udhcpc: code shrink
function                                             old     new   delta
perform_release                                      112     172     +60
send_release                                          81       -     -81
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 60/-81)            Total: -21 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-03 23:34:35 +01:00
Denys Vlasenko
c05aa6a776 udhcpc: ensure at least one unicast renew attempt
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-10-30 11:56:18 +01:00
Denys Vlasenko
aae428f0bf udhcpc: give SIGUSR1-induced renew one chance of unicast renew
The caps were inconsistent: timeout to renew was capped at 20 seconds,
and any renews with timeout <= 60 seconds were forced to broadcast.

function                                             old     new   delta
udhcpc_main                                         2683    2680      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-09-28 14:44:09 +02:00
Denys Vlasenko
148788eb0e udhcpc: remove code which requires server ID to be on local network
This reverts "udhcpc: paranoia when using kernel UDP mode
for sending renew: server ID may be bogus".

Users complain that they do have servers behind routers
(with DHCP relays).

function                                             old     new   delta
send_packet                                          168     166      -2
bcast_or_ucast                                        25      23      -2
udhcp_send_kernel_packet                             301     295      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-10)             Total: -10 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-06-21 17:38:14 +02:00
David Decotigny
8f48fc01e9 udhcpc6: carry along length of packet when parsing it.
This is to avoid parsing garbage past packet's actual end.

Also const-ize params to a few functions.

function                                             old     new   delta
d6_run_script_no_option                                -      12     +12
option_to_env                                        791     798      +7
d6_run_script                                        253     255      +2
perform_d6_release                                    95      93      -2
udhcpc6_main                                        2596    2592      -4
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/2 up/down: 21/-6)              Total: 15 bytes

Signed-off-by: David Decotigny <ddecotig@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-05-24 18:34:56 +02:00
David Decotigny
a174c791ec udhcpc6: ignore invalid OPTION_IAADDR
Signed-off-by: David Decotigny <ddecotig@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-05-24 18:26:01 +02:00