Beta 8.1 Release 3 - fixed a major bug with compact announces Beta 8.1 - major optimizations (no more threads) * tracker links were removed since they were threaded - added 'fast cache' to speed up index/scrape generation at a cost of delayed stats * added the "bnbt_refresh_fast_cache_interval" config value * the tracker will cache index/scrape data for at most this many seconds - slightly better error messages (thanks Olaf) - fixed a bug where BNBT would report bad headers when none were sent - minor optimizations (e.g. global recv buffer) - minor MySQL query changes - modified MySQL tables to use BLOB instead of BINARY CHAR - removed XML dumping - added RSS dumping (thanks labarks) * added a ton of config values for RSS dumping - changed /torrent.html linking to /torrents/.torrent - no longer send compressed responses if size_of_compressed > size_of_raw - fixed some compiler warnings and removed -w flag from Makefile Beta 8.0 Release 2 - fixed a serious crash bug with tracker links on secondary trackers - fixed a bug where BNBT would constantly refresh the static header and footer (credit Elandal) - fixed a query error with stats dumping when mysql_override_dstate was off - mysql.h is now include as mysql/mysql.h on some systems - and stdio.h is now included by default on all systems - fixed a major bug where some internal databases would be needlessly copied and deleted - added the "bnbt_max_recv_size" config value Beta 8.0 - supressed connection reset errors - supressed deflate errors (on Z_OK) - added MySQL support * added the "mysql_host" config value * added the "mysql_database" config value * added the "mysql_user" config value * added the "mysql_password" config value * added the "mysql_port" config value * added the "mysql_refresh_allowed_interval" config value * added the "mysql_refresh_stats_interval" config value * added the "mysql_override_dstate" config value * added BNBTPHP (example PHP frontend) - added the "bnbt_robots_txt" config value - fixed a bug where deleted torrents would sometimes recover their tag data on restart - externally linked torrents are now linked even more correctly - various project file changes (e.g. dynamic linking on Windows) - pruned the changelog Beta 7.7 - added the "bnbt_name_length" config value - added the "bnbt_comment_length" config value - added tracker links (from BNBT Beta 7.3) - major optimizations * converted vector loops to use iterators * converted CAtomDicti to use STL maps - info hashes as well as names now link to the stats page Beta 7.6 - upgraded base64 decoding library - upgraded zlib to version 1.2.1 * zlib now handles gzip compression headers and footers * changed the "bnbt_compression_level" config value to default to 6 instead of 5 - started converting some isXXX virtual functions to dynamic casts - started converting some structures to STL maps - added request_t client request structure - added bCompressOK flag to response_t server response structure - moved some request processing to the client thread - some non fatal errors are now reported as warnings instead - fixed a major bug with FreeBSD - fixed a bug with the archive dir (credit MrMister) - added support for the compact announce extension - added the "bnbt_show_average_ul_rate" config value - added the "bnbt_show_average_dl_rate" config value - added support for displaying average peer rates - misc HTML changes Beta 7.5 - removed the command console - info link now defaults to a blank value instead of "http://" - fixed a bug where moderators couldn't see the 'delete torrent' link - added support for the min_request_interval scrape flag - added support for the no_peer_id announce extension - removed logging of "client timed out" messages - fixed a MAJOR algorithm error with /announce (sorry Bram) - fixed a bug when pthread_create fails Beta 7.4 - fixed a bug where usernames with non standard characters couldn't be edited or deleted - fixed a bug where config entries without a value (i.e. "port =") would crash on startup - ip addresses are now only displayed with comments posted by a guest - added the "bnbt_max_peers_display" config value - added the "bnbt_realm" config value - moderators can now delete torrents - added the 'downloaded' key to /scrape - the 'Your Torrents' list now displays torrent names if possible - added a 'DOWNLOAD TORRENT' link to the stats page - removed logging to console (messages are logged to file only) - added a basic command console - extensive optimizations * removed stealers due to conflicts with optimized code * removed tracker links due to conflicts with optimized code Beta 7.3 - announce errors are now returned as 200 OK with a 'failure reason' key - fixed a bug where some filter links weren't escaped correctly - added the "bnbt_force_announce_on_download" config value - added "name=" parameter to Content-Type on torrent download (should fix some torrent download problems) - added a "Count Unique Peers" link to the admin panel - added the "bnbt_tlink_server" config value - added the "bnbt_tlink_connect" config value - added the "bnbt_tlink_bind" config value - added the "bnbt_tlink_password" config value - added the "bnbt_tlink_port" config value - added tracker links (read link.txt) - changed the behaviour of the server to leave excess connections in the socket queue instead of closing - added the "bnbt_allow_info_link" config value - added an Info Link column - added the "bnbt_archive_dir" config value - compiling BNBT under Windows should be significantly faster (WIN32_LEAN_AND_MEAN) - fixed a bug where the tracker wouldn't expire some peers Beta 7.2 - more optimizations (startup should be even faster) - fixed a bug where max progress wouldn't be calculated if bnbt_show_min_left was 0 - fixed several potential crash situations when allowed_dir wasn't set - fixed a bug where some stealer errors would leave dead sockets lying around - externally linked torrents are now linked correctly (i.e. "%20" instead of "+") - access logs are now saved as "YYYY-MM-DD.log" instead of "YYYY MM-DD.log" - error logs are now saved in seperate files like access logs - removed the "bnbt_error_log" config value - added the "bnbt_error_log_dir" config value - error logs are saved as "YYYY-MM-DDe.log" so both logs can be saved in the same dir - added support for displaying page generation times on some pages - added the "bnbt_show_gen_time" config value - added searching and users per page to users.html - added the "bnbt_users_per_page" config value - added user count to info.html - added 'Your Torrents' list to login.html - added the "bnbt_delete_own_torrents" config value - the server waits at most 60 seconds for clients to disconnect when shutting down - added more stylesheet classes and 'return to' links - moderators can change torrent names as well as tags now Beta 7.11 - fixed some login issues with Mozilla Firebird - fixed a bug where comments would not include newlines - fixed a linking issue with Solaris - SOLARIS USERS - IF YOUR SYSTEM IS LITTLE ENDIAN (i.e. Intel), EDIT CBase64.h, sha1.h - the POST decoder reads large uploads before closing to prevent connection refused messages Beta 7.1 - fixed a bug where valid ip addresses would be rejected when sent by the client - fixed a compile error with FreeBSD - fixed several compile warnings - extreme optimizations to the internal database (several times more efficient) - extreme optimizations to the bdecoders (also several times more efficient) - parsing bencoded strings (i.e. torrents, dfile, etc...) should be significantly faster - fixed a bug with peer cache handling - added Pragma: No-Cache to the login page to prevent browsers from caching it - added Content-Length to all pages - Keep-Alive connections are supported - fixed some HTML issues, but comments posted with a previous version of BNBT may not show up correctly - added "save stealers" and "load stealers" to the admin panel - Ctrl-C causes the tracker to shutdown like the admin panel (on Windows only) - error log messages are time stamped - removed some unused code related to ipusers and nfo directories - added the "bnbt_dump_xml_file" config value - added the "bnbt_dump_xml_interval" config value Beta 7.0 - file 'added times' are now displayed in local time, not GMT - added some assorted scripts (mostly length checking) to the comments page - if bnbt_per_page is zero, all files will be displayed on a single page - if parse_allowed_interval is zero, the allowed dir will only be parsed on startup - added the "bnbt_parse_on_upload" config value - fixed some thread issues with non Windows systems - fixed a strange behaviour when bnbt_max_conns were reached - all sizes larger than 1024 GB will show as TB, and all sizes larger than 1024 TB will show as PB - fixed a bug where BNBT would fail to bind the server socket even when available - fixed a memory leak with stealers - fixed a bug with encoding large integers on Windows - removed the "bnbt_header_mode" config value - removed the "bnbt_admin_pass" config value - added users page (users.html) - added tracker info page (info.html) - added signup page (signup.html) - rewrote the admin panel - added the "bnbt_guest_access" config value - added the "bnbt_member_access" config value - added the "bnbt_show_uploader" config value - renamed the "bnbt_log" config value to "bnbt_error_log" - added the "bnbt_access_log_dir" config value - added NCSA common log format logging - the file downloader now works like any other webserver (i.e. /files/image.gif) - peer ip's passed as parameters to /announce can only contain digits and '.' - pruned the changelog Beta 6.7 - fixed another bug where BNBT wouldn't 'sort by share ratio' correctly - unauthorized pages are now returned as HTTP 403 Forbidden, not HTTP 400 Bad Request - fixed a bug where some stealer errors would cause the stealer to 'freak out' - changed the "downloader_timeout_interval" config value to default to 2700 seconds - when "bnbt_allow_sort" is disabled, BNBT will try to sort the index by 'date added' and the stats by 'left' - fixed a bug where BNBT wouldn't display 'average left' or 'left' correctly without "allowed_dir" - moved the 'min left' column to the left of 'average left' - fixed a major memory leak with pthreads (all systems except Windows) - on Windows, BNBT will always set the current directory to the location of bnbt.exe - added the "bnbt_header_mode" config value (for those who want to remove the generated header) - updated BNBT against the official BT CVS track.py * the "keep_dead" config value is already similar to "bnbt_display_all" * added the "max_give" config value * updated /scrape to the new standard * updated the dfile to the new standard (old dfiles are invalid now) * added the "bnbt_show_completed" config value * added the "bnbt_show_transferred" config value - moved the torrent download links to a new column (less confusing) - added an 'info hash' item to each stats and comments page - made the comments pages more user friendly (i.e. less confusing after posting a comment) - pruned the changelog Beta 6.61 - fixed a bug where BNBT would crash when decoding some incorrectly formatted strings - fixed a bug where BNBT wouldn't 'sort by average left' correctly - fixed a bug where BNBT wouldn't 'sort by share ratio' correctly - fixed a bug where BNBT would display the incorrect min/max progress (min/max **left** was correct) - changed the "bnbt_file_expires" config value to default to 180 minutes - the average/min/max columns will only calculate statistics based on leechers and not seeders as well - added the "bnbt_max_conns" config value - when running as a service, BNBT will read the correct bnbt.cfg rather than using system32 Beta 6.6 - file sizes are no longer approximated; instead, they're calculated correctly - fixed a bug where BNBT would force the "bnbt_static_header" config value to exist even if unwanted - fixed a bug where BNBT would reject all uploaded files when not using any file tags - added support for counting the number of unique peers as well as total peers - added the "bnbt_count_unique_peers" config value - added support for displaying 'share ratios' (like the share ratios in the experimental client) - added the "bnbt_show_share_ratios" config value - added support for linking to external torrents rather than using the internal downloader - added the "bnbt_external_torrent_dir" config value - added the "bnbt_allow_scrape" config value - renamed the "bnbt_show_file_comments" config value to "bnbt_show_file_comment" - renamed the "bnbt_show_avg_left" config value to "bnbt_show_average_left" - added the "bnbt_show_min_left" config value - added the "bnbt_show_max_left" config value - added the "bnbt_show_left_as_progress" config value - added support for displaying 'good' and 'bad' numbers differently (i.e. colors) - added the "number_red" style sheet class - added the "number_yellow" style sheet class - added the "number_green" style sheet class - added the "name" style sheet class - added the "connected" style sheet class - added the "bnbt_static_footer" config value - optimized the static header and footer to be refreshed every few minutes rather than every page view - added the "bnbt_refresh_static_interval" config value - added support for running BNBT as an NT Service (on Windows) - added support for displaying a progress bar for 'average progress' and peer progres - added the "image_bar_fill" config value - added the "image_bar_trans" config value - the file uploader will now reject files which have the same info hash as another file on the tracker - fixed an issue where BNBT would send extra peer sharing info to clients - moved the file uploader to a seperate page (upload.html) Beta 6.5 - fixed a vulnerability where the file downloader could allow read access to all files on your computer - added 'Content-Disposition: attachment' to the torrent downloader - the log file will now be added to (appended) rather than overwritten - changed the "left" column to display sizes AND percentages - moved the "average left" column to the far right - added a static header to the tracker page - added the "bnbt_static_header" config value - added support for different charsets - added the "bnbt_charset" config value - added support for MinGW and a project file for Dev-C++ (an IDE for MinGW) - added support for file tags - added the "bnbt_tag_file" config value - added the "bnbt_tagx" config values (i.e. bnbt_tag1, bnbt_tag2, bnbt_tag3...) - added support for changing file tags on the admin panel - added support for filtering by file tags on the tracker page - added some basic hard coded mime types - page numbers will now be displayed correctly after searching - fixed a bug where the file downloader would sometimes send back an incorrect filename Beta 6.4 - fixed a bug where BNBT wouldn't display the correct number of peers when using an old dfile - SIGPIPE is now ignored on systems that don't support MSG_NOSIGNAL (cough OS X cough) - fixed a bug where BNBT would always compress in gzip format - fixed a bug where BNBT would sometimes crash when compressing in gzip format - fixed a bug where BNBT would sometimes use up 100% cpu time on Windows - removed the "bnbt_download_dir" config value - removed the "bnbt_show_num_comments" config value (num comments will be shown if comments are allowed) - comments are accessed from the tracker page now (not the stats page) - added a file downloader (a very simple HTTP file server) - added the "bnbt_file_dir" config value - added the "bnbt_file_expires" config value - added the "bnbt_allow_torrent_downloads" config value - renamed "complete" to "seeders" and "downloading" to "leechers" - added an "average left" column to the tracker page - added the "bnbt_show_avg_left" config value - changed the "left" column on the stats page to display as a percentage - added the "percent" style sheet class Beta 6.3 - fixed a bug where BNBT would crash if bnbt.cfg didn't exist (i.e. when starting for the first time) - changed the admin panel so you don't have to type in the password every time - added support for deflate and gzip compression - added the "bnbt_compression_level" config value - added the "bnbt_max_torrents" config value - fixed a bug where BNBT would sometimes crash after parsing the allowed_dir Beta 6.2 - removed dictionary integrity checking (optimization) - added a safe shutdown option to the admin panel (better than killing the process) - fixed a bug where BNBT would use up 100% cpu time when MAX_CONNS were reached - external peers will always be displayed as incomplete peers rather than complete peers - fixed some more potential thread problems (memory problems) - added logging console output to file - added the "bnbt_log" config value - added the "bnbt_flush_interval" config value Beta 6.1 - fixed a thread deadlock when using bnbt_display_all - fixed a lot of potential thread problems (thread deadlock and memory problems) - fixed the console output so it displays correctly when multiple threads are printing Beta 6.0 - rewrote BNBT to use threads - removed the "bnbt_check_external_interval" config value - removed the "bnbt_external_timeout" config value - external peers are now treated the same as internal peers - reduced the default "downloader_timeout_interval" config value - added the "bnbt_max_hops" config value - several code optimizations Beta 5.7 - fixed a bug where BNBT would use up 100% cpu time on some systems - fixed a bug where BNBT wouldn't accept the 'ip' parameter passed by clients - fixed a memory leak when viewing the file stats page - updated the sha1 hashing algorithm - fixed a bug where sha1 hashes were not calculated correctly on OS X - external peers will only be shown on the tracker webpage if at least one stealer is running - optimized most file writing operations (i.e. saving dfile, saving comments, and uploading a file) - added a link to each comments page from the main tracker webpage (when using show_num_comments) Beta 5.6 - fixed several multi tracker/stealer bugs - fixed the multi tracker/stealer to be able to steal from other (non BNBT) tracker programs - added the "bnbt_check_external_interval" config value - added the "bnbt_external_timeout" config value - added support for display file comments (for torrents created with MakeTorrent) - added the "bnbt_show_file_comments" config value - pruned the changelog Beta 5.5 - fixed a minor bug with the HTTP Get decoder - optimizations to the server send code - added the multi tracker/stealer feature (which uses threads) - added support for forcing uploaded files to have a specific announce url - added the "bnbt_force_announce_url" config value Beta 5.0 - fixed a bug where requests received over more than one recv call were ignored - rewrote the server code to use dynamic buffers - fixed a major bug where BNBT would fail under a very heavy load - added a file uploader - added the "bnbt_upload_dir" config value Beta 4.3 - BNBT is now covered under the LGPL - fixed a major bug where BNBT would crash on Linux/Unix under a very heavy or unstable load - minor optimizations to the way BNBT parses torrents in the allowed_dir - fixed a bug where peer "connected times" would show up incorrectly when the tracker was restarted - added sort by number of comments - added sort by connected time - added support for deleting invalid torrents (credit Paul Kehrer) - added "bnbt_delete_invalid" (credit Paul Kehrer) Beta 4.2 - minor optimizations - fixed a bug where sorting by long long's wouldn't sort correctly for large values (overflow error) - added peer "connected times" to the peer tables Beta 4.1 - got rid of some compiler warnings - changed the comments system so it doesn't use
 anymore (comments should wrap now)
 - changed the admin panel to delete all comments for a file if no comment number is entered

Beta 4.0
 - fixed a bug where file sizes such as "5.01 MB" were displayed as "5.10 MB"
 - changed sort by name to be case insensitive
 - added peer totals to the stats webpage
 - removed the hyperlink on the current page in the page number list
 - added support for file comments
 - added support for an admin panel
 - added the "bnbt_show_num_comments" config value
 - added the "bnbt_allow_comments" config value
 - added the "bnbt_comments_file" config value
 - added the "bnbt_admin_pass" config value

Beta 3.2
 - added several new style sheet classes
 - added file information to the stats page (i.e. everything you see on the tracker webpage)
 - added support for a table of file contents for multi-file torrents
 - added support for a number of files column
 - added the "bnbt_show_num_files" config value
 - added the "bnbt_show_file_contents" config value
 - renamed "bnbt_show_created" to "bnbt_show_added"
 - renamed "bnbt_show_file_info" to "bnbt_show_stats"

Beta 3.1
 - right aligned all "byte" columns (anything representing a size)
 - modified CAtomLong to use '__int64' or 'long long' instead - this should eliminate all the overflow errors
 - added sorting to the file info page
 - changed the file info link class to "stats" since style sheet classes can't have spaces
 - fixed a couple of HTML issues with the file info page

Beta 3.0
 - fixed a bug where file sizes weren't displayed properly for files over 200 MB
 - fixed a bug where expire downloaders would remove file entries when using "bnbt_display_all"
 - added the "file info" style sheet class
 - added support for displaying file information (i.e. peer ip's)
 - added the "bnbt_show_file_info" config value

Beta 2.8
 - completely rewrote the HTML output code (it was a mess)
 - added some style sheet classes (see above)
 - fixed a bug where file modification times weren't read correctly on non-Windows systems
 - changed the file creation time feature to display file modification time instead
 - added support for displaying every file in the allowed_dir
 - added support for file sizes
 - added the "bnbt_display_all" config value
 - added the "bnbt_show_size" config value

Beta 2.7
 - minor optimizations to the socket code on non-Windows systems
 - fixed download links to correctly link to the right file (even if the torrent has been renamed)
 - changed the way "bnbt_show_info_hash" works; if set to zero, it removes the Info Hash column completely
 - renamed "bnbt_show_info_hashes" to "bnbt_show_info_hash"
 - renamed "bnbt_dl_dir" to "bnbt_download_dir"
 - added support for file creation times
 - added the "bnbt_show_created" config value

Beta 2.6
 - src code is now saved in LF format rather than DOS CR/LF
 - ported the source to OS X, FreeBSD, and Sun Solaris (credit Shawn Holwegner)
 - added a makefile (credit Shawn Holwegner)
 - added support for displaying download links on the tracker webpage
 - added the "bnbt_dl_dir" config value

Beta 2.51
 - fixed a bug where page numbers weren't displayed properly

Beta 2.5
 - removed all requirements for Allegro, BNBT will compile "out of the box" now

Beta 2.2
 - optimized sort by name
 - fixed a bug where BNBT would crash when expiring downloaders
 - renamed "bnbt_perpage" to "bnbt_per_page"
 - fixed a memory leak when using "allowed_dir" (when searching the directory)
 - fixed a memory leak when accessing /scrape

Beta 2.11
 - fixed a bug where BNBT would eat up all system resources if more than 50 torrents were in the allowed_dir

Beta 2.1
 - fixed a memory leak when using "allowed_dir"
 - changed the way BNBT parses torrents in the allowed_dir so the tracker can still respond to network requests
 - added file pages
 - added the "bnbt_perpage" config value
 - added the "bnbt_allow_search" config value
 - added the "bnbt_allow_sort" config value
 - added the "bnbt_show_info_hashes" config value
 - added the "bnbt_style_sheet" config value

Beta 2.0
 - added searching
 - added sorting
 - fixed a bug where BNBT would crash in Linux/Unix when 64 simultaneous connections were opened
 - fixed the HTTP GET decoder to ignore the referrer when checking for parameters

Beta 1.3
 - optimized the way BNBT encodes and decodes bencoded strings (allowed_dir checking should be much faster now)
 - added the "bnbt_debug" config value

Beta 1.2
 - fixed a compile error with GCC (with stl transform)
 - fixed a bug where BNBT tried to append a backslash to directory names on Linux/Unix when using "allowed_dir"
 - changed the way BNBT stores info hashes so that BNBT can now save and load standard dfiles

Beta 1.1
 - ported the source to Unix/Linux
 - rewrote the network send code to make sure the entire response is sent before continuing
 - non critical errors do not cause the server to halt anymore
 - added the "bind" config value