X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Finterface.c;h=e17711e3105ae31ccd106576ede46b72dc5b48a4;hb=3348ace2cdd95bc1de5e28d11f3999cf5bd4ebf4;hp=ea820399ca0652bc7299d2b24ee4dde9c5569ecd;hpb=d0bb20feb1c5915e8b8af24cc2d46c4ac82d6704;p=collectd.git diff --git a/src/interface.c b/src/interface.c index ea820399..e17711e3 100644 --- a/src/interface.c +++ b/src/interface.c @@ -17,7 +17,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Authors: - * Florian octo Forster + * Florian octo Forster * Sune Marcher * Manuel Sanmartin **/ @@ -31,9 +31,6 @@ #if HAVE_SYS_TYPES_H # include #endif -#if HAVE_SYS_SOCKET_H -# include -#endif /* One cannot include both. This sucks. */ #if HAVE_LINUX_IF_H @@ -213,18 +210,19 @@ static int interface_read (void) for (if_ptr = if_list; if_ptr != NULL; if_ptr = if_ptr->ifa_next) { - if ((if_data = (struct IFA_DATA *) if_ptr->ifa_data) == NULL) - continue; + if (if_ptr->ifa_addr != NULL && if_ptr->ifa_addr->sa_family == AF_LINK) { + if_data = (struct IFA_DATA *) if_ptr->ifa_data; - if_submit (if_ptr->ifa_name, "if_octets", + if_submit (if_ptr->ifa_name, "if_octets", if_data->IFA_RX_BYTES, if_data->IFA_TX_BYTES); - if_submit (if_ptr->ifa_name, "if_packets", + if_submit (if_ptr->ifa_name, "if_packets", if_data->IFA_RX_PACKT, if_data->IFA_TX_PACKT); - if_submit (if_ptr->ifa_name, "if_errors", + if_submit (if_ptr->ifa_name, "if_errors", if_data->IFA_RX_ERROR, if_data->IFA_TX_ERROR); + } } freeifaddrs (if_list);