diff options
-rw-r--r-- | src/ppp-manager/nm-ppp-manager.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c index 59698c3425..243d2e12f9 100644 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c | |||
@@ -304,18 +304,20 @@ monitor_cb (gpointer user_data) | |||
304 | { | 304 | { |
305 | NMPPPManager *manager = NM_PPP_MANAGER (user_data); | 305 | NMPPPManager *manager = NM_PPP_MANAGER (user_data); |
306 | NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); | 306 | NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); |
307 | struct ifpppstatsreq req; | 307 | struct ifreq req; |
308 | struct ppp_stats stats; | ||
308 | 309 | ||
309 | memset (&req, 0, sizeof (req)); | 310 | memset (&req, 0, sizeof (req)); |
310 | req.stats_ptr = (caddr_t) &req.stats; | 311 | memset (&stats, 0, sizeof (stats)); |
312 | req.ifr_data = (caddr_t) &stats; | ||
311 | 313 | ||
312 | strncpy (req.ifr__name, priv->ip_iface, sizeof (req.ifr__name)); | 314 | strncpy (req.ifr_name, priv->ip_iface, sizeof (req.ifr_name)); |
313 | if (ioctl (priv->monitor_fd, SIOCGPPPSTATS, &req) < 0) { | 315 | if (ioctl (priv->monitor_fd, SIOCGPPPSTATS, &req) < 0) { |
314 | nm_log_warn (LOGD_PPP, "could not read ppp stats: %s", strerror (errno)); | 316 | nm_log_warn (LOGD_PPP, "could not read ppp stats: %s", strerror (errno)); |
315 | } else { | 317 | } else { |
316 | g_signal_emit (manager, signals[STATS], 0, | 318 | g_signal_emit (manager, signals[STATS], 0, |
317 | req.stats.p.ppp_ibytes, | 319 | stats.p.ppp_ibytes, |
318 | req.stats.p.ppp_obytes); | 320 | stats.p.ppp_obytes); |
319 | } | 321 | } |
320 | 322 | ||
321 | return TRUE; | 323 | return TRUE; |