#5 Upload status improvements for 0.2.2


Windows executable:

Source code changes:
(or see attached if it works)

Upload status display enhancements by Mycroftxxx,
released February 5, 2004
Changes based on MUTE_fileSharing-0.2.2-
rc2_UnixSource released January 27, 2004

Changes included:

1. Instead of deleting and recreating the entire status
display each update, new lines are added as and when
required, and existing lines are updated in place. This
eliminates that maddening scrollbar jump to the top
whenever you try to scroll down, and stops most of the
annoying screen redraw flashing.

2. The baseline code displays a raw count of the total
number of chunks of each file which have been
uploaded, including retransmits and multiple uploads of
the same file. The new code displays uploads of the
same file to different clients on separate lines, so that
progress can be displayed meaningfully, and displays the
number of the last chunk that was sent instead of the
raw chunk count. It also displays the total number of
chunks in the file, and shows the percentage of the file
sent so far.

3. A new column labelled Status has been added, which
displays one of the following:
H:MM:SS (estimated time to completion for active
Stalled (no chunks have been sent for over 1 minute)
Failed (no chunks have been sent in over 15 minutes)
The estimated time to completion is just a simple linear
extrapolation of TimePerChunkSoFar *
NumberOfChunksRemaining. The more erratically the
chunks are sent, the less accurate this estimate will
be. If the chunks get sent out fairly smoothly, the
estimate should be good.

4. If a connection's Dropped message count exceeds
10% of its Sent message count, the connection will be
closed and replaced with a new one. The 10% limit can
be adjusted by placing the file
maxDroppedMessagePercentage.ini into your settings
directory and editing it as required. This isn't an upload
status fix, but it's too small a change to release
separately. I was tired of seeing bad connections that
lingered for hours, dropping as many messages as they
sent. Bad connections like that are basically message
eating black holes and do more harm than good, not to
mention choking your server's ability to upload to others.