=head1 About ncdc
=head2 What about other text-mode clients?
L - A rather nice client, yet
not exactly there. It's limited to connecting to a single hub, hasn't been
updated since 2006, and the readline interface is slightly awkward to use.
L - Can't comment much on this,
except maybe that rocket science is perhaps easier than getting nanodc to
compile.
LDCC - Uses DCTC as backend and an interface based on TurboVision. All
mentioned projects are dead: neither LDCC, DCTC nor TurboVision are seeing any
recent development.
L - Appears to have a commandline
inter-face as well. I haven't personally tried it, but have not heard much
positive things about it. Has not seen any recent development, either.
=head2 Why did you start from scratch? Why not use the DC++ core?
There are many reasons why I chose not to use code from existing projects, but
all of them boil down to the following two: 1) I am a control freak, and 2)
personal preferences. That is the short answer. The long answer will require a
full article, and I don't feel like writing that much at this point. >_>
=head2 What protocol features does ncdc support?
For ADC: BASE, RF, TIGR, BZIP, ADCS and KEYP.
For NMDC: NoGetINFO, NoHello, UserIP2, MiniSlots, XmlBZList, ADCGet, TTHL and TTHF.
ncdc also support TLS-enabled connections for both hub connections and
client-to-client connections on both ADC and NMDC protocols. Note that ncdc
does not support some of the older NMDC protocol features, like $Get,
$GetZBlock, $CHUNK, $Cancel or non-XML file lists. I am not aware of an other
up-to-date client that still uses any of these features.
=head1 Troubleshooting
=head2 How do I install ncdc on Ubuntu?
This is for Ubuntu 11.10, but may work for other versions as well. Run the
following command:
sudo apt-get install libbz2-dev libgdbm-dev\
libncursesw5-dev libxml2-dev libglib2.0-dev gnutls-bin
And then follow the instructions in the README.
=head2 I'm getting the error "No PEM-encoded private key found" on startup
Most likely this is caused by a L. To get
around it, install the "certtool" utility that comes with gnutls (package
"gnutls-bin" on Ubuntu), delete the old certificates ("rm ~/.ncdc/cert/*"), and
then start ncdc again.
=head2 Why doesn't ncdc rotate log files automatically?
Because you can easily do that yourself. You can either use logrotate or a
simple script that runs from a cron. For an example of the latter option,
L, which is run as a
monthly cron job.
=head1 Can ncdc...
=head2 Can ncdc use the hash data or configuration from an existing DC++ installation?
No, ncdc uses its own configuration and hash storage directory. However, on
popular demand I could write a conversion utility to transfer the hash data
from other clients to ncdc's format.
=head2 Can ncdc run in the background / as a daemon?
As with most ncurses applications: no. At least, it does not have this
functionality built-in. Ncdc is designed to be used in combination with a
separate terminal multiplexer or detach utility to handle this. Have a look at
L,
L or L.
=head2 Does ncdc support TLS?
Yes! To make use of this, however, you need to have relatively new version
of glib2. If you're still working with an outdated system, an alternative
is to use L to connect to
TLS-enabled hubs. This trick does not allow encrypted client-to-client
connections, so your file transfers will remain unencrypted.
The following example stunnel configuration is what I used to connect to
the DC Development hub before ncdc had native TLS support:
[dcdev]
client = yes
accept = 127.0.0.1:16591
connect = hub.dcbase.org:16591
The URL `adc://127.0.0.1:16591/' can then be used to connect to the hub from
within ncdc.
=head2 Does ncdc support UPnP?
Not natively. However, it is possible to use L
and manually keep a port open using a cron job. I have no experience with this
myself, though. I just run ncdc directly on my router. :-)
=head2 Are there any programs available for analyzing the transfers.log file?
Nothing like that is included in the release yet, but there is a simple
Perl script available: L.