Age | Commit message (Collapse) | Author |
|
let someone else figure it out.
ok mpi@
|
|
|
|
exit>".
|
|
|
|
have inadequate or invalid leases. In particular leases for addresses
that are already configured on a different interface. After the
DECLINE, return to INIT state and start looking for a valid lease. This
conforms much closer to the relevant RFC's.
Avoids 'hanging' dhclient(8) during boot when the attempt to configure
the address fails without dhclient(8) realizing it.
Issue found and various fixes tested by mpi@. Feedback from beck@ and
reyk@.
ok mpi@
|
|
Diff from Ricardo Mestre. ok deraadt@
|
|
ok krw@
|
|
|
|
using the SIOCGIFRDOMAIN ioctl. If the rdomain is changed an
RTM_IFINFO message is generated on the old rdomain indicating the
interface is down. This will cause dhclient to exit, just like our
manual check did but even faster!
Should make pledging easier.
Behaviour confirmed by phessler@
|
|
link to return.
Inadvertantly broken in r1.308.
Problem noted by tedu@
|
|
Search" if supplied by the server.
Requested by a few. Original diff from Ray Lai via tech@.
Tested & ok claudio@
|
|
original diff from Michael McConville via tech@. Thanks!
ok millert@ beck@ guenther@ jca@
|
|
|
|
multiple domain names in dhcp option 15 (Domain Name). This allows
resolv.conf 'search' statements to be built with multiple entries.
Adhere to the limits stated in resolv.conf(5) - no more than 6
domains and less than 1024 characters total length.
Encountered in the wild and fix tested by beck@. Feedback from
deraadt@
|
|
|
|
Reported long ago by matthieu@. Also Jacob Berkman via the lists.
Tests and suggestions from Jacob and Matthieu.
|
|
present. The latest routing stack code can now handle these situations.
Much requested by beck@ and others. Detailed discussion at s2k15
identified required routing changes.
ok claudio@
|
|
in get_token(). Simplifies code and shrinks future diff.
No intentional functional change.
|
|
encountering a carriage return in the input.
Found by jsg@ a long time ago in a respository far, far away.
|
|
ok krw@
|
|
ok doug millert miod
|
|
using RTM_IFA to bind routes to an interface. Keep the subnet route
conflict avoidance code for the time being.
diff from claudio@ as part of larger routing magic diff.
ok claudio@ mpi@
|
|
are clearly properly initialized in the same area. Prompted by the
recent shrinkage of most imsg structs.
|
|
Original request+diff from matthew@
ok dlg@
|
|
constructing imsgs.
ok reyk@
|
|
theoretically allowed the unprivileged child process to write to
arbitrary files. Restrict it by replacing it with two specific
write_resolv_conf() and write_option_db() privsep interfaces where all
the critical decision has been moved to the parent.
OK krw@
|
|
network-facing process to properly fill out the interface name and
rdomain on which operations are to be performed.
Instead, always use the interface name and rdomain discovered before
forking and dropping privs. Lets all the imsg structs to drop a
couple of members.
ok matthew@ henning@
|
|
|
|
History indicates this is slightly less error prone.
Inconsistant usage pointed out by Benjamin Baier.
|
|
or non-NULLness before calling free().
This batch from Benjamin Baier.
|
|
or non-NULLness before calling free().
|
|
calloc(N, 0). Avoid the whole controversy by skipping zero length
options while cloning a lease.
Leak reported by Remco van den Berg via bugs@. Additional testing
and diagnostic help from Benjamin Baier. Thanks!
|
|
might leak. *Should* not be possible but better safe than sorry.
|
|
|
|
but better safe than sorry.
Noted and diff from Benjamin Baier. Thanks!
|
|
not 'malloc'.
|
|
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)
|
|
be clever, but it is definitely confusing. Use a flag IFI_VALID_LLADDR
to indicate that the ifi->hw_address field is valid, rather than
assuming ifi->linkstat does that. Add startup_time to record client
startup rather than using first_sending and hoping nobody else needs
it until link is complete.
|
|
latest information. So back off to using interface_status() to
directly query the interface when link status is in question. Partly
from Nathanael Rensen's original diff.
Also, while waiting for initial link, keep checking every second
rather than backing off to checking every (default) 60 seconds after
(default) 10 seconds.
|
|
the routing socket initialization. Otherwise certain combinations
of UP/RUNNING/active will generate the deadly RTM_IFINFO with RTF_UP
== 0 and kill the client. Add comment to nail this section in place.
|
|
link comes up and nothing has yet been displayed.
|
|
has expired. In S_REBOOT state_reboot() assumes link is present and
starts sending REQUEST/DISCOVER packets and doing the backoff dance
after retry_interval expires. Stay in S_PREBOOT until link appears.
Pointed out by and initial diff from Nathanael Rensen.
|
|
noted as being up. Thus avoiding a premature exit if extra RTM_IFINFO
messages arrive before state_reboot() gets a chance to run.
|
|
some interfaces (e.g. em(4) in qemu) do not have this flag set in
the RTM_IFINFO message dhclient gets.
Problem found & fix tested by Nathanael Rensen. Thanks!
|
|
state S_PREBOOT and associated state_preboot() function.
This results in routing socket messages being processed even while
the link is being waited for. Thus the RTM_IFINFO message announcing
the link is ready can be reacted to immediately, rather than waiting
for the sleep(1)'ing process to wake up and look at the link state.
Some interfaces seem to lose the first packet sent when the RTM_IFINFO
message is reacted to so quickly, so temporarily leave in place an
explicit delay before sending the first packet.
|
|
if_register_receive.
|
|
construction of default client identifier until link is up (i.e.
do it in state_reboot()).
|
|
relying on S_REBOOTING being 0.
|
|
the validity of the interface name as soon the actual name is known.
i.e. right after 'egress' is expanded. One less thing for
get_hw_address() to do.
|
|
incrementing sporadic errors until the limit is exceeded. i.e. only
exit dhclient when enough consecutive errors occur. Tweak error
messages.
Don't bother checking interface_status() when receive_packet()
fails. Let other status checks function on their own.
|