The msg system is a collection of programs
for the UNIX operating system that implements an instant messaging tool.
I wrote this as a learning excercise, to better understand threads and
sockets and have found it to be a reasonably useful system. Most
of the source code is written in C++, with one program in Perl/Tk and one
in the Bourne shell.
The system consists of 6 programs:
msg_server This program provides
a name server. Required information about each registered user is
stored in this server.
msgd This is a daemon program
that manages each user's access into the system. The daemon receives
each message and displays it in a window, as well as logging it in a text
file.
msg_locate This program queries
the name server for information about registered users.
msg This program does the work
of delivering a message. A copy of the message will be delivered
to the sender's daemon as well, marked as a copy. This allows the
user to follow both sides of a conversation.
xmsg This program is an Xwindow
interface to the msg program, providing
facilities for spell checking, user id aliases, and distribution to multiple
recipients. The program also provides a convenient display of the
log file.
msg_autoreply Added in release 1.1,
this program allows a user to tell his/her daemon to send an automatic
reply to all incoming messages. The -set option (followed
by some string) sets the daemon to autoreply mode with this string as the
automatic reply, the -unset option returns the daemon to normal
mode. When in autoreply mode, messages are received and displayed
by the daemon normally.
System requirements:
As the source code is written in C++, you will need a C++ compiler.
I have built the system using the GNU C++
compiler, version 2.8.1. As support for features of the language
standard varies from compiler to compiler, the code may not compile "out
of the box" with other compilers; I suggest using the GNU version.
It's a pretty good compiler anyway.
The system makes use of POSIX threads, so the pthreads library must be
installed. I believe this is standard on all UNIX systems.
The xmsg program requires a Perl interpreter,
version 5.0 or later, and the Tk package as well as other standard packages
that should come with the interpreter. This also may be downloaded
from the GNU site.
You may download the source code free of charge. I only ask that
if you do, please let me know.
It's nice to know that others are using it. If you have any suggestions
for improvements, please forward them on to me.