This is NWSL (previously CSTC) version 5.0 of SOCKS, a package that allows Unix
hosts behind a firewall to gain full access to the internet without requiring
direct IP reachability.  It does require a SOCKS server program being run on a
host that can communicate directly to hosts behind the firewall as well as hosts
on the Internet at large.  It is based on the original SOCKS written by David
Koblas <koblas@netcom.com> and the work of the AFT working group of the IETF.

To get the basics on how to compile things, you can read INSTALL.  There are
several package specific options that can be set:

--with-krb5[=path]		Tells socks5 if it should expect to find
				kerberos (it will try to guess by looking in
				/etc/inetd.conf for a krlogin line), and
				possibly the path where kerberos is found...

--with-ident[=path]		Tells socks5 if it should expect to find
				ident header file and library, and
				possibly the path where ident is found...

--with-debug			Turns on debugging and compile time warnings
				(for gcc), and turns off optimization

--with-static			Turns on static compilation of most binaries.
				Some people like this; Some people don't.

--with-threads			Tries to turn on thread support if available on
				your OS.   

--with-libconffile=filename	Sets the client config file 
				[default is /etc/libsocks5.conf]

--with-srvconffile=filename	Sets the server config file 
				[default is /etc/socks5.conf]

--with-srvpidfile=filename	Sets the server pid file
				[default is /tmp/socks5.pid]

--with-srvpwdfile=filename	Sets the server username/password 
				authentication file
				[default is /etc/socks5.passwd]

--with-srvidtfile=filename	Sets the server ident file
				[default is /tmp/socks5.ident]

--with-default-port=number	Sets the default socks port number
				[default is 1080]

--with-default-server=hostname	Sets the default socks server
				[default is localhost]

--with-default-version=number	Sets the default socks version     
				[default is 0, direct]

--with-syslog-facility=facility Sets the default syslog facility
				[default is LOG_DAEMON]

--with-monitor[=path]		Tells socks to build in monitor support.  It may
				also tell it where to look for the monitor's 
				include files and library.

--with-passwd			Defines USE_PASSWD, telling the server to use the 
				system password file for checking passwords in 
				socks5 username/passwd exchanges instead of a file
				with just socks5 usernames and passwords.  This is
				not recommended.

At present there are two separate parts of socks5 included in this distribution,
the clients and the server.  

Once built, the server can be run in one of five ways.  It can be run via inetd
by adding the -i flag.  It can be run standalone (e.g. from rc scripts), where
it should perform much better, by running it without any flags.  It can also be
run standalone and preforking by running it with the -p flag.   For debugging,
the server can be run -o, where it will accept only one request and never fork.
Finally, if you configured --with-threads, and threads are available on your OS,
you can run it -t, to turn on threading (standalone).  

If the server is run with -d flag, debugging is turned on.  It can also be
turned on by by setting SOCKS5_DEBUG in the environment or in the config file,
socks5.conf.  To keep the standalone versions in the foreground, you can specify
the -f flag, and to limit the number of children being run you can use the "-n #". 

So far as clients go, socks currently comes with ftp, telnet, archie, finger,
whois, rping and rtraceroute.  For some operating systems, a shared library
version of the socks library is built.  Once built, this alleviates the need to
have separate clients, and instead normal clients can be run by prefixing the
command with "runsocks", a shell script included in the shlib directory.
Runsocks basically does dynamic library reordering to cause the new shared
library to be linked in before libc, so you get "socksified" connects, binds,
etc... when appropriate, rather than the normal ones.  Currently this is
known to work under: FreeBSD 2, SunOS 4, Solaris 2, Irix 5, and OSF1.

For more information (if you have web access) see http://www.socks.nec.com/.

Also, we've created a mailing list, socks5@syl.dl.nec.com, for discussing
problems, suggestions, etc...With this version of socks5 (for now, at least).
To subscribe, send mail to "majordomo@syl.dl.nec.com" with no subject, and a
body which reads "subscribe socks5".

For more in depth discussions and especially for helping out with problems,
another, more in depth mailing list is available, socks5-dev.  You'd subscribe
to it the same way, but with the body reading "subscribe socks5-dev".

For people who just want to submit bugs, or send mail which will not be
distributed to a mailing list, you can send mail to socks5-bugs@syl.dl.nec.com.

PLEASE NOTE: When submitting bug reports, it is immensely helpful for you to 
to turn on debugging beforehand.  Again, this can be done by setting
SOCKS5_DEBUG in the environment for clients or the shared library, or by running
it with the -d flag on the command line for the server.  It helps us track down
exactly what's going on much much better...  

Kerberos users: You may have trouble building the shared library if your
Kerberos libraries are not sharable.  If you do build it, you may still have
problems with garbage appearing in your output.  This has to do with how read
and write are replaced by your shared linker.  To alleviate the problem, you may
want to use runsocks without integrity checking or confidentiality on. To do
that, you can set SOCKS5_NOINTCHK in your environment before using runsocks.

RealAudio users: No special setup is required for RealAudio users.

Good luck.  We look forward to your feedback...(socks5-comments@socks.nec.com)

