summaryrefslogtreecommitdiff
path: root/net/kdenetwork3/patches/patch-ad
blob: b3f486cb02bc65821ce1b566a86041f384c32adf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
$NetBSD: patch-ad,v 1.4 2006/03/30 02:47:01 markd Exp $

--- kppp/pppstats.cpp.orig	2006-03-17 23:12:34.000000000 +1300
+++ kppp/pppstats.cpp
@@ -54,7 +54,11 @@
 #include <arpa/inet.h>
 #include <unistd.h>
 #include <netinet/in.h>
+#ifdef __DragonFly__
+#include <net/ppp_layer/ppp_defs.h>
+#else
 #include <net/ppp_defs.h>
+#endif
 
 #include "config.h"
 #include "pppstats.h"
@@ -70,6 +74,9 @@
   #ifdef HAVE_LINUX_IF_PPP_H
    #include <linux/if.h>
    #include <linux/if_ppp.h>
+  #elif defined(__DragonFly__)
+   #include <net/if.h>
+   #include <net/ppp/if_ppp.h>
   #endif
  #else
   #include <net/if.h>
@@ -218,26 +225,29 @@ bool PPPStats::initStats() {
 
   strlcpy(ifr.ifr_name, unitName, sizeof(ifr.ifr_name));
 
+  local_ip_address = "";
   if (ioctl(s, SIOCGIFADDR, &ifr) < 0) {
-  }
+    kdDebug(5002) << "Cannot get ip address" << endl;
+  } else {
+    sinp = (struct sockaddr_in*)&ifr.ifr_addr;
 
-  sinp = (struct sockaddr_in*)&ifr.ifr_addr;
+    if(sinp->sin_addr.s_addr)
+      local_ip_address = inet_ntoa(sinp->sin_addr);
 
-  if(sinp->sin_addr.s_addr)
-    local_ip_address = inet_ntoa(sinp->sin_addr);
-  else
-    local_ip_address = "";
-  kdDebug(5002) << "Local IP: " << local_ip_address << endl;
+    kdDebug(5002) << "Local IP: " << local_ip_address << endl;
+  }
 
-  (void) ioctl(s, SIOCGIFDSTADDR, &ifr);
+  remote_ip_address = "";
+  if (ioctl(s, SIOCGIFDSTADDR, &ifr) < 0) {
+    kdDebug(5002) << "Cannot get remote ip address" << endl;
+  } else {
+    sinp = (struct sockaddr_in*)&ifr.ifr_dstaddr;
 
-  sinp = (struct sockaddr_in*)&ifr.ifr_dstaddr;
+    if(sinp->sin_addr.s_addr)
+      remote_ip_address = inet_ntoa(sinp->sin_addr);
 
-  if(sinp->sin_addr.s_addr)
-    remote_ip_address = inet_ntoa(sinp->sin_addr);
-  else
-    remote_ip_address = "";
-  kdDebug(5002) << "Remote IP: " << remote_ip_address << endl;
+    kdDebug(5002) << "Remote IP: " << remote_ip_address << endl;
+  }
 
   return true;