diff options
author | tron <tron@pkgsrc.org> | 1998-04-16 16:11:21 +0000 |
---|---|---|
committer | tron <tron@pkgsrc.org> | 1998-04-16 16:11:21 +0000 |
commit | 67d55b4130336dd7db448446a1da4a08c1efc53e (patch) | |
tree | 7754aa3995df26843e9f03da3d3af1e539f0d1f0 /net/dip | |
parent | 2f0b600fc94ba22d4de8e94190076e4736709d63 (diff) | |
download | pkgsrc-67d55b4130336dd7db448446a1da4a08c1efc53e.tar.gz |
Initial import of FreeBSD's "dip" port.
Diffstat (limited to 'net/dip')
-rw-r--r-- | net/dip/Makefile | 19 | ||||
-rw-r--r-- | net/dip/files/md5 | 1 | ||||
-rw-r--r-- | net/dip/patches/patch-a | 150 | ||||
-rw-r--r-- | net/dip/patches/patch-b | 173 | ||||
-rw-r--r-- | net/dip/patches/patch-c | 41 | ||||
-rw-r--r-- | net/dip/pkg/COMMENT | 1 | ||||
-rw-r--r-- | net/dip/pkg/DESCR | 22 | ||||
-rw-r--r-- | net/dip/pkg/PLIST | 5 |
8 files changed, 412 insertions, 0 deletions
diff --git a/net/dip/Makefile b/net/dip/Makefile new file mode 100644 index 00000000000..2ddc77a17ef --- /dev/null +++ b/net/dip/Makefile @@ -0,0 +1,19 @@ +# New ports collection makefile for: bsddip +# Version required: 1.02 +# Date created: 27 aug 95 +# Whom: joerg +# +# $FreeBSD Id: Makefile,v 1.5 1997/04/30 03:18:07 asami Exp +# + +DISTNAME= bsddip-1.02 +CATEGORIES= net +# +# the actual master site is almost out of reach for everybody +#MASTER_SITES= ftp://sun.rz.tu-clausthal.de/pub/bsddip/ +MASTER_SITES+= ${MASTER_SITE_LOCAL} +EXTRACT_SUFX= .tar.Z + +MAINTAINER= joerg@FreeBSD.ORG + +.include <bsd.port.mk> diff --git a/net/dip/files/md5 b/net/dip/files/md5 new file mode 100644 index 00000000000..005b5f40d92 --- /dev/null +++ b/net/dip/files/md5 @@ -0,0 +1 @@ +MD5 (bsddip-1.02.tar.Z) = 0bd8ad1e01e3cf2ad61b5a6de49c9d51 diff --git a/net/dip/patches/patch-a b/net/dip/patches/patch-a new file mode 100644 index 00000000000..57d84bf9231 --- /dev/null +++ b/net/dip/patches/patch-a @@ -0,0 +1,150 @@ +--- Makefile.orig Sat Jul 1 01:41:05 1995 ++++ Makefile Sun Aug 27 23:51:53 1995 +@@ -1,123 +1,38 @@ +-CC = gcc +- +-CCFLAG = -O2 +-DBFLAG = -ggdb -Wall +-LDFLAG = -N -s +- ++PROG = dip ++PROG1 = diplogin ++LINKS = ${BINDIR}/${PROG} ${BINDIR}/${PROG1} + VERSION = 1.01 + + BINTGT = dip +-BINTGT1 = diplogin +-BINDIR = /sbin/ +-BINGRP = bin +-BINOWN = bin +-BINMODE = 555 +- +-MANSRC = dip.8 +-MANTGT = dip.0 +-MANTGT1 = diplogin.0 +-MANDIR = /usr/share/man/cat8/ +-MANGRP = bin +-MANOWN = bin +-MANMODE = 444 ++BINDIR = ${PREFIX}/sbin + +-SMPDIR = /etc/dip.samples/ ++MAN8 = dip.8 ++MANDIR = ${PREFIX}/man/man ++MLINKS = dip.8 diplogin.8 ++ ++SAMPLES = samples/dialout.dip.sample samples/ReadMe.HowTo \ ++ samples/sample2.dip samples/diphosts \ ++ samples/sample.dip samples/setup.sh.sample \ ++ samples/ReadMe samples/sample1.dip \ ++ samples/startup.sh.sample ++ ++SMPDIR = ${PREFIX}/lib/dip + SMPGRP = bin + SMPOWN = bin +-SMPMODE = 755 ++SMPMODE = 644 + + # OWNSLEEP= -DUSEOWNSLEEP + +-OBJS = attach.o command.o config.o daemon.o dip.o login.o modem.o ppp.o\ +- slip.o term.o tty.o ++SRCS = attach.c command.c config.c daemon.c dip.c login.c modem.c ppp.c\ ++ slip.c term.c tty.c + + .ifdef (OWNSLEEP) +-OBJS += sleep.o +-.endif +- +- +-.SUFFIXES: .0 .1 .2 .3 .4 .5 .6 .7 .8 +- +- +-.8.0: +- @echo "nroff -mandoc $(.IMPSRC) > $(.TARGET)" +- @nroff -mandoc $(.IMPSRC) > $(.TARGET) || ( rm -f $(.TARGET) ; false ) +- +- +-.ifmake (debug) +-.c.o: dip.h $(.IMPSRC) +- $(CC) $(OWNSLEEP) $(DBFLAG) -c $(.IMPSRC) +-.else +-.c.o: dip.h $(.IMPSRC) +- $(CC) $(OWNSLEEP) $(CCFLAG) -c $(.IMPSRC) ++SRCS += sleep.c + .endif + ++afterinstall: ++ @if [ ! -d ${SMPDIR} ] ; then mkdir -p ${SMPDIR} ; fi ++ ${INSTALL} -c -o ${SMPOWN} -g ${SMPGRP} -m ${SMPMODE} \ ++ ${SAMPLES} ${SMPDIR} + +- +-all: dip +- +- +-install: dip maninstall +- install -c -s -o$(BINOWN) -g$(BINGRP) -m$(BINMODE) $(BINTGT) $(BINDIR) +- rm -f $(BINDIR)$(BINTGT1) +- ln $(BINDIR)$(BINTGT) $(BINDIR)$(BINTGT1) +- +- +-dip: dip.h $(OBJS) +- $(CC) $(OWNSLEEP) $(CCFLAG) $(LDFLAG) -o $(BINTGT) $(OBJS) +- +- +-debug: dip.h $(OBJS) +- $(CC) $(OWNSLEEP) $(DBFLAG) -o $(BINTGT) $(OBJS) +- +- +-maninstall: man +- install -c -o$(MANOWN) -g$(MANGRP) -m$(MANMODE) $(MANTGT) $(MANDIR) +- rm -f $(MANDIR)$(MANTGT1) +- ln $(MANDIR)$(MANTGT) $(MANDIR)$(MANTGT1) +- +- +-man: $(MANTGT) +- +- +-samples! +- @echo Installing sample files in $(SMPDIR)... +- @if [ -d $(SMPDIR) ] ; then \ +- echo The directory already exists! ; \ +- echo Aborting!!! ; \ +- false ; \ +- fi +- install -d -o$(BINOWN) -g$(BINGRP) -m$(SMPMODE) $(SMPDIR) +- install -c -o$(BINOWN) -g$(BINGRP) -m644 ./samples/* $(SMPDIR) +- install -c -o$(BINOWN) -g$(BINGRP) -m744 ./samples/*.sh.* $(SMPDIR) +- +-clean: +- rm -f $(BINTGT).core $(OBJS) +- +- +-clobber: clean +- rm -f $(BINTGT) $(MANTGT) +- +- +-uninstall: +- @if [ -f $(BINDIR)$(BINTGT1) ] ; then \ +- echo Removing $(BINDIR)$(BINTGT1) ; \ +- rm -f $(BINDIR)$(BINTGT1) ; \ +- fi +- @if [ -f $(BINDIR)$(BINTGT) ] ; then \ +- echo Removing $(BINDIR)$(BINTGT) ; \ +- rm -f $(BINDIR)$(BINTGT) ; \ +- fi +- @if [ -f $(MANDIR)$(MANTGT1) ] ; then \ +- echo Removing $(MANDIR)$(MANTGT1) ; \ +- rm -f $(MANDIR)$(MANTGT1) ; \ +- fi +- @if [ -f $(MANDIR)$(MANTGT) ] ; then \ +- echo Removing $(MANDIR)$(MANTGT) ; \ +- rm -f $(MANDIR)$(MANTGT) ; \ +- fi +- @if [ -d $(SMPDIR) ] ; then \ +- echo '' ; \ +- echo "Please remove $(SMPDIR) (and containing files) yourself!" ; \ +- echo '' ; \ +- fi ++.include <bsd.prog.mk> diff --git a/net/dip/patches/patch-b b/net/dip/patches/patch-b new file mode 100644 index 00000000000..e736f6ddf2a --- /dev/null +++ b/net/dip/patches/patch-b @@ -0,0 +1,173 @@ +--- tty.c.orig Sat Jul 1 01:41:05 1995 ++++ tty.c Sat Sep 9 08:37:14 1995 +@@ -140,9 +140,10 @@ + int tty_lock ( char *path, int mode ) + { + ++#define MAX_LOCK_ATTEMPTS 3 + struct passwd *pw; +- +- int fd; ++ char number[12], *temp_path; ++ int fd, i, saved_errno; + + + if ( mode ) /* locking on ? */ +@@ -152,32 +153,71 @@ + return 0; /* standard input */ + } + +- if ( saved_path != NULL ) ++ temp_path = (char*) malloc ( sizeof ( PATH_LOCKD ) + ++ strlen("TMP..") + 10); /* max PID */ ++ ++ (void) sprintf ( number, "%u", (unsigned)getpid() ); ++ (void) strcpy ( temp_path, PATH_LOCKD ); ++ (void) strcat ( temp_path, "TMP.." ); ++ (void) strcat ( temp_path, number ); ++ ++ if ( opt_debg ) ++ printf ( "DIP: tty: trying to create lock temp file %s\n", temp_path ); ++ if ( ( fd = open ( temp_path, O_CREAT|O_TRUNC|O_WRONLY, 0644 ) ) < 0) + { +- free ( saved_path ); +- saved_path = NULL; ++ (void) fprintf ( stderr, "DIP: tty: lock: (%s): %s\n", ++ temp_path, strerror ( errno ) ); ++ free(temp_path); ++ return -1; + } + ++ /* ++ * now enter our PID; ++ * Note: the 10 digits + newline are convention and cannot be changed ++ */ ++ (void) sprintf ( number, "%10u\n", getpid() ); ++ if ( opt_debg ) ++ printf ( "DIP: tty: writing \"%10u\" into lock temp file\n", getpid() ); ++ if ( write (fd, number, 11) != 11 ) ++ { ++ (void) fprintf ( stderr, "DIP: tty: lock write error: %s\n", ++ strerror ( errno ) ); ++ free(temp_path); ++ return -1; ++ } ++ (void) close ( fd ); ++ ++ free ( saved_path ); /* just in case [NB: free(NULL) is legal] */ + saved_path = (char*) malloc ( sizeof ( PATH_LOCKD ) + +- strlen ( path ) + 1 ); ++ strlen ( path ) + 3 ); + + (void) strcpy ( saved_path, PATH_LOCKD ); ++ (void) strcat ( saved_path, ".." ); + (void) strcat ( saved_path, path ); + +- +- if ( ( fd = creat ( saved_path, 0644 ) ) < 0) +- { +- if ( errno != EEXIST ) ++ if ( opt_debg ) ++ printf ( "DIP: tty: linking %s to %s\n", temp_path, saved_path ); ++ for ( i = 0; i < MAX_LOCK_ATTEMPTS; i++ ) + { +- (void) fprintf ( stderr, "DIP: tty: lock: (%s): %s\n", +- saved_path, strerror ( errno ) ); ++ /* now attempt to actually get the lock */ ++ if ( link ( temp_path, saved_path ) == 0 ) ++ break; ++ sleep(2 * (i + 1)); ++ } ++ saved_errno = errno; ++ (void) unlink ( temp_path ); ++ free(temp_path); ++ ++ if ( i >= MAX_LOCK_ATTEMPTS ) ++ { ++ /* did not get it */ ++ if ( saved_errno != EEXIST ) ++ (void) fprintf ( stderr, "DIP: tty: lock: (%s): %s\n", ++ saved_path, strerror ( saved_errno ) ); ++ else if ( opt_debg ) ++ printf ( "DIP: tty: lock attempt failed, EEXIST\n" ); ++ return -1; + } +- +- return -1; +- } +- +- (void) close ( fd ); +- + + /* + * Make sure UUCP owns the lockfile. Required by some packages. +@@ -215,7 +255,26 @@ + return 0; + } + ++/* ++ * Enter daemon's PID into the lock file; ++ * This is icky. ++ */ ++void tty_relock ( void ) ++{ ++ int fd; ++ char number[12]; + ++ if ( saved_path == NULL ) ++ return; ++ ++ (void) sprintf ( number, "%10u\n", (unsigned)getpid() ); ++ if ( opt_debg ) ++ printf ( "DIP: tty: rewriting lock file (PID = %u)\n", getpid() ); ++ if ( (fd = open ( saved_path, O_WRONLY, 0 )) == -1 ) ++ return; ++ (void) write ( fd, number, 11); ++ (void) close ( fd ); ++} + + /* + * Find a serial speed code in the table. +@@ -965,7 +1024,6 @@ + char *sp; + char path [ MAXPATHLEN ]; + +- + /* + * Try opening the TTY device. + */ +@@ -985,8 +1043,10 @@ + else + sp = name; + +- +- if ( ( fd = open ( path, O_RDWR | O_NONBLOCK ) ) < 0 ) ++ if ( tty_lock ( sp, 1 ) == -1 ) ++ return -1; ++ ++ if ( ( fd = open ( path, O_RDWR | O_NONBLOCK | O_EXCL ) ) < 0 ) + { + (void) fprintf ( stderr, "DIP: tty: open(%s, RW): %s\n", + path, strerror ( errno ) ); +@@ -1118,10 +1178,4 @@ + { + return 0 ; + } +- +- +- /* +- * OK, all done. Lock this terminal line. +- */ +- return tty_lock ( sp, 1 ); + } +--- daemon.c.orig Sat Jul 1 01:41:05 1995 ++++ daemon.c Sat Sep 9 08:20:00 1995 +@@ -168,6 +168,8 @@ + openlog ( "DIP", LOG_PID, LOG_DAEMON ); + } + ++ /* note the race condition here; ick! */ ++ tty_relock(); + + (void) signal ( SIGALRM, sig_catcher ); + (void) alarm ( mydip.timeout ); diff --git a/net/dip/patches/patch-c b/net/dip/patches/patch-c new file mode 100644 index 00000000000..347ed0f67b6 --- /dev/null +++ b/net/dip/patches/patch-c @@ -0,0 +1,41 @@ +--- dip.h.orig Fri Jun 30 19:41:05 1995 ++++ dip.h Tue Apr 14 18:56:26 1998 +@@ -50,10 +50,23 @@ + #include <pwd.h> + #include <signal.h> + #include <sys/socket.h> ++#include <sys/time.h> + #include <net/if.h> ++#include <netinet/in.h> ++#ifdef __FreeBSD__ ++#if __FreeBSD__ >= 2 ++#include <osreldate.h> ++#endif ++#if __FreeBSD_version >= 300000 ++#include <net/if_var.h> ++#include <sys/mbuf.h> ++#include <netinet/in_systm.h> ++#include <netinet/ip.h> ++#include <net/slcompress.h> ++#endif ++#endif /*__FreeBSD__*/ + #include <net/slip.h> + #include <net/if_slvar.h> +-#include <netinet/in.h> + #include <arpa/inet.h> + #include <netdb.h> + extern int h_errno; +@@ -121,7 +133,7 @@ + /* + * Pfad- und Dateinamen-Konstanten + */ +-#define PATH_LOCKD "/var/spool/uucp/LCK.." ++#define PATH_LOCKD "/var/spool/lock/LCK" + #define PATH_ETC_DIPHOSTS "/etc/diphosts" + #define PATH_BIN_IFCONFIG "/sbin/ifconfig" + #define PATH_BIN_ROUTE "/sbin/route" +@@ -231,3 +243,4 @@ + int tty_flush ( void ); + int tty_close ( void ); + int tty_open ( char * ); ++void tty_relock ( void ); diff --git a/net/dip/pkg/COMMENT b/net/dip/pkg/COMMENT new file mode 100644 index 00000000000..592c4a1f0a1 --- /dev/null +++ b/net/dip/pkg/COMMENT @@ -0,0 +1 @@ +Dialup IP program diff --git a/net/dip/pkg/DESCR b/net/dip/pkg/DESCR new file mode 100644 index 00000000000..cf651cb041e --- /dev/null +++ b/net/dip/pkg/DESCR @@ -0,0 +1,22 @@ +What is DIP? + + +DIP is mainly a tool to establish a SLIP connection. It handles all +the necessary actions to set up the tty port and the modem, dial out +and finally build up a SLIP connection between the tty port and the +kernel. To do so, dip offers an own very simple command language (a +mostly complete description can be found in the man page). + +Dip can handle both incoming and outgoing connections using password +security for incoming connections. + +For more details, have a look at the man page! + +Author's comment: + +But what I want YOU to do is: Send me a postcard from your city/town. +My address: + Joachim Bartz + Burgstaetter Strasse 17 + 38678 Clausthal-Zellerfeld + Germany diff --git a/net/dip/pkg/PLIST b/net/dip/pkg/PLIST new file mode 100644 index 00000000000..e5850829730 --- /dev/null +++ b/net/dip/pkg/PLIST @@ -0,0 +1,5 @@ +sbin/dip +sbin/diplogin +man/man8/dip.8.gz +man/man8/diplogin.8.gz +lib/dip |