Version 1.07

  * Make sure the configuration code's toolbox object list is created
    before we try and use it on a first time install.

  * Make sure update messages are blocked while we are disconnecting
    from the servers so that we don't send a group deleted message for
    every group.

  * Fixed the SMTP address parser to skip quoted strings properly.

  * Make the IMAP protocol code use a separate background thread for
    polling the server so that it can be interrupted when we have
    something more important to do.

Version 1.06

  * Fixed IMAP protocol code to stop it accidently registering the
    user's INBOX twice under different local group names.

  * Include reference information in IMAP generated overview files so
    that threading works in mail folders and the outgoing mail folder
    can correctly show the destination user in the article list.

  * Add extra logging for unexpected SASL events and for transmission
    of SASL responses.

  * Fix IMAP authentication to report the case when no authentication
    method is available, and to fall back to LOGIN properly when there
    is nothing better.

  * Do debug logging to SysLog so that it is always available even in
    release builds of the software.

  * Fix bug in generation of default names for outgoing mail and news
    folders when no name is present in the configuration file.

  * Log any failed LIST ACTIVE commands along with the error message.

  * Make sure that any dots added by NNTP as padding characters at
    the start of lines in a message are removed.

  * Pass any IMAP ALERT messages to the client as an urgent message
    to be presented to the user.

  * Now that the IMAP code handles lock contention properly, go back
    to using SELECT instead of EXAMINE to open mailboxes. This means
    that the read flag at least should be set correctly when a message
    is read.

  * Made the IMAP code cope with the connection being closed by the
    remote end, perhaps as a result a mailbox lock being stolen, and
    ensure that we don't get into a lock battle with another client
    trying to access the same mailbox.

  * Add support for pre-authenticated connections to the IMAP code.

  * Allow the RemoteNB$DumpFile environment variable to control the
    location of the CrashDump file, and make it default to a location
    inside !NewsDir instead of inside !RemoteNB.

  * Fix an Invalid Object ID error which occurred when trying to set a
    users configuration options.

  * If a request to open the user configuration window is received when
    the currently logged in user is not an administrator, open a restricted
    version of the edit user dialogue for the user instead of the full
    user configuration window.

  * Added support for SASL authentication to the IMAP protocol code. This
    uses the generic SASL code and supports all the same authentication
    methods.

  * Added support for RFC 2554 style SMTP authentication. This uses the
    generic SASL code and supports all the same authentication methods.

  * Added code to support SASL authentication systems. Currently the
    supported mechanisms are CRAM-MD5 (RFC 2195), PLAIN (RFC 2595) and
    the unofficial LOGIN scheme used by some older servers.

  * Added initial support getting and setting of article flags to allow
    a client to keep it's flags in sync with the server.

Version 1.05

  * Fixed installation wizard to handle the situation where one or
    more of the server names is left blank correctly.

  * Added support for configuring the names of the default outgoing
    mail and news folders.

  * Added a proper error response when a search finds no matches.

  * Don't delete an existing results group just because a new search
    that is appending to it has failed.

  * Fixed error reporting for IMAP searches where the FETCH command
    fails for some reason.

  * Translate between soft spaces at the IMAP protocol level and hard
    spaces at the client interface level. This should finally allow
    folders with spaces in the name to work.

  * Made the IMAP protocol code quote the folder name argument passed
    to the COPY command.

  * Improved tidying up of scrap directory on close - we now remove
    the directory and anything in it.

  * Fixed to stop reporting outgoing mail and news folder names when
    there is no IMAP server to store them on.

  * Fixed to stop trying to create IMAP folders when no IMAP server
    has been defined.

  * Fixed to validate that a user exists before attempting to login
    as that user.

Version 1.04

  * More fixes for renaming of IMAP folders.

Version 1.03

  * Qualify all addresses used in SMTP protocol exchanges with the
    configured mail domain if necessary.

  * Made the SMTP protocol code report any message recipients which
    are rejected by the server.

  * Include the current group name in IMAP protocol log messages
    where possible.

  * Fixed the SMTP error reporting which was producing nonsense
    error messages in a number of cases.

  * Made the IMAP protocol code handle folder names with spaces in.

  * Fixed renaming of IMAP folders - the IMAP command being issued
    was complete nonsense as it didn't inclue the new name.

  * Fixed a branch through a null function pointer switching back
    to a cached connection.

  * Fixed a null pointer dereference switching back to a cached
    connection.

  * Fixed a write through an invalid pointer revealed by MemCheck.

Version 1.02

  * Fixed IMAP protocol code to support the use of a null string as
    the private folder prefix and non "/" hierarchy delimiters.

  * Made connection establishment non-blocking so the desktop can
    continue to multitask.

Version 1.01

  * Fixed IMAP protocol code to handle FETCH responses with attributes
    in a different order to that given in the request.

  * Modified TCP connection code to use non-blocking sockets to avoid
    problems with the Acorn TCP/IP stack.

  * Set individual updates as well as block updates for the incoming
    mail folder so that Messenger can use user specific alert sounds.

Version 1.00

  * Increased version number to 1.00 for first release version.

  * Fixed stack swapping code to work on RISC OS 4 (hopefully).

  * Integrated manual changes from Mark.

Version 0.38

  * Tweaked the wording in the server configuration dialog to make
    things clearer.

Version 0.37

  * Fixed a problem with first time installations where the user
    directory wasn't created.

  * Made the help button work in all the configuration windows.

  * Added interactive help to the user remote details configuration
    window.

  * Fixed to send a group update when a copy or move is done so that
    the article counts in Messenger update as necessary.

  * Added support for the show log option on Messenger's iconbar menu.

  * Now creates sent mail and sent news folders if they don't already
    exist when sending a mail or news article.

  * Improve the error message given when trying to replace an existing
    article.

  * Add support for renaming of folders.

Version 0.36

  * Add support for deletion of individual entries in search results.

  * Move user directories into !NewsDir to match NewsBase and MsgServe.

  * Set RemoteNB$Version on startup so Messenger can put the version
    number in the User-Agent header.

  * Update edit user window to match MsgServe and make the reply to
    address option work.

Version 0.35

  * Allow search to append to existing results.

  * Make sure we create a RemoteNB directory in each user directory.

Version 0.34

  * Fix bug that caused groups to be deleted from active connections
    when an inactive connection was timed out.

  * Inform clients that we are an online tool so that they can behave
    accordingly - specificly this stops Messenger subscribing people to
    all groups automatically.

  * Mark articles in read only groups as locked to assist Messenger
    is disabling options which don't apply to read only articles.

  * Fixed IMAP bug where new mail was not visible until RemoteNB was
    restarted.

  * Added search capability to support Messenger Pro.

  * Overview files are no longer cached across invocation of the program.

Version 0.33

  * Use EXAMINE rather than SELECT to select IMAP folders to avoid
    lock contention problems - folders are only SELECTed when they
    need to be written to (mainly when deleting messages).

  * Prevented spurious warnings being written to the log when
    an IMAP connection is closed.

  * Fixed a race condition when switching to a cached connection.

  * Added a !Boot file to the application to avoid some startup
    problems.

Version 0.32

  * Fixed IMAP folder creation code to cope with folder paths that
    contain '.' characters.

Version 0.31

  * Fix a race condition that could generate errors if a second article
    was requested before the previous one was freed.

  * Work around Messenger bug by ignoring FreeArticlePointer messages
    with a null handle.

  * Reorganise the group table code so that groups are added and
    removed properly when IMAP folders are created and deleted.

  * Report an error if an attempt is made to delete a non-existent
    group.

  * Fix creation of IMAP folders so it actually stands some chance of
    working.

  * Return an error if an attempt is made to delete messages from a
    non-existent group.

Version 0.30

  * If the client doesn't declare itself as supporting block updates
    send both sorts of update.

Version 0.29

  * Don't announce ourselves to clients or accept client requests until
    we have finished initialising.

  * Adjust some templates to prevent text being truncated when system
    font is in use.

  * Fix a couple of minor bugs in the new installation code.

  * Delay the EXPUNGE of an IMAP mailbox across multiple non-sequential
    deletes as it is more efficient that way.

Version 0.28

  * Add installation windows that appear if no configuration file
    is present.

  * Fix bug in configuration that meant leaving a server name blank
    didn't work properly.

Version 0.27

  * Fix a memory leak in the SMTP sending code.

  * Use a query window to check that the user is sure before deleting
    any user entries.

  * Add a remote details window to allow the remote account name and
    password to be set.

Version 0.26

  * Startup without an iconbar icon if the -noicon switch is given on
    the command line.

  * Add an MsgServe style server configuration window that can be
    invoked from Messenger Pro.

  * Add support for polling for new messages when the Fetch Messages
    option in Messenger Pro is used.

  * Add an MsgServe style site configuration window that can be
    invoked from Messenger Pro.

  * Fix silly bug that caused Messenger to request passwords when
    they were not needed and not request them when they were needed.

Version 0.25

  * Split the site and user configuration into separate files and
    moved them into !NewsDir.

  * Added MsgServe style user configuration window so all user
    configuration can now be done from within RemoteNB.

  * Greatly improved feedback from the protocol layers to the client
    message processing layer should mean much better reporting of
    error conditions.

  * Internationalised all user visible messages (primarily the error
    messages sent to clients).

  * Made the received lines generated by RemoteNB on outgoing mail
    messages compliant with the draft replacement for RFC821.

Version 0.24

  * Finally found and fixed the problem with my UpCall 6 handler as a
    result of which network access will no longer block the desktop.

  * Optimise the NNTP code along the same lines as the IMAP code thus
    reducing wimpslot size to some 260k.

  * Optimise the IMAP code to reduce memory overheads and eliminate
    unnecessary copying of data - an IMAP message is now read straight
    from the TCP/IP stack into the buffer that will be presented to
    the client.

  * Switch to using a flexible memory allocator for buffers, and use
    a dynamic area where possible.

  * Defer removal of messages from IMAP overviews until we actually do
    the deletes so that runs of consecutive messages can be deleted in
    one pass through the file.

  * Add support for RAM transfer.

  * Add support for feature masks on Newsbase_Startup commands and
    replies and use them to determine whether to do block updates
    or not with a given client.

Version 0.23

  * Add user configuration to the choices dialogue.

Version 0.22

  * Add a user option to only check the INBOX for new mail.

  * Generate a received header on outgoing email.

Version 0.21

  * Bugfix to prevent abort on failed network connections.

Version 0.20

  * Add a choices window that can set all the system wide options.

  * Add support for timing out of cache connections, along with a
    configuration option to control the timeout. By default no
    connection caching occurs.

  * Add a configuration option to control the frequency with which
    we poll for new mail and news.

Version 0.19

  * Fiddle with the NNTP code to try and avoid INN's caching of
    high water mark information for the current group.

  * Fix bug in support for alternative folder paths (it only worked
    if the alternative path was the same length as the default).

Version 0.18

  * Send old style article update messages as well as new style ones
    as TTFN won't pay attention to the new ones.

  * Add support for the ListArticles command so that TTFN will work
    with RemoteNB.

Version 0.17

  * Force an immediate poll when switching back to a connection to
    make sure that we see any new messages straight away.

Version 0.16

  * Use the mail domain instead of the fqdn when constructing the
    envelope sender address for an SMTP conversation.

Version 0.15

  * Connections are no longer closed when a client dies or changes
    user - instead they are kept around in case they can be reused
    later on. Hopefully this will make switching users faster.

  * Group info and overview files are now stored inside !NewsDir as
    a first step to making !RemoteNB able to live on a read only
    filesystem.

  * Group info is now held on a per-user basis so that unaccessible
    groups and folders can no longer be seen.

Version 0.14

  * Allow a list of newgroup patterns to be supplied in order to limit
    the number of groups we ask the server about.

Version 0.13

  * Allow paths to private and public folders to be changed in the
    configuration file.

  * Allow the SMTP server to be different to the IMAP server.

Version 0.12

  * Make sure all user directories exist on startup.

  * Fix a couple of bugs with first time connections.

Version 0.11

  * Pretend to be version 0.60l of Newsbase.

  * Make sure the groupinfo file is flushed after changing user.

  * Use the batch deletion feature of the Newsbase message protocol.

  * Generate "Article not available" errors when appropriate (ie
    when we get an error from the server).

Version 0.10

  * Send group update messages for ranges of articles instead of
    article created messages for each article.

Version 0.09

  * Batch up moves/copies/deletes of consecutive articles in mail
    folders.

  * Add public folders (these go under /var/spool/folders on the
    server).

  * Fix limitation that prevented use of multiple clients at the
    same time. Also fixes crash when trying to read mailboxes that
    you don't have access to because they belong to other users.

  * Build address lists for IMAP overviews using dynamic buffers
    to prevent buffer overflows with very long address lists.

  * Add fetch by message ID so that Messenger's thread following
    menus can work. Note that it still doesn't work properly due
    to a bug in Messenger which I have reported to Mark.

  * Fix tracking of message count when mail messages are deleted.

  * Log off from the server(s) if we get a set user command with
    a null username.

Version 0.08

  * Handle continuation lines on the SMTP banner response.

  * Use the configured mail server to send mail instead of always
    trying to use gosford.

Version 0.07

  * Log warnings and errors to standard error if the Syslog module
    isn't running.

  * Make sure we only ever have one thread running for a given
    client to work round a wierd problem where Messenger asks
    us to start a client session for it twice.

Version 0.06

  * Fix problem with long delay the first time the program is
    started. There is still a significant delay but it is now
    proportional to the number of articles currently on the
    server not the total number ever.

  * Fix race condition in handling of article file cache that
    could sometimes cause an article file to be deleted before
    the client got to read it.

  * Handle continuation lines when parsing mail headers.

Version 0.05

  * Create new overview directories as needed.

  * If no GroupInfo file exists at startup make sure we create one.

  * Fix handling of empty news groups where NNTP returns a high water
    mark that is lower than the low water mark.

  * Check that an IMAP server supports IMAP4rev1 before trying
    to use it.

Version 0.04

  * Return an error on attempts to delete from a read only group.

  * Support setting of envelope addresses so Messenger's bounce
    function works.

  * Return an error when asked to lock or unlock articles.

  * Create low resolution program sprite based on Tim's high
    resolution one.

  * RMEnsure the Window module in the !Run file. I'm not quite sure
    why it needs this but it does seem to...

Version 0.03

  * Turn the hourglass on while we process events in the client threads
    in case we wind up blocking against a network connection.

  * Don't try and open mail/news connections if the user hasn't defined
    a server name.

Version 0.02

  * Don't try and poll for new messages on a connection that failed
    to open.

  * Incorporate new high resolution program sprite kindly donated by
    Tim Howarth.

Version 0.01

  * First beta release.

