summaryrefslogtreecommitdiff
Diffstat
-rwxr-xr-xAndroid.mk39
-rw-r--r--README89
-rwxr-xr-xSERVPOET18
-rwxr-xr-xconfigs/firewall-masq71
-rwxr-xr-xconfigs/firewall-standalone34
-rwxr-xr-xconfigs/pap-secrets10
-rwxr-xr-xconfigs/pppoe-server-options6
-rwxr-xr-xconfigs/pppoe.conf140
-rwxr-xr-xdoc/CHANGES339
-rwxr-xr-xdoc/HOW-TO-CONNECT268
-rwxr-xr-xdoc/KERNEL-MODE-PPPOE98
-rwxr-xr-xdoc/LICENSE341
-rwxr-xr-xdoc/PROBLEMS5
-rwxr-xr-xman/pppoe-connect.866
-rwxr-xr-xman/pppoe-relay.8124
-rwxr-xr-xman/pppoe-server.8184
-rwxr-xr-xman/pppoe-setup.823
-rwxr-xr-xman/pppoe-sniff.877
-rwxr-xr-xman/pppoe-start.827
-rwxr-xr-xman/pppoe-status.825
-rwxr-xr-xman/pppoe-stop.821
-rwxr-xr-xman/pppoe.8236
-rwxr-xr-xman/pppoe.conf.5167
-rw-r--r--pstart3
-rw-r--r--pstop21
-rwxr-xr-xscripts/pppoe-connect319
-rwxr-xr-xscripts/pppoe-connect.in319
-rwxr-xr-xscripts/pppoe-init66
-rwxr-xr-xscripts/pppoe-init-suse64
-rwxr-xr-xscripts/pppoe-init-suse.in64
-rwxr-xr-xscripts/pppoe-init-turbolinux64
-rwxr-xr-xscripts/pppoe-init-turbolinux.in64
-rwxr-xr-xscripts/pppoe-init.in66
-rwxr-xr-xscripts/pppoe-setup352
-rwxr-xr-xscripts/pppoe-setup.in352
-rwxr-xr-xscripts/pppoe-start196
-rwxr-xr-xscripts/pppoe-start.in196
-rwxr-xr-xscripts/pppoe-status84
-rwxr-xr-xscripts/pppoe-stop96
-rwxr-xr-xscripts/pppoe-stop.in96
-rwxr-xr-xsrc/common.c651
-rwxr-xr-xsrc/config.h146
-rwxr-xr-xsrc/debug.c152
-rwxr-xr-xsrc/discovery.c736
-rwxr-xr-xsrc/if.c352
-rwxr-xr-xsrc/libevent/Makefile42
-rwxr-xr-xsrc/libevent/Makefile.in42
-rwxr-xr-xsrc/libevent/event.c645
-rwxr-xr-xsrc/libevent/event.h114
-rwxr-xr-xsrc/libevent/event_sig.c265
-rwxr-xr-xsrc/libevent/event_tcp.c577
-rwxr-xr-xsrc/libevent/event_tcp.h87
-rwxr-xr-xsrc/libevent/eventpriv.h46
-rwxr-xr-xsrc/libevent/hash.c266
-rwxr-xr-xsrc/libevent/hash.h54
-rwxr-xr-xsrc/md5.c249
-rwxr-xr-xsrc/md5.h34
-rwxr-xr-xsrc/plugin.c469
-rwxr-xr-xsrc/ppp.c262
-rwxr-xr-xsrc/pppoe-server.c2137
-rwxr-xr-xsrc/pppoe-server.h156
-rwxr-xr-xsrc/pppoe-sniff.c266
-rwxr-xr-xsrc/pppoe.c959
-rwxr-xr-xsrc/pppoe.h347
-rwxr-xr-xsrc/relay.c1559
-rwxr-xr-xsrc/relay.h99
66 files changed, 0 insertions, 15542 deletions
diff --git a/src/pppoe-sniff.c b/src/pppoe-sniff.c
deleted file mode 100755
index 1569857..0000000
--- a/src/pppoe-sniff.c
+++ b/dev/null
@@ -1,266 +0,0 @@
-/***********************************************************************
-*
-* pppoe-sniff.c
-*
-* Sniff a network for likely-looking PPPoE frames and deduce the value
-* to supply to PPPOE_EXTRA in /etc/ppp/pppoe.conf. USE AT YOUR OWN RISK.
-*
-* Copyright (C) 2000 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-* LIC: GPL
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-#include <errno.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef USE_DLPI
-#include <sys/dlpi.h>
-/* function declarations */
-void dlpromisconreq( int fd, u_long level);
-void dlokack(int fd, char *bufp);
-#endif
-
-/* Default interface if no -I option given */
-#define DEFAULT_IF "eth0"
-
-/* Global vars */
-int SeenPADR = 0;
-int SeenSess = 0;
-UINT16_t SessType, DiscType;
-
-char *IfName = NULL; /* Interface name */
-char *ServiceName = NULL; /* Service name */
-
-/**********************************************************************
-*%FUNCTION: parsePADRTags
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks interesting tags out of a PADR packet
-***********************************************************************/
-void
-parsePADRTags(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- switch(type) {
- case TAG_SERVICE_NAME:
- ServiceName = malloc(len+1);
- if (ServiceName) {
- memcpy(ServiceName, data, len);
- ServiceName[len] = 0;
- }
- break;
- }
-}
-
-/**********************************************************************
-*%FUNCTION: fatalSys
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to stderr and exits.
-***********************************************************************/
-void
-fatalSys(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
- exit(1);
-}
-
-/**********************************************************************
-*%FUNCTION: rp_fatal
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog and exits.
-***********************************************************************/
-void
-rp_fatal(char const *str)
-{
- printErr(str);
- exit(1);
-}
-
-/**********************************************************************
-*%FUNCTION: usage
-*%ARGUMENTS:
-* argv0 -- program name
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints usage information and exits.
-***********************************************************************/
-void
-usage(char const *argv0)
-{
- fprintf(stderr, "Usage: %s [options]\n", argv0);
- fprintf(stderr, "Options:\n");
- fprintf(stderr, " -I if_name -- Specify interface (default %s.)\n",
- DEFAULT_IF);
- fprintf(stderr, " -V -- Print version and exit.\n");
- fprintf(stderr, "\nPPPoE Version %s, Copyright (C) 2000 Roaring Penguin Software Inc.\n", VERSION);
- fprintf(stderr, "PPPoE comes with ABSOLUTELY NO WARRANTY.\n");
- fprintf(stderr, "This is free software, and you are welcome to redistribute it under the terms\n");
- fprintf(stderr, "of the GNU General Public License, version 2 or any later version.\n");
- fprintf(stderr, "http://www.roaringpenguin.com\n");
- exit(0);
-}
-
-#if !defined(USE_LINUX_PACKET) && !defined(USE_DLPI)
-
-int
-main()
-{
- fprintf(stderr, "Sorry, pppoe-sniff works only on Linux.\n");
- return 1;
-}
-
-#else
-
-/**********************************************************************
-*%FUNCTION: main
-*%ARGUMENTS:
-* argc, argv -- count and values of command-line arguments
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Main program
-***********************************************************************/
-int
-main(int argc, char *argv[])
-{
- int opt;
- int sock;
- PPPoEPacket pkt;
- int size;
-#ifdef USE_DLPI
- long buf[MAXDLBUF];
-#endif
-
- if (getuid() != geteuid() ||
- getgid() != getegid()) {
- fprintf(stderr, "SECURITY WARNING: pppoe-sniff will NOT run suid or sgid. Fix your installation.\n");
- exit(1);
- }
-
- while((opt = getopt(argc, argv, "I:V")) != -1) {
- switch(opt) {
- case 'I':
- SET_STRING(IfName, optarg);
- break;
- case 'V':
- printf("pppoe-sniff: Roaring Penguin PPPoE Version %s\n", VERSION);
- exit(0);
- default:
- usage(argv[0]);
- }
- }
-
- /* Pick a default interface name */
- if (!IfName) {
- IfName = DEFAULT_IF;
- }
-
- /* Open the interface */
-#ifdef USE_DLPI
- sock = openInterface(IfName, Eth_PPPOE_Discovery, NULL);
- dlpromisconreq(sock, DL_PROMISC_PHYS);
- dlokack(sock, (char *)buf);
- dlpromisconreq(sock, DL_PROMISC_SAP);
- dlokack(sock, (char *)buf);
-#else
-
- sock = openInterface(IfName, ETH_P_ALL, NULL);
-
-#endif
-
- /* We assume interface is in promiscuous mode -- use ifconfig to
- ensure this */
- fprintf(stderr, "Sniffing for PADR. Start your connection on another machine...\n");
- while (!SeenPADR) {
- if (receivePacket(sock, &pkt, &size) < 0) continue;
- if (ntohs(pkt.length) + HDR_SIZE > (unsigned int)size) continue;
- if (pkt.ver != 1 || pkt.type != 1) continue;
- if (pkt.code != CODE_PADR) continue;
-
- /* Looks promising... parse it */
- if (parsePacket(&pkt, parsePADRTags, NULL) < 0) {
- continue;
- }
- DiscType = ntohs(pkt.ethHdr.h_proto);
- fprintf(stderr, "\nExcellent! Sniffed a likely-looking PADR.\n");
- break;
- }
-
- while (!SeenSess) {
- if (receivePacket(sock, &pkt, &size) < 0) continue;
- if (ntohs(pkt.length) + HDR_SIZE > (unsigned int)size) continue;
- if (pkt.ver != 1 || pkt.type != 1) continue;
- if (pkt.code != CODE_SESS) continue;
-
- /* Cool! */
- SessType = ntohs(pkt.ethHdr.h_proto);
- break;
- }
-
- fprintf(stderr, "Wonderful! Sniffed a likely-looking session packet.\n");
- if ((ServiceName == NULL || *ServiceName == 0) &&
- DiscType == ETH_PPPOE_DISCOVERY &&
- SessType == ETH_PPPOE_SESSION) {
- fprintf(stderr, "\nGreat! It looks like a standard PPPoE service.\nYou should not need anything special in the configuration file.\n");
- return 0;
- }
-
- fprintf(stderr, "\nOK, looks like you need something special in the configuration file.\nTry this:\n\n");
- if (ServiceName != NULL && *ServiceName != 0) {
- fprintf(stderr, "SERVICENAME='%s'\n", ServiceName);
- }
- if (DiscType != ETH_PPPOE_DISCOVERY || SessType != ETH_PPPOE_SESSION) {
- fprintf(stderr, " PPPOE_EXTRA='-f %x:%x'\n", DiscType, SessType);
- }
- return 0;
-}
-
-#endif
-/**********************************************************************
-*%FUNCTION: sysErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to syslog.
-***********************************************************************/
-void
-sysErr(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
-}