123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- pppd: Remove runtime kernel checks
- On embedded system distributions the required kernel features for pppd are
- more or less guaranteed to be present, so there is not much point in
- performing runtime checks, it just increases the binary size.
- This patch removes the runtime kernel feature checks.
- Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- --- a/pppd/sys-linux.c
- +++ b/pppd/sys-linux.c
- @@ -192,7 +192,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 */
- @@ -210,8 +210,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
-
- @@ -1439,11 +1439,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;
-
- @@ -1465,6 +1466,7 @@ static char *path_to_procfs(const char *
- fclose (fp);
- }
- }
- +#endif
-
- strlcpy(proc_path + proc_path_len, tail,
- sizeof(proc_path) - proc_path_len);
- @@ -2126,15 +2128,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;
- @@ -2194,6 +2200,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
- @@ -2730,6 +2737,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) {
- @@ -2748,6 +2756,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
- @@ -168,14 +168,6 @@ static void disconnect_pppoatm(void)
-
- void plugin_init(void)
- {
- -#if defined(__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
- @@ -59,9 +59,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;
- @@ -385,10 +382,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",
- --- a/pppd/plugins/pppol2tp/pppol2tp.c
- +++ b/pppd/plugins/pppol2tp/pppol2tp.c
- @@ -490,12 +490,7 @@ static void pppol2tp_cleanup(void)
-
- void plugin_init(void)
- {
- -#if defined(__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 PPPoL2TP");
- -#else
- +#if !defined(__linux__)
- fatal("No PPPoL2TP support on this OS");
- #endif
- add_options(pppol2tp_options);
|