summaryrefslogtreecommitdiff
path: root/sbin/dhclient/dhclient.c
AgeCommit message (Collapse)Author
2009-03-31claudio has spent too much time with the mbuf macros.David Gwynne
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@
2009-03-10Add 6-byte MAC address to the log entries for DHCP ACK/NAK/OFFER.Kenneth R Westerback
Log the packets before checking the client state. Makes it easy to find MACs for 'surprise' DHCP servers. Positive comments from mbalmer@, jasper@.
2009-02-01Let this compile with gcc2.Miod Vallat
2009-01-28use claudios new rtsocket filters to restrict which messages on the routeDavid Gwynne
socket dhclient will get. ja ja claudio@
2009-01-10Use the kernel set ifam_hdrlen so that ABI changes won't cause olderClaudio Jeker
binaries to stop working. OK krw@, michele@, henning@, dlg@
2008-06-07stop spurious "got link" which nooone noticed, but everyone should have; ok krwTheo de Raadt
2008-05-26If an interface has no link at startup, try to force it up, and thenTheo de Raadt
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
2008-05-09- don't give up when the link is not available on startup: dhclientReyk Floeter
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@
2008-03-12Code was not passing script exit status; fix with macro.Hugh Graham
deraadt@ OK
2007-10-16sync the synopsis and usage of commandsIgor Sobrado
ok jmc@
2007-09-02use calloc() to avoid malloc(n * m) overflows; checked by djm canacar jsgTheo de Raadt
2007-08-14make default_lease_time a #define; ok krw@ henning@Kevin Steves
2007-07-18eliminate duplicate code to open lease file and just open atKevin Steves
startup; ok krw@ henning@
2007-06-02safer snprintf construct with more paranoid length calculationPeter Valchev
ok millert
2007-02-25No point in using zero'd fields in the parsed options. Use the optionsKenneth R Westerback
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@.
2007-02-25remove unused/dangling prototypes and comment reference;Kevin Steves
from Mark Lumsden
2007-02-13move includes only needed in dhclient.c; ok henning@Kevin Steves
2007-02-13error check socket() return; ok henning@Kevin Steves
2007-01-29Don't malloc memory to store option data in leases, just appropriateKenneth R Westerback
the malloc'd memory from the parsed option buffer since it would be thrown away after the copy anyway. 'looks sane' millert@
2007-01-27We only poll on the bpf fd and the routing socket fd. No need forKenneth R Westerback
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@
2007-01-25Cleanup some more code. Eliminate dhcp(), bootp(), parse_options() byKenneth R Westerback
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@
2007-01-16More cleanup. Eliminate 'struct packet' by cleverly passing asKenneth R Westerback
parameters just those things actually needed and using existing structs and information. No functional change. ok stevesk@
2007-01-11Since bootp_packet_handler is always set to do_packet before weKenneth R Westerback
process any packets, eliminate that abstraction and just call do_packet directly. No functional change. ok stevesk
2007-01-04Eliminate the 'len' parameter from send_packet() since it alwaysKenneth R Westerback
contains the global value client->packet_length. Use client->packet_length. No functional change. Suggested by stevesk@.
2007-01-04Another round of cleanup. There is only one instance of structKenneth R Westerback
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@
2006-12-28please lintTheo de Raadt
2006-12-28parenthesis not needed here; consistent with usage in other areas.Kevin Steves
no binary change.
2006-12-28small knf (extra space, newline)Kevin Steves
2006-12-28no extra "\n" in note(); ok krw@ henning@Kevin Steves
2006-12-27Since we only have the single global struct interface_info, weKenneth R Westerback
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@
2006-12-26Our dhclient only handles one interface. Simplify code by using theKenneth R Westerback
single, global, instance of 'struct interface_info' (ifi) rather than passing around pointers to it. "I agree" henning@ Testing moritz@ stevesk@, ok stevesk@
2006-12-26There must be no alias address set, so check ifi->client->aliasMoritz Jodeit
for NULL before dereferencing it. OK henning@ krw@ deraadt@
2006-12-18this is clearer and consistent with other areas; ok henning@Kevin Steves
2006-12-17remove ASSERT_STATE() macro which is a NOOP, no binary change; ok henning@Kevin Steves
2006-12-15KNFKevin Steves
2006-11-27correct commentKevin Steves
2006-09-24No point in checking for a NULL ifi after we've used it. Plus ifi isKenneth R Westerback
set once in main() and used everywhere without further checks. From Matthew R. Dempsky via tech@
2006-08-31adjust link detection further: if no link, bring interface up and checkTheo de Raadt
for link for 10 seconds. otherwise, if there was link, no problem! ok henning, claudio, tested by others
2006-08-29some net if devices do not media negotiate (for link) until brought up.Theo de Raadt
(for some drivers, this is a bug. for others, it is part of how they work) therefore before doing the 10-second link test, we must bring the if up. ok krw, tested marco ckuethe
2006-06-16always change the working directory of the priv child to the rootReyk Floeter
directory ("/"). this fixes a problem when dhclient was called in a working directory like "/mnt" and the user tried to unmount this directory while dhclient was still running. umount failed because the device for "/mnt" was still busy and blocked by the running priv child of dhclient. ok henning@
2006-06-01Don't treat the addition of a dhclient.conf 'alias{}' address as anKenneth R Westerback
external modification when the RTM_NEWADDR message arrives from the routing socket. Now dhclient will not exit if 'alias{}' is specified in dhclient.conf. Mentioned many times, most recently by Matthias Bertschy on misc@. ok henning@ beck@
2006-05-31Fix 'special value 0 requests that dhclient not wait for a link stateKevin Steves
change before timing out' behaviour of the man page for link-timeout; ok deraadt@ henning@
2006-05-08add 'link-timeout n' seconds option to grammer, from fkr@hazardous.orgTheo de Raadt
default remains 10 seconds.
2006-03-06convert permanent privilege revocation to use setresuid/setresgid;Damien Miller
ok henning@
2005-10-26put the 100% right r1.79 back in, that is still as right as it was the firstHenning Brauer
time. dale just had the same problem and made me look again.
2005-08-27backout unapproved diffTheo de Raadt
2005-08-25when we get an invalid hostname in an option, bitching a moaning is ok,Henning Brauer
but there is no point in refusing the lease based on that. so bitch and moan and ignore that option but accept the lease. yes, customer networks are sometimes interesting... ok millert krw beck
2005-08-07Simplify code by calling error() from inside buf_* functions ratherKenneth R Westerback
than always testing the return code and calling error() from the caller. From a diff by moritz@, ok henning@.
2005-08-02Rip out code dealing with multiple/nested interfaces. Each instance ofKenneth R Westerback
dhclient is responsible for one interface. Simply skip interface declarations for other interfaces and store all info in the one interface structure. tested by dlg@, ok henning@
2005-07-16Eliminate unnecessary 'code' field from struct option. MakeKenneth R Westerback
dhcp_options const. ok henning@