This history file covers all modifications made to PRPNet Client/Server.

Version 2.1.2:  May 2009 - Official Release
    prpclient:  Fixed patch that addressed PFGW FFT rounding error as it completely
                borked the 2.1.1 client. 
                More changes for ^C handling to get Windows to work as I would expect
                it to work (which should be more like Unix).

Version 2.1.1:  May 2009 - Patch Release (beta)
    prpclient:  Fixed patch that addressed PFGW FFT rounding error as it completely
                borked the 2.1.0 client.
                Modified to skip lines in lresults.txt that are not related to
                the results of the test.

Version 2.1.0:  May 2009 - New Release (alpha)
    prpclient:  Modify handling of ^C with Visual Studio build used by Windows.
                After returning work, continue to read from socket until getting
                "End of Message" semaphore.
                Delete all temp files after returning results to the server.
                Capture FFT rounding errors from PFGW and re-issue test using -a option.
                Write servertype to save file so that workunits can be correctly handled
                upon restart of the client.
                When restarting the client, ask user what to do with workunits that have 
                been saved.
    prpserver:  Add user element to completed_tests.log.
                Look for correct return codes when sending e-mail using SMTP authentication.
                Replace %T format when calling strftime as Windows doesn't support it
                and will terminate application when it find it.
                Changed user stats structure hoping to eliminate stats collection issue.
                Send "End of Message" to client after receiving work done as a semaphore
                to the client to stop reading from the socket.
                Add Primes Found and GFN Divisors found to Fixed k/b/c server user stats HTML.

Version 2.0.4:  April 2009 - Official Release
    prpclient:  Change options for PFGW when finding GFNs to not do an unnecessary PRP test.
    
Version 2.0.3:  April 2009 - Patch Release (beta)
    prpclient:  Fix an issue where the client does not parse LLR test results correctly

Version 2.0.2:  April 2009 - Patch Release (beta)
    prpserver:  Log GFNs returned by the client
                Fix HTML generation as it would not respond in a timely fashion to the browser.
                Fix double close when loading from an ABC file.

Version 2.0.1:  April 2009 - Patch Release (beta)
          all:  Address issues with uninitialized variables when using Visual Studio.

Version 2.0.0:  April 2009 - New Release (alpha)
          all:  Add userid support which can be different than emailid.
                emailid is still required for uniqueness.
    prpadmin:   This gives an administrator access to the server to add new candidates (via 
                an ABC file) or remove candidates (via a factor log file) if factors have
                been found.
    prpserver:  Ingore SIGPIPE signal until I understand how to prevent that signal from being
                throw when I don't want it to be thrown.
                Verify that there are no duplicate candidate names after loading is complete,
                not during the loading process as it takes a very long time to load the
                server if there are a large number of candidates.
                Added a new stats engine.  This allows a web browser to call the server directly
                to get supported web pages.  More info can be found in readme.txt.
                Support SMTP verification and authentication for any mail the server sends.
                Added support for primorial and factorial server types.
                Removed master/slave logic as it isn't useful.
                Added support for prpadmin.
    prpclient:  Added "affinity=" option so that the client can tell LLR which CPU to use.
                When the client is terminated with a ^C, prompt the user as to what they want
                to do with workunits.
                Modified the client to use LLR for bases above 50 if it can choose between LLR
                and phrot.
                Fixed an issue where client performs tests again if not able to communicate with
                server.
                Added support for PFGW.  This means that the client can perform generic PRP and
                primality tests (whatever PFGW and prpserver can support).
                If PFGW is configured, that the client can do its own primality test if the
                first test was only a PRP test.
                If PFGW is configured, use it to test Proth primes for GFN divisibility.

Version 1.0.5:  January 2009 - Patch Release
          all:  Fixed an issue on Windows as Visual Studio does not initialize
                instance variable if they are not explicity initialized.
    prpclient:  Fixed an issue when loading from a save file where the number 
                of completed work units was not correctly updated.

Version 1.0.4:  January 2009 - Patch Release
          all:  Increase size of buffer for candidate names as 20 characters
                was not long enough.
    prpclient:  If there is only one workunit and it is inprogress, then do
                not communicate with the server.
                Write LLR primes to llr.prime and PRPs to llr.prp.
    prpserver:  Fixed a bug introduced with the Windows build that causes
                the server to not calculate the decimal length correctly.

Version 1.0.3:  January 2009 - Patch Release
          all:  Create .sln and .vcproj files for Microsoft Visual Studio.
                Modified Socket logic and defs.h to work with MS Visual Studio.
    prpclient:  Explicitly intialize some variables so that the Visual Studio
                build does not complain about them.
                Reset number of completed work units after getting new work.
                Put the erroneous client ID in the message that indicates that the
                client ID is invalid (instead of the e-mail ID).
    prpserver:  Send an INFO message instead of ERROR if the server does not find
                the candidate by name.  This will cause the results of the test to
                be lost, but will allow the client to continue processing other
                work units.  This behavior might be changed in the future.

Version 1.0.2:  January 2009 - Patch Release
    prpclient:  Send abandoned tests to the server so that the server knows when
                the client is not going to perform the test and can thus send a
                test to someone else.
                Fix an memory leak when maxworkunits is decreased to a value lower
                than the number of saved tests in the work*.save file.
                Allow setting of maxworkunits of 0 to complete any current incomplete
                test, send it to the server, then terminate the client.
                The next version of phrot can do a primality test for Proth numbers,
                so ensure that it is captured correctly and reported to the server.
    prpserver:  Fix an issue in Candidate.cpp where the number of successful tests
                performed was not incremented.
                When a successful test is returned, log the test in a file called
                completed_tests.log.
                The client can now indicated if a test has been abandoned.  If it
                has, then don't update the timestamp, but delete the test so that
                someone else can perform it.

Version 1.0.1:  December 2008 - Patch Release
    prpclient:  LLR output for base 2 tests differs from other bases, thus it has
                to be parsed differently.
                LLR for Proth numbers (k*2^n+1) performs a primality test, thus
                check for primality and report the number as prime instead of
                as a PRP.
    prpserver:  Check for numbers marked as Prime by LLR.

Version 1.0.0:  December 2008 - Initial Release

