==================
NNTPGrab ChangeLog
==================

+----------------+
| NNTPGrab 0.4.0 |
+----------------+

Released at Sunday November 23 2008

- Added a new option to the configuration tab: enable PAR2 repair
- Only try to auto-import files with the .nzb extension
- When files were moved, they weren't detected by the auto-import. Fixed
- The program would crash while decoding multipart uu-encoded files
  From now on, all multipart uu-encoded files will always be incomplete (only
  the first part gets decoded).  This is due to limitations in yydecode
  where a proper fix requires more time
- When the schedular was paused, active files could get stuck in the 'now
  downloading' state. Fixed
- Renamed the file plugins/par2/plugin_par2.cpp to plugins/par2/plugin_par2.c as
  it was causing compile problems on pardus linux
- Visual Studio compile fix
- Use a custom variant of the popen function on Win32 environments.
  This should hide the par2repair command line window during repair
- Several memory leaks in the NZBCreator have been fixed upstream in libsoup,
  so remove the unnecessary free's from the NZBCreator code to prevent warnings like
  GLib-CRITICAL **: g_hash_table_unref: assertion `hash_table->ref_count > 0' failed
- The 'estimated time remaining' and 'estimed time to finish' could be shown
  for collections which were already fully downloaded. Fixed
- The generation of .rpt files containing crash reports on Windows was broken as
  of NNTPGrab 0.3.0. Fixed
- When the decoding of a file is done, notify the frontend about the resulting
  filename. Fixes bugzilla #166
- After each decode, change the current directory to the download
  folder itself (instead of the folder in which all the decoded
  files were placed) in order to prevent the NNTPGrab process from keeping
  the directory with the decoded files 'occupied' on Windows environments.
- On Windows environments, the decoding would always fail when the
  collection name contained special characters. Fixed
- If errors occur during the decode (due to corrupt or incomplete data), ignore these
- Small fix in the Linux shortcuts in order to conform better to the
  'Freedesktop Desktop Entry Specification'

+-----------------+
| NNTPGrab 0.3.93 |
+-----------------+

Released at Friday October 10 2008

== This is an unstable release! ==

- The program now shows whether downloaded files are fully complete,
  incomplete or not available at all
- Add the characters '(' and ')' to the list of forbidden characters in
  collection names due to a bug in par2cmdline
- Prevent the decoder from replacing any spaces with '_'
- Improved error processing in the decoder
- Prevent some false errors during the decode process
- The par2 repair wasn't started automatically anymore. Fixed
- Don't close the 'Adjust search parameters' section in the NZBCreator
  when no results are found during the search
- Fix an innocent warning which occured on GTK 2.14.0+ environments
- The decoder could mark the decoding as succeeded even when there was no
  disk space available. This problem happened on (async) NFS environments. Fixed
- The temporary files were deleted even if the decoding failed. This resulted in files
  having the 'Done' state. Fixed
- On decode errors, the error message 'Unknown decode error occured' was shown. This is
  now replaced with a more verbose message

+-----------------+
| NNTPGrab 0.3.92 |
+-----------------+

Released at Friday October 3 2008

== This is an unstable release! ==

- Rewritten the decoder by using yydeview instead of uulib.
  This fixes the bug where small files weren't decoded right
- If the decoder detects an incomplete files, the extension '.broken' is added to the filename
- On some Windows environments, the downloaded files would always be corrupt. Fixed
- Set the read timeout for NNTP connections to 30 seconds instead of 10 seconds.
  This should fix some unexpected disconnects on slow responding servers
- If a connection could not be made to the usenet server, reset the status
  of the file first before sleeping for 30 seconds so other download threads
  can retry downloading the file
- Compile fix for environments without GTK 2.10.0 or higher
- Don't verify the certificate in NNTP-over-SSL connections as several usenet
  providers (like Eweka) use self-signed certificates which breaks the verification
- Use the GTK function gtk_show_uri() to open the download folder and to execute
  downloaded files on environments with GTK 2.14.0 or higher
- Integrated the use_nss_compat_ossl patch in the regular build
- The Windows setup.exe was missing some files required for the webinterface. Fixed

+-----------------+
| NNTPGrab 0.3.91 |
+-----------------+

Released at Saturday September 13 2008

== This is an unstable release! ==

- Delete the selected files from the download queue when the <DEL> button is pressed
- When importing NZB files, remember the directory from which a NZB file was imported and
  automatically go to this directory the next time the user wants to import a NZB file
- Don't hide the window when the tray icon isn't shown
- On connection errors, sleep the download thread for 30 seconds and
  push the part back in the queue
- Don't mark parts as being downloaded on connection errors
- The decoder couldn't decode some files on Win32 environments
  (this resulted in 'No such file or directory' error message). Fixed
- Prevent the user from using illegal characters like *, !, " and ' for
  collection names
  as they cause issues when used as a path name
- Reverted commits 948 and 952 as they caused a regression with importing .nzb
  files from external sources (like a webbrowser) while using GTK 2.13.6 or higher
- The GUI of the NNTPGrab Server could freeze due to the use of
  some GTK functions in a different thread. Fixed
- Hide the NNTPGrab Server GUI on startup problems (unable to bind to port)
  (Previously the GUI would stay in a frozen state for a few seconds)
- Start the 'par2.exe' command from the same directory as the nntpgrab executable on Win32.
  This should fix the problem where sometimes the 'par2.exe' command could not be found
- Catch any error messages (stderr) from the 'par2' process and show them in the frontend
- Fixed a possible compilation failure which occured when libsoup isn't detected
- Fixed a possible crash when pressing the 'Cancel' button in the NZB Import dialog
- If the operating system supports both IPv4 and IPv6, listen on both in the NNTPGrab Server
- Initialisation errors in the NNTPGrab Server GUI could get lost. Fixed
- On Fedora and Win32, the NSS library is now used instead of OpenSSL for communication
  with usenet servers over SSL
- Collections containing non-UTF8 characters weren't repaired on Win32. Fixed
- Opening the download folder of collections and executing downloaded files
  containing non-UTF8 characters wasn't working on Win32. Fixed
- The menu items and the download queue context menu needed 2 clicks before they
  were shown on Win32. Fixed

+-----------------+
| NNTPGrab 0.3.90 |
+-----------------+

Released at Friday August 22 2008

== This is an unstable release! ==

- Added support for automatic NZB import. A folder can be monitored by the
  program and if an .nzb file is placed in this folder, the file will
  automatically be read and added to the download queue. Folders can be
  monitored on both the local computer and on the NNTPGrab Server. This feature
  requires GLib 2.16.0 or higher, but is unsupported on Mac OS X for the moment
- Added support for the NZBCreator service. This is a usenet search service
  which is fully integrated in the program. It is possible to search for
  files on the usenet using several filters and to import search results
  directly into the NNTPGrab download queue
- Added support for automatic PAR2 repair. After a collection is fully
  downloaded all the available PAR2 sets in the collection are verified
  using the external program 'par2cmdline'. Support for this feature is
  very basic at the moment due to various reasons, but will be improved
  in later versions of NNTPGrab
- Several new functions added to the PHP module:
  nntpgrab_connections_get_speed_history
  nntpgrab_utils_strip_subject
  nntpgrab_utils_calculate_file_size
  nntpgrab_utils_calculate_estimated_time_remaining
  nntpgrab_utils_get_readable_time_remaining
  nntpgrab_utils_get_readable_finished_time
- Added a GUI for the NNTPGrab Server (won't be used when ./configure --disable-gui
  is used or no graphical environment is running)
- In the NNTPGrab Server, when the program could not listen on port 5423, an
  popup dialog is now shown (when the GUI is enabled)
- Lowered total memory usage by using GSLice instead of malloc
- Reorganised the code infrastructure of the project in preparation for future features
- Use GIO functions to read NZB files on environments with GLib 2.16.0 or higher
  as this is more efficient

Contributions by Icheb and FrodoBaggins:
- Started work on a traffic monitor in the webinterface. This isn't
  visible yet in the webinterface


+----------------+
| NNTPGrab 0.3.3 |
+----------------+

Released at Saturday August 9 2008

- The list of available download folders wasn't generated when the 'config_changed' signal
  was already emitted. Fixed
- When generating the list of available download folder, the 'please wait' dialog could be blank. Fixed
- Fix a small memory leak
- Fix a possible deadlock which could occur when the schedular was paused and
  more than one file were waiting to be decoded
- When decoded files can't be saved, always stop the schedular
- When the state of the schedular changes (with an error message), show a notification balloon
- When the program is minimized and a NZB file is opened from an external program, deiconify
  the program first before handling the NZB file. This might fix the following error message
  which some users were having:
  file nzb.c: line 644 (on_filechooserNZB_file_set): should not be reached
- The message 'The list of available download folders is now being updated. Please wait a few seconds' could
  remain visible after changing the download or the temp folder. Fixed
- Show a popup message when the user tries to add a server with a servername which is already used
- Disable 'type-ahead-find' in the configuration tab as it could cause an assertion failure 
- NZB files opened from external sources sometimes didn't get shown. Added an ugly workaround for it

+----------------+
| NNTPGrab 0.3.2 |
+----------------+

Released at Saturday July 19 2008

- The NNTPGrab Server would always give an error message indicating the
  function 'freeaddrinfo' could not be found on Windows 2000 environments. Fixed
- When closing the 'Connect to NNTPGrab Server' dialog from the Networked GUI,
  the program would keep running. Fixed
- On connection errors in the Networked GUI, shut down the program properly
  instead of triggering the 'error reporting' facility
- The opening of .nzb files sometimes fails. On Mac OS X the program could
  even crash when opening an .nzb file (using the Finder) while the
  program isn't running yet. NNTPGrab Bugzilla #161
- Replaced the use of GStaticRWLock in the schedular by GStaticMutex.
  This should solve some locking problems
- Added a start menu shortcut for the NNTPGrab Server (Linux only)
- Several compilation fixes which are required to run NNTPGrab on older Linux environments
- The program wouldn't compile using Visual Studio without running the ./configure script. Fixed
- The calculation of the total_file_size and total_file_size_remaining in the
  webinterface was sometimes miscalculated. Reported by Chrashoverraid. Fixed
- When adding new files using the Networked GUI or the Webinterface, a crash could occur. Fixed
- The traffic monitor didn't work in the networked GUI and the webinterface on
  environments where GLib 2.14.0 or higher isn't installed. Fixed
- Add support for using NNTP-over-SSL with Astraweb
- NNTP-over-SSL connection problems were handled incorrectly. Fixed
- When decoding files, convert the filename to the utf-8 character encoding before saving it.
  This prevents the NNTPGrab download queue from getting corrupt. Bugzilla #163
- Updated the Configuration GUI so that everything in the interface is more consistent
- If a collection name contains invalid UTF-8 data, replace it with a space
- NZB files containing special characters couldn't get imported on Windows. Fixed
- Improved translations
- Some texts didn't got translated, Fixed

+----------------+
| NNTPGrab 0.3.1 |
+----------------+

Released at Wednesday June 11 2008

- On Windows, the program remained visible on the taskbar when using the tray
  icon functionality. Fixed, http://bugzilla.gnome.org/show_bug.cgi?id=537183
- When NNTPGrab 0.3.0 is run for the second time, all the download columns in
  the download queue could be hidden. Fixed
- The estimated time remaining and estimated time to finish of entire collections
  became invalid on large collections (4GB+) or large download queues. Fixed
- There was a possible race condition where multiple NNTPConnection objects
  could get initialized at the same time, resulting in strange error messages
  like "GLib-GObject-ERROR **: g_type_plugin_*() invalidly modified type
  'NNTPConnection'". This race condition is now fixed
- Small optimalisation in the generation of the download folder listing
- Don't build the list of available download folders everytime the program
  starts, only do this when the user actives this configuration - download folders tab.
- Show a small popup dialog while the list of download folders is being built
  (on Mac OS X this can take up to 10 seconds due to automount). Bugzilla #158
- When opening .nzb files, add them to the 'recently used files' list in the
  filechooser and the desktop environment (the latter for Linux only)
- Produce more sane error messages on Windows when a connect timeout occurs
  (fixes the 'No error' message)
- Fixed a small memory leak in the NNTP plugin
- Connections could keep hanging in the 'Idle' state. Fixed
- The 'connection_disconnect' signals wasn't emitted on all connection errors. Fixed
- On Windows, several error messages could get lost (or be 'No error'). Fixed
- Lowered the read timeout to 10 seconds. This should tackle usenet servers
  which take a very long time to respond on authentication failures, like Eweka
- The behaviour of the setsockopt function (to set timeouts) is different on Windows.. Fixed
- On startup, several 'There is no disk in the drive' dialogs could pop up on Windows. Fixed
- On uninstall of the Win32 version some files remained installed. Fixed

+----------------+
| NNTPGrab 0.3.0 |
+----------------+

Released at Saturday June 1 2008

- On connection failures, stop trying after 5 seconds. This change
  also causes the schedular to pause more quickly and the server
  configuration to process changes faster
- Added a filter to the NZB import filechooser component, so that by default
  only .nzb files are shown. An option to show all the files is also added
- On fresh installations, the download and temp directory weren't set
  up correctly. Fixed
- On fresh installations, no columns/contents were shown in the download
  queue. Fixed
- In the download and temp folder chooser component, perform a scroll and
  expand only if it was triggered by another frontend
- Opening .nzb files on Mac OS X while NNTPGrab wasn't running
  yet caused to NZB Import dialog to be blank. Fixed
- Small memory leaks fixed

+-----------------+
| NNTPGrab 0.2.91 |
+-----------------+

Released at Monday May 26 2008

== This is an unstable release! ==

- Added support for marking usenet servers as enabled/disabled
- Improved the installation directory discovery for Win32 environments
- The .nzb file associaton was broken for Win32. Fixed
- Several Visual Studio fixes
- The configuration of the download and temp folders should now work fine on Windows
- Disable drag&drop in the download queue as it is broken
- Added some hacks to get the PHP module to compile on OSX
- In some webserver environments, the webinterface could show some PHP code
  to the client. Fixed
- Search for the NNTPGrab plugins in the right folder (fixes 64bit
  /usr/lib64 compatibility)
- Use sane default values when the subject of a file could not be parsed
  successfully during the NZB import
- Prevent the user from running both the NNTPGrab Server and the Standalone
  GUI at the same time
- Create crash reports on Win32 when the NNTPGrab Server crashes
- On Win32, if the error WSAETIMEDOUT is triggered, keep trying again until
  a real timeout has occured
- Moved the Winsock initialisation to the main.c of the GUI and the NNTPGrab Server
- The NZB Import dialog could cause an (GTK internal) assertion error. Fixed
- Destroy the tray icon on shutdown of the GUI
- Removed a lot of unused code
- Lowered the memory usage by using fixed-size structures for all the signal processing
- Check for program updates from a seperate thread. Bugzilla #158
- Only show the notification-bubbles configuration when it is supported

+-----------------+
| NNTPGrab 0.2.90 |
+-----------------+

Released at Saturday May 17 2008

== This is an unstable release! ==

- Added support for downloading from multiple servers with multiple threads
- Each server can be assigned a priority (high, normal, low), so that parts
  are downloaded first from servers with a high priority before servers with
  a lower priority are tried
- Priority of items in the download queue can be changed
- Addition of network glue layer so frontend and backend can be seperated
  Due to this layer it is now possible to perform the downloads on another
  computer than the computer where the GUI is running
- Added the NNTPGrab Server. This program runs in the background and
  executes commands from the Networked GUI and the webinterface
- Added a Networked GUI, which is the same as the normal GUI, but can
  be used to control a NNTPGrab Server (running on a different computer)
- Added a PHP module with which the NNTPGrab server can be controlled
- Added a (basic) webinterface which uses the PHP module to communicate
  with the NNTPGrab Server
- Added support for a tray icon
- File association with .nzb files
- The file size remaining, estimated time remaining and estimated time to
  finish are now shown in the GUI
- The columns shown in the download queue can now be turned on and off
- Added support to drag-drop the columns in the download queue
- Improved Mac OS X integration
- New ./configure option added: --disable-gui. With this option set, the GUI
  won't be build and the GUI-specific configure tests will be skipped
- The plugins are now installed in $prefix/lib/nntpgrab instead of $prefix/lib
- The configuration tab of the GUI is fully redesigned
- Small optimalisation in the speed monitor, only redraw the graph when the
  GUI is shown. Ignore speed monitor updates when the GUI is hidden/minimized
- Added Visual Studio 2008 project files
- When importing NZB files, select all the files by default
- Detect if the NNTPGrab GUI is already running and if so, give focus
  to this already running instance
- If a file is being decoded and the resulting filename already exists, then
  the resulting file will be renamed so it contains a suffix and the original
  file remains intact
- Provide more user-friendly error messages on possible initialisation errors
- Validate the input in the server configuration dialog before saving it
- Don't use recv() calls with the MSG_PEEK flag anymore as this was causing
  problems (like kernel warnings about race conditions). Instead, use a buffer
  for all the received data and only read new data when necessary
- Don't keep the traffic monitor lock longer than necessary. Should better
  stabilize the traffic monitor while decoding files

Thanks to the following contributors:
- slazh, creating the webinterface
- Icheb, adding ajax support to the webinterface
- PascalW, providing code for .nzb file association under OSX
- Dr3am3r, bugreports, testing of the PHP module and NZB import for the webinterface

+----------------+
| NNTPGrab 0.2.5 |
+----------------+

Released at Tuesday April 29 2008

- The program could crash while decoding files. Fixed
- The total size of collections didn't got updated when a task was removed. Fixed
- The program could crash when there was no free disk space anymore to
  save downloaded parts. Fixed
- Fixed a small compiler warning

+----------------+
| NNTPGrab 0.2.4 |
+----------------+

Released at Saturday March 1 2008

- The program would always crash when using GTK 2.12.7 or higher. Fixed
- Fix a off-by-one error which could cause the program to crash while downloading
- Fix possible deadlock
- Don't send 'traffic_monitor_update' signals when there hasn't been any
  traffic for the last 10 seconds. Lowers the CPU usage when there aren't
  any downloads active
- During the program update check, the program will now check if there are
  new unstable versions available and notify the user about this

+----------------+
| NNTPGrab 0.2.3 |
+----------------+

Released at Saturday February 2 2008

- In some situations, the decoder component could crash. Fixed
- Only send a 'part_progress_update' every 1/10th second instead of for
  every 10KB of data received to lower the CPU usage
- Only write every 128KB of received data to the disk instead of for every
  chunk of data received
- Catch possible errors which can occur while saving the downloaded parts
- Several small memory leaks solved
- On Windows Vista the decoding would always fail with the message 'Invalid argument'. Fixed

+----------------+
| NNTPGrab 0.2.2 |
+----------------+

Released at Sunday Januari 27 2008

- In the Windows installation script, check if NNTPGrab is still
  running when the (un)installation program is started
- Drastically lower the memory usage in the NNTP code by using mmap'ed files
- Possible race condition during the initialisation of the program solved
- When the decoding is finished, try to rename (move) the decoded file first instead of copying
- Menu items didn't get translated when using GTK 2.12.0 or higher. Fixed
- The program would crash when the servername of an already existing server was changed. Fixed
- Possible endless loop fixed in the NNTP download code
- Strip any newline characters from messages which need to be pushed to the frontends
- Errors during the downloading of the parts could get lost by some compilers. Fixed
- Prevent a double free and a small memory leak
- Possible crash while changing the configuration fixed
- Another endless loop in the NNTP plugin should be solved. This should solve
  the 100% CPU usage and the freezes when trying to shutdown NNTPGrab
- Incorporated fixes and optimalisations from the PAN project to the uulib decoder component
- Possible crash which could occur on decoding errors fixed
- When there are decode errors and the users wants to remove the file
  which triggered the decode error, a deadlock would occur. Fixed
- Under Linux environments, the File Chooser component in the configuration
  part of the program could show wrong data. Hopefully fixed (might be a GTK bug)

+----------------+
| NNTPGrab 0.2.1 |
+----------------+

Released at Wednesday December 26 2007

- Possible crash in the NNTP plugin solved
- On Windows, NNTP connections were often reset while no errors had occured. Fixed
- Small bug in the update notification component fixed

+--------------+
| NNTPGrab 0.2 |
+--------------+

Released at Tuesday December 25 2007

- Quick NZB Import button added
- Context menu added to the download queue with the options 'Remove item(s)
  from download queue', 'Restart selected item(s)', 'Open download folder' and
  'Execute selected file'
- CPU usage lowered by using a hash table in the list with active connections
  (Bugzilla #145)
- Traffic monitor implemented. This traffic monitor shows the traffic of the
  last 10 seconds and the average speed of the last 3 seconds
- Donate button added
- NNTP-over-SSL implemented
- When importing a NZB file, you can now select to which collection the
  NZB should be added
- Connection-timeout-detection added
- Assertion error in the function 'part_download_start' solved
- Assertion error in the function 'connection_disconnect' solved
- Connection-reset-detection added. This fixes the behaviour where all the
  tasks in the download queue could be marked as 'done', while these aren't
  downloaded yet
- On decoding errors, a popup message is shown mentioning what went wrong
- Possible crashes during initialization of the program fixed
- Possible crash in the configuration object solved
- Program/start-menu icon added. Created by ArmiDuctor
- Some interface improvements in the NZB Import window
- Default position of all the windows changed to 'center on parent'
- Error messages occuring on read and write errors could get lost. Fixed
- When importing a NZB file for a second time without closing the window, all
  the previous NZB data would remain visible. Fixed
- When NNTPGrab was shut down while a decode still needed to take place, the
  decode would not occur the next time NNTPGrab was started. Fixed
- Don't remove the part-files on decode errors
- Added a seperate configure-check for the program 'msgfmt' to work around
  a bug in intltool 0.36.2 (or lower) which could cause compile problems
- Some 64bit platform fixes
- Possible deadlock while trying to remove items from the queue fixed. Bugzilla #152
- The program wasn't able to connect to some usenet servers like 'usenetserver'. Fixed
- When importing NZB files, the .nzb extension is stripped from the filename
  and this name is used (by default) for the collection name.

+--------------+
| NNTPGrab 0.1 |
+--------------+

Released at Thursday November 29 2007

- First release

