summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-06-11 14:46:02 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-06-11 14:46:02 +0000
commit991b346d4994b4b85981adb35d0dd6e91bedd364 (patch)
tree8334b697adbdbab6c6bfba1d2be5fca92c1ef169
parentdfacf1ef1d22dcc949380ea765df1158fd008550 (diff)
downloaddrakx-991b346d4994b4b85981adb35d0dd6e91bedd364.tar
drakx-991b346d4994b4b85981adb35d0dd6e91bedd364.tar.gz
drakx-991b346d4994b4b85981adb35d0dd6e91bedd364.tar.bz2
drakx-991b346d4994b4b85981adb35d0dd6e91bedd364.tar.xz
drakx-991b346d4994b4b85981adb35d0dd6e91bedd364.zip
have adsl pppoe installation available
-rw-r--r--mdk-stage1/Makefile2
-rw-r--r--mdk-stage1/adsl.c133
-rw-r--r--mdk-stage1/ppp/.cvsignore1
-rw-r--r--mdk-stage1/ppp/pppd/.cvsignore2
-rw-r--r--mdk-stage1/ppp/pppd/Makefile59
-rw-r--r--mdk-stage1/ppp/pppd/auth.c27
-rw-r--r--mdk-stage1/ppp/pppd/magic.c1
-rw-r--r--mdk-stage1/ppp/pppd/main.c21
-rw-r--r--mdk-stage1/ppp/pppd/md5.c3
-rw-r--r--mdk-stage1/ppp/pppd/multilink.c3
-rw-r--r--mdk-stage1/ppp/pppd/options.c2
-rw-r--r--mdk-stage1/ppp/pppd/pathnames.h36
-rw-r--r--mdk-stage1/ppp/pppd/utils.c1
-rw-r--r--mdk-stage1/rp-pppoe/.cvsignore1
-rw-r--r--mdk-stage1/rp-pppoe/src/.cvsignore2
-rw-r--r--mdk-stage1/rp-pppoe/src/Makefile58
-rw-r--r--mdk-stage1/rp-pppoe/src/config.h135
17 files changed, 392 insertions, 95 deletions
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 <arpa/inet.h>
#include <sys/ioctl.h>
#include <errno.h>
+#include <stdio.h>
+#include <resolv.h>
+#include <signal.h>
#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>");
+ 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 <time.h>
+
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 <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
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 <stdlib.h>
+#include <string.h>
+
#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 <stdlib.h>
+#include <unistd.h>
#include <string.h>
#include <ctype.h>
-#include <stdlib.h>
#include <netdb.h>
#include <errno.h>
#include <signal.h>
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 <paths.h>
-
-#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 <time.h>
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 <sys/wait.h> that is POSIX.1 compatible. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to `int' if <sys/types.h> 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 <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define if your <sys/time.h> 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 <asm/types.h> header file. */
+#define HAVE_ASM_TYPES_H 1
+
+/* Define if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have the <getopt.h> header file. */
+#define HAVE_GETOPT_H 1
+
+/* Define if you have the <linux/if_ether.h> 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 <linux/if_packet.h> header file. */
+#define HAVE_LINUX_IF_PACKET_H 1
+
+/* Define if you have the <linux/if_pppox.h> header file. */
+#define HAVE_LINUX_IF_PPPOX_H 1
+
+/* Define if you have the <net/bpf.h> header file. */
+#define HAVE_NET_BPF_H 1
+
+/* Define if you have the <net/if_arp.h> header file. */
+//#define HAVE_NET_IF_ARP_H 1
+
+/* Define if you have the <net/ethernet.h> header file. */
+#define HAVE_NET_ETHERNET_H 1
+
+/* Define if you have the <net/if.h> header file. */
+#define HAVE_NET_IF_H 1
+
+/* Define if you have the <linux/if.h> header file. */
+#define HAVE_LINUX_IF_H 1
+
+/* Define if you have the <net/if_dl.h> header file. */
+/* #undef HAVE_NET_IF_DL_H */
+
+/* Define if you have the <net/if_ether.h> header file. */
+/* #undef HAVE_NET_IF_ETHER_H */
+
+/* Define if you have the <net/if_types.h> header file. */
+/* #undef HAVE_NET_IF_TYPES_H */
+
+/* Define if you have the <netinet/if_ether.h> header file. */
+//#define HAVE_NETINET_IF_ETHER_H 1
+
+/* Define if you have the <netpacket/packet.h> header file. */
+#define HAVE_NETPACKET_PACKET_H 1
+
+/* Define if you have the <sys/cdefs.h> header file. */
+#define HAVE_SYS_CDEFS_H 1
+
+/* Define if you have the <sys/dlpi.h> header file. */
+/* #undef HAVE_SYS_DLPI_H */
+
+/* Define if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define if you have the <syslog.h> header file. */
+#define HAVE_SYSLOG_H 1
+
+/* Define if you have the <unistd.h> 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