dhclient - State engine for packet processing.

-  Time may have passed! Use cur_time in routing message processing.

Taken-from: OpenBSD
dhclient - Remove unused field 'next' from struct timeout.

- There's only one timeout now, not a list.

Taken-from: OpenBSD
dhclient - Don't print time_t as %d

- Cast to (int) just in case time_t ever changes size.
  Values in these cases are intervals, i.e. (time_t - time_t)
  so int/%d will be fine.

Taken-from: OpenBSD
dhclient - Don't store a time_t into an int.

- Make the variable time_t.

Taken-from: OpenBSD
dhclient - Don't abandon time_t precision for intervals.

- Use (long long) and %lld when printing, rather than (int)and %d.
  Follows idiom used for 64-bit size_t and off_t.

Taken-from: OpenBSD
dhclient - Add ignore keyword to conf file.

- Allows to ignore unwanted info from the server without
  necessarily speciyfing a supersede value.

Taken-from: OpenBSD
dhclient - Remove cur_time global.

- Junk global cur_time, and use time(NULL) or local variables where
  time is checked multiple times. Add a set_timeout_interval() function
  to allow setting a timeout based on an interval from current time.

- Fixes issues with initial startup where the global cur_time was
  always old and caused initial DHCPDISCOVER or DHCPREQUEST packets
  to be sent multiple times. And probably other timeout related
  oddities.

Taken-from: OpenBSD
dhclient - No point having two copies of this file

- This copy never got installed anyway.

Taken-from: OpenBSD
dhclient - Nuke some comments.

- Nuke a bunch of annoying "/* Send a packet. */" comments above
  invocations to send_packet(), and similiar combinations.

Taken-from: OpenBSD
dhclient - Nuke 'interfaces_invalidated' global variable.

- Since reinitialize_interface() was simply setting interfaces_invalidated
  to 0, nuke it too!
- Always update ifi->linkstat in dispatch() loop.

Taken-from: OpenBSD
dhclient - Missed a reinitialize_interface() declaration.

Taken from: OpenBSD
dhclient - Update reality correspondance of some comments.

Taken-from: OpenBSD
dhclient - When a link is lost, call dhclient-script with reason "FAIL".

- This does the resolv.conf dance and removes 'dead' routes, rather than
  leaving these droppings behind.

- When dhclient is exiting after calling dhclient-script with "FAIL",
  give the script a couple of seconds to finish. Also pass the lease
  parameters (old_*) to dhclient-script so routes can be cleaned up
  in this path too.

Taken-from: OpenBSD
dhclient - Refuse leases for already configured subnets.

Taken-from: OpenBSD
dhclient - Remove saved resolv.conf to avoid problems.

- Once resolv.conf.saved has been copied back as
  resolv.conf, delete it so it isn't copied again the
  next time a dhclient goes away.

Taken-from: OpenBSD
dhclient - Update OBSD Ids

- RFC changes to the manual pages already there.

Taken-from: OpenBSD
dhclient - Revert a4a242d4bd3b87eb38ccf205bb2784ada509ca3a

- Routing breaks if dhclient-script flushes the
  interface's routes when the interface is down.

Taken-from: OpenBSD
dhclient - Do not update linkstat several times.

- In the case where two RTM_IFINFO link changes occur immediately
  after each other (as in the case with trunk and probably vlan)
  dhclient missed the state change of the second interface.

Taken-from: OpenBSD
dhclient - Change config 'ignore' directive behaviour.

- Change dhclient.conf directive 'ignore' to take a list of option names
  rather than list of option declarations. e.g. 'ignore routers;'
  instead of 'ignore routers 1.2.3.4;' The value in the declaration
  was being ignored anyway.
- While there clean up the related code a bit.

Taken-from: OpenBSD