Miscellaneous Programs Chris Has Written

Over time, I've written an assortment of programs, often too small to be worth formally announcing and distributing. (Well, so far, always too small.) You can find the Linux-specific ones on my Linux page; this page has the general ones.

There are no guarantees associated with any of these programs or snippets. All programs and pieces are licensed under the GNU General Public License (version 2) unless otherwise stated. Feedback (especially error reports or improvements) can be directed to me at any of my addresses; one is available at my home page here.

Standalone programs

These are self-contained standalone programs, hopefully of some use.

mirrorcheck (Python source)
Mirrorcheck is intended to check one or more ftp mirrors (the slaves) against a master ftp site and report any differences or problems. It has a number of options, documented in the comments at the start of the file. It is written in Python 1.5.2, but I believe it should work for higher versions, and requires the (standard) ftplib module and Unix SIGALRM.
(Last updated Wednesday May 16th 2001)

Python snippets

The following are chunks of Python code, classes, etc, intended for use in more complete Python programs. They have been tested in Python 1.5.2 but I believe they should work in higher versions too. Since these are some of my first Python programs and classes, comments on the style and suggestions for improvements (or for replacement with standard modules) is not only welcome but eagerly solicited.

idclient.py (Python source)
Idclient.py is a client for the ident (aka auth, TCP port 113) protocol. As a client it can be used to query a remote identd server for its claim as to the owner of the remote end of a connection. Also of potential use in this module is the skeleton of a class for having sockets with a (global) timeout.

As far as I know, there is no other Python identd client (although there are several servers).
(Last updated Wednesday May 16th 2001)

pserver.py (Python source)
Pserver.py is a set of classes for implementing non-threaded TCP servers, either line oriented or simply block data oriented, in Python. TCP IO is handled asynchronously and non-blocking, so that as far as clients are concerned they can send and get data freely. A single process can handle connections on multiple ports, which may invoke different actions (or the same actions).

This set of classes may duplicate functionality already in core Python modules, but the last time I looked (before I wrote this code) the existing modules either hurt my head to think about or seemed unsuitable.
(Last updated Wednesday May 16th 2001)

Chris Siebenmann, created early on May 17th 2001