CVSROOT: /cvs Module name: src Changes by: k...@cvs.openbsd.org 2014/11/25 10:03:03
Modified files: sbin/dhclient : dhclient.c Log message: r1.118 starting using LINK_STATE_IS_UP() to check the link status info provided in RTM_IFINFO messages. But it didn't replicate the checks for IFI_NOMEDIA and (IFF_UP | IFF_RUNNING) used in interface_status() to set ifi->linkstat. So the test (LINK_STATE_IS_UP() != ifi->linkstat) was comparing kiwi fruit and hairballs. Do the additional checks using info present in the RTM_IFINFO message. As a result interface_status() need not be called to update ifi->linkstat. Thus avoiding opening/closing a socket and some ioctls to re-obtain the info already provided in the RTM_IFINFO message. Using RTM_IFINFO data ok mpi@