You are currently running version 1.0.0.11 release of bunzilla
Version 1.0.0.11 released 9/11/11
- enhancements
- Performance enhancements and tuning
- Increased pass thru request requeue time to a longer interval to allow peer more time to respond and reduce the frequence of requeing downloads
- enhanced system to save list of shared documents and revalidate them on startup rather then reindexing all shared documents at startup. This will
reduce system utilization level at startup for people sharing lots of big documents
- modified peer connection to run faster at startup
- Changes
- Modified file filter to no longer consider .pdf an image
- Bugs
- Modified find segment request to only return true when there is a full block that contains the segment. Previously find segment would
return true and pass the block map, which would not contain the segment if it occupied less then the full block. This would result in
repeated find requests.
- When there is no known path to a file, a find file request is issued which inlcudes a unique find request ID. The download process
attempts to find additonal segments of a file but first attempts to check that a find isn't already in the list of tasks. Because
the task has a different request ID, it would never be found. This resulted in piles of additonal taskas where the same find
keeps getting issued resulting in huge numbers of tasks.
Version 1.0.0.10 released 12/8/10
- enhancements
- Modified help to fall back to the website help if help is not locally installed. Currently Bunzilla
can be downloaded as a full installed version or the user can run the executable directly without doing
an installation. The help files are installed as part of the installer and therefore not normally available
when someone simply runs the executable.
- Modified searching by file type to recognize some less common file extensions.
- Added dialog to alert user when they aren't sharing any files.
- Modified display of file size to be formatted to improve readability
- Made the search tab the default tab on launch
- Performance enhancements and tuning
- Tuned performance metrics on unstable connections (eg bad wifi) to slow down uses of big tcp and udp packets. Tcp would
tend to cycle the connection while udp would tend to go into a brief stall when retransmitting lost packets.
- Adjusted splitting size on multi-download to fragment less
- Changes
- Modified the busy counter on the status screeen to display current time interval busy level rather then cumulative
busy level
- Adjusted window size
- Bugs
- Killing Bunzilla without a proper shutdown could result in corrupted partially downloaded files. There were
cases where attempting to load these corrupted files during subsequent startup resulted in the program crashing.
The program has been modified to recover from such a failure.
- Added error handling for case where uploading file and the system runs out of disk space or otherwise is
unable to write to the uploaded file.
- Configuration setting to limit speed was actually picking the next highest speed for all options except 5k
- Fixed issue where lookup of new peer failed if a connection was already received but not thru the connection process
- TCP listener sometimes seems to stop accepting incoming connections. Add diagnostic code and temporary fix to
periodically restart the listener
Version 1.0.0.9 released 8/20/9
- Bugs
- Fixed screen redraw issue
Version 1.0.0.8 released 7/20/9
- enhancements
- Modified user interface so that closing a tab positions you on the next tab rather then
on the status tab. This allows the user to rapidly close a bunch of tabs in a row.
- Modified the search function to search on individual words rather then the entire string so
documents that contain all the words in differing order will now match. Since matching is
done on the client end, the enhanced search results will not function across all users until
everyone updates.
- Modified search results to change background color if the same file is found from multiple sources but
the name appears to be the same (eg. someone changed the name)
- Changes
- The default file location for sharing is "my documents". The user has the ability to
change this to any location they want. If the location the user specifies no longer exists on
subseqent startups of the program or is no longer accessible to the user, the program previously defaulted to
c: as the shared location. The program has been modified to fall back to c:\bunzilla instead and
will attempt to create the directory if it does not exist.
- Performance enhancements and tuning
- Modified the shared document rescan to occur less frequently, to continually reset its clock after
each document processed so the rescan will not occur until the time delta from the last document rescanned rather
then the first document rescanned, increased the interdocument delay period.
- Bugs
- Fixed bug for remote document maintenance cycle where the interval between maintenance cycles could
exceed the max allowable interval if the program were left running for many days and weeks.
This bug increases the probability that the person sharing a file may have disconnected but the
document would remain listed on the network because it hand't been removed from the cache as quickly
as intended.
Version 1.0.0.7 released 5/20/9
- enhancements
- Added "clear" button to search result window to allow the user to clear results
they have already reviewed
- Modified system to perform 15 day partial file cleanup during maintenace cycle rather then
just at startup so those who leave the program running 24 x 7 have files cleaned up. Made this
a user controllable option via the storage configuration page
- Bugs
- Modified 15 day partial file cleanup to remove the file reference if no segments exist rather then
just removing the segment.
- Modified code to properly reset default values when the corresponding key is not found in the registry
Version 1.0.0.6 released 4/20/9
- enhancements
- modified search screen so pressing the enter key will start the search so user does
not have to click on the search button
- Bugs
- Some programs such as eraser which cleans directory entries and cluster tips on
the file system during a free space wipe caused some shared files to stop being shared.
The program has been modified to allow continued sharing of a file if it detects another
program has a prolonged lock on the file. A periodic rescan of indexed files has
been added to assist in reindexing files that were modified by another program, but will
now be left on the sharable list.
Version 1.0.0.5 released 3/20/9
- enhancements
- Added autodownload feature to search results. This allows you to automatically download
all matching results, which is useful as a 'scout' feature where you initiate a search for
a hard to find files. You can leave the program running in the background and whenever a
match is found, it will initiate a download automatically.
- Updated status screen to show performance graphs
- Added status information to task bar
- Added General configuration tab
- Setting to allow clearing of download upon completion to be set perminently
- Added a checkbox to each search page which allows the user to control the automatic selection of
the progress tab when the user clicks the download button. This allows the user to stay on the
search result page and quickly pick additional items to download. User can define the
default state of this check box thru the new general configuration settings.
- other changes
- Updated help files and screen shots
Version 1.0.0.4 released 2/20/9
- enhancements
- Modified clicking on notify in task bar to automatically restore normal size if screen was minimized
- Tuned performance metrics
- Enhanced startup to remove partial downloads that are more then 15 days old
- Further tuned timing of how long known remote document references are retained. Known remote docs represent files
recently seen. The source may have gone off-line since it was last seen. Shorter time means less likely the source
has become unavailable.
- Refined critera for how long to keep known peers that have been unreachable. Eliminating infrequent users decreases time spent
trying to connect to users who are no longer available.
- Modified upper limit to 500 on known peer database to keep fewer known peers since there aren't a large number of
persistent users
- Enhanced connection management to wait a short while (2min) and then re-attempt connection to a failed peer. This should
improve reconnect time to peers that are on poor quality networks and have lots of lost packets.
- Bugs
- Fixed drawing of partially available files, set to white rather then background which was leaving whatever was
on the screen show in the free space
Version 1.0.0.3 released 1/20/2009
- enhancements
- Modified download progress bars, added mouse-over showing of percent downloaded
- Modified result tabs to display count on tab
- improved drawing of border on progress bar
- bug fixes
- fixed bug: monitor screen not updated after flushing expired known remote docs. No
user or performance issue, just incorrect display on screen
- removed tooltip on progress bar
Version 1.0.0.2 released 12/27/2008
- bug fixes
- fixed bug: remote connection close/fail while closing connection could result
in double reporting of closing leading to less then 0 connnections open. No
functional problem, but status screen reports some huge number of open
connections
- Fixed bug: delete from known remote documents when path returns rejected was
failing to delete during download. Deletes occcur when the existing path is no
longer valid because someone along the path joined or left the network or the
hosting node removed the file. This could result in a prolonged hang in download
that is unnecessary if other paths or sources could be located. Note, this only
would effect someone who was along a single node path (eg. none of the nodes upstream
from the failed node have more then 1 connection and thus can not initiate a new path
search) otherwise a timeout would occur upstream and a new path search initiated.
- Tuned performance metrics
- adjusted computation of busy level, scaled up level of activity required
- modified task manager to clean up tasks left abandon by remote nodes disconnecting
more frequently
- modified connection manager to slowdown attempting connection once all known peers
have been tried
- modify cache metrics to retain known remote documents for shorter periods of
time to reduce period where a file might be no longer be available but is reported
as such by a caching node
Initial Release: version 1.0.0.1 released 12/17/2008
- Searching
- Filter results by file type
- Filter results by file size
- Display results with fragment and number of source indicators
- Search local cache
- Search cache of known remote documents
- Manage remote cache lifecycle by age
- Clear remote cache entry on report of not found
- Search peers
- Propogate request to additonal peers
- Downloading
- Download progress status bar
- Split requests across multiple sources
- Auto seek additional sources
- pass content thru peer
- refer client to other peer
- Assisted connect to referred peer
- Share partial files with other peers
- Manage paritalfile lifecycle by age
- Join ajacent or overlapping fragments
- monitor cache for external change
- validate partial fragments on restart
- maintain fragment with in-progress upload until complete
- Cancel download
- Move download to library
- Validate integrety
- manage duplicate names that are different content
- Clear completed download
- Uploading
- monitor library for external change
- Networking
- encrypted data and key exchange
- Dynamic packet sizing
- multi-threaded TCP listener & TCP connection management
- multi-threaded UDP listener & UDP connection management
- packet resequencing
- lost packet rerequest
- connection keepalive and dead connection detection
- UDP nat traversal
- UDP listen port keepalive technique
- UDP connection keepalive technique
- Assistent UDP referral for nat router traversal
- UPNP router configuration
- multiple NIC support
- bandwidth throttling
- Clean shutdown notification
- Connection management
- Connection initiation
- Dead connection cleanup
- Inactive connection cleanup
- Excessive connection pearing
- known peer management
- manage peer database lifecycle
- Track connectabability of peers
- Track peer value
- Disgard outdated peer info
- exchange peer info at connect
- exchange peer info on request
- Monitoring
- internal performance monitor and activity prioritization
- status info for user
- configuration
- user reqested peer connection
- dynamic reconfiguration of listening port
- dynamic reconfiguration of network throttling
- dynamic reconfiguration of sharing directory
- dynamic reconfiguration of temp storage allocation
- Future expansion
- UI communicate with app via message system so app can be split into
client and server with server running as service
- Help files
Background
Bunzilla was created as a planned learning activity in the .net framework, object oriented programming,
concurrency, multithreading, c# programming, and experimenting in new p2p networking concepts. It is
not a commerical product. I hope you enjoy using it and find it a useful tool. The product will be enhanced
as time permits. If it appears this tool is getting lots of interest, I will be more committed to updating
it. I'm not much of a file sharer, but it seemed like an interesting and challenging project to spend some
free time on.