Age | Commit message (Collapse) | Author |
|
1) Write out new leases file every time a lease is obtained. i.e. don't
append 20 leases before cleaning it up.
2) Write new leases file after calling dhclient-script to implement
new info. Gets interface configured first, and makes it more likely
the leases file reflects most current configuration.
|
|
always starting DHCP packet options with DHO_DHCP_MESSAGE_TYPE. Now
DHCP-specific options always come after the option identifying the
packet as DHCP rather than BOOTP. Makes at least Nortel NetIP DHCP
server happier. Clean up some code and parameter passing.
Closes PR#6543, as confirmed by original submitter and patch
tester Len Zaifman. Thanks!
ok matthew@ (who hates the ISC-like code)
|
|
warning unless we ask dhclient to reject leases with unknown options
OK krw@
(this was lost in my tree for even longer)
|
|
ARPSEND, ARPCHECK. Drop support for 'media', 'medium' and 'alias'
specifications in dhclient.conf. Old leases still parse but these
options now have no effect.
Be more polite and decline all offers we don't accept. Fix a IMSG
length check.
Many expressions of support at various bars.
ok henning@ deraadt@ beck@
|
|
exponentially backed off initial_interval. Don't hallucinate that
we can send ARP packets without waiting. Don't claim to be waiting
for ARP packets when not doing so. Correctly detect expiry of
selecting period. Speeds up negotiations.
Tested on various dhcp servers by Martin Pelika, ian@, and David
Coppa. And works at Starbucks and a mall for me.
|
|
ok krw@ phessler@
|
|
rememberingwhich interface dhclient was actually active on.
Requested by deraadt, OK deraadt@, krw@
|
|
|
|
rdomain 0.
OK krw@, claudio@
sharp stick prodding from claudio@
|
|
ISC dhclient had a buffer overflow:
http://www.kb.cert.org/vuls/id/410676
and while our dhclient is not vulnerable to that, it got us looking at
how the subnet mask option is handled. this limits specific ip
address options to length 4 in conformance with RFC 2132. discussion
started by william@ and with input from krw@
ok krw@
|
|
of dhcp options.
found by parfait.
ok krw@
|
|
|
|
interface to each address and trying to ping the gateway. This will
trigger an RTM_NEWADDR message.
routehandler() only checks for the active and alias address in
RTM_NEWADDR messages, so we can exit when state_panic() and the
message address is on client->leases. routehandler() needs to also
check client->leases.
testing krw, 'I say commit' krw
|
|
normal operations.
Prodded by deraadt@ a while ago.
|
|
|
|
|
|
error out.
Add a new user _rwalld for rpc.rwalld, and use that instead
of nobody, also unconditionally drop to _rwalld not only
if rpc.rwalld was started with euid 0 (as root).
ok deraadt@
|
|
switch the rtsocket message filter specification so you can or the macros
converting the routing socket message types into the mask used by the
filter. ie:
- ROUTE_SETFILTER(rtfilter, RTM_NEWADDR);
- ROUTE_SETFILTER(rtfilter, RTM_DELADDR);
- ROUTE_SETFILTER(rtfilter, RTM_IFINFO);
- ROUTE_SETFILTER(rtfilter, RTM_IFANNOUNCE);
+ rtfilter = ROUTE_FILTER(RTM_NEWADDR) | ROUTE_FILTER(RTM_DELADDR) |
+ ROUTE_FILTER(RTM_IFINFO) | ROUTE_FILTER(RTM_IFANNOUNCE);
there's a manpage change coming.
ok claudio@
|
|
Log the packets before checking the client state. Makes it easy to
find MACs for 'surprise' DHCP servers.
Positive comments from mbalmer@, jasper@.
|
|
|
|
socket dhclient will get.
ja ja claudio@
|
|
binaries to stop working.
OK krw@, michele@, henning@, dlg@
|
|
|
|
give it about 4 seconds of (silent) grace period before doing the verbose
search for a link...
tested by various developers who got burned a bit
|
|
goes to background and listens on the routing socket for link to come
up before it retries.
- renew the lease whenever the link was lost and becomes active again.
- listen for link state changes on non-ethernet devices like wireless,
the link state becomes active when the wireless has been associated to
the AP and becomes active. this helps to automatically renew the lease
when the user is roaming.
ok beck@, deraadt@
|
|
deraadt@ OK
|
|
ok jmc@
|
|
|
|
|
|
startup; ok krw@ henning@
|
|
ok millert
|
|
in the lease, whence the parsed info was moved.
Fixes "Bogus servername" messages when processing an offer and stops
bogus filename info from being stored in the lease. Found while
testing a Tucson hotel's dhcp service.
ok @stevesk "looks good" henning@.
|
|
from Mark Lumsden
|
|
|
|
|
|
the malloc'd memory from the parsed option buffer since it would be
thrown away after the copy anyway.
'looks sane' millert@
|
|
complex list code to keep track. So nuke it.
Also eliminate unnecessary variable ('dead') that means 'rfdesc is
closed'. Just set rfdesc to -1 when it is closed and use that.
As suggested by millert@ and claudio@, don't bother setting revents
members to zero since poll() does that.
Np functional change, just less code.
'looks good' claudio@ 'I like where this is going' henning@
|
|
moving the minimal code into do_packet(). Eliminate repeated code for
checking the client hardware address and the reject list by putting
those checks into do_packet as well.
No functional change, just much easier to read.
ok stevesk@
|
|
parameters just those things actually needed and using existing
structs and information. No functional change.
ok stevesk@
|
|
process any packets, eliminate that abstraction and just call
do_packet directly.
No functional change.
ok stevesk
|
|
contains the global value client->packet_length. Use
client->packet_length. No functional change.
Suggested by stevesk@.
|
|
dhcp_packet and it is contained in the global *client. So don't pass
around pointers to a struct that contains a pointer to the dhcp_packet
instance. Just use the global client->packet. Eliminate unused struct
packet members and parameter lists accordingly.
No functional change.
Suggestions by stevesk@. ok stevesk@
|
|
|
|
no binary change.
|
|
|
|
|
|
obviously have single global struct client_state and struct
client_config nested inside interface_info and client_state
respectively.
Pull them out to their own global variables and eliminate a bunch
(i.e. hundreds) of multi-level dereferences. Make it much nicer to
read.
No functional change.
"makes sense" henning@
Testing stevesk@, ok stevesk@
|
|
single, global, instance of 'struct interface_info' (ifi) rather than
passing around pointers to it.
"I agree" henning@
Testing moritz@ stevesk@, ok stevesk@
|
|
for NULL before dereferencing it. OK henning@ krw@ deraadt@
|
|
|