[comp.sources.reviewed] v01i001: supersrv - offer any program as a network service, Part00/02

Steven Grimm <Steven.Grimm@Eng.Sun.COM> (06/01/91)

Submitted-by: Steven Grimm <Steven.Grimm@Eng.Sun.COM>
Posting-number: Volume 1, Issue 1
Archive-name: supersrv/part00

Environment: BSD UNIX

Tested Environments:
	IBM-RT running Mach
	Sun Sparc-1 running SunOS 4.1.1
	Ultrix rev 4.1 VAX
	Sequent Dynix V3.0.17.9
	DEC Ultrix 4.1
	Sun SunOS 4.1
	MIPS RISC/os 4.52
	BSD 4.3
	BSD 4.3-Tahoe
	Sun 4/490, SunOS 4.0.3

Dates:
	Submission Received:  Apr 30 1991
	Reviews Returned: May 16 1991
	Revised Submission Received: May 17 1991
	Submission Accepted: May 31 1991

Author's Summary:

    SuperServer 1.4 is a software package which allows users to offer
    services to the network without any special programming knowledge or
    superuser access to a system.  In fact, even shell scripts may be
    offered as network services.  SuperServer eases debugging of network
    applications, and provides a consistent front-end to a variety of
    programs.  The manual page for the "server" program contains a
    detailed description of the SuperServer system.

    SuperServer runs under BSD UNIX derivatives, and should compile on
    any system with Berkeley-style networking calls (socket(), select(),
    accept(), etc.)

Reviewers' Comments:

Supersrv is a useful tool to make available services to the network with
a user not necessarily being super-user.  It is very well written code
and its user interface is well defined.  Learning how this software works
will probably give a person some insight into TCP/IP sockets and client/server
architecture.  I recommend this software without reservation.


This package lets people use their own or each other's programs over
the network. The program 'server' installs a server on your machine
to accept calls from other machines; your $HOME/.services file specifies
which services you are offering (a service can be any executable file).
The program 'client' calls a server on your or any other machine: you
can list available services or invoke a specific service. There is no
simple way to find out which machines offer services, but it is a great
way to let your friends and colleagues (or your enemies) use your
software and your machine.
...
I compiled supersrv on several machines and it appears to work. After
setting up a .services file, I called "server" on machine "x" to set up
the server. After doing this for several machines on the internet, by
calling "client x" I was able in all cases to get the list of services
listed in the .services file on "x". For this I have used /bin/cc: in
one case, using gcc (version 1.39) gave me a server which would accept
connections and hang. Other than this, the software performs very well,
and I think it makes the network as a whole much more useful and
interesting.


All in all, the supersrv package was put together rather well.
...
I'd suggest this to someone who needed such a thing .. it's
constructed well and doesn't flinch when you try to hit it with
something.


-- 
        Andrew Patrick acting as Comp.Sources.Reviewed Moderator
              Department of Communications, Ottawa, CANADA
                           csr@calvin.doc.CA