--- ./skey/Makefile.orig Mon Jul 24 19:22:49 1995 +++ ./skey/Makefile Thu Aug 19 12:39:48 1999 @@ -12,7 +12,7 @@ CC = gcc CFLAGS = -pipe -O2 #-DUSE_ECHO #SYSLIBS = -lshadow -ldbm -SYSLIBS = -ldbm # For ELF - no shadow needed (included in libc). +SYSLIBS = # For ELF - no shadow needed (included in libc). LIB = libskey.a PROGS = key keyinit keysh --- ./skey/md4.c.orig Wed Jun 22 18:53:50 1994 +++ ./skey/md4.c Thu Aug 19 12:39:48 1999 @@ -5,6 +5,7 @@ * * Portability nits fixed and reformatted - 2/12/91 Phil Karn */ +#include /* * To use MD4: @@ -38,7 +39,7 @@ #define FALSE 0 #if (defined(__MSDOS__) || defined(MPU8086) || defined(MPU8080) \ - || defined(vax) || defined (MIPSEL)) + || defined(vax) || defined (MIPSEL) || defined(__alpha__)) #define LOWBYTEFIRST TRUE /* Low order bytes are first in memory */ #else /* Almost all other machines are big-endian */ #define LOWBYTEFIRST FALSE @@ -87,7 +88,7 @@ #define gg(A,B,C,D,i,s) A = rot((A + g(B,C,D) + X[i] + C2),s) #define hh(A,B,C,D,i,s) A = rot((A + h(B,C,D) + X[i] + C3),s) -void MDreverse __ARGS((unsigned long *X)); +void MDreverse __ARGS((__u32 *X)); /* MDprint(MDp) * Print message digest buffer MDp as 32 hexadecimal digits. @@ -134,9 +135,9 @@ *X++ = ((t & 0xFF00FF00) >> 8) | ((t & 0x00FF00FF) << 8); } void MDreverse(X) -unsigned long *X; +__u32 *X; { - register unsigned long t; + register __u32 t; revx; revx; @@ -165,9 +166,9 @@ static void MDblock(MDp,X) MDptr MDp; -unsigned long *X; +__u32 *X; { - register unsigned long tmp, A, B, C, D; + register __u32 tmp, A, B, C, D; #if LOWBYTEFIRST == FALSE MDreverse(X); @@ -251,7 +252,7 @@ unsigned int count; { int i,bit,byte,mask; - unsigned long tmp; + __u32 tmp; unsigned char XX[64]; unsigned char *p; @@ -276,7 +277,7 @@ /* Process data */ if(count == 512){ /* Full block of data to handle */ - MDblock(MDp,(unsigned long *)X); + MDblock(MDp,(__u32 *)X); } else if(count > 512){ /* Check for count too large */ printf("\nError: MDupdate called with illegal count value %ld.",count); @@ -299,15 +300,15 @@ if(byte <= 55){ for(i=0;i<8;i++) XX[56+i] = MDp->count[i]; - MDblock(MDp,(unsigned long *)XX); + MDblock(MDp,(__u32 *)XX); } else { /* need to do two blocks to finish up */ - MDblock(MDp,(unsigned long *)XX); + MDblock(MDp,(__u32 *)XX); for(i=0;i<56;i++) XX[i] = 0; for(i=0;i<8;i++) XX[56+i] = MDp->count[i]; - MDblock(MDp,(unsigned long *)XX); + MDblock(MDp,(__u32 *)XX); } /* Set flag saying we're done with MD computation */ MDp->done = 1; --- ./skey/put.c.orig Wed Jun 22 18:53:50 1994 +++ ./skey/put.c Thu Aug 19 12:39:48 1999 @@ -13,9 +13,10 @@ #include #include #include +#include #include "skey.h" -static unsigned long extract __ARGS ((char *s, int start, int length)); +static __u32 extract __ARGS ((char *s, int start, int length)); static void standard __ARGS ((char *word)); static void insert __ARGS ((char *s, int x, int start, int length)); static int wsrch __ARGS ((char *w, int low, int high)); @@ -2244,7 +2245,7 @@ unsigned char cl; unsigned char cc; unsigned char cr; - unsigned long y; + __u32 y; int shift; assert (length <= 11); @@ -2295,7 +2296,7 @@ } /* Extract 'length' bits from the char array 's' starting with bit 'start' */ -static unsigned long +static __u32 extract (s, start, length) char *s; int start, length; @@ -2303,7 +2304,7 @@ unsigned char cl; unsigned char cc; unsigned char cr; - unsigned long x; + __u32 x; assert (length <= 11); assert (start >= 0); --- ./skey/skeyinit.c.orig Wed Jun 22 18:53:50 1994 +++ ./skey/skeyinit.c Thu Aug 19 12:39:48 1999 @@ -13,8 +13,7 @@ #include #include #ifdef linux -#undef SHADOW -#include +# include #endif #include #include @@ -100,18 +99,13 @@ } } -#ifdef SHADOW - if ((sp = getspnam (pp->pw_name)) == NULL) { - fprintf(stderr, "Who are you?\n"); - exit(1); - } -#endif /* SHADOW */ - -#ifdef SHADOW - salt = sp->sp_pwdp; -#else salt = pp->pw_passwd; +#ifdef linux + if ((sp = getspnam (pp->pw_name))) { + salt = sp->sp_pwdp; + } #endif + #ifdef PRIO_PROCESS setpriority (PRIO_PROCESS, 0, -4); #endif @@ -127,11 +121,7 @@ setpriority(PRIO_PROCESS, 0, 0); #endif -#ifdef SHADOW - if (pp && strcmp(p, sp->sp_pwdp)) { -#else - if (pp && strcmp(p, pp->pw_passwd)) { -#endif + if (pp && strcmp(p, salt)) { printf ("Password incorrect.\n"); exit (-1); } @@ -141,7 +131,7 @@ switch (rval) { case -1: - perror ("Error opening database: "); + perror ("Error opening database"); exit (1); case 0: printf ("[Updating %s]\n", pp->pw_name); --- ./skey/skeylogin.c.orig Wed Jun 22 18:53:50 1994 +++ ./skey/skeylogin.c Thu Aug 19 12:39:48 1999 @@ -352,7 +352,7 @@ char *username; { int i; - char str [50]; + static char str [50]; struct skey skey; --- ./skey/skeysubr.c.orig Wed Jun 22 18:53:51 1994 +++ ./skey/skeysubr.c Thu Aug 19 12:39:48 1999 @@ -11,6 +11,7 @@ * S/KEY misc routines. */ +#include #include #ifdef HAS_STD_LIB @@ -41,6 +42,7 @@ # define gtty(fd,buf) ioctl((fd),TIOCGETP,(buf)) #else # include +# include # define TTYSTRUCT termio # define stty(fd,buf) ioctl((fd),TCSETA,(buf)) # define gtty(fd,buf) ioctl((fd),TCGETA,(buf)) @@ -86,7 +88,7 @@ unsigned int buflen; #ifndef LITTLE_ENDIAN int i; - register long tmp; + register __u32 tmp; #endif buflen = strlen(seed) + strlen(passwd); @@ -134,7 +136,7 @@ { MDstruct md; #ifndef LITTLE_ENDIAN - register long tmp; + __u32 tmp; #endif MDbegin(&md); --- ./Makefile.orig Tue Dec 24 10:01:46 1996 +++ ./Makefile Thu Aug 19 12:39:48 1999 @@ -32,9 +32,6 @@ # would like (:-). I don't use it myself, won't test # it and won't care. # -# If you have all your locks in /var/lock, as FSSTND recommends (and -# that's exactly what I don't follow :-) - you'd need to define -# -DFSSTND and add this define to CFLAGS or such. # Enable either one only, or none of the following. # If you use SecureID card, enable this: @@ -44,17 +41,17 @@ #SNK=-DSNK #SNKLIB= -SKEYDEF = -DSKEY +#SKEYDEF = -DSKEY #SKEYLIB = -L. -L./skey -L/usr/local/lib -lskey -SKEYLIB = -lskey +#SKEYLIB = -lskey CC = gcc # If you wish, add -g flag to the next line -CFLAGS = -DLINUX $(SKEYDEF) $(SECUREID) -pipe -O6 -Wall -m486 +CFLAGS = -DLINUX $(SKEYDEF) $(SECUREID) -pipe -O6 -Wall -LDFLAGS = -Wl,-qmagic +LDFLAGS = #LDFLAGS= -Wl,-verbose -Wl,-qmagic #LDFLAGS = -v -s @@ -87,11 +84,9 @@ -@echo "DIP is built successfully." install: all - -@cp /usr/sbin/dip ./dip- - install -c -o root -g uucp -m 04755 -s dip /usr/sbin + install -s -m 4554 -o root -g dialout dip /usr/sbin/ ln -sf /usr/sbin/dip /usr/sbin/diplogin - install -c -m 0444 dip.8 /usr/man/man8 - -@echo "DIP is installed. Now please install/configure /etc/diphosts." + install -c -m 0644 dip.8 /usr/man/man8 dip: protocols.a $(OBJS) $(LD) $(LDFLAGS) -o dip $(SYSBOBJS) $(OBJS) protocols.a \ @@ -101,7 +96,7 @@ ar rcs protocols.a $(PROTOS) clean: - rm -f core *.o *.a + rm -f core *.o *.a dip clobber: clean rm -f dip @@ -144,16 +139,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h /usr/include/net/if.h \ + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h /usr/include/net/if.h \ /usr/include/linux/route.h command.o: command.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ @@ -186,19 +181,18 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h /usr/include/linux/ip.h \ - /usr/include/linux/udp.h /usr/include/sys/wait.h \ - /usr/include/waitflags.h /usr/include/linux/wait.h \ - /usr/include/waitstatus.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h /usr/include/linux/udp.h \ + /usr/include/sys/wait.h /usr/include/waitflags.h \ + /usr/include/linux/wait.h /usr/include/waitstatus.h config.o: config.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -230,16 +224,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h daemon.o: daemon.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -271,16 +265,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h login.o: login.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -312,16 +306,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h main.o: main.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -353,16 +347,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h modem.o: modem.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -394,16 +388,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h ppp.o: ppp.c dip.h /usr/include/sys/types.h /usr/include/linux/types.h \ /usr/include/linux/posix_types.h /usr/include/asm/posix_types.h \ /usr/include/asm/types.h /usr/include/sys/bitypes.h \ @@ -434,16 +428,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h slip.o: slip.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -475,16 +469,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h snk.o: snk.c term.o: term.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ @@ -517,16 +511,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h termp.o: termp.c dip.h /usr/include/sys/types.h \ /usr/include/linux/types.h /usr/include/linux/posix_types.h \ /usr/include/asm/posix_types.h /usr/include/asm/types.h \ @@ -558,16 +552,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h tty.o: tty.c dip.h /usr/include/sys/types.h /usr/include/linux/types.h \ /usr/include/linux/posix_types.h /usr/include/asm/posix_types.h \ /usr/include/asm/types.h /usr/include/sys/bitypes.h \ @@ -598,16 +592,16 @@ /usr/include/linux/sockios.h /usr/include/linux/uio.h \ /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ /usr/include/sys/socketio.h /usr/include/sys/time.h \ - /usr/include/linux/time.h /usr/include/time.h \ - /usr/include/arpa/inet.h /usr/include/sys/param.h \ - /usr/include/linux/param.h /usr/include/asm/param.h \ - /usr/include/netinet/in.h /usr/include/linux/in.h \ - /usr/include/asm/byteorder.h /usr/include/arpa/nameser.h \ - /usr/include/netdb.h /usr/include/paths.h /usr/include/resolv.h \ + /usr/include/linux/time.h /usr/include/time.h /usr/include/linux/ip.h \ + /usr/include/asm/byteorder.h /usr/include/arpa/inet.h \ + /usr/include/sys/param.h /usr/include/linux/param.h \ + /usr/include/asm/param.h /usr/include/netinet/in.h \ + /usr/include/linux/in.h /usr/include/arpa/nameser.h \ /usr/include/net/if_arp.h /usr/include/linux/netdevice.h \ /usr/include/linux/config.h /usr/include/linux/autoconf.h \ /usr/include/linux/if.h /usr/include/linux/if_ether.h \ - /usr/include/linux/if_arp.h pathnames.h /usr/include/linux/fs.h \ + /usr/include/linux/if_arp.h /usr/include/netdb.h /usr/include/paths.h \ + /usr/include/resolv.h pathnames.h /usr/include/linux/fs.h \ /usr/include/linux/linkage.h /usr/include/linux/wait.h \ /usr/include/linux/vfs.h /usr/include/asm/statfs.h \ /usr/include/linux/net.h /usr/include/linux/kdev_t.h \ --- ./attach.c.orig Tue Dec 24 12:17:34 1996 +++ ./attach.c Thu Aug 19 12:39:48 1999 @@ -138,7 +138,11 @@ #include #include #include +#if defined __GLIBC__ && __GLIBC__ >= 2 +#include +#else #include +#endif #include #include --- ./command.c.orig Tue Dec 24 12:25:10 1996 +++ ./command.c Thu Aug 19 12:39:48 1999 @@ -29,9 +29,16 @@ * your option) any later version. */ #include "dip.h" +#if defined __GLIBC__ && __GLIBC__ >= 2 +#include +#include +#include +#include +#else #include #include #include +#endif #include #define HASHSIZE 128 @@ -105,6 +112,9 @@ if (c == '\0') return(c); switch(c) { + case '0': + return(0x00); + case 'a': return('\a'); @@ -702,7 +712,7 @@ nargv = malloc (argc*sizeof(char*)); /* allocate the array of pointers */ if (nargv == NULL) /* Ooops? */ { - fprintf (stderr, "error: Couldn't allocate %d bytes for" /* Ooops! */ + fprintf (stderr, "error: Couldn't allocate %ld bytes for" /* Ooops! */ " onexit commands array: `%s'\n", argc*sizeof(char*), strerror (errno) ); return -1; @@ -716,7 +726,7 @@ nargv[cnt] = malloc (strlen(argv[cnt]) + 1); /* allocate */ if (nargv[cnt] == NULL) /* Oops? */ { - fprintf (stderr, "error: Couldn't allocate %d bytes for argument %d" + fprintf (stderr, "error: Couldn't allocate %ld bytes for argument %d" " of the onexit command: `%s'\n", strlen (argv[cnt]), cnt, strerror (errno) ); arg_clean (argc, nargv); /* clean */ @@ -2203,8 +2213,8 @@ return(0); } -#define int32 unsigned long -#define int16 unsigned short +#define int32 __u32 +#define int16 __u16 struct bootp { char op; /* packet opcode type */ @@ -2254,6 +2264,135 @@ } } +#ifdef __alpha__ + +/* + * The following routines come from linux/arch/alpha/lib/checksum.c and + * linux/net/ipv4/udp.c. See, I'm in a hurry to get this working... :) + */ + +static inline unsigned short +from64to16(unsigned long x) +{ + /* add up 32-bit words for 33 bits */ + x = (x & 0xffffffff) + (x >> 32); + /* add up 16-bit and 17-bit words for 17+c bits */ + x = (x & 0xffff) + (x >> 16); + /* add up 16-bit and 2-bit for 16+c bit */ + x = (x & 0xffff) + (x >> 16); + /* add up carry.. */ + x = (x & 0xffff) + (x >> 16); + return x; +} + +/* + * Do a 64-bit checksum on an arbitrary memory area.. + * + * This isn't a great routine, but it's not _horrible_ either. The + * inner loop could be unrolled a bit further, and there are better + * ways to do the carry, but this is reasonable. + */ +static inline unsigned long +do_csum(unsigned char * buff, int len) +{ + int odd, count; + unsigned long result = 0; + + if (len <= 0) + goto out; + odd = 1 & (unsigned long) buff; + if (odd) { + result = *buff << 8; + len--; + buff++; + } + count = len >> 1; /* nr of 16-bit words.. */ + if (count) { + if (2 & (unsigned long) buff) { + result += *(unsigned short *) buff; + count--; + len -= 2; + buff += 2; + } + count >>= 1; /* nr of 32-bit words.. */ + if (count) { + if (4 & (unsigned long) buff) { + result += *(unsigned int *) buff; + count--; + len -= 4; + buff += 4; + } + count >>= 1; /* nr of 64-bit words.. */ + if (count) { + unsigned long carry = 0; + do { + unsigned long w = *(unsigned long *) buff; + count--; + buff += 8; + result += carry; + result += w; + carry = (w > result); + } while (count); + result += carry; + result = (result & 0xffffffff) + (result >> 32); + } + if (len & 4) { + result += *(unsigned int *) buff; + buff += 4; + } + } + if (len & 2) { + result += *(unsigned short *) buff; + buff += 2; + } + } + if (len & 1) + result += *buff; + result = from64to16(result); + if (odd) + result = ((result >> 8) & 0xff) | ((result & 0xff) << 8); +out: + return result; +} + + +/* + * This is a version of ip_compute_csum() optimized for IP headers, + * which always checksum on 4 octet boundaries. + */ +unsigned short ip_fast_csum(unsigned char * iph, unsigned int ihl) +{ + return ~do_csum(iph,ihl*4); +} + +/* + * computes the checksum of the TCP/UDP pseudo-header + * returns a 16-bit checksum, already complemented. + */ +unsigned short int csum_tcpudp_magic(unsigned long saddr, + unsigned long daddr, + unsigned short len, + unsigned short proto, + unsigned int sum) +{ + return ~from64to16(saddr + daddr + sum + + ((unsigned long) ntohs(len) << 16) + + ((unsigned long) proto << 8)); +} + + +static unsigned short +udp_check(struct udphdr *uh, int len, + unsigned long saddr, unsigned long daddr) +{ + return(csum_tcpudp_magic(saddr, daddr, len, IPPROTO_UDP, 0)); +} + + + +#else /* !__alpha__ */ + + /* This is a version of ip_compute_csum() optimized for IP headers, which always checksum on 4 octet boundaries. */ static inline unsigned short @@ -2337,6 +2476,8 @@ /* We only want the bottom 16 bits, but we never cleared the top 16. */ return((~sum) & 0xffff); } + +#endif /* !__alpha__ */ static void put_bootreq(void) { --- ./dip.8.orig Tue Dec 24 12:27:31 1996 +++ ./dip.8 Thu Aug 19 12:39:48 1999 @@ -268,7 +268,9 @@ to. If this command isn't present in the command file, the default route won't be set/changed. .IP "\fBdial\fP \fIphonenumber\fP [\fItimeout\fP]" -Dials the indicated number. The default \fItimeout\fP is 60 sec. +Sends the string in the \fBinit\fP variable as initialization +string the the modem and then dials the indicated number. +The default \fItimeout\fP is 60 sec. \fBdip\fP parses the string returned by the modem, and sets \fB$errlvl\fP accordingly. The standard codes are as follows: .nf @@ -322,7 +324,8 @@ Increment a variable. The default \fIincrement-value\fP is 1. .IP "\fBinit\fP \fIinit-string\fP" Set the initialization string (sent to the modem before -dialing) to the indicated string (default ATE0 Q0 V1 X1). +dialing with the \fBdial\fP command) to the indicated string +(default is ATE0 Q0 V1 X4). \fIPlease\fP use it! .IP "\fBmode SLIP\fP|\fBCSLIP\fP|\fBSLIP6\fP|\fBCSLIP6\fP|\fBPPP\fP|\fBTERM\fP" Set the line protocol (default SLIP). @@ -487,9 +490,7 @@ # You can change these with the chatkey command # Prepare for dialing. - send ATQ0V1E1X4\\r - wait OK 2 - if $errlvl != 0 goto modem_trouble + get $init ATQ0V1E1X4 dial 555-1234567 if $errlvl != 1 goto modem_trouble --- ./dip.h.orig Fri May 31 13:07:23 1996 +++ ./dip.h Thu Aug 19 12:39:48 1999 @@ -40,9 +40,11 @@ #include #include #include +#include +#include #include #include -#include +#include #include #include #include --- ./main.c.orig Tue Dec 24 10:31:55 1996 +++ ./main.c Thu Aug 19 12:39:48 1999 @@ -186,7 +186,7 @@ if ((nam == (char *)0) || (nam[0] == '\0')) { /* tty name was not given */ if (opt_v == 1) - fprintf(stderr, "No tty name given, will use /etc/dip.pid...\n"); + fprintf(stderr, "No tty name given, will use /var/run/dip.pid...\n"); kill_dip(); return; } @@ -430,7 +430,6 @@ strncpy(path, argv[optind], sizeof(path) - sizeof(DIP_SFX)); if ((sp = strrchr(path, '/')) != (char *)NULL) sp++; else sp = path; - if (strchr(sp, '.') == (char *)NULL) strcat(path, DIP_SFX); /* set euid to ruid */ if (setreuid(geteuid(), getuid()) != 0){ @@ -440,8 +439,11 @@ } /* open file with real uid */ if ((fp = fopen(path, "r")) == (FILE *)NULL) { - fprintf(stderr, "dip: %s: %s\n", path, strerror(errno)); - exit(-1); + if (strchr(sp, '.') == (char *)NULL) strcat(path, DIP_SFX); + if ((fp = fopen(path, "r")) == (FILE *)NULL) { + fprintf(stderr, "dip: %s: %s\n", path, strerror(errno)); + exit(-1); + } } /* set uids back */ if (setreuid(geteuid(), getuid()) != 0){ --- ./pathnames.h.orig Thu May 30 21:35:24 1996 +++ ./pathnames.h Thu Aug 19 12:39:48 1999 @@ -17,13 +17,9 @@ /* Pathnames of some customizable files. */ #define _PATH_ETC_DIPHOSTS "/etc/diphosts" -#define _PATH_DIP_PID "/etc/dip.pid" +#define _PATH_DIP_PID "/var/run/dip.pid" -#ifdef FSSTND #define _PATH_LOCKD "/var/lock" /* lock files */ -#else -#define _PATH_LOCKD "/usr/spool/uucp" /* lock files */ -#endif /* SNK Users Database - be careful not to expose it! */ #ifdef SNK --- ./tty.c.orig Mon Jun 10 23:01:18 1996 +++ ./tty.c Thu Aug 19 12:39:48 1999 @@ -28,8 +28,10 @@ */ #include "dip.h" #include -#ifdef LINUX +#ifdef __linux__ +#if !(defined __GLIBC__ && __GLIBC__ >= 2) # include +#endif # include #ifndef NO_SERIAL # include /* for Linux-1.1.13 */ @@ -596,7 +598,7 @@ int tty_speed(char *speed) { -#if defined(LINUX) || defined(linux) +#if defined(__linux__) struct serial_struct info; int spd;