TITS

Tiny Terminal Server

Description

The tits program implements a very simple terminal server which provides network access, via telnet, to a machine's serial ports.

Any number of telnet clients may connect to a single tits port. All clients will see exactly the same output as well as being able to send keystrokes simultaneously if permitted by the configuration file.

Tits implements access control using a combination of TCP wrappers and configuration file options to restrict which clients can connect, and the level of access they have to the serial port.

Tits multiplexes the data streams between all configured serial ports and connected clients within a single non-threaded process. Thus it minimises system context switching overhead when there is a high I/O load

Note that tits was written specifically to run on NetBSD. However, is has been ported to FreeBSD (via their ports framework), and should work on Linux with a little effort. It will not run on M$ Windows.

News

Jan 15, 2011 Version 1.3.0 of tits is now available.

Added experimental reverse telnet server.

Support insertion of a short inter-character delay for tty output to slow devices. (experimental).

Add an 'exclusive' client property which, when connected, will prevent input/output for all other connected clients. Provide a way to specify an additional client which can override this restriction.

Add support for hot-pluggable tty(4) devices such as USB-Serial adapters/modems. If 'pluggable true;' is specified in the configuration file, then treat errors while reading/writing the tty device as non-fatal. We will try to re-open the device periodically as long as there are connected clients. We will not disconnect clients in this case, but any input from them will be discarded while the tty device is unavailable.

Pull in patches for DragonflyBSD, via NetBSD's pkgsrc.

Sep 19, 2006 Version 1.2.2 of tits is now available.

Added "closeidle true/false" to the tty server's config file option list to tell the server that it should close the terminal device when there are no clients connected to the service.

Added a new client "masterpty", which makes it possible associate a pseudo-tty device with a service. For example, you can now use tip(1) to connect to the slave pty, which will cause the master side to be connected to the server.

If tits is invoked as "stdio2pty", it will allocate a pseudo-tty device and connect its stdin/stdout to the master side. It will fork(2) and exec(2) a program specified on the command line. This program will have *its* stdin/stdout connected to the slave side of the pty. One application for this is to execute pppd(8) from inetd.conf.

Sep 1, 2003 Version 1.1.1 of tits is now available.

This version adds support for a "raw" protocol based on the existing telnet code, and a "suppressbanner" client option, for the benefit of the "raw" protocol.

This version also adds a new option for the tty server. "xonxoff true|false" enables configutation of XON/XOFF software flow control.

Nov 25, 2002 Version 1.0.3 of tits is now available.

This release fixes a bug whereby the buffer used to store the results of a reverse DNS lookup of a client's IP address was too short, resulting in an error which caused the server to exit.

Note: this did not cause a buffer-overrun since the buffer size was used as the upper bound of any copies into it. Therefore, there is no security risk in continuing to use the previous release.