From bc071ac4349a96ec757ee418c08ffac509e6b6e4 Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Fri, 3 Aug 2012 14:32:32 +0400 Subject: fixed complilation for 3.4 kernel --- accel-pppd/extra/pppd_compat.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'accel-pppd/extra') diff --git a/accel-pppd/extra/pppd_compat.c b/accel-pppd/extra/pppd_compat.c index fcb83c2..71934ab 100644 --- a/accel-pppd/extra/pppd_compat.c +++ b/accel-pppd/extra/pppd_compat.c @@ -18,6 +18,7 @@ #include "log.h" #include "utils.h" #include "sigchld.h" +#include "iplink.h" #ifdef RADIUS #include "radius.h" @@ -227,27 +228,19 @@ static void ev_ses_started(struct ap_session *ses) static void ev_ses_finishing(struct ap_session *ses) { - struct ifpppstatsreq ifreq; + struct rtnl_link_stats stats; struct pppd_compat_pd_t *pd = find_pd(ses); if (!pd) return; - if (ses->ctrl->type == CTRL_TYPE_IPOE) { - - } else { - memset(&ifreq, 0, sizeof(ifreq)); - ifreq.stats_ptr = (void *)&ifreq.stats; - strcpy(ifreq.ifr__name, ses->ifname); - - if (ioctl(sock_fd, SIOCGPPPSTATS, &ifreq)) { - log_ppp_error("pppd_compat: failed to get ppp statistics: %s\n", strerror(errno)); - return; - } - - pd->bytes_sent = ifreq.stats.p.ppp_obytes; - pd->bytes_rcvd = ifreq.stats.p.ppp_ibytes; + if (iplink_get_stats(ses->ifindex, &stats)) { + log_ppp_error("pppd_compat: failed to get interface statistics\n"); + return; } + + pd->bytes_sent = stats.tx_bytes; + pd->bytes_rcvd = stats.rx_bytes; } static void ev_ses_finished(struct ap_session *ses) -- cgit v1.2.3