home *** CD-ROM | disk | FTP | other *** search
- From: purdon@athena.mit.edu (James R. Purdon III)
- Newsgroups: alt.sources
- Subject: slugnet - Multiple user conferencing system: Part 6 of 6
- Message-ID: <1990Dec20.165044.25733@athena.mit.edu>
- Date: 20 Dec 90 16:50:44 GMT
-
- The slugnet program is a multiple-user, interactive conferencing
- facility. It currently runs under a variety of System V-based and
- BSD-based operating systems (although certain functions may not be
- possible under some of these operating systems).
-
- Cut here----------------------------------------------------------
-
- #!/bin/sh
- # to extract, remove the header and type "sh filename"
- if `test ! -s ./Makefile`
- then
- echo "writing ./Makefile"
- cat > ./Makefile << '\End\Of\Shar\'
- #
- # Makefile for slugnet package
- #
- # Where the unformatted man pages are
- #
- MAN = /usr/man/man1
- # Where the slugnet binary lives
- #
- SLUGBIN = /usr/local/bin
- #
- # Where the slugnet directory lives ( change slugnet.h to match )
- #
- SLUGDIR = /usr/users/slugnet
- #
- # who owns slugnet
- #
- SLUGUID = slugnet
- #
- # Select OS type
- #
- # BSD
- #
- # OS = -DBSD4
- #
- # SUNOS
- #
- # OS = -DBSD4 -OSUNOS
- #
- # System V R2.x (slugnetd probably won't work)
- #
- # OS = -DSYSV2
- #
- # System V R3 (with BSD network extensions )
- #
- # OS = -DSYSV3
- #
- # System V R3 (with interlan network extensions )
- #
- # OS = -DSYSV3 -DINTERLAN
- # LDFLAGS = -ltcp
- # UNICOS
- #
- # OS = -DSYSV3 -DUNICOS
- # LDFLAGS = -lnet
- #
- # Ultrix
- #
- OS = -DULTRIX
- #
- instructions:
- @echo "make slugnet Builds local program"
- @echo "make slugnetd Builds network server"
- @echo "make install Installs slugnet"
- @echo "make clean Removes objects"
- #
- # local program
- #
- slugnet: clean
- @echo "Making slugnet..."
- @SLUGBIN=$(SLUGBIN) ;SLUGDIR=$(SLUGDIR) ;SLUGUID=$(SLUGUID) ;\
- OS="$(OS)" ;SLUGNET=slugnet ;NETFLG="-DLOCAL" ;\
- LDFLAGS=$(LDFLAGS) ;\
- export LDFLAGS NETFLG OS SLUGBIN SLUGDIR SLUGUID SLUGNET ;\
- make -e -f slugnet.mk slugnet
-
- #
- # network server
- #
- slugnetd: clean
- @echo "Making slugnetd..."
- @SLUGBIN=$(SLUGBIN) ;SLUGDIR=$(SLUGDIR) ;SLUGUID=$(SLUGUID) ;\
- OS="$(OS)" ;SLUGNET=slugnetd ;NETFLG="-DNETWORK" ;\
- LDFLAGS=$(LDFLAGS) ;\
- export LDFLAGS NETFLG OS SLUGBIN SLUGDIR SLUGUID SLUGNET ;\
- make -e -f slugnet.mk slugnetd
-
- clean:
- @SLUGBIN=$(SLUGBIN) ;SLUGDIR=$(SLUGDIR) ;SLUGUID=$(SLUGUID) ;\
- OS="$(OS)" ;SLUGNET=slugnet ;NETFLG="-DLOCAL" ;\
- LDFLAGS=$(LDFLAGS) ;\
- export LDFLAGS NETFLG OS SLUGBIN SLUGDIR SLUGUID SLUGNET ;\
- make -e -f slugnet.mk clean
-
- install: local network
-
- local:
- @SLUGBIN=$(SLUGBIN) ;SLUGDIR=$(SLUGDIR) ;SLUGUID=$(SLUGUID) ;\
- OS="$(OS)" ;SLUGNET=slugnet ;NETFLG="-DLOCAL" ;\
- LDFLAGS=$(LDFLAGS) ;MAN=$(MAN) ;\
- export LDFLAGS MAN NETFLG OS SLUGBIN SLUGDIR SLUGUID SLUGNET ;\
- make -e -f slugnet.mk install
-
- network:
- @SLUGBIN=$(SLUGBIN) ;SLUGDIR=$(SLUGDIR) ;SLUGUID=$(SLUGUID) ;\
- OS="$(OS)" ;SLUGNET=slugnetd ;NETFLG="-DNETWORK" ;\
- LDFLAGS=$(LDFLAGS) ;MAN=$(MAN) ;\
- export LDFLAGS MAN NETFLG OS SLUGBIN SLUGDIR SLUGUID SLUGNET ;\
- make -e -f slugnet.mk install
-
- tar:
- @SLUGBIN=$(SLUGBIN) ;SLUGDIR=$(SLUGDIR) ;SLUGUID=$(SLUGUID) ;\
- OS="$(OS)" ;SLUGNET=slugnetd ;NETFLG="-DNETWORK" ;\
- LDFLAGS=$(LDFLAGS) ;\
- export LDFLAGS NETFLG OS SLUGBIN SLUGDIR SLUGUID SLUGNET ;\
- make -e -f slugnet.mk slugtar
- \End\Of\Shar\
- else
- echo "will not over write ./Makefile"
- fi
- chmod 400 ./Makefile
- if [ `wc -c ./Makefile | awk '{printf $1}'` -ne 2464 ]
- then
- echo `wc -c ./Makefile | awk '{print "Got " $1 ", Expected " 2464}'`
- fi
- if `test ! -s ./Readme`
- then
- echo "writing ./Readme"
- cat > ./Readme << '\End\Of\Shar\'
- @(#)Readme 1.2 Contents of the file slugtar and quick start.
-
- File Notes
- ------------------------------------------------------------------------------
- Makefile Makefile for slugnet, slugnetd, and installation.
- Readme This file.
- call_socket.c Source.
- callbyaddr.c "
- callbyhost.c "
- chgusr.c "
- cleanup.c "
- clnusr.c "
- copyright.h "
- establish.c "
- find.c "
- get_connect.c "
- getcfg.c "
- getjsn.c "
- interlan "
- lock.c "
- lower.c "
- main.c "
- net.h "
- rdline.c "
- receive.c "
- repchar.c "
- send_file.c "
- setjsn.c "
- sighang.c "
- sigquit.c "
- sigstop.c "
- sigterm.c "
- sigtstp.c "
- sigurg.c "
- slughlp.dat On line help file.
- slugnet.1 man page for slugnet.
- slugnet.c Source.
- slugnetd.1 man page for slugnetd.
- slugnet.doc Slugnet documentation.
- slugnet.h Source.
- slugnet.mk Prototype makefile, invoked by Makefile.
- slugnet.n Original FTN5 source for CDC 180/865 running NOS.
- strnicmp.c "
- task.c "
- transmit.c "
- unlock.c "
- verify.c "
-
- Quick start.
-
- 1. In Makefile, be sure that MAN, SLUGBIN, SLUGDIR, SLUGUID, and OS are
- set correctly.
- 2. make slugnet
- 3. make slugnetd
- 4. make install
- 5. make clean
- 6. nohup slugnetd >& /dev/null
- \End\Of\Shar\
- else
- echo "will not over write ./Readme"
- fi
- chmod 400 ./Readme
- if [ `wc -c ./Readme | awk '{printf $1}'` -ne 1156 ]
- then
- echo `wc -c ./Readme | awk '{print "Got " $1 ", Expected " 1156}'`
- fi
- if `test ! -s ./call_socket.c`
- then
- echo "writing ./call_socket.c"
- cat > ./call_socket.c << '\End\Of\Shar\'
- /* @(#)call_socket.c 1.2 */
- #ifdef NETWORK
- #include "net.h"
-
- /* calls a socket */
-
- int call_socket(hostname, portnum)
- char *hostname;
- int portnum;
- {
- struct sockaddr_in sa;
- struct hostent *hp;
- int a, s;
-
- if ((hp= gethostbyname(hostname)) == NULL) { /* do we know the host's */
- errno= ECONNREFUSED; /* address? */
- return(0); /* no */
- }
-
- bzero(&sa,sizeof(sa));
- bcopy(hp->h_addr,(char *)&sa.sin_addr,hp->h_length); /* set address */
- sa.sin_family= hp->h_addrtype;
- sa.sin_port= htons((u_short)portnum);
-
- if ((s= socket(hp->h_addrtype,SOCK_STREAM,0)) < 0) /* get socket */
- return(0);
- if (connect(s,&sa,sizeof sa) < 0) /* connect */
- return(0);
- return(s);
- }
- #endif NETWORK
-
- \End\Of\Shar\
- else
- echo "will not over write ./call_socket.c"
- fi
- chmod 400 ./call_socket.c
- if [ `wc -c ./call_socket.c | awk '{printf $1}'` -ne 765 ]
- then
- echo `wc -c ./call_socket.c | awk '{print "Got " $1 ", Expected " 765}'`
- fi
- if `test ! -s ./callbyaddr.c`
- then
- echo "writing ./callbyaddr.c"
- cat > ./callbyaddr.c << '\End\Of\Shar\'
- /* @(#)callbyaddr.c 1.1 */
- #ifdef NETWORK
- #include "net.h"
-
- /* calls a socket using the ip address */
-
- int callbyaddr(addr, portnum)
- char *addr;
- int portnum;
- {
- struct sockaddr_in sa;
- struct hostent *hp;
- int a, s;
- long adr;
-
- adr = inet_addr( addr );
- if ((hp= gethostbyaddr(&adr,strlen(addr),AF_INET)) == NULL) { /* do we know the host's */
- errno= ECONNREFUSED; /* address? */
- return(0); /* no */
- }
-
- bzero(&sa,sizeof(sa));
- bcopy(hp->h_addr,(char *)&sa.sin_addr,hp->h_length); /* set address */
- sa.sin_family= hp->h_addrtype;
- sa.sin_port= htons((u_short)portnum);
-
- if ((s= socket(hp->h_addrtype,SOCK_STREAM,0)) < 0) /* get socket */
- return(0);
- if (connect(s,&sa,sizeof sa) < 0) /* connect */
- return(0);
- return(s);
- }
- #endif NETWORK
- \End\Of\Shar\
- else
- echo "will not over write ./callbyaddr.c"
- fi
- chmod 400 ./callbyaddr.c
- if [ `wc -c ./callbyaddr.c | awk '{printf $1}'` -ne 829 ]
- then
- echo `wc -c ./callbyaddr.c | awk '{print "Got " $1 ", Expected " 829}'`
- fi
- if `test ! -s ./callbyhost.c`
- then
- echo "writing ./callbyhost.c"
- cat > ./callbyhost.c << '\End\Of\Shar\'
- /* @(#)callbyhost.c 1.1 */
- #ifdef NETWORK
- #include "net.h"
-
- /* calls a socket using the host name */
-
- int callbyhost(hostname, portnum)
- char *hostname;
- int portnum;
- {
- struct sockaddr_in sa;
- struct hostent *hp;
- int a, s;
-
- if ((hp= gethostbyname(hostname)) == NULL) { /* do we know the host's */
- errno= ECONNREFUSED; /* address? */
- return(0); /* no */
- }
-
- bzero(&sa,sizeof(sa));
- bcopy(hp->h_addr,(char *)&sa.sin_addr,hp->h_length); /* set address */
- sa.sin_family= hp->h_addrtype;
- sa.sin_port= htons((u_short)portnum);
-
- if ((s= socket(hp->h_addrtype,SOCK_STREAM,0)) < 0) /* get socket */
- return(0);
- if (connect(s,&sa,sizeof sa) < 0) /* connect */
- return(0);
- return(s);
- }
- #endif NETWORK
- \End\Of\Shar\
- else
- echo "will not over write ./callbyhost.c"
- fi
- chmod 400 ./callbyhost.c
- if [ `wc -c ./callbyhost.c | awk '{printf $1}'` -ne 782 ]
- then
- echo `wc -c ./callbyhost.c | awk '{print "Got " $1 ", Expected " 782}'`
- fi
- echo "Finished archive 6 of 6"
- exit
-