DCTC – a Direct Connect text client

DCTC is available under GPL. If you want to contribute, you can:

  • help develop: write some pieces of code, add or debug features.
  • help document: DCTC documentation is probably not the best. Considering adding to or/and rewriting the current online documentation, even a single paragraph or a FAQ are useful.

Summary

Basic client: Latest DCTC version is 0.85.9 (2004/01/24). CHANGES can be read here.
GUI: Latest dc_gui version is 0.80 (GTK1.2: 0.66, all above versions require gtk+>=2.1 and gnome 2.x) .
HUB: Latest dchub version is 0.5.2. CHANGES can be read here.

Mailing lists and CVS

  • DCTC’s CVS and mailing list are hosted on Savannah.
  • dchub’s CVS and mailing list are hosted on Savannah.
  • dc_gui2′s CVS and mailing list are hosted on Savannah.

Other useful links

  • You can find debian package of DCTC and dc_gui.
    Binary RPM packages can also be found here (Thanks to Tobbe). Source RPM packages are available on the current site and on the mirror (see above).
  • NetBSD port is available here for DCTC and dc_gui2.
  • If you prefer a Text based UI, you can find a good one here (thanks to Marcin Slonicki).
  • If you are more KDE than gnome, a QT based UI can be found here.
  • You can also use dctcd to start DCTC as a background service.

 I. What is DCTC

DCTC is a Direct Connect
clone, a windoz client allowing users to share their files and talk
(like IRC but more software sharing oriented) using a proprietary
protocol.

DCTC stands for Direct Connect Text Client.

DCTC is release under GPL however, if you use it regularly and want to support its
development, you can send a small fee.

II. What is not DCTC

DCTC is written from scratch without any help from neo-modus using our experience of hotline protocol.

DCTC is not designed to be used by human. It doesn’t contains any GUI or CLI. The goal of this project
is to build a Direct Connect client which can be used by other programs. So even if you can enter command using
the keyboard, don’t say the human interface is poor.

III. DCTC functions

Here is a list of yet supported functions.

Search:

  • Query: passive dans active mode, single or multi hub search.
  • Reply: in both passive and active mode.

 Transfer

  • Download: it works, both in passive and active mode.Note: when a transfer is aborted, DCTC only notifies this fact, it doesn’t try to resume the download.
  • Upload: it works, both in passive and active mode.

Public/Private chat: they fully work.
Users: it can display both user information and user list of hub.

DCTC also includes special features like:

  • Segmented Download (GDL): download the same file from multiple sources.
  • autoscan: to ease GDL usage, DCTC can also periodically search for new download sources.
  • Multi hub search and download: a search or a download can be performed on hub not connected to the current DCTC. The command is relayed by other DCTCs (DCTC link).
  • Direct Download (DDL): it is possible to start transfers without hub help. Thus, you can download from someone who is not on one of the hub you are.
  • SOCKS proxy (v4 and v5) and web proxy support to allow access even from protected networks requiring a proxy to go out.
  • Upload and download bandwidth limitation.
  • Big file support (64 bits offset).

IV. Sources

DCTC sources are also available here and source RPM package here. A mandrake 9.2 binary package is available (pIV version). A mirror of the files are available here (Thanks to Andreas Åberg).

V. dc_gui

dc_gui is a GUI for DCTC. Currently, it is still a beta version, some features don’t work but the most useful ones still are available:

  • Currently, dc_gui can start new client and/or attach itself to already running DCTC (version 0.55 and above).
    You can also start several connection at the same time. You can switch between several DCTC.
  • search: mono-hub search works and takes into account all search criterias. It is already possible
    to start a download by clicking on the wanted file.
  • user list: the user list is simply displayed. It is already possible to retrieve user shared files list.
  • transfers: transfers are displayed and can be killed (either using the popup menu or using the ‘d’ key).
  • Preferences: current DCTC preferences are displayed and taken into account to start new client or to update running client.

A mirror of the files are available here (Thanks to Andreas Åberg).

VI. last minute bug fix

  • In dctc v0.56, some users encounter error while compiling db.c. Fix: edit db.c and at line 30, add #include <netinet/in.h>
  • In dctc v0.62.0, if nothing is shared, dctc dies when it tries to rebuild the shared file database. Fix: edit db.c and at line 406 (after new_shared=…), add if(shared_dirs!=NULL) { and at line 415, just before the G_UNLOCK, add }.
  • In dctc v0.71.0, there is a bug crashing dctc. Upgrade to v0.71.1 to avoid it.
  • In dctc v0.79.0, there is a bug making GDL hangs if “wake up” event is enabled. Upgrade to 0.79.1 to avoid it.
  • In dctc
    v0.83.5, if you have a compilation error in userinfo.c (probably because
    you use a gcc2.x and not a 3.x), edit the file and remove the line 102 printf(“doing: %d\n”,idx);.

 VII. dchub

dchub is a DC hub clone. Currently, it is a early stage version.
The most useful features are still here. The following features are
available:

  • User commands:
    • relay active and passive search query
    • relay passive search result
    • nick list and op list
    • public chat message
    • private chat message
    • get user info
    • relay active and passive transfer query
    • registered user supported
    • broadcast message
    • redirect one user (using chat command, not DC menu)
    • kick a user
    • temporary or permanently ban a user
    • Multiuser private chat (=more than 2 users in a private chat)
  • Hub control:
    • registered user supported (==password support)
    • hub registration on DC hub list
    • max #users
    • redirect incoming users on hub full
    • Perl script support (some sample scripts are provided, including a working one handling minimum share requirements).
    • Python script support.
    • plugin support (a sample is provided).
    • external program support (allows write of programs acting as virtual user on the hub)
    • hub network

dchub sources (v0.5.2) are available here and RPM source package here. To compile, ./autogen.sh ; make; make install. A mirror of the files are available here (Thanks to Andreas Åberg).

VIII. last minute bug fix

  • In dchub-1.2, line 317, replace msg=g_string_new(“$OpList “); by g_string_sprintf(msg, “$OpList “);.