ppp: fix fallout from the size reduction patch (thx, frogonwheels)
[openwrt/svn-archive/archive.git] / package / ppp / patches / 400-simplify_kernel_checks.patch
1 --- a/pppd/sys-linux.c
2 +++ b/pppd/sys-linux.c
3 @@ -203,7 +203,7 @@ static int driver_is_old = 0;
4 static int restore_term = 0; /* 1 => we've munged the terminal */
5 static struct termios inittermios; /* Initial TTY termios */
6
7 -int new_style_driver = 0;
8 +static const int new_style_driver = 1;
9
10 static char loop_name[20];
11 static unsigned char inbuf[512]; /* buffer for chars read from loopback */
12 @@ -220,8 +220,8 @@ static int looped; /* 1 if using loop
13 static int link_mtu; /* mtu for the link (not bundle) */
14
15 static struct utsname utsname; /* for the kernel version */
16 -static int kernel_version;
17 #define KVERSION(j,n,p) ((j)*1000000 + (n)*1000 + (p))
18 +static const int kernel_version = KVERSION(2,6,37);
19
20 #define MAX_IFS 100
21
22 @@ -1414,11 +1414,12 @@ int ccp_fatal_error (int unit)
23 *
24 * path_to_procfs - find the path to the proc file system mount point
25 */
26 -static char proc_path[MAXPATHLEN];
27 -static int proc_path_len;
28 +static char proc_path[MAXPATHLEN] = "/proc";
29 +static int proc_path_len = 5;
30
31 static char *path_to_procfs(const char *tail)
32 {
33 +#if 0
34 struct mntent *mntent;
35 FILE *fp;
36
37 @@ -1440,6 +1441,7 @@ static char *path_to_procfs(const char *
38 fclose (fp);
39 }
40 }
41 +#endif
42
43 strlcpy(proc_path + proc_path_len, tail,
44 sizeof(proc_path) - proc_path_len);
45 @@ -2098,11 +2100,13 @@ int ppp_available(void)
46 "ppp.o exists in /lib/modules/`uname -r`/net.\n"
47 "See README.linux file in the ppp distribution for more details.\n";
48
49 +#if 0
50 /* get the kernel version now, since we are called before sys_init */
51 uname(&utsname);
52 osmaj = osmin = ospatch = 0;
53 sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
54 kernel_version = KVERSION(osmaj, osmin, ospatch);
55 +#endif
56
57 fd = open("/dev/ppp", O_RDWR);
58 #if 0
59 @@ -2121,7 +2125,9 @@ int ppp_available(void)
60 }
61 #endif /* 0 */
62 if (fd >= 0) {
63 +#if 0
64 new_style_driver = 1;
65 +#endif
66
67 /* XXX should get from driver */
68 driver_version = 2;
69 @@ -2168,6 +2174,7 @@ int ppp_available(void)
70
71 if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
72 ok = 0;
73 + return ok;
74
75 /*
76 * This is the PPP device. Validate the version of the driver at this
77 @@ -2659,6 +2666,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
78 }
79 #endif /* TIOCGPTN */
80
81 +#if 0
82 if (sfd < 0) {
83 /* the old way - scan through the pty name space */
84 for (i = 0; i < 64; ++i) {
85 @@ -2677,6 +2685,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
86 }
87 }
88 }
89 +#endif
90
91 if (sfd < 0)
92 return 0;
93 --- a/pppd/plugins/pppoatm/pppoatm.c
94 +++ b/pppd/plugins/pppoatm/pppoatm.c
95 @@ -210,14 +210,6 @@ static void recv_config_pppoa(int mru,
96
97 void plugin_init(void)
98 {
99 -#ifdef linux
100 - extern int new_style_driver; /* From sys-linux.c */
101 - if (!ppp_available() && !new_style_driver)
102 - fatal("Kernel doesn't support ppp_generic - "
103 - "needed for PPPoATM");
104 -#else
105 - fatal("No PPPoATM support on this OS");
106 -#endif
107 add_options(pppoa_options);
108 }
109
110 --- a/pppd/plugins/rp-pppoe/plugin.c
111 +++ b/pppd/plugins/rp-pppoe/plugin.c
112 @@ -55,9 +55,6 @@ static char const RCSID[] =
113
114 char pppd_version[] = VERSION;
115
116 -/* From sys-linux.c in pppd -- MUST FIX THIS! */
117 -extern int new_style_driver;
118 -
119 char *pppd_pppoe_service = NULL;
120 static char *acName = NULL;
121 static char *existingSession = NULL;
122 @@ -312,10 +309,6 @@ PPPoEDevnameHook(char *cmd, char **argv,
123 void
124 plugin_init(void)
125 {
126 - if (!ppp_available() && !new_style_driver) {
127 - fatal("Linux kernel does not support PPPoE -- are you running 2.4.x?");
128 - }
129 -
130 add_options(Options);
131 }
132