summaryrefslogtreecommitdiff
path: root/src/ppp-manager/nm-ppp-manager.c
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2012-03-28 16:42:24 +0200
committerJiří Klimeš <jklimes@redhat.com>2012-03-28 17:03:19 +0200
commit6b64e4db2f3c9cfc0e0e240cf0bc58f3b3e90c1f (patch)
treee036b357f6664e54d10781b18b76d0c2ec1889ed /src/ppp-manager/nm-ppp-manager.c
parenta4f450aa0bf087453a8d605db81a83368cbe3b0a (diff)
ppp: don't use struct ifpppstatsreq that was removed from linux/ip_ppp.h
in recent kernels. We can use ifreq and ppp_stats structures separately. They needn't have to to be packed in a structure.
Diffstat (limited to 'src/ppp-manager/nm-ppp-manager.c')
-rw-r--r--src/ppp-manager/nm-ppp-manager.c12
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;