diff --git a/dat/ncdc-changelog b/dat/ncdc-changelog index 8eb26b7..750724c 100644 --- a/dat/ncdc-changelog +++ b/dat/ncdc-changelog @@ -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 diff --git a/dat/ncdc-faq b/dat/ncdc-faq index 49f220b..28d5940 100644 --- a/dat/ncdc-faq +++ b/dat/ncdc-faq @@ -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. To get around it, install the "certtool" utility that comes with gnutls (package "gnutls-bin" on Ubuntu), delete the old certificates (C), diff --git a/dat/ncdc-man b/dat/ncdc-man index 357bac5..26ec881 100644 --- a/dat/ncdc-man +++ b/dat/ncdc-man @@ -166,6 +166,14 @@ INTERACTIVE COMMANDS To get help on key bindings, use /help keys. + /hset [ []] + Get or set per-hub configuration variables. Works equivalent to the + `/set' command, but can only be used on hub tabs. + + /hunset [] + This command can be used to reset a per-hub configuration variable back + to its global value. + /kick 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 [] - Alias for `/set nick'. + Alias for `/hset nick' on hub tabs, and `/set nick' otherwise. /open [-n] [
] Opens a new tab to use for a hub. The name is a (short) personal name you @@ -200,7 +208,7 @@ INTERACTIVE COMMANDS /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 '. Be warned, + type /password every time, use '/hset password '. Be warned, however, that your password will be saved unencrypted in that case. /pm [] @@ -260,10 +268,14 @@ INTERACTIVE COMMANDS very reliable. /set [ []] - 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 '. @@ -284,8 +296,8 @@ INTERACTIVE COMMANDS Revoke a granted slot. /unset [] - 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 [] To remove a single directory from your share, use `/unshare ', 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 - 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 - 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 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 - 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 - 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 - 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 - 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 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_* - 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 - 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 - 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 - The directory where finished downloads are moved to. Finished downloads - are by default stored in /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 /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 - 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 Maximum number of simultaneous downloads. email - 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 - 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 - 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 - 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 [,...] + 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 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 + 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 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) diff --git a/download/ncdc-1.7.tar.gz.asc b/download/ncdc-1.7.tar.gz.asc new file mode 100644 index 0000000..fcf8002 --- /dev/null +++ b/download/ncdc-1.7.tar.gz.asc @@ -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----- diff --git a/download/ncdc-1.7.tar.gz.md5 b/download/ncdc-1.7.tar.gz.md5 new file mode 100644 index 0000000..801e7b5 --- /dev/null +++ b/download/ncdc-1.7.tar.gz.md5 @@ -0,0 +1 @@ +dba1503f58694a64f600541b4fcdccf3 ncdc-1.7.tar.gz diff --git a/download/ncdc-1.7.tar.gz.sha1 b/download/ncdc-1.7.tar.gz.sha1 new file mode 100644 index 0000000..412e7ea --- /dev/null +++ b/download/ncdc-1.7.tar.gz.sha1 @@ -0,0 +1 @@ +d31d9b48351aa322afb57c6db44fbc4c66f4df4b ncdc-1.7.tar.gz diff --git a/index.cgi b/index.cgi index e79b912..b59c295 100755 --- a/index.cgi +++ b/index.cgi @@ -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 }