DCBouncer
| Developed by | Poy |
|---|---|
| Initial release | 2008 |
| Stable release | N / A [edit] |
| Beta release | N / A [edit] |
| Written in | C++ |
| Platform | Windows, Linux |
| Available in | 1 languages |
| Type | Misc |
| License | GNU GPL 2 |
| Website | DCBouncer Launchpad Site |
Introduction
DCBouncer is a bouncer / proxy for Direct Connect networks. The program acts as a relay between hubs and clients. DCBouncer runs as a daemon, generally on a remote server, and tries to stay connected all the time to the hubs it has been assigned to proxy. Clients can then connect to it instead of directly connecting to the hubs. DCBouncer ensures communication between the user and the hub. While the user is offline, DCBouncer stays connected to the hub and it logs messages that the user may miss; then when the user logs back in, it forwards them all.
Installing and running DCBouncer
Downloads page: https://launchpad.net/dcbouncer/+download
DCBouncer is distributed as a pre-compiled Linux installer for x64 systems, and as a pre-compiled executable for Windows. Alternatively, one can always download the source code and compile DCBouncer oneself.
When installed, there should be the following 2 files:
- bin/DCBouncer: Binary file to run the DCBouncer daemon.
- etc/DCBouncer: Configuration file to edit with a text editor.
On Windows, the configuration file is first etc/DCBouncer_default.txt; it has to be edited with a text editor then renamed to etc/DCBouncer.txt.
Here is more information about what each mandatory option of that configuration file means:
- LISTENING_PORT: The port that DCBouncer will be listening on for incoming connections from the client. The client just connects to protocol://address_of_your_server:LISTENING_PORT (where "protocol" is either "dchub" or "adc" on DC++ and "address_of_your_server" is the address (IP or domain name) of the server on which DCBouncer is running) to reach DCBouncer, and through it, the remote hub. Note that for DCBouncer to handle multiple hubs simultaneously, each LISTENING_PORT has to be different from one another.
- HUB_ADDRESS: The address (IP or domain name) of the remote hub.
- HUB_PORT: The port number of the remote hub.
- OK: Mandatory line that tells DCBouncer that the profile for one hub has now be set.
Additionally, one may use the following options to customize each profile (to be added before "OK"):
- SECURE (facultative): By default, DCBouncer establishes secure TLS connections. This has to be set to 0 if the hub doesn't support it (most (old) NMDC hubs don't).
- PASS (facultative): The pass of the account on the remote hub. Must be defined for ADC hubs. PASS (facultative): The pass of the account on the remote hub.
- OFFLINE_DESCRIPTION (facultative): If not empty, the user description changes to the specified message and the share size to 0 when the user goes offline (when the connection between the client and DCBouncer dies). If a percent sign ('%') is found, it is replaced by the number of hours since the last disconnection. Defaults to "Offline forĀ % hours (DCBouncer logging)". One might want to disable this (by specifying "OFFLINE_DESCRIPTION=") in some (old) NMDC hubs that limit the amount of information about oneself that one is allowed to send.
For DCBouncer to proxy multiple hubs, that list of options (from "LISTENING_PORT" to "OK") has to be copy-pasted as many times as desired. Note: each hub definition must have a different "LISTENING_PORT" number.
DCBouncer accepts one command-line argument: the path to its configuration file. If not specified, "../etc/DCBouncer" is used by default.
Most of the following instructions apply to POSIX systems; for Windows, all one has to do is run
DCBouncer.bat.
To run DCBouncer on auto-start, one can add this line to the "/etc/rc.local" file:
/usr/local/bin/DCBouncer
DCBouncer runs as a daemon; as a result, the process used to start it will just fire up the daemon and exit immediately, without displaying any message in the console. Instead, DCBouncer logs its messages to the standard /var/log/messages place.
To exit DCBouncer, the easiest way is to use the "Quit DCBouncer" user command. Otherwise, one has to kill the corresponding process:
ps aux | grep DCBouncer (gives the process ID of the process to kill.)
kill PID (where PID is the process ID found above.)
Client commands
DCBouncer adds a "DCBouncer" sub-menu in the client's hub-related user commands. Current commands:
- [Reconnect the hub] Tells DCBouncer to disconnect the connection it has been maintaining with the remote hub; DCBouncer will then try to restore that connection as it always does.
- [Restart DCBouncer]
- [Quit DCBouncer]