Ncdc 1.8 released + various other changes and fixes

This commit is contained in:
Yorhel 2012-02-13 10:20:13 +01:00
parent 91863fab76
commit 1d24a2c6bb
12 changed files with 129 additions and 62 deletions

View file

@ -19,7 +19,7 @@ connections. L<source|http://dev.yorhel.nl/download/code/echoserv.c>
Feburary 2006. Yet Another Pong, and yet another program written just for Feburary 2006. Yet Another Pong, and yet another program written just for
testing/ learning purposes. Tested to work with the ncurses or pdcurses testing/ learning purposes. Tested to work with the ncurses or pdcurses
libraries. L<source|/download/code/yapong.c> (L<older libraries. L<source|http://dev.yorhel.nl/download/code/yapong.c> (L<older
version|http://dev.yorhel.nl/download/code/yapong-0.01.c>). version|http://dev.yorhel.nl/download/code/yapong-0.01.c>).
=head2 Microdc2 log file parser =head2 Microdc2 log file parser

View file

@ -25,7 +25,7 @@ may hog some memory while shrinking data files.
-s Show statistics -s Show statistics
-c Overwrite datafile instead of writing to a backupfile (datafile~) -c Overwrite datafile instead of writing to a backupfile (datafile~)
-SECTION LINES -SECTION LINES
Shrink the selected SECTION to LINES lines. (See example below)|; Shrink the selected SECTION to LINES lines. (See example below)
=head2 Typical command-line usage =head2 Typical command-line usage

View file

@ -12,6 +12,8 @@ you decide to do with it.
=over =over
=item C<2012-02-13 > ncdc 1.8 released.
=item C<2012-01-19 > TUWF 0.2 released. =item C<2012-01-19 > TUWF 0.2 released.
=item C<2012-01-17 > Complete site redesign. =item C<2012-01-17 > Complete site redesign.

View file

@ -10,7 +10,7 @@ ncurses interface.
=item Latest version =item Latest version
1.7 ([dllink ncdc-1.7.tar.gz download] 1.8 ([dllink ncdc-1.8.tar.gz download]
- L<changes|http://dev.yorhel.nl/ncdc/changes> - L<changes|http://dev.yorhel.nl/ncdc/changes>
- L<mirror|https://sourceforge.net/projects/ncdc/files/ncdc/>) - L<mirror|https://sourceforge.net/projects/ncdc/files/ncdc/>)
@ -22,6 +22,14 @@ L<online browsing|http://g.blicky.net/ncdc.git/>.
You are also invited to join the development hub at C<adc://dc.blicky.net:2780/>. You are also invited to join the development hub at C<adc://dc.blicky.net:2780/>.
=item Requirements
The following libraries are required: ncurses, bzip2, sqlite3, glib2 and
libxml2. For TLS support, you will need at least glib2 version 2.28.0 and
glib-networking installed.
Ncdc is entirely written in C and available under a liberal MIT license.
=item Packages and ports =item Packages and ports
Are available for the following systems: Are available for the following systems:
@ -32,6 +40,12 @@ L<Gentoo|http://packages.gentoo.org/package/net-p2p/ncdc> -
L<Mac OS X|http://www.macports.org/ports.php?by=name&substr=ncdc> - L<Mac OS X|http://www.macports.org/ports.php?by=name&substr=ncdc> -
L<OpenSUSE|http://packman.links2linux.org/package/ncdc> L<OpenSUSE|http://packman.links2linux.org/package/ncdc>
The L<Open Build
Service|https://build.opensuse.org/package/show?package=ncdc&project=home%3Ayorhel>
has some as well:
[html]<iframe src="http://software.opensuse.org/download/package.iframe?project=home:yorhel&package=ncdc" style="width: 560px; height: 200px; border: 1px dashed #aaa"></iframe>É
=back =back
@ -59,7 +73,9 @@ Common features all modern DC clients (should) have:
=item * Searching for files, =item * Searching for files,
=item * Secure hub (adcs:// and nmdcs://) and client connections on both protocols. =item * Secure hub (adcs:// and nmdcs://) and client connections on both protocols,
=item * Bandwidth throttling.
=back =back
@ -94,8 +110,6 @@ clients, but which ncdc doesn't do. Yet.
=item * Segmented downloading, =item * Segmented downloading,
=item * Bandwidth throttling,
=item * OP features (e.g. client detection, file list scanning and other useful stuff for OPs), =item * OP features (e.g. client detection, file list scanning and other useful stuff for OPs),
=item * SOCKS support. =item * SOCKS support.
@ -104,17 +118,3 @@ clients, but which ncdc doesn't do. Yet.
Of course, there are many more features that could be implemented or improved. Of course, there are many more features that could be implemented or improved.
These will all be addressed in later versions (hopefully :). These will all be addressed in later versions (hopefully :).
=head2 Requirements
The following libraries are required: ncurses, bzip2, sqlite3, glib2 and
libxml2. For TLS support, you will need at least glib2 version 2.28.0 and
glib-networking installed.
Ncdc has been developed on Arch Linux, but I have received reports from people
who successfully used it on CentOS, Debian, FreeBSD, Gentoo, Mac OS X,
OpenSUSE, Solaris and Ubuntu. It should be fairly trivial to port to other
POSIX-like systems.
Ncdc is entirely written in C and available under a liberal MIT license.

View file

@ -1,3 +1,15 @@
1.8 - 2012-02-13
- Added bandwidth limiting (upload_rate and download_rate settings)
- Added hash speed limiting (hash_rate setting)
- Added 'm' key to connection tab to /msg selected user
- Disable client-to-client TLS by default
- Don't throw away some search results on NMDC
- (Partially) fixed uploading of >2GB chunks
- Fixed file descriptor leak when using the backlog feature
- Fixed crash when opening invalid filelist from search twice
- Use POD for the manual pages
- Minor typo fixes
1.7 - 2011-12-30 1.7 - 2011-12-30
- Split /set command in a /set (global) and /hset (hub) - Split /set command in a /set (global) and /hset (hub)
- File downloads are performed in a background thread - File downloads are performed in a background thread

View file

@ -47,7 +47,11 @@ up-to-date client that still uses any of these features.
=head2 How do I install ncdc on Ubuntu? =head2 How do I install ncdc on Ubuntu?
This is for Ubuntu 11.10, but may work for other versions as well. Run the Try the package from the L<Open Build
Service|http://software.opensuse.org/download.html?project=home:yorhel&package=ncdc>
and follow those instructions.
Alternatively, you can also build directly from the source. To do so, run the
following command: following command:
sudo apt-get install libbz2-dev libsqlite3-dev\ sudo apt-get install libbz2-dev libsqlite3-dev\
@ -56,6 +60,18 @@ following command:
And then follow the instructions in the README. And then follow the instructions in the README.
=head2 Ncdc crashes a lot!
Make sure client-to-client TLS is disabled:
/set tls_policy disabled
If that doesn't fix it, please report a bug. You may also wish to debug the
problem a bit further yourself, in which case the L<HACKING
file|http://g.blicky.net/ncdc.git/tree/HACKING> will have some valuable
information.
=head2 Ncdc uses too much disk space! =head2 Ncdc uses too much disk space!
First, look where this disk space goes to (hint: use First, look where this disk space goes to (hint: use
@ -111,11 +127,11 @@ L<tmux|http://tmux.sourceforge.net/> or L<dtach|http://dtach.sourceforge.net/>.
=head2 Does ncdc support TLS? =head2 Does ncdc support TLS?
Yes! To make use of this, however, you need to have relatively new version Yes! To make use of this, however, you need to have a relatively new version of
of glib2. If you're still working with an outdated system, an alternative glib2. If you're still working with an outdated system, an alternative is to
is to use L<stunnel|http://www.stunnel.org/> to connect to use L<stunnel|http://www.stunnel.org/> to connect to TLS-enabled hubs. This
TLS-enabled hubs. This trick does not allow encrypted client-to-client trick does not allow encrypted client-to-client connections, so your file
connections, so your file transfers will remain unencrypted. transfers will remain unencrypted.
The following example stunnel configuration is what I used to connect to The following example stunnel configuration is what I used to connect to
the DC Development hub before ncdc had native TLS support: the DC Development hub before ncdc had native TLS support:

View file

@ -97,25 +97,25 @@ documentation.
=over =over
=item B<accept> =item B</accept>
Use this command to accept the TLS certificate of a hub. This command is used only in the case the keyprint of the TLS certificate of a hub does not match the keyprint stored in the database. Use this command to accept the TLS certificate of a hub. This command is used only in the case the keyprint of the TLS certificate of a hub does not match the keyprint stored in the database.
=item B<browse> [[-f] <user>] =item B</browse> [[-f] <user>]
Without arguments, this opens a new tab where you can browse your own file list. Note that changes to your list are not immediately visible in the browser. You need to re-open the tab to get the latest version of your list. Without arguments, this opens a new tab where you can browse your own file list. Note that changes to your list are not immediately visible in the browser. You need to re-open the tab to get the latest version of your list.
With arguments, the file list of the specified user will be downloaded (if it has not been downloaded already) and the browse tab will open once it's complete. The `-f' flag can be used to force the file list to be (re-)downloaded. With arguments, the file list of the specified user will be downloaded (if it has not been downloaded already) and the browse tab will open once it's complete. The `-f' flag can be used to force the file list to be (re-)downloaded.
=item B<clear> =item B</clear>
Clears the log displayed on the screen. Does not affect the log files in any way. Ctrl+l is a shortcut for this command. Clears the log displayed on the screen. Does not affect the log files in any way. Ctrl+l is a shortcut for this command.
=item B<close> =item B</close>
Close the current tab. When closing a hub tab, you will be disconnected from the hub and all related userlist and PM tabs will also be closed. Alt+c is a shortcut for this command. Close the current tab. When closing a hub tab, you will be disconnected from the hub and all related userlist and PM tabs will also be closed. Alt+c is a shortcut for this command.
=item B<connect> [<address>] =item B</connect> [<address>]
Initiate a connection with a hub. If no address is specified, will connect to the hub you last used on the current tab. The address should be in the form of `protocol://host:port/' or `host:port'. The `:port' part is in both cases optional and defaults to :411. The following protocols are recognized: dchub, nmdc, nmdcs, adc, adcs. When connecting to an nmdcs or adcs hub and the SHA256 keyprint is known, you can attach this to the url as `?kp=SHA256/<base32-encoded-keyprint>' Initiate a connection with a hub. If no address is specified, will connect to the hub you last used on the current tab. The address should be in the form of `protocol://host:port/' or `host:port'. The `:port' part is in both cases optional and defaults to :411. The following protocols are recognized: dchub, nmdc, nmdcs, adc, adcs. When connecting to an nmdcs or adcs hub and the SHA256 keyprint is known, you can attach this to the url as `?kp=SHA256/<base32-encoded-keyprint>'
@ -126,21 +126,21 @@ Note that this command can only be used on hub tabs. If you want to open a new c
See the /open command for more information. See the /open command for more information.
=item B<connections> =item B</connections>
Open the connections tab. Open the connections tab.
=item B<disconnect> =item B</disconnect>
Disconnect from a hub. Disconnect from a hub.
=item B<gc> =item B</gc>
Cleans up unused data and reorganizes existing data to allow more efficient storage and usage. Currently, this commands removes unused hash data, does a VACUUM on db.sqlite3, removes unused files in inc/ and old files in fl/. Cleans up unused data and reorganizes existing data to allow more efficient storage and usage. Currently, this commands removes unused hash data, does a VACUUM on db.sqlite3, removes unused files in inc/ and old files in fl/.
This command may take some time to complete, and will fully block ncdc while it is running. It is recommended to run this command every once in a while. Every month is a good interval. Note that when ncdc says that it has completed this command, it's lying to you. Ncdc will still run a few large queries on the background, which may take up to a minute to complete. This command may take some time to complete, and will fully block ncdc while it is running. It is recommended to run this command every once in a while. Every month is a good interval. Note that when ncdc says that it has completed this command, it's lying to you. Ncdc will still run a few large queries on the background, which may take up to a minute to complete.
=item B<grant> [-list|<user>] =item B</grant> [-list|<user>]
Grant someone a slot. This allows the user to download from you even if you have no free slots. The slot will be granted for as long as ncdc stays open or the /ungrant command is used. If you restart ncdc, the user will have to wait for a regular slot. Unless, of course, you /grant a slot again. Grant someone a slot. This allows the user to download from you even if you have no free slots. The slot will be granted for as long as ncdc stays open or the /ungrant command is used. If you restart ncdc, the user will have to wait for a regular slot. Unless, of course, you /grant a slot again.
@ -148,7 +148,7 @@ To get a list of users whom you have granted a slot, use `/grant' without argume
Note that a granted slot is specific to a single hub. If the same user is also on other hubs, he/she will not be granted a slot on those hubs. Note that a granted slot is specific to a single hub. If the same user is also on other hubs, he/she will not be granted a slot on those hubs.
=item B<help> [<command>|set <key>|keys [<section>]] =item B</help> [<command>|set <key>|keys [<section>]]
To get a list of available commands, use /help without arguments. To get a list of available commands, use /help without arguments.
To get information on a particular command, use /help <command>. To get information on a particular command, use /help <command>.
@ -156,19 +156,19 @@ To get information on a configuration setting, use /help set <setting>.
To get help on key bindings, use /help keys. To get help on key bindings, use /help keys.
=item B<hset> [<key> [<value>]] =item B</hset> [<key> [<value>]]
Get or set per-hub configuration variables. Works equivalent to the `/set' command, but can only be used on hub tabs. Get or set per-hub configuration variables. Works equivalent to the `/set' command, but can only be used on hub tabs.
=item B<hunset> [<key>] =item B</hunset> [<key>]
This command can be used to reset a per-hub configuration variable back to its global value. This command can be used to reset a per-hub configuration variable back to its global value.
=item B<kick> <user> =item B</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. 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.
=item B<me> <message> =item B</me> <message>
This allows you to talk in third person. Most clients will display your message as something like: This allows you to talk in third person. Most clients will display your message as something like:
@ -176,15 +176,15 @@ This allows you to talk in third person. Most clients will display your message
Note that this command only works correctly on ADC hubs. The NMDC protocol does not have this feature, and your message will be sent as-is, including the /me. Note that this command only works correctly on ADC hubs. The NMDC protocol does not have this feature, and your message will be sent as-is, including the /me.
=item B<msg> <user> [<message>] =item B</msg> <user> [<message>]
Send a private message to a user on the currently opened hub. If no message is given, the tab will be opened but no message will be sent. Send a private message to a user on the currently opened hub. If no message is given, the tab will be opened but no message will be sent.
=item B<nick> [<nick>] =item B</nick> [<nick>]
Alias for `/hset nick' on hub tabs, and `/set nick' otherwise. Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.
=item B<open> [-n] <name> [<address>] =item B</open> [-n] <name> [<address>]
Opens a new tab to use for a hub. The name is a (short) personal name you use to identify the hub, and will be used for storing hub-specific configuration. Opens a new tab to use for a hub. The name is a (short) personal name you use to identify the hub, and will be used for storing hub-specific configuration.
@ -192,37 +192,37 @@ If you have specified an address or have previously connected to a hub from a ta
See /connect for more information on connecting to a hub. See /connect for more information on connecting to a hub.
=item B<password> <password> =item B</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 '/hset password <password>'. Be warned, however, that your password will be saved unencrypted in that case. 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 '/hset password <password>'. Be warned, however, that your password will be saved unencrypted in that case.
=item B<pm> <user> [<message>] =item B</pm> <user> [<message>]
Alias for /msg Alias for /msg
=item B<queue> =item B</queue>
Open the download queue. Open the download queue.
=item B<quit> =item B</quit>
Quit ncdc. You can also just hit ctrl+c, which is equivalent. Quit ncdc. You can also just hit ctrl+c, which is equivalent.
=item B<reconnect> =item B</reconnect>
Reconnect to the hub. When your nick or the hub encoding have been changed, the new settings will be used after the reconnect. Reconnect to the hub. When your nick or the hub encoding have been changed, the new settings will be used after the reconnect.
This command can also be used on the main tab, in which case all connected hubs will be reconnected. This command can also be used on the main tab, in which case all connected hubs will be reconnected.
=item B<refresh> [<path>] =item B</refresh> [<path>]
Initiates share refresh. If no argument is given, the complete list will be refreshed. Otherwise only the specified directory will be refreshed. The path argument can be either an absolute filesystem path or a virtual path within your share. Initiates share refresh. If no argument is given, the complete list will be refreshed. Otherwise only the specified directory will be refreshed. The path argument can be either an absolute filesystem path or a virtual path within your share.
=item B<say> <message> =item B</say> <message>
Sends a chat message to the current hub or user. You normally don't have to use the /say command explicitly, any command not staring with '/' will automatically imply `/say <command>'. For example, typing `hello.' in the command line is equivalent to `/say hello.'. Using the /say command explicitly may be useful to send message starting with '/' to the chat, for example `/say /help is what you are looking for'. Sends a chat message to the current hub or user. You normally don't have to use the /say command explicitly, any command not staring with '/' will automatically imply `/say <command>'. For example, typing `hello.' in the command line is equivalent to `/say hello.'. Using the /say command explicitly may be useful to send message starting with '/' to the chat, for example `/say /help is what you are looking for'.
=item B<search> [options] <query> =item B</search> [options] <query>
Performs a file search, opening a new tab with the results. Performs a file search, opening a new tab with the results.
@ -250,7 +250,7 @@ The following file types can be used with the -t option:
Note that file type matching is done using file extensions, and is not very reliable. Note that file type matching is done using file extensions, and is not very reliable.
=item B<set> [<key> [<value>]] =item B</set> [<key> [<value>]]
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. 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.
@ -258,7 +258,7 @@ See the `/hset' command to manage configuration on a per-hub basis. Changes to t
To get information on a particular setting, use `/help set <key>'. To get information on a particular setting, use `/help set <key>'.
=item B<share> [<name> <path>] =item B</share> [<name> <path>]
Use /share without arguments to get a list of shared directories. Use /share without arguments to get a list of shared directories.
When called with a name and a path, the path will be added to your share. Note that shell escaping may be used in the name. For example, to add a directory with the name `Fun Stuff', you could do the following: When called with a name and a path, the path will be added to your share. Note that shell escaping may be used in the name. For example, to add a directory with the name `Fun Stuff', you could do the following:
@ -271,29 +271,29 @@ Or:
The full path to the directory will not be visible to others, only the name you give it will be public. An initial `/refresh' is done automatically on the added directory. The full path to the directory will not be visible to others, only the name you give it will be public. An initial `/refresh' is done automatically on the added directory.
=item B<ungrant> [<username>|<id>] =item B</ungrant> [<username>|<id>]
Revoke a granted slot. Revoke a granted slot.
=item B<unset> [<key>] =item B</unset> [<key>]
This command can be used to reset a global configuration variable back to its default value. This command can be used to reset a global configuration variable back to its default value.
=item B<unshare> [<name>] =item B</unshare> [<name>]
To remove a single directory from your share, use `/unshare <name>', to remove all directories from your share, use `/unshare /'. To remove a single directory from your share, use `/unshare <name>', to remove all directories from your share, use `/unshare /'.
Note that the hash data associated with the removed files will remain in the database. This allows you to re-add the files to your share without needing to re-hash them. The downside is that the database file may grow fairly large with unneeded information. See the `/gc' command to clean that up. Note that the hash data associated with the removed files will remain in the database. This allows you to re-add the files to your share without needing to re-hash them. The downside is that the database file may grow fairly large with unneeded information. See the `/gc' command to clean that up.
=item B<userlist> =item B</userlist>
Opens the user list of the currently selected hub. Can also be accessed using Alt+u. Opens the user list of the currently selected hub. Can also be accessed using Alt+u.
=item B<version> =item B</version>
Display version information. Display version information.
=item B<whois> <user> =item B</whois> <user>
This will open the user list and select the given user. This will open the user list and select the given user.
@ -374,6 +374,8 @@ The actual color values displayed by your terminal may vary. Adding the `bold' a
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. 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.
This setting is ignored if `upload_rate' has been set. If it is, that value is broadcasted instead.
=item B<description> <string> =item B<description> <string>
A short public description that will be displayed in the user list of a hub. A short public description that will be displayed in the user list of a hub.
@ -388,6 +390,10 @@ When recursively adding a directory to the download queue - by pressing `b' on a
This regex is not checked when adding individual files from either the file list browser or the search results. This regex is not checked when adding individual files from either the file list browser or the search results.
=item B<download_rate> <speed>
Maximum combined transfer rate of all downloads. The total download speed will be limited to this value. The suffixes `G', 'M', and 'K' can be used for GiB/s, MiB/s and KiB/s, respectively. Note that, similar to upload_rate, TCP and TLS overhead are not counted towards this limit, so the actual bandwidth usage might be a little higher.
=item B<download_slots> <integer> =item B<download_slots> <integer>
Maximum number of simultaneous downloads. Maximum number of simultaneous downloads.
@ -415,6 +421,10 @@ The maximum age of a downloaded file list. If a file list was downloaded longer
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. 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.
=item B<hash_rate> <speed>
Maximum file hashing speed. See the `download_rate' setting for allowed formats for this setting.
=item B<hubname> <string> =item B<hubname> <string>
The name of the currently opened hub tab. This is a user-assigned name, and is only used within ncdc itself. This is the same name as given to the `/open' command. The name of the currently opened hub tab. This is a user-assigned name, and is only used within ncdc itself. This is the same name as given to the `/open' command.
@ -477,10 +487,16 @@ Set the policy for secure client-to-client connections. Setting this to `disable
The use of TLS for client connections usually results in less optimal performance when uploading and downloading, but is quite effective at avoiding protocol-specific traffic shaping that some ISPs may do. Also note that, even if you set this to `prefer', TLS will only be used if the connecting party also supports it. The use of TLS for client connections usually results in less optimal performance when uploading and downloading, but is quite effective at avoiding protocol-specific traffic shaping that some ISPs may do. Also note that, even if you set this to `prefer', TLS will only be used if the connecting party also supports it.
Enabling TLS may result in less accurate traffic shaping when the `download_rate' or `upload_rate' settings are used.
=item B<ui_time_format> <string> =item B<ui_time_format> <string>
The format of the time displayed in the lower-left of the screen. Set `-' to not display a time at all. The string is passed to the Glib g_date_time_format() function, which accepts roughly the same formats as strftime(). Check out the strftime(3) man page or the Glib documentation for more information. Note that this setting does not influence the date/time format used in other places, such as the chat window or log files. The format of the time displayed in the lower-left of the screen. Set `-' to not display a time at all. The string is passed to the Glib g_date_time_format() function, which accepts roughly the same formats as strftime(). Check out the strftime(3) man page or the Glib documentation for more information. Note that this setting does not influence the date/time format used in other places, such as the chat window or log files.
=item B<upload_rate> <speed>
Maximum combined transfer rate of all uploads. See the `download_rate' setting for more information on rate limiting. Note that this setting also overrides any `connection' setting.
=back =back
@ -552,6 +568,7 @@ C</help keys> command, and is reproduced below.
d Disconnect selected connection. d Disconnect selected connection.
i/Return Toggle information box. i/Return Toggle information box.
f Find user in user list. f Find user in user list.
m Send a PM to the selected user.
q Find file in download queue. q Find file in download queue.
=item B<Download queue> =item B<Download queue>

View file

@ -39,6 +39,7 @@ Ncdu has been packaged for quite a few systems already, here's a list of the one
L<AgiliaLinux|http://packages.agilialinux.ru/search.php?tag=sys-fs> - L<AgiliaLinux|http://packages.agilialinux.ru/search.php?tag=sys-fs> -
L<AIX|http://www.perzl.org/aix/index.php?n=Main.Ncdu> - L<AIX|http://www.perzl.org/aix/index.php?n=Main.Ncdu> -
L<Alpine Linux|http://alpinelinux.org/packages?title_op=%3D&title=ncdu> -
L<ALT Linux|http://sisyphus.ru/en/srpm/Sisyphus/ncdu> - L<ALT Linux|http://sisyphus.ru/en/srpm/Sisyphus/ncdu> -
L<Arch Linux|http://www.archlinux.org/packages/?q=ncdu> - L<Arch Linux|http://www.archlinux.org/packages/?q=ncdu> -
L<CRUX|http://crux.nu/portdb/?q=ncdu&a=search> - L<CRUX|http://crux.nu/portdb/?q=ncdu&a=search> -

View file

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAABCgAGBQJPONJwAAoJEGI5TGmMJzn6CboQAMlCEnsGH/XdRY89eVz1NmEq
c3HH540FuaiwzTLDKEovz+WCDKXBE8jiRYUiqP4fRR55F+YQdKDFIP7tXqFu1FUH
+k8zR5oV3UNlQetV69xO3maaZZtvLwFxA/DlxjMLpVgOr8azjU3kG13aVUmP49dt
LvMUMKD98Tn41susx289XqTsFn0rmr/jrCRtNrxSq71YQ9lOaRzVonH1wRDS2d3r
Vx1USB95pr9U9a2vLVvDS4zZJGgXYGAbnHNegEOgxmmxc7asUV2F2gsEhtCyCslL
TYof02GRnDXT+ZvH5FIjX13zS7ssoZ6xmzuZSFGsQQuHRLakW86Dyrhgq13K2dmi
deNyIK+iBUzD9V5L76qhzL/R58Q3rsFoDnx6ayRl4XGlFI9oIoWiSKqw+4P3NUGO
ILdo1t3w2B8K/1OnyDX0c5pgOqB+F1NXgrArFM03+zKzXC3+vVJdPBSUQMmcvcTq
rd+wBo0/SmH8GM/5Ln90OKBjYPn8e9TabLZshU+lqpEr/kc3w85nEuK6MRunLKCY
xSGsa5hqL0GnSuYcieZE9zYvZxjT9PU6cKTIBenWCy84NB1HMt5yWFC8KNoCYHWi
06SVJjijrceOnZAA1mVQmgDV4ykdfQMeRtJyr/YCjy9AjzCBhGTfyqawem9mShmR
bmaPoXBiYmPOsGAgTNZd
=FZP4
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
a6da73159270b911415052bb35f5deec ncdc-1.8.tar.gz

View file

@ -0,0 +1 @@
7163b3097df33552598faf6f9aea675104f3d8b1 ncdc-1.8.tar.gz

View file

@ -120,9 +120,10 @@ package TUWF::Object;
use TUWF ':html'; use TUWF ':html';
# Accepts two special formatting codes: # Accepts some special formatting codes:
# [dllink $file $title] # [dllink $file $title]
# [img $class $file $alt] # [img $class $file $alt]
# [html]..É
sub htmlPOD { sub htmlPOD {
my($s, $file, $toc) = @_; my($s, $file, $toc) = @_;
require Pod::Simple::HTML; require Pod::Simple::HTML;
@ -158,7 +159,7 @@ sub htmlPOD {
lit $p->index_as_html() if $toc; lit $p->index_as_html() if $toc;
$html =~ s/\[dllink ([^ ]+)(?: ([^>]+))?\]/$s->genDLLink($1, $2)/eg; $html =~ s/\[dllink ([^ ]+)(?: ([^>]+))?\]/$s->genDLLink($1, $2)/eg;
$html =~ s/\[img ([^ ]+) ([^ ]+) ([^\]]*)\]/<img src="\/img\/$2" class="$1" alt="$3" \/>/g; $html =~ s/\[img ([^ ]+) ([^ ]+) ([^\]]*)\]/<img src="\/img\/$2" class="$1" alt="$3" \/>/g;
#$html =~ s{\[html\](.*)É}{(my $h = $1) =~ s/\&gt;/>/g; $h =~ s/\&lt;/</g; $h =~ s/\&amp;/\&/g; $h =~ s/\&quot;/"/g; $h}egs; $html =~ s{\[html\](.*)É}{(my $h = $1) =~ s/\&gt;/>/g; $h =~ s/\&lt;/</g; $h =~ s/\&amp;/\&/g; $h =~ s/\&quot;/"/g; $h}egs;
lit $html; lit $html;
} }
@ -192,7 +193,6 @@ sub htmlHeader {
a href => 'mailto:projects@yorhel.nl', 'projects@yorhel.nl'; a href => 'mailto:projects@yorhel.nl', 'projects@yorhel.nl';
br; a href => 'http://yorhel.nl', 'yh'; br; a href => 'http://yorhel.nl', 'yh';
txt ' - '; a href => 'http://g.blicky.net', 'git'; txt ' - '; a href => 'http://g.blicky.net', 'git';
txt ' - '; a href => 'http://svn.blicky.net', 'svn';
txt ' - '; a href => 'http://pgp.mit.edu:11371/pks/lookup?search=0x8c2739fa', 'pgp'; txt ' - '; a href => 'http://pgp.mit.edu:11371/pks/lookup?search=0x8c2739fa', 'pgp';
end; end;
end 'div'; end 'div';