ncdc 1.7 released

This commit is contained in:
Yorhel 2011-12-30 18:26:29 +01:00
parent 0a8812e31a
commit ac38865338
7 changed files with 131 additions and 77 deletions

View file

@ -1,3 +1,14 @@
1.7 - 2011-12-30
- Split /set command in a /set (global) and /hset (hub)
- File downloads are performed in a background thread
- Added glob-style matching on /set and /hset keys
- Added UTF-8 locale check
- Added 'sendfile' setting
- Added finer granularity for the flush_file_cache setting
- Allow flush_file_cache to be enabled for downloads
- Fix sending of $MyINFO with wrong public hub count
- Fix incorrect inclusion of gdbm.h
1.6 - 2011-12-07
- Use SQLite3 for storage instead of GDBM
- Converted config.ini to SQLite3 database

View file

@ -82,7 +82,7 @@ monthly cron job.
=head2 I'm getting the error "No PEM-encoded private key found" on startup
(This issue should have been fixed in 1.6) Most likely this is caused by a
(This issue should be fixed since 1.6) Most likely this is caused by a
L<bug in glib-networking|https://bugzilla.gnome.org/show_bug.cgi?id=664321>. To
get around it, install the "certtool" utility that comes with gnutls (package
"gnutls-bin" on Ubuntu), delete the old certificates (C<rm ~/.ncdc/cert/*>),

View file

@ -166,6 +166,14 @@ INTERACTIVE COMMANDS
To get help on key bindings, use /help keys.
/hset [<key> [<value>]]
Get or set per-hub configuration variables. Works equivalent to the
`/set' command, but can only be used on hub tabs.
/hunset [<key>]
This command can be used to reset a per-hub configuration variable back
to its global value.
/kick <user>
Kick a user from the hub. This command only works on NMDC hubs, and you
need to be an OP to be able to use it.
@ -184,7 +192,7 @@ INTERACTIVE COMMANDS
sage is given, the tab will be opened but no message will be sent.
/nick [<nick>]
Alias for `/set nick'.
Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.
/open [-n] <name> [<address>]
Opens a new tab to use for a hub. The name is a (short) personal name you
@ -200,7 +208,7 @@ INTERACTIVE COMMANDS
/password <password>
This command can be used to send a password to the hub without saving it
to the database. If you wish to login automatically without having to
type /password every time, use '/set password <password>'. Be warned,
type /password every time, use '/hset password <password>'. Be warned,
however, that your password will be saved unencrypted in that case.
/pm <user> [<message>]
@ -260,10 +268,14 @@ INTERACTIVE COMMANDS
very reliable.
/set [<key> [<value>]]
Get or set configuration variables. Use without arguments to get a list
of all settings and their current value. Changes to the settings are
automatically saved to the config file, and will not be lost after
restarting ncdc.
Get or set global configuration variables. Use without arguments to get a
list of all global settings and their current value. Glob-style pattern
matching on the settings is also possible. Use, for example, `/set
color*' to list all color-related settings.
See the `/hset' command to manage configuration on a per-hub basis.
Changes to the settings are automatically saved to the database, and will
not be lost after restarting ncdc.
To get information on a particular setting, use `/help set <key>'.
@ -284,8 +296,8 @@ INTERACTIVE COMMANDS
Revoke a granted slot.
/unset [<key>]
This command can be used to reset a configuration variable back to its
default value.
This command can be used to reset a global configuration variable back to
its default value.
/unshare [<name>]
To remove a single directory from your share, use `/unshare <name>', to
@ -311,60 +323,61 @@ INTERACTIVE COMMANDS
SETTINGS
The following is a list of configuration settings. These settings can be changed
and queried using the `/set' command, and are stored in the db.sqlite3 file in
the session directory.
and queried using the `/set' command for global settings and `/hset' for hub-
local settings. All configuration data is stored in the db.sqlite3 file in the
session directory.
active <boolean>
Enables or disables active mode. Make sure to set `active_ip' and
Enables or disables active mode. Make sure to set `active_ip' and
`active_port' before enabling active mode.
active_bind <string>
IP address to bind to in active mode. When unset, ncdc will bind to all
IP address to bind to in active mode. When unset, ncdc will bind to all
interfaces.
active_ip <string>
Your public IP address for use in active mode. It is important that other
clients can reach you using this IP address. If you connect to a hub on
the internet, this should be your internet (WAN) IP. Likewise, if you
clients can reach you using this IP address. If you connect to a hub on
the internet, this should be your internet (WAN) IP. Likewise, if you
connect to a hub on your LAN, this should be your LAN IP.
Unlike the other connection-related settings, this can be changed on a
per-hub basis, allowing you to have a different public IP address per
Unlike the other connection-related settings, this can be changed on a
per-hub basis, allowing you to have a different public IP address per
hub.
active_port <integer>
The listen port for incoming connections in active mode. Set to `0' to
automatically assign a random port. If TLS support is available, another
TCP port will be opened on the configured port + 1. Ncdc will tell you
exactly on which ports it is listening for incoming packets. If you are
behind a router or firewall, make sure that you have configured it to
The listen port for incoming connections in active mode. Set to `0' to
automatically assign a random port. If TLS support is available, another
TCP port will be opened on the configured port + 1. Ncdc will tell you
exactly on which ports it is listening for incoming packets. If you are
behind a router or firewall, make sure that you have configured it to
forward and allow these ports.
autoconnect <boolean>
Set to true to automatically connect to the current hub when ncdc starts
Set to true to automatically connect to the current hub when ncdc starts
up.
autorefresh <interval>
The time between automatic file refreshes. Recognized suffices are 's'
The time between automatic file refreshes. Recognized suffices are 's'
for seconds, 'm' for minutes, 'h' for hours and 'd' for days. Set to 0 to
disable automatically refreshing the file list. This setting also deter
mines whether ncdc will perform a refresh on startup. See the `/refresh'
disable automatically refreshing the file list. This setting also deter
mines whether ncdc will perform a refresh on startup. See the `/refresh'
command to manually refresh your file list.
backlog <integer>
When opening a hub or PM tab, ncdc can load a certain amount of lines
from the log file into the log window. Setting this to a positive value
enables this feature and configures the number of lines to load. Note
that, while this setting can be set on a per-hub basis, PM windows will
When opening a hub or PM tab, ncdc can load a certain amount of lines
from the log file into the log window. Setting this to a positive value
enables this feature and configures the number of lines to load. Note
that, while this setting can be set on a per-hub basis, PM windows will
use the global value (global.backlog).
chat_only <boolean>
Set to true to indicate that this hub is only used for chatting. That is,
you won't or can't download from it. This setting affects the /search
you won't or can't download from it. This setting affects the /search
command when it is given the -all option.
color_* <color>
The settings starting with the `color_' prefix allow you to change the
The settings starting with the `color_' prefix allow you to change the
interface colors. The following is a list of available color settings:
list_default - default item in a list
list_header - header of a list
@ -382,58 +395,58 @@ SETTINGS
tabprio_high - high priority tab notification color
title - the title bar
The actual color value can be set with a comma-separated list of color
names and/or attributes. The first color in the list is the foreground
color, the second color is used for the background. When the fore- or
background color is not specified, the default colors of your terminal
The actual color value can be set with a comma-separated list of color
names and/or attributes. The first color in the list is the foreground
color, the second color is used for the background. When the fore- or
background color is not specified, the default colors of your terminal
will be used.
The following color names can be used: black, blue, cyan, default, green,
magenta, red, white and yellow.
The following attributes can be used: bold, blink, reverse and underline.
The actual color values displayed by your terminal may vary. Adding the
`bold' attribute usually makes the foreground color appear brighter as
The actual color values displayed by your terminal may vary. Adding the
`bold' attribute usually makes the foreground color appear brighter as
well.
connection <string>
Set your upload speed. This is just an indication for other users in the
hub so that they know what speed they can expect when downloading from
you. The actual format you can use here may vary, but it is recommended
to set it to either a plain number for Mbit/s (e.g. `50' for 50 mbit) or
a number with a `KiB/s' indicator (e.g. `2300 KiB/s'). On ADC hubs you
must use one of the previously mentioned formats, otherwise no upload
speed will be broadcasted. This setting is broadcasted as-is on NMDC
hubs, to allow for using old-style connection values (e.g. `DSL' or
Set your upload speed. This is just an indication for other users in the
hub so that they know what speed they can expect when downloading from
you. The actual format you can use here may vary, but it is recommended
to set it to either a plain number for Mbit/s (e.g. `50' for 50 mbit) or
a number with a `KiB/s' indicator (e.g. `2300 KiB/s'). On ADC hubs you
must use one of the previously mentioned formats, otherwise no upload
speed will be broadcasted. This setting is broadcasted as-is on NMDC
hubs, to allow for using old-style connection values (e.g. `DSL' or
`Cable') on hubs that require this.
description <string>
A short public description that will be displayed in the user list of a
A short public description that will be displayed in the user list of a
hub.
download_dir <path>
The directory where finished downloads are moved to. Finished downloads
are by default stored in <session directory>/dl/. It is possible to set
this to a location that is on a different filesystem than the incoming
directory, but doing so is not recommended: ncdc will block when moving
The directory where finished downloads are moved to. Finished downloads
are by default stored in <session directory>/dl/. It is possible to set
this to a location that is on a different filesystem than the incoming
directory, but doing so is not recommended: ncdc will block when moving
the completed files to their final destination.
download_exclude <regex>
When recursively adding a directory to the download queue - by pressing
`b' on a directory in the file list browser - any item in the selected
directory with a name that matches this regular expression will not be
When recursively adding a directory to the download queue - by pressing
`b' on a directory in the file list browser - any item in the selected
directory with a name that matches this regular expression will not be
added to the download queue.
This regex is not checked when adding individual files from either the
This regex is not checked when adding individual files from either the
file list browser or the search results.
download_slots <integer>
Maximum number of simultaneous downloads.
email <string>
Your email address. This will be displayed in the user list of the hub,
Your email address. This will be displayed in the user list of the hub,
so only set this if you want it to be public.
encoding <string>
The character set/encoding to use for hub and PM messages. This setting
The character set/encoding to use for hub and PM messages. This setting
is only used on NMDC hubs, ADC always uses UTF-8. Some common values are:
CP1250 (Central Europe)
CP1251 (Cyrillic)
@ -443,22 +456,23 @@ SETTINGS
UTF-8 (International)
filelist_maxage <interval>
The maximum age of a downloaded file list. If a file list was downloaded
longer ago than the configured interval, it will be removed from the
cache (the fl/ directory) and subsequent requests to open the file list
will result in the list being downloaded from the user again. Recognized
suffices are 's' for seconds, 'm' for minutes, 'h' for hours and 'd' for
The maximum age of a downloaded file list. If a file list was downloaded
longer ago than the configured interval, it will be removed from the
cache (the fl/ directory) and subsequent requests to open the file list
will result in the list being downloaded from the user again. Recognized
suffices are 's' for seconds, 'm' for minutes, 'h' for hours and 'd' for
days. Set to 0 to disable the cache altogether.
flush_file_cache <boolean>
Tell the OS to flush the file (disk) cache for file contents read while
hashing and uploading. On one hand, this will avoid trashing your disk
cache with large files and thus improve the overall responsiveness of
your system. On the other hand, ncdc may purge any shared files from the
cache, even if they are still used by other applications. In general, it
is a good idea to enable this if you also use your system for other
things besides ncdc, you share large files (>100MB) and people are not
constantly downloading the same file from you.
flush_file_cache <none|upload|download|hash>[,...]
Tell the OS to flush the file (disk) cache for file contents read while
hashing and/or uploading or written to while downloading. On one hand,
this will avoid trashing your disk cache with large files and thus
improve the overall responsiveness of your system. On the other hand,
ncdc may purge any shared files from the cache, even if they are still
used by other applications. In general, it is a good idea to enable this
if you also use your system for other things besides ncdc, you share
large files (>100MB) and people are not constantly downloading the same
file from you.
hubname <string>
The name of the currently opened hub tab. This is a user-assigned name,
@ -508,6 +522,11 @@ SETTINGS
`/password' command instead. Passwords are saved unencrypted in the con
fig file.
sendfile <boolean>
Whether or not to use the sendfile() system call to upload files, if sup
ported. Using sendfile() allows less resource usage while uploading, but
may not work well on all systems.
share_exclude <regex>
Any file or directory with a name that matches this regular expression
will not be shared. A file list refresh is required for this setting to
@ -756,4 +775,4 @@ SEE ALSO
ncdc-1.6 December 2011 ncdc(1)
ncdc-1.7 December 2011 ncdc(1)

View file

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAABCgAGBQJO/fA4AAoJEGI5TGmMJzn6cnUQAKlRYrTU1+MbYeNU5wX6C5vs
pf/a9M+7Bq4RCCItDjaxh8gty7EZK80gY/KGSIbWVtoVOFA/I0RuOwihn/QtIW5L
mOPeuopldS1yyEqWasJ73Gqd5vHd79NoTe2RwaC01KH65yAjbbt6Jw88OEAfJeM1
4Cw2e2RJnkifu/QmvEOJZgH8aiFQNg69oe82awsWjMpPv1gkCIHlkv7cEU3Hz0eL
GhhOCUAezdoBsfikPjUi52dtLr7xmy6ZyUXtJLg1oDb+TVPeA4VJ9pP5UWLXxqMW
X/Qe+4Kr6Ir71C2PlV5nJxMGjjvYzi5u8F9Nu8JdRo7HM4E7cVX0WMBpOZRaP+aC
Yp8HMd8tjTUCmo5nCcDFULTYEDComV1F7q3iiuVMqH8m7mroTbrR+vMzx4TYbzDc
oFm9Xa2rbOyCwLBFh+IwS/0ADSQo4yU8Wqi4kpYuNUE37pqOTr3xAOL9+tNdYSq0
0lfQGwkdG5jhtcrvx/gT8wLH9mhmlWhqVIgvX6rGH/T9oeXNm1q4JCzltNxmtDcr
BIy2dIp5o7xScI/nH8wMRyNXHhU/pShWXesNS25YlWUVk61kNP8pWe8sli8X5gxh
h4RezJ5sDL6tp1cIKLgQg4kip7978Sh2pjSfJk9X9BXv7td0iuiqe1TpSGh1BSss
4ZePuGT1iFSKsvL1sJwB
=eYWN
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
dba1503f58694a64f600541b4fcdccf3 ncdc-1.7.tar.gz

View file

@ -0,0 +1 @@
d31d9b48351aa322afb57c6db44fbc4c66f4df4b ncdc-1.7.tar.gz

View file

@ -56,6 +56,7 @@ sub home {
E;
end;
h2 'Updates';
b '2011-12-30'; txt ' ncdc 1.7 released!'; br;
b '2011-12-07'; txt ' ncdc 1.6 released!'; br;
b '2011-11-26'; txt ' Added article section and the article on SQLite.'; br;
b '2011-11-03'; txt ' ncdc 1.5 and ncdu 1.8 released!'; br;
@ -252,8 +253,8 @@ sub ncdc {
h2 'Get ncdc!';
p;
b 'Latest version:'; txt ' 1.6 (';
$s->htmlDLLink('ncdc-1.6.tar.gz', 'download');
b 'Latest version:'; txt ' 1.7 (';
$s->htmlDLLink('ncdc-1.7.tar.gz', 'download');
txt ' - '; a href => '/ncdc/changes', 'changes';
txt ' - '; a href => 'https://sourceforge.net/projects/ncdc/files/ncdc/', 'mirror';
txt ')'; br;
@ -265,6 +266,8 @@ sub ncdc {
br;br;
txt 'Packages/ports are available for the following systems: '; br;
a href => 'http://aur.archlinux.org/packages.php?ID=50949', 'Arch Linux'; txt ' - ';
a href => 'http://www.freshports.org/net-p2p/ncdc/', 'FreeBSD'; txt ' - ';
a href => 'http://frugalware.org/packages/136807', 'Frugalware'; txt ' - ';
a href => 'http://packages.gentoo.org/package/net-p2p/ncdc', 'Gentoo'; txt ' - ';
txt 'Mac OS X (';
a href => 'http://www.macports.org/ports.php?by=name&substr=ncdc', 'MacPorts';
@ -501,11 +504,12 @@ sub docindex {
p;
txt '2011-11-26 - '; b 'Multi-threaded Access to an SQLite3 Database';
txt ' ['; a href => '/doc/sqlaccess', 'HTML'; txt ' - '; a href => '/dat/sqlaccess', rel => 'nofollow', 'POD'; txt ']';
br;
span 'So you have a single database and some threads. How do you combine
these in a program?';
txt '2010-06-02 - '; b 'Design and implementation of a compressed linked list library';
txt ' ['; a href => '/download/doc/compll.pdf', 'PDF'; txt ']';
br;br;
txt q|Disclaimer: The last one isn't really an article. It's the report for the
span q|This isn't really an article. It's the report for the
final project of my professional (HBO) bachelor of Electrical
Engineering. I was very liberal with some terminology in this report. For
example, "linked lists" aren't what you think they are, and I didn't even
@ -1103,6 +1107,7 @@ sub css {
pre, code, pre b { font: 11px monospace; }
pre b { font-weight: bold }
pre.code, .pod pre { background: #111; border: 1px dotted #666; margin: 5px 10px; display: block; padding: 5px; }
span { display: block; font-size: 12px; margin: 3px 10px 10px 30px }
.indexgroup ul { margin-left: 5px; list-style-type: none }
.indexgroup ul ul { margin-left: 20px }
.pod p { margin: 3px 15px 13px 15px; text-align: justify }