0.7.3 (11.07.2002)

- GUI: In various tables a SHA1 hash table column used by HUGE can be displayed.
- GUI: Multiple download files can be deleted and the warning dialog is only shown
       for files that downloaded something. You are able to acknowledge or reject
       all warnings at once.

- CORE: HUGE 0.94 support to identify and locate files by hash/URN.

- FIXED: Additional checks against wrongly linked segments was integrated.
         (Sourceforge bug #577767)
- FIXED: Invalid vendor codes can corrupt download list.
         (Sourceforge bug #568119, #578603)
- FIXED: GIV responses to a second PUSH request are not accepted when the first
         request was successful.

0.7.2 (02.07.2002)

- GUI: The search tab integrates a new non-destructive search filter concept. It
       allows to alter filter conditions on a already submitted search.
- GUI: When searching twice for the same search string no new search will be
       submitted as long as the old search is running and has not been stoped
       manually. Instead the already running search will be selected.
- GUI: Added option to configure the push request timeout (Download Settings).

- CORE: Query Hit snooping can be enabled (Download Settings). It lets Phex
        monitor all Query Hits that are passing by for new download candidates.
        It is disabled by default since this feature can generate a high CPU load.
- CORE: Failed download connection will be retried with rising wait cycles
        between connection trys. The max number of connection trys can be
        configured.
- CORE: Push request are only send if they have a chance to be successful. The
        new flag 'Connected to LAN' was introduced to estimate this better.
- CORE: Search results are not filtered permanently. This makes it possible to
        modify filter settings without submitting the search again.

- FIXED: Completed downloads are sometimes stored in the Phex home directory and
         not in the download directory.
- FIXED: On tables the sorting arrow is sometimes displayed on the wrong column
         header when columns are hidden or reordered.
- FIXED: During longer use Phex tend to be jamed with dead connections due to
         unsynchronized network connection states. This causes Phex to stop
         connecting outgoing and not accepting incomming connections.
- FIXED: A single byte could get lost when splitting and merging a segment with
         odd byte count.
- FIXED: Sometimes a forced IP was not correctly used.
- FIXED: No PUSH is submitted when there is no chance that it can be successful.
         (Sourceforge bug #568168)
- FIXED: Sometimes Phex can't be started again when columns are reordered.
         (Sourceforge bug #562840)
- FIXED: The search monitor only showed n - 1 rows.
- FIXED: Completed downloads show their real size and not anymore a size of 0.
         (Sourceforge bug #564318)
- FIXED: Pings are not dropped anymore when there are no more incomming slots
         and the original TTL was 2.
- FIXED: There was FileNotFoundException on first Phex startup.
         (Sourceforge bug #563901)

0.7.1 (29.05.2002)

- CORE: When updating from 0.6.4 a backup of the file phexdownload.xml is created.

- FIXED: Problems with corrupted class files causing repaint drawing problems
         and other strange behavior of the user interface.

0.7 (26.05.2002)

- GUI: Tables can be configured extensively. You can show and hide table columns
       with a right click on the table header. To auto resize columns, you can
       double click between table columns. Most sorting problems with tables are
       fixed. The table configuration is stored on quit and reloaded on restarts.
- GUI: Phex can be minimized to system tray under windows.
- GUI: New multi source download tab.
- GUI: Download candidate and segment view in swarming download tab.
- GUI: The number of search results that are filtered locally is displayed.
- GUI: The unit of the minimum file size search filter can be configured (bytes/KB/MB/GB).
- GUI: Added buttons to remove and search for new candidates in swarming view.
- GUI: Performance improvements on download screen updates.
- GUI: Improved GUI look and a couple of new icons.

- GUI/CORE: Support to filter search results for different media types.

- CORE: Completly rewritten download engine to support multi source downloads.
- CORE: Executable to start Phex under windows. J2SE 1.3 or higher must still be
        installed.
- CORE: Download candidate rating and sorting based on the QHD informations.
- CORE: Configuration option for incomplete and download directory
- CORE: Improved Thread usage to save resources.

- FIXED: Layout problems with J2SE 1.4 of multi source download split pane when
         there is no contents.
- FIXED: Issues with wrong display of download rate after download resume for
         multi source downloads.
- FIXED: Problems when resuming a download after Phex restart.
- FIXED: Problems with differents actions to add searched files to the download list.

0.6.4 ( 17.04.2002 )

- GUI: Default Look and Feel is set to Metal except on Mac OS X.
- GUI: Display vendor in network connection table.

- CORE: Integrated port filter for host catcher.
- CORE: New Logging concept.
- CORE: Provide Phex with total bandwidth throttle.
- CORE: Improved Gnutella 0.6 Handshaking Protocol implementation.
- CORE: Better event dispatching strategy allowing dispatching without using the 
        AWT Event Dispatcher.
- CORE: Removed download list update support for Phex 0.4.6 and below.

- FIXED: Same query send to often to a stable connection.
- FIXED: Problem with removing searches with J2SE 1.4
- FIXED: Improved disconnect policy for host with to many dropped messages.
- FIXED: Transfer rate jumping up to infinite.

0.6.3 ( 27.02.2002 )

- GUI: Optimized layout of the search tab. ( Sourceforge bug #502895 )
- GUI: Changed 'Export IP' hierarchy.

- CORE: Merge all throttle reset threads into 1 for better performance.
- CORE: Optimized research strategy for better research efficiency.

- FIXED: When PUSH request fails two download candidates are removed.
- FIXED: Upload bandwidth is always set to unlimited if download bandwidth is set
         to unlimited.
- FIXED: Bandwidth settings are not displayed correctly if Modem connection is selected.
- FIXED: File inclusion and exclusion can't be saved ( Sourceforge bug #515685 )
- FIXED: For some fonts the text inside a progress bar is not completely visible. 
         ( Sourceforge bug #502899 )
- KNOWN PROBLEM: The maximal overall bandwidth setting is not fully functional currently.

0.6.2 ( 29.01.2002 )

- GUI: Completely new designed settings dialog for easier Phex configuration.
- GUI: Added phex uptime to, and removed duplicate average hops field from, the network tab.

- CORE: Performance improvement for searches against your shared files.
- CORE: Added more verbose loging when a download candidate is removed.

- FIXED: Critical bug with total file size handling. Causing 'add candidate' and research 
         to not function properly.
- FIXED: phex.msg.MsgManager.forwardMsg was attempting to forward message too many times.
- FIXED: Small realtime reduction for host traffic.
- FIXED: The list of include and exclude files will now only be checked against files not 
         against directorys.
- KNOWN PROBLEM: The maximal overall bandwidth setting is not fully functional currently. We
        released anyway to publish a significant download efficiency bug fix.

0.6.1 ( 07.01.2002 )

- GUI: Total connection time is now provided for each remote host (Uptime cell).
       "Connected!" is no longer displayed for stable connections.
- GUI: Display average upload and download rates for whole session. Provide more
       stable time remaining based off average download.
- GUI: Make Download and Share tabs more similar by providing a % completed cell
       in Share tab and changing some names slightly.
- GUI: Slightly modified shared and uptime displays for Network Tab.
- GUI: Add minimum file size option in Search tab.


- CORE: Searches are now performed with upper and lower bound on file size. The
        GUI only allows, presently, the option of the changing lower bound.
- CORE: Use StrUtil.getAppNameVersion() everywhere in code for software name
        and version.
- CORE: Phex may now have a comment associated with the release
        "PHEX 0.6.1 (unstable)".
- CORE: CellRenderers and Tables are now decoupled for non standard cell renderers.
- CORE: Integrate new non linear bandwidth throttle for download,upload and network connections

- FIXED: Uploading race condition eliminated which would allow the
         configured Upload Parameters to be exceeded if a burst of
         upload requests were received.
- FIXED: Fixed several upload and download file size calculation problems.
- FIXED: Percentages are now correct for resumed downloads and partial uploads.
- FIXED: Missing increment of file statistics for incoming connection.

0.6 ( 15.11.2001 )

- GUI: When downloading a search result you can now select between a quick
       start of the download or a configuration dialog that allows you to
       set up the download configuration in an extended way.
- GUI: Added 'Size' column to the shared files table.
- GUI: Abutton to remove a search is available on the search screen.
- GUI: The number of query hits is displayed in the list of searches.
- GUI: The number of files shared and there total size is displayed in the
       share screen.

- CORE: Rewritten Search freamework offers a better research algorithm to help
        you find your files faster and be more friendly to the network.
        Also searches are automaticly submited to new stable ( connected at
        least 60 seconds ) hosts until the search is stoped or times out
        ( auto re-search: 2 minutes, user search 5 minutes )
        (Sourceforge request #473488).
- CORE: Full support for extended Query Hit Discriptors.
- CORE: Support of the new Gnutella Protocol 0.6.
- CORE: Improved loading of shared files in the background to keep the user
        interface from blocking.
- CORE: An automatic check for Phex updates is done once a week and a notification
        dialog is displayed to the user. Currently the update must be installed
        manually. An automatic installation might be introduced in upcomming releases.
- CORE: Removed support for disabling sharing. Every user is supposed to share to
        guarantee a healthy network.
- CORE: Improved performence of building query responses.
- CORE: Improved file finding and error tolerance for upload requests.
- CORE: Short timeouts for hosts that are in a private network ( yellow IP ).
- CORE: The maximal number of hosts in the host catcher is raised to 5000.

- FIXED: Wrong calculation of download/upload rate. The calculation is now based
         on a timestamp that is periodically refreshed.
- FIXED: Problems when having search monitor enabled and displaying 0 rows.
- FIXED: Very large download log window sometimes bigger then the screen.
         Sourceforge bug #476257.

0.5.6 ( 26.09.2001 )

- GUI: A new auto connect host overview panel on the Network tab allows you to
       configure the auto connect hosts by yourself. The hosts file will be stored in
       the file autoconnecthosts.cfg in your phex directory
- GUI: Improved Download refresh handling to reduce flickering of table during updates.

- CORE: Imporved auto connect host interface.

- FIXED: Illegal filename issues when trying to save download files.
- FIXED: The phex.jar is lower case again. Sourceforge bug #464696

0.5.5 (21.09.2001)

- GUI: Displays status color on selected table cells.
- GUI: Removed number overflow for the file count in the network statistic.
- GUI: Removed the unused 'Alias' column in the Shared Files table and added a
       'Directory' column.

- GUI/CORE: Performance improvements with specific gui updates when data is changing.

- CORE: Automaticly tryes to bind to next local port if port is blocked.
- CORE: A download in the download list can have 'No candidates' if no known remote
        host is able to provide a download file.
- CORE: Phex gets its own home subdirectory in the user home directory. The name
        is phex for all non unix systems and .phex for unix systems. All old files
        will be moved into the new directory

- FIXED: Open upload slot issues that sometimes causes that no QueryHits are returned.
- FIXED: Download resuming is not working in some cases. Sourceforge bug #459087

0.5.4 (05.09.2001)

- GUI: Added configurable search monitoring.
- CORE: Improved port out of range handling.
- CORE: Updated auto connect hosts.


0.5.3 (11.08.2001)

- GUI: Improved HostCatcher without a moving selection.
- GUI: Improved Network event model for better performance and faster updates.
- GUI: Changed average hops to float.

- CORE: Faster Host connect strategy.
- CORE: URL decoding of download request.

- FIXED: Can't resume downloads from Limewire higher then 1.4. Sourceforge bug #445210
- FIXED: Laxed the very strong incomming connection rejection. Sourceforge bug #447770
- FIXED: Deadlock on search when reaching max search results. Sourceforge bug #442152

0.5.2 (10.07.2001)

- CORE: Maximum retries until new search is issued set from 300 to 500.
- CORE: ReSearch if only one candidate is left (instead of two).
- CORE: Set default retry waiting time to 120 seconds.
- CORE: Classpath was added to the manifest so Phex can be started via
        "java -jar phex.jar" again. The StartPhex.class was removed.


0.5.1 (25.06.2001)

- GUI: Integrated progress bar in download tab

- CORE: Added debug log system.
- CORE: Added command line parsing and help. Try java -jar phex.jar -h.
- CORE: Improved automation for download candidate search was introduced.

- FIXED: Sometimes phex couldn't remove several files at once.
- FIXED: Javadoc talks about a program called phex now instead of furi.
- FIXED: Possible out of range errors in tooManyDownloadPerIP and
  removeCurrentCandidate related to the mCurrCandidate = -1 semantic.
- FIXED: Workaround for the text field doesn't respont problem under X.
- FIXED: Removed J2SE 1.3 issues to be compatible with J2SE 1.2
- FIXED: Duplicated hosts are not accepted anymore in the download candidates.
- FIXED: Busy hosts are not removed from download candidates.
- FIXED: Last host can be removed.
- FIXED: Imporved search behavior to keep it from returning to many results.
- FIXED: Allow up to 255 char filenames.
- FIXED: Some thread synconization problems.

- KNOWN BUG: If you have on some systems (Windows) very long pathnames you can
  get into trouble with long filenames. Windows allows you to have 255 char
  filename but the whole path including the filename is only allowed to be 260
  chars long. This will be addressed later since it's not so very critical in
  most situations.
- KNOWN BUG: There are some problems rendering the swing progress bar. Please
  refer to java bug 4427501.
- KNOWN BUG: There are some problems with the swing focus management. Please
  refer to java bug 4290675. These will be solved with j2se 1.4.


0.5.0 (07.06.2001)

- GUI: remaining time until next download retry is now displayed dynamically
- GUI: added all available system fonts to the font selection
- GUI: the strange SHIFT clicking to sort tables is been replaced by single
  clicks
- GUI: to rate a search result a score was introduced that shows in percent
  how many search terms are part of the filename.
- GUI: downloadlist displays the local filename instead of the remote filename
  when downloading
- GUI: separated the percentage column from the size column in the download
  table
- GUI: changed the order of columns in the upload table to reflect the order in
  the download table

- CORE: rework of the shared file handling gives a little more performance
  and pushes the max numbers of shared files a system is able to handle a
  little further.
- CORE: improvement on formating byte strings. Memory allocation improvements.
- CORE: changed tooManyDownloadPerIP to check if there is a current remotefile,
  since we allow now that no remotehost does exist or is active.
- CORE: XML lists store status of download.
- CORE: Added a improved start support for Phex. Hopefully this makes thinks
  easier to handle for the users. To use it place StartPhex, phex.jar and the
  jaxp  jars in the same directory. Starting should work with calling
  "jre StartPhex" or "jre -cp . StartPhex".
  More documentation about it is in the javadoc of the StartPhex class itself.
- CORE: Removed dependencies on ObjectStream. Trying to do still a good job
  reading old filelists.
- CORE: The download list is exported in XML. The old download list will
  hopefully be still loaded if no XML download list is available. The
  filename of the xml download list is phexdownload.xml
- CORE: reserve 25% or 1 (whichever is greater) connection slots for outgoing
  connections.  If max connections is 1, then don't reserved
- CORE: font update is done without restarting client
- CORE: changed format of phex.download. Convert old format to new format.
- CORE: integrated a new search engine for better search performance.
- CORE: time of logfileentry is added in front of the entry.

- FIXED: integrated a new multi plattform browser launcher.
- FIXED: removed unnecessary menu item to set the user name for the removed
  chat.
- FIXED: flickering of the download-candidates table reduced
- FIXED: retries are now working as they should. No more gc race.
- FIXED: fixed an ArrayIndexOutOfBoundsException when removing files from the
  bottom of the downloadlist. Table entries are now deselected before removal.

0.4.6 (19.05.2001)

- empty download buffer timeout implemented

0.4.5: (18.05.2001)

- check for 50% outgoing connections implemented
- file pushing is now properly supported in both directions
- new splashscreen
- the candidate search of a file is stopped if it starts downloading
- download buffer check implemented so downloads will not attempt to read from
  empty buffer
- some minor bugfixes

0.4.2: (14.05.2001)

- fixed "unstoppable searches" bug
- resumes from Limewire 1.4x hosts are accepted

0.4.1: (04.05.2001)

- the downloadfile´s logs are now cut at 4048 bytes
- the garbage collector is called after each download´s
  300th download attempt

0.4.0: (22.04.2001)

- search candidates with different filenames but same file
  size are accepted
- automatic search for new candidates when less then three
  candidates are present
- if push request fails, candidate is removed from list
- if host cannot be found, candidate is removed from list

0.3.1: (21.04.2001)

- the candidates list is now an ArrayList instead of
  a Vector
- the file sharing classes have been put into a seperate
  package (phex.share)

0.3.0: (19.04.2001)

- the size and number of shared files of each connected remote host
  is now displayed on the "Gnutella net" panel
- the remote client id is now displayed in an own column in the "Share" panel
- the size of the search results sent by phex is now sent in kilobytes instead
  of bytes

0.2.1: (16.04.2001)

- backstepping when resuming downloads is now finally implemented

0.2.0: (15.04.2001)

- new feature added: search new download candidates
- download messages extended and modified to closer reflect the things
  happening in the background
- standart waiting time for resumed downloads set to 30 seconds (instead of 5
  minutes)

0.1.1 (preview 2): (09/04/2001)

- further packaging of the source

0.1.0 (preview 1): (04/04/2001)

- a new branch of this software is opened under the name "Phex" by
  Konrad Haenel.
- the "Chat" and "IRCChat" modules have been removed.
- the "furi"-package is now seperated into various smaller packages.



********************************************************************************
*   This is where the development of Furi ends and Phex begins. I will use     *
*   new version-numbers to reflect the change of the project.                  *
********************************************************************************




0.6.8: (08/02/2000)

- bug fix: Connection Timeout setting can't be set.  Always reverted back to 0.


0.6.7: (08/01/2000)

- IRC channel chat.
- IRC one-to-one chat.
- Identd server.
- perform find on search result.
- protect private network with password.
- secured exchange of authentication info without sending password in clear text.
- remove old style of exchange of authentication info, i.e. GNUTELLA PASSWORD REQUIRED
- flow control: deprecate neighbor if it's too slow.  stop forwarding broadcast msg.
- status bar.
- launch web browser on a remote file of the search result.
- launch browser to browse remote site on search result window.
- configure web browser to launch.
- turn disconnect policy on an off.
- save disconnect dropped packet percentage.
- save disconnect latency timeout.
- add border to search and download panes.
- turn tooltip popup on and off.
- enable search button upon restart.
- enable search button when any change on the search options.
- auto-serialized config file.
- import host list on connect host editbox.
- add default IP address masks for filtered-hosts.
- new arriving host replaces old non-connectable host in host catcher.
- fix the margin of the info/description label on various dialog boxes.
- clear search history.
- configurable retry interval.
- configurable ping timeout.
- download retry wait.
- download retry rotation on queued download.
- restart from the beginning of host catcher once tried all the hosts in it.
- bug fix: limit connection to max connection instead of max plus one.


0.6.6: (06/22/2000)

- persistent resume of download across sessions.
- allow picking of multiple download candidates for a download.
- allow download to switch between candidates.
- search new download candidates for a download.
- auto-resume download at startup.
- auto-search on download candidate at startup.
- auto-retry.
- time delay for showing download error message.
- improve responsiveness.  Add standalone thread for background jobs instead of using Swing's timer.
- ping neighbor periodatically to get host to host latency.
- use hash value for the sharefile's index.
- configurable connection timeout.
- new splash screen, thanks to Chris Pall's JPEG file (chrisbp@documentprocessing.com).
- improve showing download log.
- disconnect connection if drop packet ratio is too high.
- disconnect connection if too many packets are queued in the send queue.
- disconnect connection if latency is timed out too long.
- disconnect policy dialog box.
- distinguish gnutella GET and http GET, return partial response and Content-Length.
- bug fix: severe security hole, http://ip:port/../ can browse int higher directory.
- bug fix: using web browser to download files from FURI running JDK 1.1 doesn't work.
- bug fix: negative download percentage.


0.6.5: (06/06/2000)

- installer for win95/98/NT.
- splash screen
- has separate host catcher list for each network name, to better maintain a private network.
- auto-connect from the current selection of the host catcher.
- copy URL of result file to system's clipboard. (thanks to Jeff Thompson jeff@thefirst.org)
- show download time left as hour:minute:second.
- double click download.
- mark search result that has been downloaded.
- show the routed-from host ip in search monitor.
- bug fix: Encode filename in HTTP directory listing. (thanks to Jeff Thompson jeff@thefirst.org)
- bug fix: Hitting Connect from host catcher while it's being populated locks up FURI.
- bug fix: Download button got enabled/disabled rapidly when lots of results coming back.
- bug fix: Max share setting in Share Setup doesn't get saved.


0.6.4: (05/26/2000)

- multi-keyword search on shared files' names and content.
- make proxy password's textfield hide text being typed.
- restrict the max number of matching results to return in response to incoming search.
- make search table's number columns sorted like number.
- make passive search table's number columns sorted like number.
- make share table's number columns sorted like number.
- bug fix: encode URL in browsing and navigation.
- bug fix: in JDK 1.3, search result table loses selection while results coming back.
- bug fix: can't cancel a window close event from the system menu.


0.6.3: (05/25/2000)

- web server capability added.  now FURI can serve html pages to browser.
- navigate directory listing from browser.
- content search on file types: txt html htm jsp java c cc cpp h chh cxx mp3 csv.
- content search - built indexing framework and indexing engine.
- multiple simultaneous searches, upto 20.
- search/result history by combobox.
- shared directories and files browsing from a web browser.
- return HTTP errors when request is bad.
- add per host limit on the number of downloads.
- add per host limit on the number of uploads.
- remove restriction on matching filename before upload.  filename with spaces can be uploaded now.
- re-arrange the colors of download/upload types.  green for completed was too light to see.
- make passive search result table sortable by column.
- make menus tab context-sensitive.
- split read/write/drop/send queue into columns.
- color code the host table based on status.
- change the accelerator keys for view tabs from F1-F6 to Ctrl-1 to Ctrl-6.
- added default starter cache proxy hosts.
- added borders to each tab.
- pipe stdout to furi.log file.
- bug fix: passive search now uses the current max search limit.
- bug fix: colors don't re-sort in the download window when files are sorted (like the selections)
- bug fix: colors don't re-sort in the upload window when files are sorted (like the selections)
- bug fix: don't try push request download if Behind Firewall is checked by user.
- bug fix: The F2 (Search) and F6 (Chat) shortcuts don't always seem to work.
- bug fix: memory leak in routing table.  (thanks to Todd Fast, todd@conga.com)
- bug fix: split windows won't collapse when used in JDK 1.3 or when switching Look&Feel.


0.6.2: (05/16/2000)

- go through hoops to work around the freaking losing table selection bug in JDK 1.3.
  this would help people using JDK 1.3.


0.6.1: (05/15/2000)

- lots GUI cleanup.
- clean up and use the action framework.
- use the menu bar.
- add popup context menus at right mouse click.
- clean up icons.
- connect UI components to allow enable/disable.
- user not allowed to select multiple chat channels
- remove the usage of URLDecoder() to be compatible with JDK 1.1.x.  Upload works in JDK 1.1.x now.
- disable file sharing works now.
- add msg count to chat channel.
- add new msg since last read to chat channel.
- add max chat limit per channel.
- sort chat channels by number of msgs.
- filter long channel name bad chat packets.
- show remote servant name during download.
- add menu for ignored, filtered, invalid host.
- right-click context menu for adding ignored host.
- right-click context menu for adding invalid host.
- right-click context menu for adding filtered host.
- save/restore clientID.
- filter out abnormally huge filesize and file count in InitResponse.
- encode filename in HTML interface (thanks to Jeff Thompson jeff@thefirst.org)
- color code the download/upload tables.  Red for failures/aborting, green for completion, blue for in progress
- preserve extension when shortening download filename.
- add the number of matched search in the shared file list.
- add the number of uploads in the shared file list.
- bug fix: check cchat msg seen.
- bug fix: divide by 0 exception when displaying 0 length file in the download table.
- bug fix: download rate is computed wrong for resumed download.
- bug fix: divide by zero error in calculating upload percentage when the other host requests 0 byte upload.
- bug fix: disable sharing doesn't work.


0.6.0: (05/10/2000)

- user-selectable fonts.  currently restart is required to see the changes.
- remove URL-encoded filename since some servants can't handle it.
- remove path from filename before saving the download file.
- split the filtered host list into two lists - filtered host list for
filtering search result and invalid host list for guarding the host catcher.
- add checkbox to search result to easily control whether to use the filter host list.


0.5.9: (05/06/2000)

- support outgoing connection (network/download/push upload) via Socks5 proxy server.
- keyword filtering on search result, for removing bogus result.
- add tooltips on the fields at the Search tab.


0.5.8: (05/04/2000)

- remove existing trailing path separator in download directory.
- shorten download filename for those platforms that has short name limit.
- add download log for better diagnosing download problem.
- bug fix: accept different kinds of HTTP replies during download.
- add setting for indicating FURI is running behind firewall.
- the filterd hosts list now only applied to search result if the Behind Firewall setting is set.


0.5.7: (05/04/2000)

- route push request.
- handle push request upload.
- perform push request download.
- named private network.
- join/leave network.
- protect my host with password.
- connect to remote host with password.
- restart listener automatically when port changed.
- add checkbox to turn on/off auto-connect from host catcher.
- replace Add Host and Remove Host buttons with Connect button.
- add checkbox for auto-cleanup of defunct connection.
- hitting Enter in the connect host textfield will start the connect operation.
- auto-select the chat channel as the first chat coming in.
- add setting for behind firewall.
- check for returned HTTP error in download.
- filter duplicate from passive search.
- bug fix: channel chat's date is formated wrong.
- bug fix: can't remove the last host in the list.


0.5.6: (05/01/2000)

- resume download for stopped or error download.
- partial download, reuse existing partial download.
- remove Abort Download button; replace it with stop button.
- remove Clear Complete button; replace it with general Remove button.
- download's Stop/Resume/Remove buttons can work on multiple selections.
- ask to confirm overwriting existing file when downloading new file.
- prevent same filename files to be downloaded at the same time.
- partial upload, upload resumed
- optionally automatically remove completed downloads.
- optionally automatically remove completed uploads.
- give the file list page when the HTTP request is not on a file.
- allow Browser/GetRight/Go!zilla to download and resume download files from FURI.
- manual setting of my ip address.
- ignored hosts, prevent unwanted hosts from connnecting to FURI.
- filtered hosts, filter out search result from unwanted hosts.
- remove filtered ip from host catcher.
- make * to be the default inclusion pattern for file sharing.
- recusively scan shared directories.
- download/upload/search tables remainded sorted even as new result arrived.
- filealias.txt file to describe the files being share.
- inclusion pattern for sharing file now support the *exp and exp* patterns.
- shared file table has extra columns for alias, search count, and upload count.
- add Stop search button.
- display number of files found of a search.
- hit Enter on the search text field starts the search.
- remove duplicate files in passive search result.
- change the unit for bandwidth limit from bytes to K.
- bug fix: reverse the checking of search's min speed against My Host Speed.
- bug fix: the menu for enable/disable monitor search is reversed.
- bug fix: if furi.cfg doesn't exist and the Download directory is not set, search will give error.
- allow port to be specified to be randomly generated - set to 0.


0.5.5: (04/24/2000)

- performance improvement.
- passive search through monitoring result.
- show my ip and port.
- random listening port.
- initial listening port is not going to be at 6436.  random default starting port.
- reset/update statistics.
- download passive search result.
- discard msg if the main send queue is too long.
- discard msg if the private send queue of a host is too long.
- limit max hosts caught.
- drop msg if its TTL is greater than MaxTTL.  Temporary drastic hack to stop flooding.
- better total file size display.
- visual cue for searching.
- limit on max connections (both incoming and outgoing).
- set max bandwidth.
- the bandwidth throttle is calculated correctly now; the limit should be spreaded out among all downloads/uploads.
- msg rate, sampling at discreet interval.
- enable/disable further upload.
- warn of download/upload pending at exit time.
- enable/disable search monitor.
- show share file list.
- make host save in discreet intervals.
- use currentTimeMillis instead of Date.
- format chat's time.
- faster access to system configuration.
- sorting stays in effect when new results arrived.
- auto-cleanup of defunct connection, delayed cleanup.
- bug fix: multi-selection bug.
- bug fix: removing multiple hosts bug.
- bug fix: look and feel menu not following saved setting.


0.5.4: (04/15/2000)

- fix bug: invalid share directory causes FURI to puke.
- fix bug: multiple threads are contending to save the furi.hosts file;
would cause problem on platforms that have exclusive file open.


0.5.3: (04/14/2000)

- clean up old routing table entry and msg-seen table.
- ensure unique caught host.
- reset hosts caught.
- refuse to add duplicate host.
- auto connect of caught hosts.
- save host catcher hosts.
- fix sorter bug in host catcher table.
- more info on monitor.
- send queue length as an indication of host speed.
- change localhost to 127.0.0.1.
- change the way my ip address is figured out.


0.5.2: (04/12/2000)

- remove and change some code using JDK 1.2 so that FURI works with JDK 1.1.7 plust swing 1.1.1.


0.5.1: (04/08/2000)

- forward unknown msg.
- recv/sent/drop counts.
- stop search when upload limit reached.
- auto-start connect after add host.
- bulk remove host.
- bulk connect host.
- bulk disconnect host.
- save old search text and setting
- separate file ext in search result
- redo requeue sending to busy host.
- redo deserializeString, return len, pass in StringBuffer, watch for non-0 string.
- throttle # of download
- throttle download bandwidth
- config for download directory, bandwidth, # of download, auto-clear completed
- throttle # of unload
- throttle upload bandwidth
- config for share directories, bandwidth, # of upload, search limit, auto-clear completed
- startup parameter on config file
- share exclusion/inclusion
- search monitor
- config listening port, my speed, TTL, min connection
- host catcher
- connect from host catcher
- stat, host, file count, total size, msg count, hop count, upload count, download count
- channel chat
- add timestamp to chat msg
- config save has problem


0.5.0: (04/03/2000)

- Initial version.


0.0.0: (03/25/2000)

- FURI project started.




To Do:

- add host from search/upload/download windows.
- add pending download's host to connection list on startup.
- use gnet starter on startup instead of host catcher.
- reseting drop packet sampling interval periodically.
- timeout read on download.
- timeout write on upload.
- timeout search.
- keyword filter for passive search.
- scheduled search.
- auto download from search result.
- make filter result case insensitive.
- auto create and share the filelist of URL links of the shared files in a directory.
- save passive search term.
- re-order download items in queue.
- add sounds to upload start/end, download end, first search return, incoming chat.
- copy and paste menu, context menu.
- turn file indexing on/off.
- download bandwidth allocation policies: based on oldest time, file size, etc.
- drop connection if too many replies.
- spam detection using random query.
- add clear button to search result.
- download file even if the file size is unknown.
- remove search result after selected for download.
- add filterd host checkbox to passive search.
- sort download time left and percentage done.
- add incoming search matched the shared file column in the search monitor.
- in search result table, make file column wider, make extension/size columns narrower.
- validate upload directory right the way.
- directories check at startup time.
- get file list of a ip from a search result.
- host-based security, allowable host list.
- connection transfer at negotiation time.
- auto connect from host catcher start on high hop count.
- add tooltips for fields.
- detect self's speed.
- set self's max TTL based on my speed.  i am the slow link.  don't pass too much stuff through me.
- download host directory
- make all managers' constructor private and add new constructor to pass in ServiceManager
- reducing TTL of msg going to a slow neighbor
- search/response caching.
- init/response caching.
- reduce forwarding ping randomly.
- flood detection and control.
- decrement TTL of long send queue.
- don't allow more than one incoming connection from a host, optionally.  be careful, hosts behind firewall will appear to have the same IP.
- temp directory for download.
- check for ignore/invalid/filter duplicate before adding.
- log upload and download to file.
- download through HTTP proxy.
- different set of config files.


Bugs Reported:

- Not working well on multi-processer NT machine.
- Screen display is dithered on 256 color display
- Search results list: if you have something selected (like the 3rd row)
and you stop the search and do a new search the rows that were selected in
the old search are still selected in the new search ... this means that you
may download something you're not interested in
- there are a few problems with the downloads, ie requesting it to stop,
but it still keeps running.
- if you abort a download, it removed it from the list, yet it continues to
download. When I attempt to delete the filename.ext.dl from my download
folder, I get access denied. When I view properties for the file, I notice
that it is in fact growing still. This is reproducable if you try to start a
file downloading, then stop it before it start. It will still connect and
download, all invisible.


