
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.
- filter by filesize.
- 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.


