Chapter 1

Overview

The Scheme Untergrund Networking Package (SUnet, for short) is a collection of applications and libraries for Internet hacking in Scheme. It runs under Scsh, the Scheme shell. SUnet includes the following components:

The SUnet Web server
This is a highly configurable HTTP 1.0 server in Scheme. The server is accompanied by some libraries which may also be used separately:

The SUnet ftp server
This is a complete anonymous ftp server in Scheme.
ftp client library
This library allows you to access ftp servers programmatically.
netrc library
This library parses authentication information contained in ~/.netrc.
SMTP client library
This library allows you to forge mail from the comfort of your own Scheme process.
POP3 client library
This library allows you to access your POP3 mailbox from inside scsh.
RFC822 header library
This library parses email-style headers.
Daytime and Time protocol client libraries
These libraries lets you find out what time it is without paying for a Rolex.
DNS client library
This is a complete, multithreaded DNS library.
An ls clone
This library displays Unix-style directory listings without running ls.

1.1  Obtaining the system

The SUnet code is available here. To run the code, you need version 0.6.4 or later of scsh.

1.2  How to use the packages

Untar the SUnet distribution somewhere. Fire up scsh and load the SUnet packages.scm file into the configuration package. After that, all structures defined by SUnet are available:

atari-2600[72] scsh
Welcome to scsh 0.6.4 (...)
Type ,? for help.
> ,config ,load packages.scm
modules.scm
> ,open ftp
Load structure ftp (y/n)? y
[netrc netrc.scm]
[ftp ftp.scm]
> call library code
> ,exit
atari-2600[73]