summaryrefslogtreecommitdiff
path: root/package/ppp/patches/400-simplify_kernel_checks.patch
blob: c48141311e01b0739dd32101cd44557a9a75511f (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -203,7 +203,7 @@ static int driver_is_old       = 0;
 static int restore_term        = 0;	/* 1 => we've munged the terminal */
 static struct termios inittermios;	/* Initial TTY termios */
 
-int new_style_driver = 0;
+static const int new_style_driver = 1;
 
 static char loop_name[20];
 static unsigned char inbuf[512]; /* buffer for chars read from loopback */
@@ -220,8 +220,8 @@ static int	looped;			/* 1 if using loop 
 static int	link_mtu;		/* mtu for the link (not bundle) */
 
 static struct utsname utsname;	/* for the kernel version */
-static int kernel_version;
 #define KVERSION(j,n,p)	((j)*1000000 + (n)*1000 + (p))
+static const int kernel_version = KVERSION(2,6,37);
 
 #define MAX_IFS		100
 
@@ -1438,11 +1438,12 @@ int ccp_fatal_error (int unit)
  *
  * path_to_procfs - find the path to the proc file system mount point
  */
-static char proc_path[MAXPATHLEN];
-static int proc_path_len;
+static char proc_path[MAXPATHLEN] = "/proc";
+static int proc_path_len = 5;
 
 static char *path_to_procfs(const char *tail)
 {
+#if 0
     struct mntent *mntent;
     FILE *fp;
 
@@ -1464,6 +1465,7 @@ static char *path_to_procfs(const char *
 	    fclose (fp);
 	}
     }
+#endif
 
     strlcpy(proc_path + proc_path_len, tail,
 	    sizeof(proc_path) - proc_path_len);
@@ -2116,15 +2118,19 @@ int ppp_available(void)
     int    my_version, my_modification, my_patch;
     int osmaj, osmin, ospatch;
 
+#if 0
     /* get the kernel version now, since we are called before sys_init */
     uname(&utsname);
     osmaj = osmin = ospatch = 0;
     sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
     kernel_version = KVERSION(osmaj, osmin, ospatch);
+#endif
 
     fd = open("/dev/ppp", O_RDWR);
     if (fd >= 0) {
+#if 0
 	new_style_driver = 1;
+#endif
 
 	/* XXX should get from driver */
 	driver_version = 2;
@@ -2185,6 +2191,7 @@ int ppp_available(void)
 
     if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
 	ok = 0;
+	return ok;
 
 /*
  *  This is the PPP device. Validate the version of the driver at this
@@ -2678,6 +2685,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
     }
 #endif /* TIOCGPTN */
 
+#if 0
     if (sfd < 0) {
 	/* the old way - scan through the pty name space */
 	for (i = 0; i < 64; ++i) {
@@ -2696,6 +2704,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
 	    }
 	}
     }
+#endif
 
     if (sfd < 0)
 	return 0;
--- a/pppd/plugins/pppoatm/pppoatm.c
+++ b/pppd/plugins/pppoatm/pppoatm.c
@@ -171,14 +171,6 @@ static void disconnect_pppoatm(void)
 
 void plugin_init(void)
 {
-#ifdef linux
-	extern int new_style_driver;	/* From sys-linux.c */
-	if (!ppp_available() && !new_style_driver)
-		fatal("Kernel doesn't support ppp_generic - "
-		    "needed for PPPoATM");
-#else
-	fatal("No PPPoATM support on this OS");
-#endif
 	info("PPPoATM plugin_init");
 	add_options(pppoa_options);
 }
--- a/pppd/plugins/rp-pppoe/plugin.c
+++ b/pppd/plugins/rp-pppoe/plugin.c
@@ -60,9 +60,6 @@ static char const RCSID[] =
 
 char pppd_version[] = VERSION;
 
-/* From sys-linux.c in pppd -- MUST FIX THIS! */
-extern int new_style_driver;
-
 char *pppd_pppoe_service = NULL;
 static char *acName = NULL;
 static char *existingSession = NULL;
@@ -340,10 +337,6 @@ PPPoEDevnameHook(char *cmd, char **argv,
 void
 plugin_init(void)
 {
-    if (!ppp_available() && !new_style_driver) {
-	fatal("Linux kernel does not support PPPoE -- are you running 2.4.x?");
-    }
-
     add_options(Options);
 
     info("RP-PPPoE plugin version %s compiled against pppd %s",