bsw-proxy Description - an IRC proxy for the BrettSpielWelt.de connection


0. TOC

0. TOC
1. Introduction
2. Usage/Compatibility
3. Demonstration
4. Bugs
5. TODO
6. Author/Copyleft


1. Introduction

As a (meanwhile) old IRC aficionado, I sorely missed the elegant and
standardized features of IRC (RFC 1459, 2810, 2811, particularly 2812, 2813)
in the proprietary Java interface. A quick tcpdump proved that the
messages were text messages with / commands like IRC clients accept
from the user interface, but unlike the strictly defined protocol IRC
clients talk to the server. It was therefore only logical to try and write
a small proxy daemon to on the one hand translate the commands/responses
and on the other hand keep a persistent connection to client, server
and IRC client in case one of them should vanish.


2. Usage/Compatibility

-------------------------------------------------------------------------------
> ./bsw-proxy -h
./bsw-proxy: proxies BrettSpielWelt.de requests to
        a BSW client and multiple IRC clients
usage:
-h           this help
-d           debug on
-f           don't fork (run in foreground)
-i port      listening port instead of default 7670
-I port      irc listening port instead of default 6667
-p port      server port instead of 7670
-s address   server address instead of 213.155.73.107
-l           logfile (default: stderr for fg, /dev/stderr for daemon)
-U user      username
-P pass      password
-------------------------------------------------------------------------------

bsw-proxy comes in source code and has to be compiled before usage. A
(very) simple Makefile is provided, autoconf support (see issues ...)
might be added at a later time for portability and convenience.

For the moment it compiles fine with gcc on linux (x86 and ppc tested, so 
endianness should be no issue); gcc on aix complains that MSG_DONTWAIT is 
undeclared.

Bsw-proxy worked fine in November 2005, changes in the server protocol might
change that fact.

For the moment, exactly one BSW client can be connected (however, there is 
no limit on the number of IRC clients - they all share the BSW username,
though). 

Implementing spectator mode or proxying for multiple users is not seriously 
considered at the moment.


3. Demonstration

> ~/src/bsw-proxy/./bsw-proxy -U user -P password -q
(backgrounded)

> BrettSpielWelt&
> epic user localhost
...
*** Connecting to server port 6668 of server localhost [refnum 0]
*** welcome (from )
/join #SPV
*** user (user@localhost) has joined channel #spv
*** Mode change "+n" on channel #SPV by 
*** Users on #SPV: user
---- Du bist bereits in diesem Channel oder besitzt nicht das Recht ihn zu
+betreten.
-user1:#SPV- wie?
-user2:#SPV- DOKO mit zögern
-user3:#SPV- mit /ghook carson
-GuenniJauch:#SPV- *** Quizzer gesucht im /channel QuizcenterS ***


4. Bugs

Galore. see also TODO file and note about compilation on AIX above.


5. TODO

see TODO file.


6. Author/Copyleft

(c) 2005 Alexander Oelzant <alexander@oelzant.priv.at> under the GNU GPL 2.0
or later, see http://www.gnu.org/copyleft/gpl.html and the COPYING file


