home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-13 | 61.1 KB | 2,076 lines |
- Newsgroups: comp.sources.misc
- From: brendan@cs.widener.edu (Brendan Kehoe)
- Subject: v27i079: archie - A client to query the Archie FTP databases, v1.3.1, Part01/06
- Message-ID: <csm-v27i079=archie.094136@sparky.IMD.Sterling.COM>
- X-Md4-Signature: abc42fd86121dbba4e24001589b06925
- Date: Mon, 13 Jan 1992 15:42:18 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: brendan@cs.widener.edu (Brendan Kehoe)
- Posting-number: Volume 27, Issue 79
- Archive-name: archie/part01
- Environment: UNIX, VMS
- Supersedes: archie: Volume 26, Issue 46-50
-
- [Last changed 01/09/92 v1.3]
-
- Enclosed you'll find a Prospero client for the archie service. It'll
- let you query the archie databases without actually using an interactive
- process on the remote server's machine (e.g. archie.ans.net), resulting
- in a MUCH better response time. It also helps lessen the load on the
- archie server itself.
-
- What's Archie? It's a system that will let you check a database containing
- thousands of entries for the files that're available at FTP sites around
- the world.
-
- This is a third child of Clifford Neuman's Prospero project. It's really
- the Archie client that's included in the prospero stuff, but I've taken out
- everything that's unnecessary for this client to work. (Aka, you don't
- have to build all of Prospero to get the Archie client.) Khun Yee Fung
- wrote an archie client in Perl, and George Ferguson has written a client
- for use with XWindows, based in part upon this code.
-
- Using the Archie Prospero interface in its true form will probably be of
- interest---check out the file `Prospero' for an example of its interface.
- If you find it intriguing, you should probably get the full prospero kit
- from the University of Washington on cs.washington.edu in pub/prospero.tar.Z.
-
- Suffice to say, there are now a number of ways to query Archie without
- bogging a server down with your logins.
-
- Check out the man page (or archie.doc, if you're using VMS or DOS)
- for instructions on how to use this archie client.
-
- Please check to make sure you don't have "archie" aliased or modified
- in some way to do a telnet or rlogin (which you may've done before
- this command-line ability came into being).
-
- If Archie consistently hangs (at different times of day with
- different queries), it's possible that your site has UDP traffic on
- ports > 1000 blocked, for security reasons. Type `make udptest' to
- check---if it prints out the date, the Archie server is probably down;
- if it doesn't print out the date, either Widener's computer is down
- (God forbid ;-) ) or you do indeed have UDP blocked. See your system
- administrator in this case. If the problem persists and haven't the
- vaguest, then write me describing the situation and what machine/OS
- you're using.
-
- Write to archie-l@cs.mcgill.ca with questions about Archie itself.
- Write to info-prospero@isi.edu about the Prospero protocol.
- Write to brendan@cs.widener.edu with questions about this specific package.
- -----------
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 6)."
- # Contents: Prospero README README.dos archie.lnk atalloc.c
- # copyright.h get_pauth.c makefile.cut makefile.dos makefile.os2
- # msdos msdos/cutcp.h patchlevel.h pauthent.h pcompat.h pmachine.h
- # pprot.h ptalloc.c rdgram.h regex.h stcopy.c udp.c vl_comp.c vms
- # vms.h vms/fd.h vms/in.h vms/multi.opt vms/pseudos.h vms/signal.h
- # vms/socket.h vms/time.h vms/types.h vms/ucx.opt vms/woll.opt
- # Wrapped by brendan@ashley on Fri Jan 10 13:21:46 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'Prospero' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Prospero'\"
- else
- echo shar: Extracting \"'Prospero'\" \(1409 characters\)
- sed "s/^X//" >'Prospero' <<'END_OF_FILE'
- XProspero also allows users to access Archie as if it were part of a
- Xfile system. Here is an example of how Prospero can be used to access
- XArchie in this manner.
- X
- X Script started on Mon Jul 1 22:36:42 1991
- X % source /home/ftp/archie/pfs/bin/vfsetup.source
- X % vfsetup guest
- X % venable
- X % cd /archive-sites/archie/regex
- X % cd prospero (This command specifies the query)
- X % ls -l
- X total 0
- X -r--r--r-- 0 - 0 - info-prospero.arc
- X dr-xr-xr-x 0 - 0 - prospero
- X dr-xr-xr-x 0 - 0 - prospero-papers
- X -r--r--r-- 0 - 0 - prospero.arc
- X -r--r--r-- 0 - 0 - prospero.tar.Z
- X (Note that the "vls" command could have been used)
- X (to show where the files were actually stored )
- X % ls prospero (list a result if it is a directory)
- X prog.tar.Z prospero.tar.Z
- X % cat info-prospero.arc (The file is automatically retrieved and displayed)
- X >From bcn@n1dmm Tue Dec 4 02:33:36 1990
- X Received: from n1dmm.cs.washington.edu by june.cs.washington.edu (5.64/7.0jh)
- X id AA24763; Tue, 4 Dec 90 02:33:36 -0800
- X Received: by n1dmm.cs.washington.edu (5.64/7.0h)
- X id AA08497; Tue, 4 Dec 90 02:33:31 -0800
- X Date: Tue, 4 Dec 90 02:33:31 -0800
- X From: bcn@cs.washington.edu (Clifford Neuman)
- X ...
- X % vdisable
- X % exit
- X script done on Mon Jul 1 22:39:33 1991
- END_OF_FILE
- if test 1409 -ne `wc -c <'Prospero'`; then
- echo shar: \"'Prospero'\" unpacked with wrong size!
- fi
- # end of 'Prospero'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(2404 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X[Last changed 01/09/92 v1.3]
- X
- X Enclosed you'll find a Prospero client for the archie service. It'll
- Xlet you query the archie databases without actually using an
- Xinteractive process on the remote server's machine (e.g. archie.ans.net),
- Xresulting in a MUCH better response time. It also helps lessen the
- Xload on the archie server itself.
- X
- X What's Archie? It's a system that will let you check a database containing
- Xthousands of entries for the files that're available at FTP sites around
- Xthe world.
- X
- X This is a third child of Clifford Neuman's Prospero project. It's really
- Xthe Archie client that's included in the prospero stuff, but I've taken out
- Xeverything that's unnecessary for this client to work. (Aka, you don't
- Xhave to build all of Prospero to get the Archie client.) Khun Yee Fung
- Xwrote an archie client in Perl, and George Ferguson has written a client
- Xfor use with XWindows, based in part upon this code.
- X
- X Using the Archie Prospero interface in its true form will probably be of
- Xinterest---check out the file `Prospero' for an example of its interface.
- XIf you find it intriguing, you should probably get the full prospero kit
- Xfrom the University of Washington on cs.washington.edu in pub/prospero.tar.Z.
- X
- X Suffice to say, there are now a number of ways to query Archie without
- Xbogging a server down with your logins.
- X
- X Check out the man page (or archie.doc, if you're using VMS or DOS)
- Xfor instructions on how to use this archie client.
- X
- X Please check to make sure you don't have "archie" aliased or modified
- Xin some way to do a telnet or rlogin (which you may've done before
- Xthis command-line ability came into being).
- X
- X If Archie consistently hangs (at different times of day with
- Xdifferent queries), it's possible that your site has UDP traffic on
- Xports > 1000 blocked, for security reasons. Type `make udptest' to
- Xcheck---if it prints out the date, the Archie server is probably down;
- Xif it doesn't print out the date, either Widener's computer is down
- X(God forbid ;-) ) or you do indeed have UDP blocked. See your system
- Xadministrator in this case. If the problem persists and haven't the
- Xvaguest, then write me describing the situation and what machine/OS
- Xyou're using.
- X
- X Write to archie-l@cs.mcgill.ca with questions about Archie itself.
- X Write to info-prospero@isi.edu about the Prospero protocol.
- X Write to brendan@cs.widener.edu with questions about this specific package.
- END_OF_FILE
- if test 2404 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'README.dos' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README.dos'\"
- else
- echo shar: Extracting \"'README.dos'\" \(10680 characters\)
- sed "s/^X//" >'README.dos' <<'END_OF_FILE'
- X11/22/91 Readme.dos -- Readme file for CUTCP DOS version of Archie.
- X
- X--
- XThis version requires the use of a `standard' NCSA or CUTCP compatible
- XCONFIG.TEL file. If you are running NCSA telnet or CUTCP/CUTE telnet,
- Xyou should be able to run this program without modification.
- X
- XAs with all CUTCP programs, you may set a DOS environment variable to
- Xpoint to the location of your config.tel file.
- X
- X set CONFIGTEL=C:\net\config.tel
- X
- XYou may also set the $CUTCPnn dos environment variables to include other
- X'local' information (such as client IP address on a Novell lan).
- X
- XThis version has been compiled with the US (archie.sura.net) Prospero/Archie
- Xserver as the default. This may not be appropriate for your location. Here's
- Xhow to change it.
- X
- X
- X 1. Run the archie program with the -L argument to list known
- X archie/prospero servers.
- X
- X 2. Select the server name that is closest to your site. For this example
- X we'll pick archie.funet.fi
- X
- X 3. Edit your config.tel file and add the following lines at the end
- X of the file.
- X
- X name=archie
- X host=archie.funet.fi # actually substitute your select
- X # server name here
- X
- X 4. If you happen to know the IP address of the server, you may also
- X add the appropriate
- X
- X hostip=<insert IP address here>
- X
- X 5. If you don't enter an IP address, archie will perform a DNS lookup
- X use the domain nameserver information that is in your config.tel
- X file.
- X
- X
- XAn additional command line option (-H) has been added (vs -h) to allow the
- Xuser to specify the config.tel file location on the command line.
- X
- X archie -H c:\net\config.tel emacs
- X
- XDuring a search, you may press the <ESCAPE> key to abort the query.
- X
- X
- X
- XIf you have problems, try running archie with the -D9 option (debug).
- X
- XAs usual, bugs/comments to:
- X
- X cutcp-bugs@omnigate.clarkson.edu
- X
- XBrad Clements, Sr. Network Engineer
- XEducational Resources Center
- XClarkson University
- XPotsdam, NY 13699
- X
- Xbkc@draco.erc.clarkson.edu
- X
- X-----------
- XSample Config.tel file
- X------------------------------
- X# Example host file for ARCHIE/ CUTCP version
- X# 11/21/91
- X#
- X# Bugs to cutcp-bugs@omnigate.clarkson.edu
- X
- X#---------------------------------------------------------------------------#
- X# #
- X#** ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION **#
- X# #
- X# This sample config.tel file contains every single option that you could #
- X# possibly use. Its meant as an example only. Please Please PLEASE don't #
- X# use all these options in your working config.tel file, just the ones #
- X# that you actually need. Many options can be left out, the default action#
- X# (if defined) is shown in parens () next to the option. #
- X# #
- X# Thank you for your support #
- X#---------------------------------------------------------------------------#
- X
- X#
- X# This example file is for my=bootp, in which case the following items are
- X# determined from the bootp server: (and are thus commented out in this file)
- X# 1. This machine's IP Address
- X# 2. The network NETMASK
- X# 3. The default gateway (one or more)
- X# 4. Nameservers (one or more)
- X# 5. The domain search list (if this clients hostname is in the bootp packet)
- X#
- X# Your BOOTP server needs to be RFC 1048 compliant for this to work
- X#
- X# If you have nameservers, gateways or a domainslist already specified
- X# in this file, then the file's entry takes precedence.
- X# Extra gateways and nameservers will be added by BOOTP if found, however.
- X#----------------------------------------------------------------------------
- X# You can set a DOS environment variable CONFIGTEL to point to this file
- X# then you don't need batch files or the -h option.
- X#
- X# C> set CONFIGTEL=C:\net\myconfig.tel
- X#
- X# You may also use environment variables to include config.tel options,
- X# such as:
- X# C> set $CUTCP1=myip~197.001.42.98;netmask~255.255.252.0
- X# C> set $CUTCP2=name~x;hostip~128.163.298.2
- X#
- X# and so on up to $CUTCP99. Note that you use a tilde (~) instead of (=)
- X# in the dos set command because two ='s are not allowed by Dos.
- X#
- X# Additionally, there is a new config.tel option called include= which
- X# allows the nesting (up to 3) configuration files deep.
- X#
- X#
- X# You can use these new options on networks to make your configuration job
- X# easier. CUTCP always opens config.tel files as read-only, so you can mark
- X# your files as sharable, read only. Also, you can use the include= command
- X# in a $CUTCP environment variable, and on the command line.
- X
- X# *Note* that you can not include a machine specific parameter before
- X# name=default... This used to work in old versions, but is strictly
- X# enforced in this version.
- X# --------------------------------------------------------------------------
- X# This file is free form
- X# Separators are any char <33 and :;=
- X#
- X# The form is keyword=value for each parameter.
- X# The first set of parameters refer to the whole program's defaults.
- X# These parameter values can be in any order.
- X# Following this are the individual machine specs.
- X#
- X
- Xmyip=128.153.28.65 # (bootp)
- X # myip types are:
- X # bootp - sends out a BOOTP request for your IP
- X # rarp - Uses reverse ARp to get your IP
- X # xx.yy.zz.qq - your IP address
- X
- Xvjc=no # (no)
- X # set vjc=yes if you're running slip and
- X # you want to use Van Jacobson TCP header
- X # compression
- X
- Xsplayc=no # (no) ack. splay compression w/ vjc.. don't
- X # use it, not standard, development option only
- X
- Xmyname=userid # put your userid here, used for Rlogin
- X # PC-NFS version ignores this value and uses the name
- X # that you specified to your pcnfsd.
- X
- Xnetmask=255.255.252.0 # needed if not using BOOTP.
- X # otherwise not needed because Bootp gets your netmask
- X # for you
- X
- Xhardware=packet # (packet)
- X # harware choices
- X # 3com - 3com 3c501
- X # 3c523 - 3com 3c523
- X # wd800 - Western Digitial 800E
- X # nicpc -
- X # nicps -
- X # ni5210 - Micom Interlan NI5210 card
- X # packet - FTP packet Driver spec
- X # (currently only Ethernet and Slip class devices are supported)
- X
- Xinterrupt=2 # hardware IRQ interrupt
- Xaddress=0 # (0)
- X # base memory address or packet driver class
- X # if using packet driver (0 == default == ethernet)
- X # or class=6 for slip
- X
- Xioaddr=0 # (0)
- X # I/O address or packet int vector if using packet driver
- X # If = 0 and packet driver, telbin looks for first
- X # packet driver found between 60H and 7FH
- X
- Xnoarpme=yes # Don't arp for myself before running? (no)
- X # if yes, inhibits the initial arp request
- X # for this IP address. However, if yes, won't
- X # warn you if another user is using this IP
- X # address. For some token ring systems, you'll
- X # need noarpme=yes.
- X
- Xinclude="nul" # if you want to include another file as part
- X # of this one (you can nest up to three includes)
- X # otherwise, don't use this option
- X
- Xdomaintime=4 # domain name lookup timeout (first retry)
- Xdomainretry=4 # domain name max number of retries
- Xdomainslist="clarkson.edu,aux.clarkson.edu" # domain name search path
- X # domain name lookup will attach each of these
- X # comma seperated suffixes to
- X # the end of the name you are looking for to
- X # discover the full name and IP address.
- X # so, looking for x tries x.clarkson.edu and x.aux.clarkson.edu then just x
- X # unless you use x. which ONLY looks for x
- X
- X ## Also, the fewer suffixes in the domainslist
- X ## the less time you will have to wait if you mis-type an entry.
- X ## Finally, try not to use a suffix like . or .edu or .com this will
- X ## waste a lot of time looking for a bogus host name if you mis-type an entry.
- X
- X## ----------------------------------------------------------------- ##
- X## BEGIN MACHINE SPECIFIC PARAMETERS... ##
- X## ----------------------------------------------------------------- ##
- X
- Xname=default # default entry sets defaults for all following
- X # machines.
- X
- Xarptime=10 # arp timeout in seconds
- X #
- X
- Xretrans=1 # starting retransmit time out in ticks
- X # 1/18ths of sec MAX 100, min 1
- X
- Xmtu=1024 # maximum transmit unit in bytes
- X # outgoing packet size, MAX=1500
- X
- Xmaxseg=1024 # largest segment we can receive
- X # whatever the hardware can take, MAX=4096
- Xrwin=2048 # most bytes we can receive without ACK
- X # =TCP window size, MAX=4096
- X
- Xcontime=20 # timeout in seconds to try connection
- X # before returning error to user
- X
- X# Following are individual machine specifications
- X# Gateways are used in order that they appear in the file
- X# Nameservers rotate, #1, #2, #3, #1, #2 when a request fails
- X#
- X
- X# ********************************************************************* ###
- X# Note: If you are using BOOTP above for myip=, then you do not need
- X# to enter a default gateway, nameserver, netmask etc (unless you want to)
- X# only IF your BOOTP server is rfc_1048 compliant. (Ask your Net Manager)
- X# You can use both bootp and entries here, in which case the entries in
- X# this file over-ride what BOOTP discovers. (however, bootp nameservers
- X# and gateways are ADDED to this file's list of entries
- X# ********************************************************************* ####
- X
- X# Below this line, most of the communication parameters are obtained
- X# from the "default" host entry. Those parameters listed for a host
- X# override the default host values.
- X#
- X# These are examples, replace them with the correct values for your site.
- X#name=mynameserver
- X#host=omnigate.clarkson.edu
- X#hostip=197.001.4.2
- X#nameserver=1
- X
- X#name=backupserver
- X#host=clutx.clarkson.edu
- X#hostip=197.001.4.3
- X#nameserver=2
- X
- X#name=lastserver
- X#host=n2ngw.nyser.net
- X#hostip=128.145.198.2
- X#nameserver=3
- X
- X#name=mygateway
- X#host=nysernet.clarkson.edu
- X#hostip=197.001.4.1
- X#gateway=1
- X
- X
- Xname=archie
- Xhost=archie.funet.fi
- END_OF_FILE
- if test 10680 -ne `wc -c <'README.dos'`; then
- echo shar: \"'README.dos'\" unpacked with wrong size!
- fi
- # end of 'README.dos'
- fi
- if test -f 'archie.lnk' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'archie.lnk'\"
- else
- echo shar: Extracting \"'archie.lnk'\" \(237 characters\)
- sed "s/^X//" >'archie.lnk' <<'END_OF_FILE'
- Xaquery.lo archie.lo atalloc.lo dirsend.lo+
- XGet_pauth.lo get_vdir.lo perrmesg.lo procquery.lo+
- Xptalloc.lo regex.lo stcopy.lo support.lo+
- Xvlalloc.lo vl_comp.lo
- Xarchie.unp
- Xarchie/map/noi/co/li/stack:45000
- Xlsocket lnetlib lconfig lpc llibce
- END_OF_FILE
- if test 237 -ne `wc -c <'archie.lnk'`; then
- echo shar: \"'archie.lnk'\" unpacked with wrong size!
- fi
- # end of 'archie.lnk'
- fi
- if test -f 'atalloc.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atalloc.c'\"
- else
- echo shar: Extracting \"'atalloc.c'\" \(1819 characters\)
- sed "s/^X//" >'atalloc.c' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X */
- X
- X#include <copyright.h>
- X#include <stdio.h>
- X
- X#include <pfs.h>
- X#include <pmachine.h> /* for correct definition of ZERO */
- X
- Xstatic PATTRIB lfree = NULL;
- Xint pattrib_count = 0;
- Xint pattrib_max = 0;
- X
- X/*
- X * atalloc - allocate and initialize vlink structure
- X *
- X * ATALLOC returns a pointer to an initialized structure of type
- X * PATTRIB. If it is unable to allocate such a structure, it
- X * returns NULL.
- X */
- XPATTRIB
- Xatalloc()
- X {
- X PATTRIB at;
- X if(lfree) {
- X at = lfree;
- X lfree = lfree->next;
- X }
- X else {
- X at = (PATTRIB) malloc(sizeof(PATTRIB_ST));
- X if (!at) return(NULL);
- X pattrib_max++;
- X }
- X
- X pattrib_count++;
- X
- X ZERO(at);
- X /* Initialize and fill in default values; all items are
- X 0 [or NULL] save precedence */
- X at->precedence = ATR_PREC_OBJECT;
- X
- X return(at);
- X }
- X
- X/*
- X * atfree - free a PATTRIB structure
- X *
- X * ATFREE takes a pointer to a PATTRRIB structure and adds it to
- X * the free list for later reuse.
- X */
- Xvoid
- Xatfree(at)
- X PATTRIB at;
- X {
- X if(at->aname) stfree(at->aname);
- X
- X if((strcmp(at->avtype,"ASCII") == 0) && at->value.ascii)
- X stfree(at->value.ascii);
- X if((strcmp(at->avtype,"LINK") == 0) && at->value.link)
- X vlfree(at->value.link);
- X
- X if(at->avtype) stfree(at->avtype);
- X
- X at->next = lfree;
- X at->previous = NULL;
- X lfree = at;
- X pattrib_count--;
- X }
- X
- X/*
- X * atlfree - free a PATTRIB structure
- X *
- X * ATLFREE takes a pointer to a PATTRIB structure frees it and any linked
- X * PATTRIB structures. It is used to free an entrie list of PATTRIB
- X * structures.
- X */
- Xvoid
- Xatlfree(at)
- X PATTRIB at;
- X {
- X PATTRIB nxt;
- X
- X while(at != NULL) {
- X nxt = at->next;
- X atfree(at);
- X at = nxt;
- X }
- X }
- X
- END_OF_FILE
- if test 1819 -ne `wc -c <'atalloc.c'`; then
- echo shar: \"'atalloc.c'\" unpacked with wrong size!
- fi
- # end of 'atalloc.c'
- fi
- if test -f 'copyright.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'copyright.h'\"
- else
- echo shar: Extracting \"'copyright.h'\" \(896 characters\)
- sed "s/^X//" >'copyright.h' <<'END_OF_FILE'
- X/*
- X Copyright (c) 1989, 1990, 1991 by the University of Washington
- X
- X Permission to use, copy, modify, and distribute this software and its
- X documentation for non-commercial purposes and without fee is hereby
- X granted, provided that the above copyright notice appear in all copies
- X and that both the copyright notice and this permission notice appear in
- X supporting documentation, and that the name of the University of
- X Washington not be used in advertising or publicity pertaining to
- X distribution of the software without specific, written prior
- X permission. The University of Washington makes no representations
- X about the suitability of this software for any purpose. It is
- X provided "as is" without express or implied warranty.
- X
- X Prospero was written by Clifford Neuman (bcn@isi.edu).
- X
- X Questions concerning this software should be directed to
- X info-prospero@isi.edu.
- X
- X */
- END_OF_FILE
- if test 896 -ne `wc -c <'copyright.h'`; then
- echo shar: \"'copyright.h'\" unpacked with wrong size!
- fi
- # end of 'copyright.h'
- fi
- if test -f 'get_pauth.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'get_pauth.c'\"
- else
- echo shar: Extracting \"'get_pauth.c'\" \(2267 characters\)
- sed "s/^X//" >'get_pauth.c' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X *
- X * v1.2.2 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
- X * v1.2.1 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
- X * v1.2.0 - 09/17/91 (bpk) - fixed it up (thanks to synful)
- X * v1.1.1 - 08/30/91 (bpk) - added VMS support
- X */
- X
- X#include <copyright.h>
- X#include <stdio.h>
- X#ifndef VMS
- X# include <sys/types.h> /* this may/will define FD_SET etc */
- X# include <pmachine.h>
- X#endif
- X
- X#ifdef NEED_STRING_H
- X# include <string.h>
- X#else
- X# include <strings.h>
- X#endif
- X
- X#ifndef VMS
- X# if defined(MSDOS) && !defined(OS2)
- X# ifndef CUTCP
- X# include <rwconf.h>
- X# endif
- X# else
- X# include <pwd.h>
- X# endif
- X#else
- X# include <jpidef.h>
- X# include <vms.h>
- X#endif
- X
- X#include <pcompat.h>
- X#include <pauthent.h>
- X
- XPAUTH
- Xget_pauth(type)
- X int type;
- X {
- X static PAUTH_ST no_auth_st;
- X static PAUTH no_auth = NULL;
- X#if !defined(VMS) && !defined(MSDOS) || defined(OS2)
- X struct passwd *whoiampw;
- X#else
- X char username[13];
- X unsigned short usernamelen;
- X struct {
- X unsigned short buflen;
- X unsigned short itmcod;
- X char *bufadr;
- X unsigned short *retlenadr;
- X unsigned long null;
- X } jpi_itemlist;
- X#endif
- X
- X if(no_auth == NULL) {
- X no_auth = &no_auth_st;
- X strcpy(no_auth->auth_type,"UNAUTHENTICATED");
- X
- X /* find out who we are */
- X#ifndef VMS
- X#if defined(MSDOS) && !defined(OS2)
- X#ifndef CUTCP
- X if (!getconf("general", "user", no_auth->authenticator, 250)
- X || (strlen (no_auth->authenticator) == 0))
- X#endif
- X strcpy(no_auth->authenticator,"nobody");
- X#else /* not MSDOS */
- X DISABLE_PFS(whoiampw = getpwuid(getuid()));
- X if (whoiampw == 0) strcpy(no_auth->authenticator,"nobody");
- X else strcpy(no_auth->authenticator, whoiampw->pw_name);
- X#endif /* not MSDOS */
- X#else
- X jpi_itemlist.buflen = sizeof(username);
- X jpi_itemlist.itmcod = JPI$_USERNAME;
- X jpi_itemlist.bufadr = &username;
- X jpi_itemlist.retlenadr = &usernamelen;
- X jpi_itemlist.null = 0;
- X if (SYS$GETJPI(0, 0, 0, &jpi_itemlist, 0, 0, 0) & 0x1)
- X {
- X username[usernamelen] = 0;
- X strcpy(no_auth->authenticator, username);
- X } else
- X strcpy(no_auth->authenticator, "nobody");
- X#endif
- X }
- X return(no_auth);
- X }
- END_OF_FILE
- if test 2267 -ne `wc -c <'get_pauth.c'`; then
- echo shar: \"'get_pauth.c'\" unpacked with wrong size!
- fi
- # end of 'get_pauth.c'
- fi
- if test -f 'makefile.cut' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.cut'\"
- else
- echo shar: Extracting \"'makefile.cut'\" \(762 characters\)
- sed "s/^X//" >'makefile.cut' <<'END_OF_FILE'
- X#
- X# CUTCP/CUTE BC++ version 11/22/91 bkc@omnigate.clarkson.edu
- X# Last changed: 12/03/91 1.2.1
- X#
- X# Makefile for the minimal build for an archie Prospero client.
- X#.INCLUDE ../../../builtins
- X
- XOBJS = aquery.obj archie.obj atalloc.obj \
- X get_pauth.obj get_vdir.obj perrmesg.obj procquery.obj \
- X ptalloc.obj regex.obj stcopy.obj support.obj\
- X vlalloc.obj vl_comp.obj dirsend.obj misc.obj
- X
- X# dirsend.obj
- X
- XHDRS = archie.h pmachine.h pcompat.h
- X
- XDEFINES = -DDEBUG -DCUTCP
- X
- XCFLAGS= -ml -r -v $(DEFINES) -I.
- XLFLAGS= /P/m/s
- XCC = bccx
- X
- XEXE = archie.exe
- X
- Xall: $(EXE)
- X
- X$(OBJS): $(HDRS)
- X
- X.c.obj:
- X $(CC) $(CFLAGS) -c $<
- X
- X$(EXE): $(OBJS) Makefile
- X tlink $(LFLAGS) @&&!
- Xc0l $(OBJS)
- X!,archie,archie,@&&!
- Xlib\tcp lib\sess lib\enet lib\vjc lib\over cl
- X!
- X
- Xclean:
- X +-del *.obj
- END_OF_FILE
- if test 762 -ne `wc -c <'makefile.cut'`; then
- echo shar: \"'makefile.cut'\" unpacked with wrong size!
- fi
- # end of 'makefile.cut'
- fi
- if test -f 'makefile.dos' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.dos'\"
- else
- echo shar: Extracting \"'makefile.dos'\" \(592 characters\)
- sed "s/^X//" >'makefile.dos' <<'END_OF_FILE'
- X#
- X# Last changed: 11/20/91, v1.2
- X#
- X# Makefile for the minimal build for an archie Prospero client.
- X#.INCLUDE ../../../builtins
- X
- XOBJS = aquery.lo archie.lo atalloc.lo dirsend.lo \
- X get_pauth.lo get_vdir.lo perrmesg.lo procquery.lo \
- X ptalloc.lo regex.lo stcopy.lo support.lo \
- X vlalloc.lo vl_comp.lo
- XHDRS = archie.h pmachine.h pcompat.h
- X
- XDEFINES = -DDEBUG -DNOREGEX -DUSG
- X
- XCFLAGS = -Oeclgsz -Gs -Zi -W4 -I. $(DEFINES)
- X
- XEXE = archie.exe
- X
- Xall: $(EXE)
- X
- X$(OBJS): $(HDRS)
- X
- X$(EXE): $(OBJS) Makefile archie.lnk
- X link @archie.lnk
- X exepack archie.unp archie.exe
- X
- Xclean:
- X +-del *.lo
- X +-del *.exe
- X
- END_OF_FILE
- if test 592 -ne `wc -c <'makefile.dos'`; then
- echo shar: \"'makefile.dos'\" unpacked with wrong size!
- fi
- # end of 'makefile.dos'
- fi
- if test -f 'makefile.os2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.os2'\"
- else
- echo shar: Extracting \"'makefile.os2'\" \(800 characters\)
- sed "s/^X//" >'makefile.os2' <<'END_OF_FILE'
- X#
- X# Last changed: 11/20/91, v1.2
- X#
- X# Makefile for the minimal build for an archie Prospero client.
- X.INCLUDE ../../../builtins
- X
- XOBJS = aquery.obj archie.obj atalloc.obj dirsend.obj \
- X get_pauth.obj get_vdir.obj perrmesg.obj procquery.obj \
- X ptalloc.obj regex.obj stcopy.obj support.obj \
- X vlalloc.obj vl_comp.obj
- XHDRS = archie.h pmachine.h pcompat.h
- X
- XDEFINES = -DDEBUG -DNOREGEX
- X
- XIFLAGS = -I. -I../../../include $(DEFINES)
- X
- XLFLAGS = /stack:30000/nod/noe/noi/map/CO
- XLIBS = pctcp bsd ftpcrt socket os2
- XEXE = archie.exe
- X
- Xall: $(EXE)
- X
- Xinstall: $(EXE)
- X cp $[m,*.exe,$**] ..\..\..\bin
- X @touch install
- X
- X$(OBJS): $(HDRS)
- X
- X$(EXE): $(OBJS) Makefile
- X $(LD) $(LFLAGS) $(L_DEBUG) <@<
- X$[s,"+ \n",$[m,*.obj,$**]]
- X$*
- X$*
- X$(LIBS)
- X
- X<
- X +markexe lfns $@
- X +markexe windowcompat $@
- X
- Xclean:
- X +-del *.obj
- X +-del *.exe
- X
- END_OF_FILE
- if test 800 -ne `wc -c <'makefile.os2'`; then
- echo shar: \"'makefile.os2'\" unpacked with wrong size!
- fi
- # end of 'makefile.os2'
- fi
- if test ! -d 'msdos' ; then
- echo shar: Creating directory \"'msdos'\"
- mkdir 'msdos'
- fi
- if test -f 'msdos/cutcp.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'msdos/cutcp.h'\"
- else
- echo shar: Extracting \"'msdos/cutcp.h'\" \(1146 characters\)
- sed "s/^X//" >'msdos/cutcp.h' <<'END_OF_FILE'
- X/* cutcp.h -- defs for cutcp code */
- X
- X
- Xint netlisten(unsigned int port);
- Xstruct machinfo *Shostlook(char *name);
- Xint Sdomain(char *name);
- Xstruct machinfo *Sgethost(char *name);
- Xstruct machinfo *Slookip(unsigned long *address);
- Xvoid netgetftp(unsigned int array[], unsigned int port);
- Xint netopen(unsigned long *address, unsigned int port);
- Xint Snetopen(struct machinfo *m, unsigned int port);
- Xint netqlen(int handle);
- Xint netroom(int handle);
- Xint netread(int pnum, unsigned char *buffer, unsigned int n);
- Xint netwrite(int pnum, unsigned char *buffer, unsigned int n);
- Xint netest(int pnum);
- Xint netpush(int pnum);
- Xvoid netulisten(unsigned int portnum);
- Xint netusend(unsigned long *address, unsigned destport,
- X unsigned sourceport, unsigned char *buffer, int count);
- Xint neturead(unsigned char *buffer);
- Xstruct machinfo *Slooknum(int pnum);
- Xint Snetinit();
- Xint Shostfile(char *name);
- Xint netshut();
- Xint Sgetevent(int classes, int *clss, int *data);
- Xint netclose(int pnum);
- Xunsigned int intswap(unsigned int val);
- Xunsigned long n_clicks(void *p);
- Xvoid Stask();
- X
- X#define ntohs(a) (intswap(a))
- X#define htons(a) (intswap(a))
- END_OF_FILE
- if test 1146 -ne `wc -c <'msdos/cutcp.h'`; then
- echo shar: \"'msdos/cutcp.h'\" unpacked with wrong size!
- fi
- # end of 'msdos/cutcp.h'
- fi
- if test -f 'patchlevel.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patchlevel.h'\"
- else
- echo shar: Extracting \"'patchlevel.h'\" \(479 characters\)
- sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE'
- X/*
- X * Archie v1.3
- X *
- X * History:
- X *
- X * 01/10/92 v1.3.1 - Release.
- X * 01/09/92 v1.3 - Release.
- X * 12/13/91 - added UCX support
- X * 12/03/91 - added CUTCP support
- X * 11/20/91 v1.2 - Release.
- X * 11/18/91 - ported to DOS & OS/2
- X * 11/12/91 - finally got to test under Multinet 3.0
- X * 10/03/91 - replaced regex.c for oz
- X * 09/25/91 - added Wollongong support
- X * 08/30/91 - ported to VMS
- X * 08/20/91 v1.1 - Major revisions
- X * 07/31/91 v1.0 - Original
- X */
- END_OF_FILE
- if test 479 -ne `wc -c <'patchlevel.h'`; then
- echo shar: \"'patchlevel.h'\" unpacked with wrong size!
- fi
- # end of 'patchlevel.h'
- fi
- if test -f 'pauthent.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pauthent.h'\"
- else
- echo shar: Extracting \"'pauthent.h'\" \(839 characters\)
- sed "s/^X//" >'pauthent.h' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990, 1991 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X */
- X
- X#include <copyright.h>
- X
- X#define PFSA_UNAUTHENTICATED 1
- X
- Xstruct pfs_auth_info {
- X char auth_type[100];
- X char authenticator[250];
- X};
- X
- Xtypedef struct pfs_auth_info *PAUTH;
- Xtypedef struct pfs_auth_info PAUTH_ST;
- X
- XPAUTH get_pauth();
- X
- X#ifndef VMS
- X# ifndef IN_H
- X# include <netinet/in.h>
- X# define IN_H
- X# endif
- X#else
- X# ifndef _ARCHIE_VMS
- X# include <vms.h>
- X# endif
- X#endif
- X
- Xstruct client_info {
- X int ainfo_type;
- X char *auth_type;
- X char *authenticator;
- X char *userid;
- X short port;
- X struct in_addr haddr;
- X struct pfs_auth_info *previous;
- X struct pfs_auth_info *next;
- X};
- X
- Xtypedef struct client_info *CINFO;
- Xtypedef struct client_info CINFO_ST;
- END_OF_FILE
- if test 839 -ne `wc -c <'pauthent.h'`; then
- echo shar: \"'pauthent.h'\" unpacked with wrong size!
- fi
- # end of 'pauthent.h'
- fi
- if test -f 'pcompat.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pcompat.h'\"
- else
- echo shar: Extracting \"'pcompat.h'\" \(1477 characters\)
- sed "s/^X//" >'pcompat.h' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X */
- X
- X#include <copyright.h>
- X
- X/*
- X * pcompat.h - Definitions for compatability library
- X *
- X * This file contains the defintions used by the compatability
- X * library. Among the definitions are the possible values for
- X * pfs_disable_flag. This file also contains the external
- X * declaration of that variable. Note, however that the
- X * the module pfs_disable_flag.o is included in libpfs.a
- X * because some of the routines in that library set it.
- X * The only place it is checked, however, is in pfs_access,
- X * found in libpcompat.a
- X *
- X */
- X
- Xextern int pfs_default;
- Xextern int pfs_enable;
- X
- X/* Definitions for values of pfs_enable */
- X#define PMAP_DISABLE 0
- X#define PMAP_ENABLE 1
- X#define PMAP_COLON 2
- X#define PMAP_ATSIGN_NF 3
- X#define PMAP_ATSIGN 4
- X
- X#define DISABLE_PFS(stmt) {int DpfStmp; DpfStmp = pfs_enable;\
- X pfs_enable = PMAP_DISABLE; \
- X stmt; \
- X pfs_enable = DpfStmp;}
- X
- X/* Definitions for PFS_ACCESS */
- X#define PFA_MAP 0 /* Map the file name only */
- X#define PFA_CREATE 1 /* Create file if not found */
- X#define PFA_CRMAP 2 /* Map file name. Map to new name if not found */
- X#define PFA_RO 4 /* Access to file is read only */
- X
- X#define check_pfs_default() if(pfs_default == -1) get_pfs_default()
- END_OF_FILE
- if test 1477 -ne `wc -c <'pcompat.h'`; then
- echo shar: \"'pcompat.h'\" unpacked with wrong size!
- fi
- # end of 'pcompat.h'
- fi
- if test -f 'pmachine.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pmachine.h'\"
- else
- echo shar: Extracting \"'pmachine.h'\" \(2197 characters\)
- sed "s/^X//" >'pmachine.h' <<'END_OF_FILE'
- X/*
- X * Miscellaneous system dependencies.
- X *
- X * I kept the name pmachine.h because it was already in all of the files...this
- X * barely resembles the pmachine.h that comes with the real Prospero, tho.
- X *
- X * v1.2.1 - 12/13/91 (bpk) - added 3b2
- X * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
- X */
- X
- X#ifdef u3b2
- X# define USG
- X# define NOREGEX
- X# define MAXPATHLEN 1024 /* There's no maxpathlen in any 3b2 .h file. */
- X#endif
- X
- X#ifdef hpux
- X# ifndef bcopy
- X# define FUNCS /* HP/UX 8.0 has the fns. */
- X# endif
- X# define NOREGEX
- X# define NEED_STRING_H
- X#endif
- X
- X#if defined(USG) || defined(SYSV)
- X# define FUNCS
- X#endif
- X
- X#ifdef ISC
- X# define FUNCS
- X# define STRSPN
- X# define NOREGEX
- X#endif
- X
- X#ifdef CUTCP
- X# define FUNCS
- X# define NOREGEX
- X# define NEED_STRING_H
- X# define SELECTARG int
- X# define MSDOS
- X#endif
- X
- X#ifdef OS2
- X# define NOREGEX
- X# include <pctcp.h>
- X#endif
- X#ifdef MSDOS
- X# define USG
- X# define NOREGEX
- X# include <string.h>
- X# include <stdlib.h>
- X#endif
- X
- X#ifdef _AIX
- X# ifdef u370
- X# define FUNCS
- X# endif /* AIX/370 */
- X# define _NONSTD_TYPES
- X# define _BSD_INCLUDES
- X# define NEED_STRING_H
- X# define NEED_SELECT_H
- X# define NEED_TIME_H
- X#endif
- X
- X/* ==== */
- X#ifdef FUNCS
- X# define index strchr
- X/* According to mycroft. */
- X# ifdef _IBMR2
- Xchar *strchr();
- X# endif
- X# define rindex strrchr
- X# ifndef AUX
- X# define bcopy(a,b,n) memcpy(b,a,n)
- X# define bzero(a,n) memset(a,0,n)
- X# ifdef _IBMR2
- Xchar *memset();
- X# endif
- X# endif
- X#endif
- X
- X#if defined(_IBMR2) || defined(_BULL_SOURCE)
- X# define NEED_SELECT_H
- X#endif
- X#if defined(USG) || defined(UTS)
- X# define NEED_STRING_H
- X#endif
- X#if defined(USG) || defined(UTS) || defined(AUX)
- X# define NEED_TIME_H
- X#endif
- X
- X#ifdef VMS
- X/* Get the system status stuff. */
- X# include <ssdef.h>
- X#endif /* VMS */
- X
- X/*
- X * FD_SET: lib/pfs/dirsend.c, user/vget/ftp.c
- X */
- X#ifndef CUTCP
- X
- X#define SELECTARG fd_set
- X#if !defined(FD_SET) && !defined(VMS) && !defined(NEED_SELECT_H)
- X#define FD_SETSIZE 32
- X#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
- X#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
- X#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
- X#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
- X#endif
- X
- X#endif /* not CUTCP */
- END_OF_FILE
- if test 2197 -ne `wc -c <'pmachine.h'`; then
- echo shar: \"'pmachine.h'\" unpacked with wrong size!
- fi
- # end of 'pmachine.h'
- fi
- if test -f 'pprot.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pprot.h'\"
- else
- echo shar: Extracting \"'pprot.h'\" \(1934 characters\)
- sed "s/^X//" >'pprot.h' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990, 1991 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X *
- X * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
- X */
- X
- X#include <copyright.h>
- X
- X#ifndef MAXPATHLEN
- X# ifdef VMS
- X# define MAXPATHLEN 32
- X# else /* not VMS */
- X# if defined(MSDOS) && !defined(OS2)
- X# define MAXPATHLEN 255
- X# else /* not MSDOS */
- X# ifdef ISC
- X# define MAXPATHLEN 512
- X# else /* not Interactive..normal! (gasp) */
- X# include <sys/param.h>
- X# endif /* ISC */
- X# endif /* MSDOS && !OS2 */
- X# endif /* VMS */
- X#endif
- X
- X/* Protocol Definitions */
- X
- X#define VFPROT_VNO 1 /* Protocol Version Number */
- X
- X#define DIRSRV_PORT 1525 /* Server port used if not in srvtab */
- X#define PROSPERO_PORT 191 /* Officially assigned prived port */
- X#define PROS_FIRST_PRIVP 901 /* First privileged port to try */
- X#define PROS_NUM_PRIVP 20 /* Number of privileged ports to try */
- X
- X#define MAXPKT 1024 /* Max size of response from server */
- X#define SEQ_SIZE 32 /* Max size of sequence text in resp */
- X#define MAX_DIR_LINESIZE 160+MAXPATHLEN /* Max linesize in directory */
- X
- X#define MAX_FWD_DEPTH 20 /* Max fwd pointers to follow */
- X
- X#define S_AD_SZ sizeof(struct sockaddr_in)
- X
- X/* Replacement for strtok that doesn't keep state. Both the variable */
- X/* S and the variable S_next must be defined. To initialize, assign */
- X/* the string to be stepped through to S_next, then call get_token on */
- X/* S. The first token will be in S, and S_next will point to the next */
- X/* token. Like strtok, this macro does modify the string passed to it */
- X#define get_token(S,C) \
- X S = S/**/_next; \
- X if(S) { \
- X while(*S == C) S++; \
- X S/**/_next = index(S,C); \
- X if(S/**/_next) *(S/**/_next++) = '\0'; \
- X if(!*S) S = NULL; \
- X }
- X
- X
- END_OF_FILE
- if test 1934 -ne `wc -c <'pprot.h'`; then
- echo shar: \"'pprot.h'\" unpacked with wrong size!
- fi
- # end of 'pprot.h'
- fi
- if test -f 'ptalloc.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ptalloc.c'\"
- else
- echo shar: Extracting \"'ptalloc.c'\" \(1680 characters\)
- sed "s/^X//" >'ptalloc.c' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990, 1991 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X *
- X * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
- X */
- X
- X#include <copyright.h>
- X#include <stdio.h>
- X
- X#include <pfs.h>
- X#include <pmachine.h> /* for correct definition of ZERO */
- X#ifdef MSDOS
- X# define free _pfree /* otherwise we get conflicts with free() */
- X#endif
- X
- Xstatic PTEXT free = NULL;
- Xint ptext_count = 0;
- Xint ptext_max = 0;
- X
- X/*
- X * ptalloc - allocate and initialize ptext structure
- X *
- X * PTALLOC returns a pointer to an initialized structure of type
- X * PTEXT. If it is unable to allocate such a structure, it
- X * returns NULL.
- X */
- XPTEXT
- Xptalloc()
- X {
- X PTEXT vt;
- X if(free) {
- X vt = free;
- X free = free->next;
- X }
- X else {
- X vt = (PTEXT) malloc(sizeof(PTEXT_ST));
- X if (!vt) return(NULL);
- X ptext_max++;
- X }
- X ptext_count++;
- X
- X /* nearly all parts are 0 [or NULL] */
- X ZERO(vt);
- X /* The offset is to leave room for additional headers */
- X vt->start = vt->dat + MAX_PTXT_HDR;
- X
- X return(vt);
- X }
- X
- X/*
- X * ptfree - free a VTEXT structure
- X *
- X * VTFREE takes a pointer to a VTEXT structure and adds it to
- X * the free list for later reuse.
- X */
- Xvoid
- Xptfree(vt)
- X PTEXT vt;
- X {
- X vt->next = free;
- X vt->previous = NULL;
- X free = vt;
- X ptext_count--;
- X }
- X
- X/*
- X * ptlfree - free a VTEXT structure
- X *
- X * VTLFREE takes a pointer to a VTEXT structure frees it and any linked
- X * VTEXT structures. It is used to free an entrie list of VTEXT
- X * structures.
- X */
- Xvoid
- Xptlfree(vt)
- X PTEXT vt;
- X {
- X PTEXT nxt;
- X
- X while(vt != NULL) {
- X nxt = vt->next;
- X ptfree(vt);
- X vt = nxt;
- X }
- X }
- X
- END_OF_FILE
- if test 1680 -ne `wc -c <'ptalloc.c'`; then
- echo shar: \"'ptalloc.c'\" unpacked with wrong size!
- fi
- # end of 'ptalloc.c'
- fi
- if test -f 'rdgram.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'rdgram.h'\"
- else
- echo shar: Extracting \"'rdgram.h'\" \(545 characters\)
- sed "s/^X//" >'rdgram.h' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1991 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X */
- X
- X#include <copyright.h>
- X
- X/* Queuing priorities for datagrams */
- X#define RDGRAM_MAX_PRI 32765 /* Maximum user proiority */
- X#define RDGRAM_MAX_SPRI 32767 /* Maximum priority for system use */
- X#define RDGRAM_MIN_PRI -32765 /* Maximum user proiority */
- X#define RDGRAM_MIN_SPRI -32768 /* Maximum priority for system use */
- X
- Xint rdgram_priority = 0;
- END_OF_FILE
- if test 545 -ne `wc -c <'rdgram.h'`; then
- echo shar: \"'rdgram.h'\" unpacked with wrong size!
- fi
- # end of 'rdgram.h'
- fi
- if test -f 'regex.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'regex.h'\"
- else
- echo shar: Extracting \"'regex.h'\" \(616 characters\)
- sed "s/^X//" >'regex.h' <<'END_OF_FILE'
- X/*
- X * regex.h : External defs for Ozan Yigit's regex functions, for systems
- X * that don't have them builtin. See regex.c for copyright and other
- X * details.
- X *
- X * Note that this file can be included even if we're linking against the
- X * system routines, since the interface is (deliberately) identical.
- X *
- X * George Ferguson, ferguson@cs.rochester.edu, 11 Sep 1991.
- X */
- X
- X#if defined(AUX) || defined(USG)
- X/* Let them use ours if they wish. */
- X# ifndef NOREGEX
- Xextern char *regcmp();
- Xextern char *regex();
- X#define re_comp regcmp
- X#define re_exec regex
- X# endif
- X#else
- Xextern char *re_comp();
- Xextern int re_exec();
- X#endif
- END_OF_FILE
- if test 616 -ne `wc -c <'regex.h'`; then
- echo shar: \"'regex.h'\" unpacked with wrong size!
- fi
- # end of 'regex.h'
- fi
- if test -f 'stcopy.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'stcopy.c'\"
- else
- echo shar: Extracting \"'stcopy.c'\" \(2207 characters\)
- sed "s/^X//" >'stcopy.c' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990, 1991 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X *
- X * v1.2.1 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
- X * v1.2.0 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
- X */
- X
- X#include <copyright.h>
- X#include <stdio.h>
- X#include <pmachine.h>
- X
- X#ifdef NEED_STRING_H
- X# include <string.h>
- X#else
- X# include <strings.h>
- X#endif
- X
- X#if defined(MSDOS)
- X# include <stdlib.h>
- X#endif
- X
- Xchar *stcopyr();
- X
- Xint string_count = 0;
- Xint string_max = 0;
- X
- X/*
- X * stcopy - allocate space for and copy a string
- X *
- X * STCOPY takes a string as an argument, allocates space for
- X * a copy of the string, copies the string to the allocated space,
- X * and returns a pointer to the copy.
- X */
- X
- Xchar *
- Xstcopy(st)
- X char *st;
- X {
- X if (!st) return(NULL);
- X if (string_max < ++string_count) string_max = string_count;
- X
- X return strcpy((char *)malloc(strlen(st) + 1), st);
- X }
- X
- X/*
- X * stcopyr - copy a string allocating space if necessary
- X *
- X * STCOPYR takes a string, S, as an argument, and a pointer to a second
- X * string, R, which is to be replaced by S. If R is long enough to
- X * hold S, S is copied. Otherwise, new space is allocated, and R is
- X * freed. S is then copied to the newly allocated space. If S is
- X * NULL, then R is freed and NULL is returned.
- X *
- X * In any event, STCOPYR returns a pointer to the new copy of S,
- X * or a NULL pointer.
- X */
- Xchar *
- Xstcopyr(s,r)
- X char *s;
- X char *r;
- X {
- X int sl;
- X
- X if(!s && r) {
- X free(r);
- X string_count--;
- X return(NULL);
- X }
- X else if (!s) return(NULL);
- X
- X sl = strlen(s) + 1;
- X
- X if(r) {
- X if ((strlen(r) + 1) < sl) {
- X free(r);
- X r = (char *) malloc(sl);
- X }
- X }
- X else {
- X r = (char *) malloc(sl);
- X string_count++;
- X if(string_max < string_count) string_max = string_count;
- X }
- X
- X return strcpy(r,s);
- X }
- X
- X/*
- X * stfree - free space allocated by stcopy or stalloc
- X *
- X * STFREE takes a string that was returned by stcopy or stalloc
- X * and frees the space that was allocated for the string.
- X */
- Xvoid
- Xstfree(st)
- X char *st;
- X {
- X if(st) {
- X free(st);
- X string_count--;
- X }
- X }
- X
- X
- END_OF_FILE
- if test 2207 -ne `wc -c <'stcopy.c'`; then
- echo shar: \"'stcopy.c'\" unpacked with wrong size!
- fi
- # end of 'stcopy.c'
- fi
- if test -f 'udp.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'udp.c'\"
- else
- echo shar: Extracting \"'udp.c'\" \(2234 characters\)
- sed "s/^X//" >'udp.c' <<'END_OF_FILE'
- X/*
- X * udp - Check if UDP traffic is allowed on this host; we open port 1527 on
- X * a system (default of cs.widener.edu), which is expecting it; the
- X * date is output (e.g. very similar to the daytime service). This
- X * will conclusively tell us if UDP traffic on ports > 1000 is allowed.
- X *
- X * It should print out the date if UDP traffic's not blocked on your
- X * system. If it just hangs, try these tests too:
- X * a. run it with -d (e.g. "udp -d"); that goes to the normal UDP port
- X * to print the date. If it works, then you can be sure that any
- X * UDP traffic > port 1000 is blocked on your system.
- X * b. if it hangs too, try "telnet 147.31.254.130 13" and see if
- X * _that_ prints the date; if it doesn't, it's another problem (your
- X * network can't get to me, e.g.).
- X *
- X * Compile by: cc -o udp udp.c
- X *
- X * Brendan Kehoe, brendan@cs.widener.edu, Oct 1991.
- X */
- X
- X#include <stdio.h>
- X#include <sys/types.h>
- X#include <sys/socket.h>
- X#include <netinet/in.h>
- X#ifndef hpux
- X# include <arpa/inet.h>
- X#endif
- X
- X#define SIZE 2048
- X#define HOST "147.31.254.130" /* cs.widener.edu */
- X#define PORT 1527
- X
- Xmain (argc, argv)
- X int argc;
- X char **argv;
- X{
- X int s, len;
- X struct sockaddr_in server, sa;
- X char buf[SIZE];
- X
- X if ((s = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
- X {
- X perror ("socket()");
- X exit (1);
- X }
- X
- X bzero ((char *) &sa, sizeof (sa));
- X sa.sin_family = AF_INET;
- X sa.sin_addr.s_addr = htonl (INADDR_ANY);
- X sa.sin_port = htons (0);
- X
- X if (bind (s, (struct sockaddr *) &sa, sizeof (sa)) < 0)
- X {
- X perror ("bind()");
- X exit (1);
- X }
- X
- X bzero ((char *) &server, sizeof (server));
- X server.sin_family = AF_INET;
- X server.sin_addr.s_addr = inet_addr (HOST);
- X if (argc > 1 && strcmp(*(argv + 1), "-d") == 0)
- X server.sin_port = htons ((unsigned short) 13);
- X else
- X server.sin_port = htons ((unsigned short) PORT);
- X
- X /* yoo hoo, we're here .. */
- X if (sendto (s, "\n", 1, 0, &server, sizeof (server)) < 0)
- X {
- X perror ("sendto()");
- X exit (1);
- X }
- X
- X /* slurp */
- X len = sizeof (server);
- X if (recvfrom (s, buf, sizeof (buf), 0, &server, &len) < 0)
- X {
- X perror ("recvfrom");
- X exit (1);
- X }
- X
- X printf ("%s", buf);
- X close (s);
- X}
- END_OF_FILE
- if test 2234 -ne `wc -c <'udp.c'`; then
- echo shar: \"'udp.c'\" unpacked with wrong size!
- fi
- # end of 'udp.c'
- fi
- if test -f 'vl_comp.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vl_comp.c'\"
- else
- echo shar: Extracting \"'vl_comp.c'\" \(2137 characters\)
- sed "s/^X//" >'vl_comp.c' <<'END_OF_FILE'
- X/*
- X * Copyright (c) 1989, 1990, 1991 by the University of Washington
- X *
- X * For copying and distribution information, please see the file
- X * <copyright.h>.
- X */
- X
- X#include <copyright.h>
- X#include <pfs.h>
- X
- X/*
- X * vl_comp - compare the names of two virtual links
- X *
- X * VL_COMP compares the names of two links. It returns
- X * 0 if they are equal, negative if vl1 < vl2, and positive if
- X * vl1 > vl2.
- X *
- X * ARGS: vl1,vl2 - Virtual links to be compared
- X *
- X * RETURNS: 0 if equal, + is vl1 > vl2, - if vl1 < vl2
- X *
- X * NOTES: Order of significance is as follows. Existence,
- X * name. If names do not exist, then hosttype, host,
- X * native filenametype, native filename. The only time
- X * the name will not exist if if the link is a union link.
- X */
- Xint
- Xvl_comp(vl1,vl2)
- X VLINK vl1;
- X VLINK vl2;
- X {
- X int retval;
- X
- X if(vl1->name && !vl2->name) return(1);
- X if(!vl1->name && vl2->name) return(-1);
- X if(vl1->name && vl2->name && (*(vl1->name) || *(vl2->name)))
- X return(strcmp(vl1->name,vl2->name));
- X
- X retval = strcmp(vl1->hosttype,vl2->hosttype);
- X if(!retval) retval = strcmp(vl1->host,vl2->host);
- X if(!retval) retval = strcmp(vl1->nametype,vl2->nametype);
- X if(!retval) retval = strcmp(vl1->filename,vl2->filename);
- X return(retval);
- X }
- X
- X/*
- X * vl_equal - compare the values of two virtual links
- X *
- X * VL_EQUAL compares the values of two links. It returns
- X * 1 if all important fields are the same, and 0 otherwise.
- X *
- X * ARGS: vl1,vl2 - Virtual links to be compared
- X *
- X * RETURNS: 1 if equal, 0 if not equal
- X *
- X */
- Xint
- Xvl_equal(vl1,vl2)
- X VLINK vl1;
- X VLINK vl2;
- X {
- X return strcmp(vl1->name, vl2->name) == 0 &&
- X vl1->linktype == vl2->linktype &&
- X strcmp(vl1->type, vl2->type) == 0 &&
- X strcmp(vl1->hosttype, vl2->hosttype) == 0 &&
- X strcmp(vl1->host, vl2->host) == 0 &&
- X strcmp(vl1->nametype, vl2->nametype) == 0 &&
- X strcmp(vl1->filename, vl2->filename) == 0 &&
- X vl1->version == vl2->version &&
- X vl1->f_magic_no == vl2->f_magic_no ;
- X
- X }
- X
- END_OF_FILE
- if test 2137 -ne `wc -c <'vl_comp.c'`; then
- echo shar: \"'vl_comp.c'\" unpacked with wrong size!
- fi
- # end of 'vl_comp.c'
- fi
- if test ! -d 'vms' ; then
- echo shar: Creating directory \"'vms'\"
- mkdir 'vms'
- fi
- if test -f 'vms.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms.h'\"
- else
- echo shar: Extracting \"'vms.h'\" \(1159 characters\)
- sed "s/^X//" >'vms.h' <<'END_OF_FILE'
- X#ifndef _ARCHIE_VMS
- X#define _ARCHIE_VMS
- X#include <pmachine.h>
- X
- X#if !defined(MULTINET_30) && !defined(WOLLONGONG) && !defined(UCX)
- X#include "[.vms]pseudos.h"
- X#include "[.vms]types.h"
- X#include "[.vms]in.h"
- X#include "[.vms]signal.h"
- X#include "[.vms]socket.h"
- X#include "[.vms]time.h"
- X
- X#else
- X
- X/* time_t gets multiply defined <ekup> */
- X#ifndef __TYPES
- X#define __TYPES
- X#endif
- X#ifdef MULTINET_30
- X# include "multinet_root:[multinet.include.sys]types.h"
- X# include "multinet_root:[multinet.include.netinet]in.h"
- X# include "multinet_root:[multinet.include.sys]socket.h"
- X# include "multinet_root:[multinet.include.sys]time.h"
- X#endif /* MULTINET_30 */
- X
- X#ifdef WOLLONGONG
- X/* We don't want size_t defined. */
- X# ifndef __STDDEF
- X# define __STDDEF
- X# endif
- X# include "twg$tcp:[netdist.include.sys]types.h"
- X# include "twg$tcp:[netdist.include.netinet]in.h"
- X# include "twg$tcp:[netdist.include.sys]socket.h"
- X# include "twg$tcp:[netdist.include.sys]time.h"
- X#endif /* WOLLONGONG */
- X
- X#ifdef UCX
- X# include <types.h>
- X# include <in.h>
- X# include <socket.h>
- X# include <time.h>
- X# include "[.vms]fd.h"
- X#endif /* UCX */
- X
- X#endif /* Multinet or Wallongong or UCX */
- X
- X#endif /* _ARCHIE_VMS */
- END_OF_FILE
- if test 1159 -ne `wc -c <'vms.h'`; then
- echo shar: \"'vms.h'\" unpacked with wrong size!
- fi
- # end of 'vms.h'
- fi
- if test -f 'vms/fd.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/fd.h'\"
- else
- echo shar: Extracting \"'vms/fd.h'\" \(393 characters\)
- sed "s/^X//" >'vms/fd.h' <<'END_OF_FILE'
- X#ifndef _VMS_FD
- X#define _VMS_FD
- X
- Xtypedef struct fd_set
- X{
- X int fds_bits[1];
- X} fd_set;
- X
- X#define FD_SETSIZE (sizeof (fd_set) * 8)
- X#define FD_SET(f,s) ((s)->fds_bits[0] |= (1 << (f)))
- X#define FD_CLR(f,s) ((s)->fds_bits[0] &= ~(1 << (f)))
- X#define FD_ISSET(f,s) ((s)->fds_bits[0] & (1 << (f)))
- X#define FD_ZERO(s) ((s)->fds_bits[0] = 0)
- X
- X#endif /* _VMS_FD */
- END_OF_FILE
- if test 393 -ne `wc -c <'vms/fd.h'`; then
- echo shar: \"'vms/fd.h'\" unpacked with wrong size!
- fi
- # end of 'vms/fd.h'
- fi
- if test -f 'vms/in.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/in.h'\"
- else
- echo shar: Extracting \"'vms/in.h'\" \(1418 characters\)
- sed "s/^X//" >'vms/in.h' <<'END_OF_FILE'
- X/* netinet/in.h */
- Xstruct in_addr
- X{
- X union
- X {
- X struct
- X {
- X unsigned char s_b1, s_b2, s_b3, s_b4;
- X } S_un_b;
- X struct
- X {
- X unsigned short s_w1, s_w2;
- X } S_un_w;
- X unsigned long S_addr;
- X } S_un;
- X#define s_addr S_un.S_addr
- X#define s_host S_un.S_un_b.s_b2
- X#define s_net S_un.S_un_b.s_b1
- X#define s_imp S_un.S_un_w.s_w2
- X#define s_impno S_un.S_un_b.s_b4
- X#define s_lh S_un.S_un_b.s_b3
- X};
- X
- X#define INADDR_ANY 0x00000000
- X#define INADDR_BROADCAST 0xffffffff
- X#define INADDR_LOOPBACK 0x7f000001
- X
- Xstruct sockaddr_in
- X{
- X short sin_family;
- X unsigned short sin_port;
- X struct in_addr sin_addr;
- X char sin_zero[8];
- X};
- X
- X#define ntohl(x) (( (((unsigned long) x) >> 24)& 0x000000ff ) |\
- X ( (((unsigned long) x) >> 8) & 0x0000ff00 ) |\
- X ( (((unsigned long) x) << 8) & 0x00ff0000 ) |\
- X ( (((unsigned long) x) << 24)& 0xff000000 ))
- X#define ntohs(x) (( (((unsigned short) x) >> 8) |\
- X ( (((unsigned short) x) << 8)) & 0xffff ))
- X#define htonl(x) (( (((unsigned long) x) >> 24)& 0x000000ff ) |\
- X ( (((unsigned long) x) >> 8) & 0x0000ff00 ) |\
- X ( (((unsigned long) x) << 8) & 0x00ff0000 ) |\
- X ( (((unsigned long) x) << 24)& 0xff000000 ))
- X#define htons(x) (( (((unsigned short) x) >> 8) |\
- X ( (((unsigned short) x) << 8)) & 0xffff ))
- X
- X#define IPPORT_RESERVED 1024
- END_OF_FILE
- if test 1418 -ne `wc -c <'vms/in.h'`; then
- echo shar: \"'vms/in.h'\" unpacked with wrong size!
- fi
- # end of 'vms/in.h'
- fi
- if test -f 'vms/multi.opt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/multi.opt'\"
- else
- echo shar: Extracting \"'vms/multi.opt'\" \(73 characters\)
- sed "s/^X//" >'vms/multi.opt' <<'END_OF_FILE'
- Xsys$library:vaxcrtl.exe/share
- Xmultinet:multinet_socket_library.exe/share
- END_OF_FILE
- if test 73 -ne `wc -c <'vms/multi.opt'`; then
- echo shar: \"'vms/multi.opt'\" unpacked with wrong size!
- fi
- # end of 'vms/multi.opt'
- fi
- if test -f 'vms/pseudos.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/pseudos.h'\"
- else
- echo shar: Extracting \"'vms/pseudos.h'\" \(439 characters\)
- sed "s/^X//" >'vms/pseudos.h' <<'END_OF_FILE'
- X/* These are so we don't end up using the MultiNet versions. */
- X#define socket VMSsocket
- X#define bind VMSbind
- X#define connect VMSconnect
- X#define listen VMSlisten
- X#define accept VMSaccept
- X#define select VMSselect
- X#define recv VMSrecv
- X#define recvfrom VMSrecvfrom
- X#define send VMSsend
- X#define sendto VMSsendto
- X#define getsockname VMSgetsockname
- X#define shutdown VMSshutdown
- X#define getsockopt VMSgetsockopt
- X#define setsockopt VMSsetsockopt
- END_OF_FILE
- if test 439 -ne `wc -c <'vms/pseudos.h'`; then
- echo shar: \"'vms/pseudos.h'\" unpacked with wrong size!
- fi
- # end of 'vms/pseudos.h'
- fi
- if test -f 'vms/signal.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/signal.h'\"
- else
- echo shar: Extracting \"'vms/signal.h'\" \(261 characters\)
- sed "s/^X//" >'vms/signal.h' <<'END_OF_FILE'
- X/* signal.h */
- X#define SIGURG 16
- X#define SIGTSTP 18
- X#define SIGCHLD 20
- X#define SIGIO 23
- X#define sigmask(m) (1 << ((m)-1))
- X
- X#ifndef __GNUC__
- X# include <sys$library:signal.h>
- X#else /* Gnu C */
- X# include <gnu_cc_include:[000000]signal.h>
- X#endif /* not Gnu C */
- END_OF_FILE
- if test 261 -ne `wc -c <'vms/signal.h'`; then
- echo shar: \"'vms/signal.h'\" unpacked with wrong size!
- fi
- # end of 'vms/signal.h'
- fi
- if test -f 'vms/socket.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/socket.h'\"
- else
- echo shar: Extracting \"'vms/socket.h'\" \(527 characters\)
- sed "s/^X//" >'vms/socket.h' <<'END_OF_FILE'
- X/* sys/socket.h */
- X#define SOCK_STREAM 1
- X#define SOCK_DGRAM 2
- X
- X#define SO_DEBUG 0x01
- X#define SO_ACCEPTCONN 0x02
- X#define SO_REUSEADDR 0x04
- X#define SO_KEEPALIVE 0x08
- X#define SO_LINGER 0x80
- X#define SO_DONTLINGER (~SO_LINGER)
- X
- X#define AF_UNSPEC 0
- X#define AF_ERROR 0
- X#define AF_INET 2
- X#define AF_CCITT 10
- X#define AF_X25 10
- X
- Xstruct sockaddr
- X{
- X unsigned short sa_family;
- X char sa_data[14];
- X};
- X
- X#define SOL_SOCKET 0xffff
- X
- X#define MSG_OOB 1
- X#define MSG_PEEK 2
- END_OF_FILE
- if test 527 -ne `wc -c <'vms/socket.h'`; then
- echo shar: \"'vms/socket.h'\" unpacked with wrong size!
- fi
- # end of 'vms/socket.h'
- fi
- if test -f 'vms/time.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/time.h'\"
- else
- echo shar: Extracting \"'vms/time.h'\" \(459 characters\)
- sed "s/^X//" >'vms/time.h' <<'END_OF_FILE'
- X#ifndef __PKTIME
- X#define __PKTIME
- X
- Xstruct timeval
- X{
- X long tv_sec;
- X long tv_usec;
- X};
- X
- Xstruct timezone
- X{
- X int tz_minuteswest;
- X int tz_dsttime;
- X};
- X
- Xstruct itimerval
- X{
- X struct timeval it_interval;
- X struct timeval it_value;
- X};
- X
- X#define ITIMER_REAL 0
- X#define timerclear(x) (x)->tv_sec = (x)->tv_usec = 0
- X
- X#ifndef __GNUC__
- X# include <sys$library:time.h>
- X#else /* not Gnu C */
- X# include <gnu_cc_include:[000000]time.h>
- X#endif /* Gnu C */
- X
- X#endif /* __PKTIME */
- END_OF_FILE
- if test 459 -ne `wc -c <'vms/time.h'`; then
- echo shar: \"'vms/time.h'\" unpacked with wrong size!
- fi
- # end of 'vms/time.h'
- fi
- if test -f 'vms/types.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/types.h'\"
- else
- echo shar: Extracting \"'vms/types.h'\" \(467 characters\)
- sed "s/^X//" >'vms/types.h' <<'END_OF_FILE'
- X/* sys/types.h */
- X#ifndef _types_
- X#define _types_
- X
- X#ifndef __GNUC__
- X# include <sys$library:stddef.h>
- X#endif /* not Gnu C */
- X
- Xtypedef unsigned char u_char;
- Xtypedef unsigned short u_short;
- Xtypedef unsigned int u_int;
- Xtypedef unsigned long u_long;
- X
- Xtypedef long daddr_t;
- Xtypedef char *caddr_t;
- X
- X#include <sys$library:types.h>
- X
- Xtypedef unsigned short ino_t;
- Xtypedef char *dev_t;
- Xtypedef unsigned int off_t;
- Xtypedef long key_t;
- X
- X#include "[.vms]fd.h"
- X
- X#endif /* _types */
- END_OF_FILE
- if test 467 -ne `wc -c <'vms/types.h'`; then
- echo shar: \"'vms/types.h'\" unpacked with wrong size!
- fi
- # end of 'vms/types.h'
- fi
- if test -f 'vms/ucx.opt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/ucx.opt'\"
- else
- echo shar: Extracting \"'vms/ucx.opt'\" \(54 characters\)
- sed "s/^X//" >'vms/ucx.opt' <<'END_OF_FILE'
- Xsys$library:vaxcrtl.exe/share
- Xsys$library:ucx$ipc/lib
- END_OF_FILE
- if test 54 -ne `wc -c <'vms/ucx.opt'`; then
- echo shar: \"'vms/ucx.opt'\" unpacked with wrong size!
- fi
- # end of 'vms/ucx.opt'
- fi
- if test -f 'vms/woll.opt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/woll.opt'\"
- else
- echo shar: Extracting \"'vms/woll.opt'\" \(66 characters\)
- sed "s/^X//" >'vms/woll.opt' <<'END_OF_FILE'
- Xsys$library:vaxcrtl.exe/share
- Xtwg$tcp:[netdist.lib]twglib.olb/lib
- END_OF_FILE
- if test 66 -ne `wc -c <'vms/woll.opt'`; then
- echo shar: \"'vms/woll.opt'\" unpacked with wrong size!
- fi
- # end of 'vms/woll.opt'
- fi
- echo shar: End of archive 1 \(of 6\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 6 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
- exit 0 # Just in case...
-