From 991b346d4994b4b85981adb35d0dd6e91bedd364 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Mon, 11 Jun 2001 14:46:02 +0000 Subject: have adsl pppoe installation available --- mdk-stage1/Makefile | 2 +- mdk-stage1/adsl.c | 133 ++++++++++++++++++++++++++---------- mdk-stage1/ppp/.cvsignore | 1 + mdk-stage1/ppp/pppd/.cvsignore | 2 + mdk-stage1/ppp/pppd/Makefile | 59 ++++++++++++++++ mdk-stage1/ppp/pppd/auth.c | 27 ++------ mdk-stage1/ppp/pppd/magic.c | 1 + mdk-stage1/ppp/pppd/main.c | 21 +++++- mdk-stage1/ppp/pppd/md5.c | 3 + mdk-stage1/ppp/pppd/multilink.c | 3 +- mdk-stage1/ppp/pppd/options.c | 2 +- mdk-stage1/ppp/pppd/pathnames.h | 36 +--------- mdk-stage1/ppp/pppd/utils.c | 1 + mdk-stage1/rp-pppoe/.cvsignore | 1 + mdk-stage1/rp-pppoe/src/.cvsignore | 2 + mdk-stage1/rp-pppoe/src/Makefile | 58 ++++++++++++++++ mdk-stage1/rp-pppoe/src/config.h | 135 +++++++++++++++++++++++++++++++++++++ 17 files changed, 392 insertions(+), 95 deletions(-) create mode 100644 mdk-stage1/ppp/.cvsignore create mode 100644 mdk-stage1/ppp/pppd/.cvsignore create mode 100644 mdk-stage1/ppp/pppd/Makefile create mode 100644 mdk-stage1/rp-pppoe/.cvsignore create mode 100644 mdk-stage1/rp-pppoe/src/.cvsignore create mode 100644 mdk-stage1/rp-pppoe/src/Makefile create mode 100644 mdk-stage1/rp-pppoe/src/config.h diff --git a/mdk-stage1/Makefile b/mdk-stage1/Makefile index d52b0f8da..873a350f5 100644 --- a/mdk-stage1/Makefile +++ b/mdk-stage1/Makefile @@ -147,7 +147,7 @@ endif ifneq (ia64, $(ARCH)) DIRS = dietlibc endif -DIRS += mar pci-resource bzlib $(INSMOD) slang newt +DIRS += mar pci-resource bzlib $(INSMOD) slang newt ppp/pppd rp-pppoe/src ifeq (i386,$(ARCH)) DIRS += pcmcia endif diff --git a/mdk-stage1/adsl.c b/mdk-stage1/adsl.c index c1ecae32c..ffcb654f2 100644 --- a/mdk-stage1/adsl.c +++ b/mdk-stage1/adsl.c @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include #include "stage1.h" #include "log.h" @@ -30,19 +33,89 @@ #include "modules.h" #include "tools.h" #include "frontend.h" +#include "automatic.h" #include "adsl.h" -enum return_type perform_adsl(struct interface_info * intf) + +static enum return_type adsl_connect(char * net_device, char * username, char * password) { - char * pppd_launch[] = { "/sbin/pppd", "pty", "/sbin/pppoe -p /var/run/pppoe.conf-adsl.pid.pppoe -I eth0 -T 80 -U -m 1412", - "noipdefault", "noauth", "default-asyncmap", "defaultroute", "hide-password", "nodetach", "usepeerdns", - "local", "mtu", "1492", "mru", "1492", "noaccomp", "noccp", "nobsdcomp", "nodeflate", "nopcomp", - "novj", "novjccomp", "user", "netissimo@netissimo", "lcp-echo-interval", "20", "lcp-echo-failure", - "3", NULL }; + char pppoe_call[500]; + char * pppd_launch[] = { "/sbin/pppd", "pty", pppoe_call, "noipdefault", "noauth", "default-asyncmap", "defaultroute", + "hide-password", "nodetach", "usepeerdns", "local", "mtu", "1492", "mru", "1492", "noaccomp", + "noccp", "nobsdcomp", "nodeflate", "nopcomp", "novj", "novjccomp", "user", username, + "password", password, "lcp-echo-interval", "20", "lcp-echo-failure", "3", "lock", "persist", NULL }; int fd; - + int retries = 10; + char * tty_adsl = "/dev/tty6"; + enum return_type status = RETURN_ERROR; + pid_t ppp_pid; + + snprintf(pppoe_call, sizeof(pppoe_call), "/sbin/pppoe -p /var/run/pppoe.conf-adsl.pid.pppoe -I %s -T 80 -U -m 1412", net_device); + + + fd = open(tty_adsl, O_RDWR); + if (fd == -1) { + log_message("cannot open tty -- no pppd"); + return RETURN_ERROR; + } + else if (access(pppd_launch[0], X_OK)) { + log_message("cannot open pppd - %s doesn't exist", pppd_launch[0]); + return RETURN_ERROR; + } + + if (!(ppp_pid = fork())) { + dup2(fd, 0); + dup2(fd, 1); + dup2(fd, 2); + + close(fd); + setsid(); + if (ioctl(0, TIOCSCTTY, NULL)) + log_perror("could not set new controlling tty"); + + printf("\t(exec of pppd)\n"); + execve(pppd_launch[0], pppd_launch, grab_env()); + log_message("execve of %s failed: %s", pppd_launch[0], strerror(errno)); + exit(-1); + } + close(fd); + while (retries > 0 && kill(ppp_pid, 0) == 0) { + FILE * f; + if ((f = fopen("/var/run/pppd.tdb", "rb"))) { + while (1) { + char buf[500]; + if (!fgets(buf, sizeof(buf), f)) + break; + if (strstr(buf, "IPLOCAL=")) + status = RETURN_OK; + } + fclose(f); + if (status == RETURN_OK) { + log_message("PPP: connected!"); + break; + } + } + retries--; + log_message("PPP: "); + sleep(2); + } + + if (status != RETURN_OK) { + kill(ppp_pid, SIGTERM); + log_message("PPP: could not connect"); + } + return status; +} + + +enum return_type perform_adsl(struct interface_info * intf) +{ struct in_addr addr; + char * questions[] = { "Username", "Password", NULL }; + char * questions_auto[] = { "user", "pass", NULL }; + static char ** answers = NULL; + enum return_type results; if (strncmp(intf->device, "eth", 3)) { stg1_error_message("ADSL available only for Ethernet networking (through PPPoE)."); @@ -65,42 +138,32 @@ enum return_type perform_adsl(struct interface_info * intf) return RETURN_ERROR; } + results = ask_from_entries_auto("Please enter the username and password for your ADSL account.\n" + "(Warning! only PPPoE protocol is supported)", + questions, &answers, 40, questions_auto, NULL); + if (results != RETURN_OK) + return results; + + wait_message("Waiting for ADSL connection to show up..."); my_insmod("ppp_generic", ANY_DRIVER_TYPE, NULL); my_insmod("ppp_async", ANY_DRIVER_TYPE, NULL); - my_insmod("ppp_synctty", ANY_DRIVER_TYPE, NULL); my_insmod("ppp", ANY_DRIVER_TYPE, NULL); + results = adsl_connect(intf->device, answers[0], answers[1]); + remove_wait_message(); - stg1_info_message("Interface %s seems ready.", intf->device); - - - fd = open("/dev/tty6", O_RDWR); - if (fd == -1) { - log_message("cannot open /dev/tty6 -- no pppd"); - return RETURN_ERROR; - } - else if (access(pppd_launch[0], X_OK)) { - log_message("cannot open pppd - %s doesn't exist", pppd_launch[0]); - return RETURN_ERROR; + if (results != RETURN_OK) { + wait_message("Retrying the ADSL connection..."); + results = adsl_connect(intf->device, answers[0], answers[1]); + remove_wait_message(); } - if (!fork()) { - dup2(fd, 0); - dup2(fd, 1); - dup2(fd, 2); - - close(fd); - setsid(); - if (ioctl(0, TIOCSCTTY, NULL)) - log_perror("could not set new controlling tty"); - - execve(pppd_launch[0], pppd_launch, grab_env()); - log_message("execve of %s failed: %s", pppd_launch[0], strerror(errno)); + if (results != RETURN_OK) { + stg1_error_message("I could not connect to the ADSL network."); + return perform_adsl(intf); } - close(fd); - - stg1_info_message("Forked for %s.", intf->device); + sleep(1); + res_init(); /* reinit the resolver, pppd modified /etc/resolv.conf */ return RETURN_OK; - } diff --git a/mdk-stage1/ppp/.cvsignore b/mdk-stage1/ppp/.cvsignore new file mode 100644 index 000000000..c258b925d --- /dev/null +++ b/mdk-stage1/ppp/.cvsignore @@ -0,0 +1 @@ +pppd-bin diff --git a/mdk-stage1/ppp/pppd/.cvsignore b/mdk-stage1/ppp/pppd/.cvsignore new file mode 100644 index 000000000..476ef2253 --- /dev/null +++ b/mdk-stage1/ppp/pppd/.cvsignore @@ -0,0 +1,2 @@ +pppd +pppd-DIET diff --git a/mdk-stage1/ppp/pppd/Makefile b/mdk-stage1/ppp/pppd/Makefile new file mode 100644 index 000000000..ad2bdae90 --- /dev/null +++ b/mdk-stage1/ppp/pppd/Makefile @@ -0,0 +1,59 @@ + #****************************************************************************** + # + # Guillaume Cottenceau (gc@mandrakesoft.com) + # + # Copyright 2000 MandrakeSoft + # + # This software may be freely redistributed under the terms of the GNU + # public license. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + # + #***************************************************************************** + +top_dir = ../.. + +include $(top_dir)/Makefile.common + + +TARGETS = pppd + +ifeq (DIETLIBC, $(L)) +TARGETS += pppd-DIET +endif + +BINTARGET = ../pppd-bin + + +all: $(TARGETS) + +clean: + rm -f *.o *.a $(BINTARGET) pppd pppd-DIET + +FLAGS = -Wall -Werror -Os -fomit-frame-pointer -DDO_BSD_COMPRESS=0 -D_linux_=1 -DHAVE_MMAP -DNO_DRAND48 + +INCS = -I../include -I. + + +OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o tdb.o tty.o +OBJS-DIET = $(subst .o,-DIET.o,$(OBJS)) + + +pppd: $(OBJS) + gcc -static -o $@ $^ -lcrypt + $(STRIPCMD) $@ + cp -f $@ $(BINTARGET) + +pppd-DIET: $(OBJS-DIET) + gcc $(DIETLIBC_LDFLAGS_STAGE1) -o $@ $^ $(DIETLIBC_LIBC) + $(STRIPCMD) $@ + cp -f $@ $(BINTARGET) + +$(OBJS): %.o: %.c + gcc $(FLAGS) $(INCS) $(GLIBC_INCLUDES) -c $< -o $@ + +$(OBJS-DIET): %-DIET.o: %.c + gcc $(FLAGS) $(INCS) $(DIETLIBC_INCLUDES) -c $< -o $@ + diff --git a/mdk-stage1/ppp/pppd/auth.c b/mdk-stage1/ppp/pppd/auth.c index c1912c252..5f95a2982 100644 --- a/mdk-stage1/ppp/pppd/auth.c +++ b/mdk-stage1/ppp/pppd/auth.c @@ -76,6 +76,8 @@ #endif #include "pathnames.h" +#include + static const char rcsid[] = RCSID; /* Bits in scan_authfile return value */ @@ -1183,7 +1185,7 @@ plogin(user, passwd, msg) tty = devnam; if (strncmp(tty, "/dev/", 5) == 0) tty += 5; - logwtmp(tty, user, remote_name); /* Add wtmp login entry */ +// logwtmp(tty, user, remote_name); /* Add wtmp login entry */ #if defined(_PATH_LASTLOG) && !defined(USE_PAM) if (pw != (struct passwd *)NULL) { @@ -1229,7 +1231,7 @@ plogout() tty = devnam; if (strncmp(tty, "/dev/", 5) == 0) tty += 5; - logwtmp(tty, "", ""); /* Wipe out utmp logout entry */ +// logwtmp(tty, "", ""); /* Wipe out utmp logout entry */ #endif /* ! USE_PAM */ logged_in = 0; } @@ -1475,8 +1477,7 @@ set_allowed_addrs(unit, addrs, opts) struct permitted_ip *ip; char *ptr_word, *ptr_mask; struct hostent *hp; - struct netent *np; - u_int32_t a, mask, ah, offset; + u_int32_t a, mask, offset; struct ipcp_options *wo = &ipcp_wantoptions[unit]; u_int32_t suggested_ip = 0; @@ -1551,22 +1552,8 @@ set_allowed_addrs(unit, addrs, opts) if (hp != NULL && hp->h_addrtype == AF_INET) { a = *(u_int32_t *)hp->h_addr; } else { - np = getnetbyname (ptr_word); - if (np != NULL && np->n_addrtype == AF_INET) { - a = htonl (*(u_int32_t *)np->n_net); - if (ptr_mask == NULL) { - /* calculate appropriate mask for net */ - ah = ntohl(a); - if (IN_CLASSA(ah)) - mask = IN_CLASSA_NET; - else if (IN_CLASSB(ah)) - mask = IN_CLASSB_NET; - else if (IN_CLASSC(ah)) - mask = IN_CLASSC_NET; - } - } else { - a = inet_addr (ptr_word); - } + printf("*** getnetbyname is unsupported, please report bug! ***\n"); + return; } if (ptr_mask != NULL) diff --git a/mdk-stage1/ppp/pppd/magic.c b/mdk-stage1/ppp/pppd/magic.c index 764692a16..1682dee03 100644 --- a/mdk-stage1/ppp/pppd/magic.c +++ b/mdk-stage1/ppp/pppd/magic.c @@ -19,6 +19,7 @@ #define RCSID "$Id$" +#include #include #include #include diff --git a/mdk-stage1/ppp/pppd/main.c b/mdk-stage1/ppp/pppd/main.c index 8789d3b1d..c074938cd 100644 --- a/mdk-stage1/ppp/pppd/main.c +++ b/mdk-stage1/ppp/pppd/main.c @@ -1415,9 +1415,24 @@ device_script(program, in, out, dont_wait) exit(1); } setgid(getgid()); - execl("/bin/sh", "sh", "-c", program, (char *)0); - error("could not exec /bin/sh: %m"); - exit(99); + { + int argc = 0; + char * argv[500]; + char * ptr = program; + while (ptr != NULL) { + argv[argc] = ptr; + argc++; + ptr = strchr(ptr, ' '); + if (ptr) { + ptr[0] = '\0'; + ptr++; + } + } + argv[argc] = NULL; + execv(argv[0], argv); + error("could not exec %s: %m", program); + exit(99); + } /* NOTREACHED */ } diff --git a/mdk-stage1/ppp/pppd/md5.c b/mdk-stage1/ppp/pppd/md5.c index db48023c5..0b8de3aae 100644 --- a/mdk-stage1/ppp/pppd/md5.c +++ b/mdk-stage1/ppp/pppd/md5.c @@ -33,6 +33,9 @@ *********************************************************************** */ +#include +#include + #include "md5.h" /* diff --git a/mdk-stage1/ppp/pppd/multilink.c b/mdk-stage1/ppp/pppd/multilink.c index e5f2ac40d..c30b07e0a 100644 --- a/mdk-stage1/ppp/pppd/multilink.c +++ b/mdk-stage1/ppp/pppd/multilink.c @@ -13,9 +13,10 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ +#include +#include #include #include -#include #include #include #include diff --git a/mdk-stage1/ppp/pppd/options.c b/mdk-stage1/ppp/pppd/options.c index 9ebac372e..1921d9ec5 100644 --- a/mdk-stage1/ppp/pppd/options.c +++ b/mdk-stage1/ppp/pppd/options.c @@ -894,7 +894,7 @@ print_option(opt, mainopt, printer, arg) break; default: - printer(arg, "# %s value (type %d??)", opt->name, opt->type); + printer(arg, "# %s value (type %d)", opt->name, opt->type); break; } printer(arg, "\t\t# (from %s)\n", mainopt->source); diff --git a/mdk-stage1/ppp/pppd/pathnames.h b/mdk-stage1/ppp/pppd/pathnames.h index d8eee70de..e80784567 100644 --- a/mdk-stage1/ppp/pppd/pathnames.h +++ b/mdk-stage1/ppp/pppd/pathnames.h @@ -4,19 +4,9 @@ * $Id$ */ -#ifdef HAVE_PATHS_H -#include - -#else /* HAVE_PATHS_H */ -#ifndef _PATH_VARRUN -#define _PATH_VARRUN "/etc/ppp/" -#endif +#define _PATH_VARRUN "/var/run/" #define _PATH_DEVNULL "/dev/null" -#endif /* HAVE_PATHS_H */ - -#ifndef _ROOT_PATH #define _ROOT_PATH -#endif #define _PATH_UPAPFILE _ROOT_PATH "/etc/ppp/pap-secrets" #define _PATH_CHAPFILE _ROOT_PATH "/etc/ppp/chap-secrets" @@ -28,30 +18,8 @@ #define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options." #define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors" #define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/" -#define _PATH_RESOLV _ROOT_PATH "/etc/ppp/resolv.conf" +#define _PATH_RESOLV _ROOT_PATH "/etc/resolv.conf" #define _PATH_USEROPT ".ppprc" -#ifdef INET6 -#define _PATH_IPV6UP _ROOT_PATH "/etc/ppp/ipv6-up" -#define _PATH_IPV6DOWN _ROOT_PATH "/etc/ppp/ipv6-down" -#endif - -#ifdef IPX_CHANGE -#define _PATH_IPXUP _ROOT_PATH "/etc/ppp/ipx-up" -#define _PATH_IPXDOWN _ROOT_PATH "/etc/ppp/ipx-down" -#endif /* IPX_CHANGE */ - -#ifdef __STDC__ #define _PATH_PPPDB _ROOT_PATH _PATH_VARRUN "pppd.tdb" -#else /* __STDC__ */ -#ifdef HAVE_PATHS_H -#define _PATH_PPPDB "/var/run/pppd.tdb" -#else -#define _PATH_PPPDB "/etc/ppp/pppd.tdb" -#endif -#endif /* __STDC__ */ - -#ifdef PLUGIN -#define _PATH_PLUGIN "/usr/lib/pppd/" VERSION -#endif /* PLUGIN */ diff --git a/mdk-stage1/ppp/pppd/utils.c b/mdk-stage1/ppp/pppd/utils.c index 6a5b88e8b..9c987cfcd 100644 --- a/mdk-stage1/ppp/pppd/utils.c +++ b/mdk-stage1/ppp/pppd/utils.c @@ -44,6 +44,7 @@ #endif #include "pppd.h" +#include static const char rcsid[] = RCSID; diff --git a/mdk-stage1/rp-pppoe/.cvsignore b/mdk-stage1/rp-pppoe/.cvsignore new file mode 100644 index 000000000..1f345b56b --- /dev/null +++ b/mdk-stage1/rp-pppoe/.cvsignore @@ -0,0 +1 @@ +pppoe-bin diff --git a/mdk-stage1/rp-pppoe/src/.cvsignore b/mdk-stage1/rp-pppoe/src/.cvsignore new file mode 100644 index 000000000..a59197332 --- /dev/null +++ b/mdk-stage1/rp-pppoe/src/.cvsignore @@ -0,0 +1,2 @@ +pppoe +pppoe-DIET diff --git a/mdk-stage1/rp-pppoe/src/Makefile b/mdk-stage1/rp-pppoe/src/Makefile new file mode 100644 index 000000000..f96b5714e --- /dev/null +++ b/mdk-stage1/rp-pppoe/src/Makefile @@ -0,0 +1,58 @@ + #****************************************************************************** + # + # Guillaume Cottenceau (gc@mandrakesoft.com) + # + # Copyright 2000 MandrakeSoft + # + # This software may be freely redistributed under the terms of the GNU + # public license. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + # + #***************************************************************************** + +top_dir = ../.. + +include $(top_dir)/Makefile.common + + +TARGETS = pppoe + +ifeq (DIETLIBC, $(L)) +TARGETS += pppoe-DIET +endif + +BINTARGET = ../pppoe-bin + + +all: $(TARGETS) + +clean: + rm -f *.o *.a $(BINTARGET) pppoe pppoe-DIET + +FLAGS = -Wall -Werror -Os -fomit-frame-pointer '-DPPPOE_PATH="/sbin/pppoe"' '-DPPPD_PATH="/sbin/pppd"' '-DVERSION="3.0-stg1"' + + + +OBJS = pppoe.o if.o debug.o common.o ppp.o discovery.o +OBJS-DIET = $(subst .o,-DIET.o,$(OBJS)) + + +pppoe: $(OBJS) + gcc -static -o $@ $^ + $(STRIPCMD) $@ + cp -f $@ $(BINTARGET) + +pppoe-DIET: $(OBJS-DIET) + gcc $(DIETLIBC_LDFLAGS_STAGE1) -o $@ $^ $(DIETLIBC_LIBC) + $(STRIPCMD) $@ + cp -f $@ $(BINTARGET) + +$(OBJS): %.o: %.c + gcc $(FLAGS) $(GLIBC_INCLUDES) $(INCS) -c $< -o $@ + +$(OBJS-DIET): %-DIET.o: %.c + gcc $(FLAGS) $(DIETLIBC_INCLUDES) $(INCS) -c $< -o $@ + diff --git a/mdk-stage1/rp-pppoe/src/config.h b/mdk-stage1/rp-pppoe/src/config.h new file mode 100644 index 000000000..e3adf4353 --- /dev/null +++ b/mdk-stage1/rp-pppoe/src/config.h @@ -0,0 +1,135 @@ +/* config.h. Generated automatically by configure. */ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to `int' if doesn't define. */ +/* #undef pid_t */ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define if your declares struct tm. */ +/* #undef TM_IN_SYS_TIME */ + +#define HAVE_STRUCT_SOCKADDR_LL 1 + +/* The number of bytes in a unsigned int. */ +#define SIZEOF_UNSIGNED_INT 4 + +/* The number of bytes in a unsigned long. */ +#define SIZEOF_UNSIGNED_LONG 4 + +/* The number of bytes in a unsigned short. */ +#define SIZEOF_UNSIGNED_SHORT 2 + +/* Define if you have the select function. */ +#define HAVE_SELECT 1 + +/* Define if you have the socket function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the strerror function. */ +#define HAVE_STRERROR 1 + +/* Define if you have the strtol function. */ +#define HAVE_STRTOL 1 + +/* Define if you have the header file. */ +#define HAVE_ASM_TYPES_H 1 + +/* Define if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the header file. */ +#define HAVE_GETOPT_H 1 + +/* Define if you have the header file. */ +#define HAVE_LINUX_IF_ETHER_H 1 + +/* Define if you have kernel-mode PPPoE in Linux file. */ +/* #undef HAVE_LINUX_KERNEL_PPPOE */ + +/* Define if you have the header file. */ +#define HAVE_LINUX_IF_PACKET_H 1 + +/* Define if you have the header file. */ +#define HAVE_LINUX_IF_PPPOX_H 1 + +/* Define if you have the header file. */ +#define HAVE_NET_BPF_H 1 + +/* Define if you have the header file. */ +//#define HAVE_NET_IF_ARP_H 1 + +/* Define if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define if you have the header file. */ +#define HAVE_LINUX_IF_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_NET_IF_DL_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_NET_IF_ETHER_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_NET_IF_TYPES_H */ + +/* Define if you have the header file. */ +//#define HAVE_NETINET_IF_ETHER_H 1 + +/* Define if you have the header file. */ +#define HAVE_NETPACKET_PACKET_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_CDEFS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_DLPI_H */ + +/* Define if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if you have the N_HDLC line discipline in linux/termios.h */ +#define HAVE_N_HDLC 1 + +/* Define if bitfields are packed in reverse order */ +#define PACK_BITFIELDS_REVERSED 1 -- cgit v1.2.1