Notes:
Changes: 0.19.14 Moved handling of all scheduled ACH tasks to a dispatcher in the main worker thread funcs. FinCnxns no longer use an update list as they are always added from the ACH thread. If the node is closed while a retrieve is in progress, the retrieve will now finish elegantly and remove the temp file (instead of charging off like an out-of-control freight train until the program either crashes or exits). Fixed fatal exception on Blacklist by Filename. Bug was due to mis-handling of string::npos. Command line syntax for chat is now only "message <node rank> <text>" the options using host and port instead of rank have been removed. Fixed a couple of overflow vulnerabilities in parsing of http headers. Fixed mutex deadlock when duplicate nodes are found and the one which is removed has a pool cnxn. Those last 7 async types are now added directly and the AsyncCnxn update list has been removed. Config files are now saved from the ACH thread instead of the NLMan thread. Updates for the node readout in the status bar are now posted from the ACH thread instead of being done by the display timer. Pinging all online nodes (i.e. on port change) and sending global messages no longer require the creation of a temporary nodelist. Changed most of the sscanf calls to use istringstream instead, which is supposedly safer and more secure. As always, some are left over and will be cleared up as and when. The mutex lock on the main nodelist has been disabled as all access should now be from the ACH thread. If all goes well, it will be removed completely. Node IDs from headers are now stored as binary instead of hex. Outgoing headers are now stored in an std::string instead of a somewhat oversize char array. The url in Insert is now an std::string. Fixed bug where the RSA key verify time was updated on reading in nodes, this meant that RSA keys were not rechecked after the specified interval. Changed all config file writing to use a stringstream as a buffer. This allows data to be buffered until a reasonable amount is waiting to be written and also should fix a format problem in some locales where float values would be truncated at the decimal point on loading config. strcmp() and strcpy() have been expunged from the src tree. sprintf() is no more, except for one instance in some almost-never-used debugging code. New block protocol is enabled - let's see what happens.
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use