microdc - History

2005-10-18: microdc 0.11.0 released.

Uploaded/download completed messages now contain time elapsed and final transfer rate.
Support extended protocol for hubs - NoGetINFO and NoHello extensions are supported.
Support character set conversion through the new variable charset. Messages received and sent to hub and users are now converted according to charset (unless unset). (Feature suggested by Vlad Safronov.)
Display many data sizes in human readable form.
Display reason why uploads failed.
Link with LIBINTL for proper portability.
Revamped communication between main and user processes, to reduce possible latency in the main process.
Revamped user process termination handling, cleaning up messages related to that.
Fixed display of private messages - now displays source user properly.
User connections will now be closed after 180 seconds of inactivity.
Added --config (-c) option to specify a different configuration script to load on startup.
Updated manual page and added new section "Files".
Add gnulib module getaddrinfo for improved portability.
Add gnulib modules human, iconv, iconvme.
Added lookup command to look up host IP addresses.
All host name lookups are done in the background (currently only for lookup and connect commands).
Parsing of downloaded file lists is now done in the background (by a separate process).
Fixed bug: User connection communication is now printed in debug display (set display +debug).
Added References section to web page and README.
Somewhat cleaned up hub connection and disconnection messages.
Improved the way user connections are named before they're identified fully.
Allow localization of some strings that previously weren't localized.
Fix potential bugs when reconnecting to a hub - some local values weren't cleared.
Fix potential bug when GetINFO would be sent twice for a user.
Oops. Send proper tag in MyINFO.
Unescape certain escaped sequences (such as &) in chat text.
Fix bug when an invalid $GetINFO command would be sent to the hub.
Changed state in README from beta to late beta.

2005-09-17: microdc 0.10.0 released.

Improve sorting for completion results.
Fixed possible portability bugs in IPC code.
Partial downloads are now resumed automaticly.
The get command now matches complete directories even if the file name was specified with trailing slash(es).
Cleaned up download and upload code, hopefully fixing a few bugs and adding some improvements. Don't open a file to upload before checking if there's a free upload slot.
Cleaned up download and upload messages a bit.
Fix segmentation fault when completion for cd, ls and find when file list was not received yet.
The queue command now accepts zero arguments to list users we have queued files for.
Fix segmentation fault when browsing oneself twice.
The grantslot can now be used to displays a list of users with granted slots, and to remove granted slot for a user.
The ls, find, and cd commands now accepts wildcards like get.
Fixed some minor completion issues when completing file names with wildcards.
The find command now accepts multiple file arguments.
Improved queueing system, to pave way for automatic download support in upcoming versions. Completed downloads as well as failed ones are now kept in the queue, marked appropriately.
Fix completion for unqueue command (now same as queue command).
The commands get . and get .. now work properly.
Fix upload slots bug: Don't grant slots to arbitrary users! (oops).
Don't overwrite files when renaming after complete download.
Added retry command to try to connect and download files from user.
The status command now includes total bytes received and sent.

2005-09-06: Added missing package files.

Added missing Slackware and Slamd64 package files.

2005-09-02: microdc 0.9.0 released.

Search strings are now all required, not just one of them! (reported by Megizo Pet).
The shell command can now be run without arguments to run the current shell in the foreground.
Implemented completion natively. The completion support in GNU readline is no longer used, but the microdc implementation tries to mimic GNU readline. The following improvements have been made:
Complete partially quoted words (e.g. /ho"me").
Add closing quote only when expected (cannot control this properly with GNU readline).
Improved completion with wildcards - will no longer escape wildcards if there are many matches.
Probably some other fixes as well.
No longer accept c-style escapes (\n, \t etc), but still accepts octal escape sequences (\012, \011 etc).
Sort file name completion results.
Display files starting with dot in completion results only if completion file name starts with a dot.
Implemented wildcard support for completion of local and remote files and directories. A wildcard can be disabled if escaped with backslash or if put inside double quotes (e.g. "*").
The get command now accepts wildcards.
Fixed a bug: Could get stuck reading the startup script on some systems.
Fix raw command - don't escape the data for HTML display like it is done with msg and say.
Fix msg command - could potentially send nothing or garbage due to freeing memory before using it. Escape the message properly as well.
Fixed parsing of boolean values (for active variable currently only) - true was considered negative and false positive. Also allow for flexible translation (suggested by Jakub Jankowski).
Added completion for boolean values (for set active).
Fix compilation problems on FreeBSD:
Include "strnlen.h" where strnlen was being used.
Add Gnulib modules memmem, getline, progname.
Add tempfailure.h.
Add Gnulib module fnmatch-gnu for wildcard support.

2005-08-13: microdc 0.8.0 released.

Add a help command. Document all commands.
Improve commands by accepting multiple arguments: alias, cancel, unalias, get, queue, results, unsearch, who.
Fix Ctrl+C again (register signal handler for SIGINT and other signals in user processes).
Add -n, --no-config command line option for preventing config files to be read and executed on startup.
Improve error handling for shell command.
Improve error messages for terminated user processes.
Improve portability by only assigning struct sigaction.sa_restorer when available (patch submitted by Jochen Friedrich for another project).
Updated FSF address in copyright and license messages.
Update documentation in README, fix some typos.
Fix a bunch of compilation warnings when using gcc 4.0.
Build Slackware and Slamd64 packages of microdc (thanks Jakub Jankowski and Kanedaaa). Also add slackware target to Makefile.am.
Add Gnulib modules sig2str.
Put scripts from autoconf and automake needed for building build-aux, move the rpm spec file into rpm, the slackbuild file into slackware, and some documentation into doc.
Fixed description for Slackware package (from Jakub Jankowski).
Always build slackware packages with -O2 (from Jakub Jankowski).
RPM packages now contain locale files as well.

2005-07-02: microdc 0.7.0 released.

Created a mailing list microdc-devel@nongnu.org which is open to everyone.
Add shell command for executing system commands.
Fix bug in code setting non-blocking mode on file descriptors. The fd wasn't set in non-blocking mode! I can't believe everything worked well before this fix. Now microdc should be more fluid.
The ls command now lists files with small size properly in long mode (-l).
Fix segfault when pressing tab and no completor is expected (reported by Mark Lee).
Add alias and unalias commands.
Don't quote say messages sent to hub.
Get rid of Invalid $MyINFO message: Unknown user .., ignoring message (reported by Gheorghe Pula).
Fix small memory leak when using cd without arguments.
The grantslot command now allows multiple user arguments.
Change way arguments for commands are parsed - microdc now handles arguments much like the shell. This means that if you want to put double quote ("), backslash (\), semicolon (;) or number sign (#) in public or private messages (say or msg), you have to escape those characters like this:
say Debian GNU/Linux 3.1 \"sarge\" is out now\; that's good.
Allow commands to be separated with semicolon, like this:
set downloaddir . ; set listingdir .
Support comments starting with the number sign (#). Number signs inside words are not treated as comment introducers though, just like with bash.
Rewrote screen handling code - fixing some display bugs such as Ctrl+C messing up the screen.
Don't start when unrecognized options are encountered on command line.
Correctly log warnings and other messages printed on screen if logging is enabled.
The executables in the RPM packages now links with ncurses to prevent problems on Red Hat and Fedora systems.
Fix many error messages: Print trailing newline.
Add support for building Slackware packages (from Jakub Jankowski and Kanedaaa, thanks).
The listingdir and listenaddr variables can now be set correctly.
Add Gnulib modules quote, quotearg, argp, and stpcpy.
Complete correctly for set log.
Improved ls command: Allow multiple arguments and options (-l) anywhere.
Complete directory names with trailing backslash even if completing inside a word.
Send correct nick to remove users in user connections.
Internal code changes: Add optparser, tempdir and tmap modules. Remove inline.h.
Internal code changes: Prepare for future POSIX thread support by adding ACX_PTHREAD and removing static variables in user.c.
Compile on systems where fopencookie is not available.
Allow translation of more strings.
Get rid of year ranges in copyright (as recommended by the FSF).

2005-06-01: microdc 0.6.0 released.

Add set command, remove many commands for setting and displaying variables.
Add status command for displaying various status information.
The cd command now accepts - for previous directory (just like bash).
Do not add already added result to searches.
Wrap public and private chat messages better (when they contain newlines).
The results command now displays the search pattern.
Accept comma separated list of ranges for unqueue command.
Display outgoing UDP search results in if debug display flag is set.
Handle incomplete search results from NeoModus DirectConnect 2.20 clients.
Quote strings printed (to prevent non-printable characters from being displayed).
Quote strings generated as completion results.
Use locale settings even if compiled without localization support.
Completion for queue command now generates users with queued files only.
Improved completion for set display command - check if flag starts with `-' or `+'.
The unqueue and queue commands only work when connected (queues are unfortunately cleared on disconnect).
Implement logging to file through set logfile and set log commands.
Add connections display flag, for displaying normal user connection events.
Fix bug in search handling, causing all incoming search results to be discarded (bug reported by Tomas Hallenberg).
Parse $OpList hub message correcly, now issues $GetINFO for all ops.
Reply to $GetNetInfo message from hubs (is this bad?).
Update MANIFEST.sources (forgot to do this for 0.5.0 release).
Added new Gnulib module quotearg, update some other modules Gnulib.
Some internal code changes - merge ipc_private.h into ipc.c, hmap_internal.h into hmap.c, remove collections.h, common.h, substrcmp, replace intparse with intutil, add range, comparison.h, quoting, swap.h, minmaxonce.h, bksearch, tempdir, substrcmp, clean up common code.
Fix handling of files starting with dots - cd .foo would not change to .foo.
Corrected use of quotes in some messages ('foo' => `foo').
Add replacement for GNU Libc's comparison_fn_t.
Rewrite quoting functions.
Speed up file listing operations by accessing directory children map properly.

2005-05-16: microdc 0.5.0 released.

Fixed copyright year for microdc manual page.
rpm make target is now a .PHONY makefile target.
Mention more projects in copyright section in the README.
Set locale and bind to the right message domain in microdc. Otherwise localization won't work. Doh!
Display emotes (patch submitted by Mark Lee).
Fixed typo in manual page (patch submitted by Jakub Jankowski).
Added Polish translation and Polish manual page, also from Jakub Jankowski.
Fix some translation messages (especially regarding plurals).
Improve detection of readline library - the configure script will fail if it is not available.
GNU Readline is required - libedit or libeditline will not do.
Fix memory leak in file completion code.
Add display command for controlling what's displayed on screen.
Remove debug command in favor of display command.
Fix parsing of ranges in unqueue command, would cause crash (sooner or later).
Print Invalid $Quit message only when debug enabled, some hubs send this message for users never joined.
Use a more secure way to resolve and check local path of file to upload.
The results command now displays whether new results are accepted for a search or not.
Refuse to handle empty search patterns, both those sent by remote and those made locally.
The search command will now properly issue searches that haven't been made before instead of reissuing some other search.
The search command will only work when connected to a hub.
Handle downloading of zero size files properly (bug reported by Jakub Jankowski).
Fixed release date for 0.4.0 release. Oops!

2005-05-03: microdc 0.4.0 released.

Fixed various typos in the README document.
Fix debian building: target in Makefile.am is now PHONY.
Add command-line options --help and --version.
Add very basic manual page.
Support localization.
Add swedish translation.
Improve some error messages and error handling in signal routines.
Add newline to some error messages missing it.
Improve way to determine temporary directory.
Clean up common code - remove memory.h.
Fix crash in share directory scanning code (crashed when file status could not be retried).
Make it possible to browse ourselves.
Added MANIFEST.sources file.
Don't add search results to old searches (more than 60 seconds old at the moment).
Create RPM packages for microdc.
Rename Known bugs section and add info about lack of support for multiple share directories.
Make it possible to "fake" address listening on using listenaddr command. This is useful if you are behind a router. Patch submitted by Tiago Cogumbreiro.
Don't add empty lines to readline history.

2005-04-30: microdc 0.3.0 released.

microdc is now hosted on Savannah.
The home page has been redesigned.
Better prompt - displays browsing user and current directory.
Automaticly browses users when file list downloaded.
Add command find to list recursively.
Improve file name completion - now completes file names with spaces correctly.
Improve completion for say command - now adds colon (":") when a single match is found.
Fix certain error messages missing newline at end.
Fix completion for transfer command.
Display more information with who command.
Fix bug in cd command - change to root directory now works.
No longer creates full absolute path for downloaded files in the download directory.
The ls command now prints file sizes in megabytes.
The ls command now sorts files.
The who command now sorts users by name.
The who command doesn't wrap lines.
Better readline check - only link with termcap and/or ncurses if necessary.
Fix _rl_mark_modified_lines compilation bug (reported by Spoiala Cristian).
Check max number of connections to user before sending them $RevConnectToMe.
Add more error messages: "No more connections allowed...".
Fix a potential bug with connections being identified for a certain user despite the fact that no more connections to that user are allowed. This should fix this error:
microdc: user.c:1000: user_disconnect: Assertion `c != uc->info->conn_count' failed.
Display who sent private messages (oops).
Download files as ".part" and rename when completed.

2005-04-22: microdc 0.2.2 released.

Use autoconf, automake and gnulib.
Fix compilation warnings/errors on 64-bit platforms.
Added patch to fix listenport problem (from Jakub Jankowski, thanks).
The msg command no longer sends text into public... Oops!
Updated README (various additions and modifications).

2004-08-21: microdc 0.2.1 released.

Fixed crash on some (many) search requests.
Fixed crash when disabling active mode.
Fixed compile and link problems with readline on some systems (reported by Ludvig Holmström).
Added a new document INTERNALS.
Use user name completion for queue, unqueue and say commands for now.
If file is already queued on get, retry immediately instead of doing nothing.
Detection and handling of user active/passive state has been improved.
TTH searches are now recognized and ignored.
Print only outgoing search information when debug is enabled.
Fixed minor memory leak when reusing searches (issuing same search).
Internal changes:
Implemented a better IPC mechanism.
Better status reporting, improving latency of transfers command.
Improved code looking up user connections.

2004-08-13: microdc 0.2.0 released.

Alpha 2 release.
Added support for searching.
New commands: search, results, unsearch.
Improved completion of local symbolic links (to match bash behavior).
Some minor bugs that I have forgotten about were probably fixed.

2004-08-11: microdc 0.1.0 released.

First release (alpha 1).

Click here to return to the main page.