From 1b4c76f6e488e328e53bf3f0ccf2f8d8a1150aa5 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 28 Apr 2005 23:40:40 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=5965 --- checkin_notes | 22041 --------------------------------------- checkin_notes_2002 | 2814 +++++ checkin_notes_2003 | 6053 +++++++++++ checkin_notes_2004 | 13174 +++++++++++++++++++++++ doc/contact.php | 1 + doc/create_project.php | 1 + doc/download_other.php | 1 + doc/files.php | 3 +- doc/links.php | 1 + 9 files changed, 22047 insertions(+), 22042 deletions(-) create mode 100644 checkin_notes_2002 create mode 100644 checkin_notes_2003 create mode 100644 checkin_notes_2004 diff --git a/checkin_notes b/checkin_notes index c487e059ba..8f31571fb8 100755 --- a/checkin_notes +++ b/checkin_notes @@ -1,22044 +1,3 @@ -;; -*- mode: text; tab-width: 4; indent-tabs-mode: nil; -*- - -David A. April 10 2002 - Initial checkin of all files. - The system is fairly feature-complete and - runs a number of test cases correctly. - Currently runs only on Linux. - -David A. April 11 2002 - - Got things to compile on Solaris. - - Pass in platform name, version number from Makefile - (platform name comes from configure) - -David A. May 15 2002 - - Allow applications to have multiple files - (e.g. scripts, libraries, pre- and post-processing programs). - The app_version table now has an xml_doc field, - which contains a list of and elements. - Note: the utility for adding applications (tools/add.C) - still handles only single-file applications. - - Changed IO_FILE_DESC to FILE_REF since it now represents - an association of a file to workunit, result or application - - client - app.C - client_state.C,h - cs_apps.C - cs_scheduler.C - main.C - message.h (new) - parse.C,h - scheduler_reply.C,h - types.C,h - Makefile.in - db - db.h - db_mysql.C - schema.sql - doc - app.html (new) - files.html - index.html - intro.html - project.gif - project.html - project.png - protocol.html - result.html (new) - work.html - html_user - db.inc - sched - handle_request.C - server_types.C,h - test - test_uc.php - init.inc - tools - add.C - -David A. May 23 2002 - - Change the scheduling server to reduce database accesses. - There's now a shared-memory segment that contains - 1) the platform, app, and app_version tables in their entirety; - 2) a fixed-size set of results ready to be sent, - and their corresponding workunit. - This segment is initialized and maintained by a new program - called the "feeder" (sched/feeder.C) that should run - whenever the scheduling server is up. - Note: the scheduler still needs to be converted to fast CGI - - Added handy interfaces for dealing with shared memory and semaphores. - - Changed to utilities and scripts used for testing so that all - server-specific names (paths and URLs) come from environment - variables instead of being hardwired in the code. - You'll want to add these to your .tcshrc or whatever. - See the doc/install.html for details. - - Files: - TODO - apps/ - Makefile.in - client/ - app.C - db/ - db.h - doc/ - index.html - install.html - intro.html - tools.html (removed) - tools_other.html - tools_work.html - work.html - lib/ - Makefile.in - md5_file.C - shmem.C,h (new) - shmem_test.C (new) - synch.C,h (new) - synch_test.C (new) - sched/ - feeder.C (new) - Makefile.in - handle_request.C,h - main.C - sched_shmem.C,h (new) - server_types.C,h - test/ - account.xml (deleted) - account1.xml - init.inc - test_uc.php - tools/ - add.C - create_work.C - -Hiram C. Fri May 24 23:34:59 PDT 2002 - files db/dependencies and client/config.status and client/config.log - removed. These are build time files and should not belong - in the source tree. They confuse subsequent builds. - files updated: configure configure.in api/Makefile.in - apps/Makefile.in client/Makefile.in db/Makefile.in - db/mysql.h lib/Makefile.in sched/Makefile.in - tools/Makefile.in - - These Makefile.in changes will allow the build to be performed - outside the source tree. This is convenient for several - reasons. The number one reason is that this allows the source - tree to remain untouched by the build and therefore clean. - This will prevent garbage build files from being checked in - during a 'cvs commit' - - To run a build outside the source tree, simply make an object - directory anywhere else that you would like to work, then just - execute the configure script in the top-level boinc directory. - $ mkdir boincobj - $ cd boincobj - $ <... path to source tree ...>/boinc/configure - $ make > make.out 2>&1 & - - Note the examples in apps/Makefile.in and sched/Makefile.in - of how to use the top_srcdir variable to locate include files - in the source tree outside of the current directory. Local - references to other object files and libraries produced by - the build remain as local .. references. - - The change to configure.in, (and thus configure) and db/mysql.h - allow a proper identification of where the mysql .h files live. - The SSL location of /usr/local/mysql/include is a bit non-standard. - Most systems will have these in /usr/local/include/mysql - -Hiram C. Sat May 25 09:20:25 PDT 2002 - Continue updating: - Makefile.in config.guess configure configure.in api/Makefile.in - apps/Makefile.in client/Makefile.in client/config.guess - client/configure client/configure.in sched/Makefile.in - tools/Makefile.in - - I have almost clean builds now on Solaris, Mac OS X, - and UnixWare. There appears to be a missing sched_shmem.h - file from the source tree. - - There is still cruft in this configure system. I will continue - to work on it to clean it up. - -David A. May 29, 2002 - - Mostly implemented support for editing preferences, - including project-specific preferences. - Simplified the preferences scheme. - Abandoned the idea of multiple preference sets per user; - each user now has a single set of preferences. - Got rid of the "prefs" database table; - prefs are now just an XML and mod_time field in the user table. - Haven't tested much yet. - - NOTE: these new features use the XML parsing features of PHP. - This means that, on the BOINC web server, - you must configure PHP with the --with-xml option, - and you must make and install Apache. - Also, you probably need to use a recent version of PHP; - XML parsing was broken in PHP 4.0.4, but it works in 4.2.1. - - client/ - Makefile.in - speed_stats.C (fixed code formatting a bit; doesn't compile on linux) - db/ - Makefile.in - db.h - db_mysql.C - schema.sql - doc/ - prefs.html - html_user/ - db.inc - prefs.inc - prefs.php - prefs_action.php (removed) - prefs_add_project_action.php (new) - prefs_add_project_form.php (new) - prefs_delete_project.php (new) - prefs_delete_project_confirm.php (new) - prefs_edit.php (removed) - prefs_edit_disk_action.php (new) - prefs_edit_disk_form.php (new) - prefs_edit_project_action.php (new) - prefs_edit_project_form.php (new) - prefs_edit_projects.php (new) - prefs_edit_work_action.php (new) - prefs_edit_work_form.php (new) - test.php (removed) - sched/ - handle_request.C - server_types.C,h - test/ - init.inc - test_1sec.php - test_concat.php - test_dynamic.php - test_prefs.php - test_projects.php - test_stderr.php - test_uc.php - test_uc_slow.php - tools/ - add.C - -David A. May 29, 2002 - - forgot to add a couple of files - sched/ - feeder.C - sched_shmem.C,h - -Hiram C. Thu May 30 01:28:47 PDT 2002 - updating: client/configure client/configure.in - client/net_xfer.C sched/Makefile.in sched/feeder.C - - This now builds just fine on Solaris, Linux and OpenUnix8. - And only two tiny errors remain for a Mac OS X build. - That being the specification of g++ in the sched/Makefile - and statvfs() is not available on the Mac for - the client/hostinfo_unix.C compile. Need a substitute for - that function on the Mac. - -Eric H. May 30, 2002 - Added safeguard to avoid removing root directory when - BOINC_DOWNLOAD_DIR and BOINC_UPLOAD_ DIR environment - variables aren't declared. - test/ - init.inc - -David A. June 1, 2002 - - Ensure that preferences propagate from the server - where they are updated to all hosts, - Eliminated concept of "home project". - Not tested yet. - Also to do: replace the "accounts.xml" file with - a file containing preferences. - - Changed the way the client handles preferences. - It now saves saves the exact XML it gets from the server, - regardless of whether it can parse it all. - - Fixed client parsing code to reflect new names for preferences - - Changed the way the scheduling server handles prefs in - a client/server interaction. - If it gets newer prefs, it updates its own DB. - If its DB has newer prefs, it sends them to client. - - Fixed the test scripts so that they start/stop the feeder also. - This required adding a "ready" flag to the shared-mem structure - so that the scheduling server can find out if the feeder hasn't - finished initializing the structure. - Also required adding a "-synch" cmdline option to feeder. - - added utility program (sched/show_shmem.C) for looking at - scheduler shared memory - - renamed "types.*" to "client_types.*" to avoid name conflict - with system include files - - /Makefile (removed - this is derived from Makefile.in) - client/ - Makefile.in - accounts.C,h - app.C - client_state.C,h - client_types.C,h (new) - cs_files.C - cs_scheduler.C - file_names.h - file_xfer.h - hostinfo_unix.C - net_xfer.C - prefs.C,h - scheduler_reply.C,h - speed_stats.C - types.C,h (removed) - db/ - constraints.sql - doc/ - protocol.html - html_user - prefs.inc - sched/ - feeder.C - handle_request.C - main.C - sched_shmem.h - server_types.C,h - show_shmem.C (new) - ss_reply_file (removed) - ss_req_file (removed) - test/ - account1.xml - init.inc - sched_reply.xml (removed) - sched_request.xml (removed) - test_uc.php - tools/ - add.C - -Eric Heien June 03, 2002 - - Consolidated XML parsing functions into lib - - Fixed compile bug on Solaris in shmem.C - - client/ - parse.C (moved to lib) - parse.h (moved to lib) - Makefile.in - lib/ - parse.C (moved from client) - parse.h (moved from client) - shmem.C - sched/ - parse.C (removed, uses lib version now) - parse.h (removed, uses lib version now) - Makefile.in - -Michael Gary June 04, 2002 - - Added server side water level functionality, now sends as many work units - as necessary to fill the time requested. - - sched/ - handle_request.C - -Eric Heien June 06, 2002 - - Changes and additions made to begin porting to Windows. - - This code will compile on Windows, but is not quite fully functional. - - client/ - hostinfo_unix.C - hostinfo_win.C (added) - http.C - main.C - net_xfer.C - prefs.C - speed_stats.C - test_file_xfer.C - test_http.C - test_net_xfer.C - util.C - util.h - windows_cpp.h (added) - win_main.C (added) - lib/ - md5.c - parse.C - -Michael Gary June 06, 2002 - - Added client side water level functionality. - - Added rsc_fpops and rsc_iops to the client WORKUNIT struct, bun not yet - functional since not initialized. - - Test scripts to check water level functionality, including minima and - maxima. Test scripts are based on test_prefs.php. - - client/ - client_state.h - cs_scheduler.C - client_types.h - test/ - max_water_prefs.xml (new) - min_water_prefs.xml (new) - normal_water_prefs.xml (new) - test_max_water_prefs.php (new) - test_min_water_prefs.php (new) - test_normal_water_prefs.php (new) - -Michael Gary June 07, 2002 - - Converted scheduling server to allow for Fast CGI. Fast CGI will only be - used if Makefile.in is replaced by Makefile.fcgi.in. Makefile.nofcgi.in - is a copy of the current Makefile.in. - - sched/ - feeder.C - handle_request.C - main.C - sched_shmem.C - main.C - sched_shmem.C - server_types.C - show_shmem.C - Makefile.nofcgi.in (new) - Makefile.fcgi.in (new) - lib/ - parse.C - -Eric Heien June 07, 2002 - - Added initial functionality for passing graphics preferences between core and app - - client/ - Makefile.in - app.C - lib/ - gfx_interface.C - gfx_interface.h - -Michael Gary June 08, 2002 - - Moved fast cgi Makefile.in to boinc/sched_fcgi - - make now makes fcgi in boinc/sched_fcgi - - Added links to existing code where necessary for making fast cgi - scheduling server. - - configure - Makefile.in - sched/ - Makefile.nofcgi.in (removed) - Makefile.fcgi.in (removed) - Makefile.in - parse.C (added) - parse.h (added) - sched_fcgi/ (added) - Makefile.in (added) - feeder.C (added) - handle_request.C (added) - handle_request.h (added) - main.C (added) - parse.C (added) - parse.h (added) - sched_shmem.C (added) - sched_shmem.h (added) - server_types.C (added) - server_types.h (added) - show_shmem.C (added) - -David A June 9 2002 - - added support for multiple URLs in a FILE_INFO - (e.g. multiple servers from which the file can be downloaded) - - started work on "persistent file transfer": a layer on top of - FILE_XFER that manages restarting from failed connections, - and that implements a give-up policy - - added offset arguments to GET and PUT HTTP operations. - NOTE: this will work fine for downloading files (GET) - but we'll have to use something else for upload, - since the standard PUT handler doesn't do offsets, - and we need security functionality in any case. - - added preliminary version of application API for - communicating with core client. - - use tags instead of and - (makes things simpler) - - TODO - notes - api/ - api.C,h - client/ - configure.in - client_state.C - client_types.C,h - cs_files.C - error_numbers.h - file_xfer.h - http.C,h - pers_file_xfer.C,h - test_http.C - html_ops/ - db.php - html_user/ - db.inc - test/ - 1sec_result - account2.xml - *_result - *_wu - init.inc - laptop_prefs.xml - test_*.php - tools/ - add.C - -David A June 13 2002 - - added the RSAEuro library to the project, - and some interface routines for it. - - RSAEuro/ (new) - source/* - demo/* - lib/ - crypt.C,h (new) - crypt_prog.C - Makefile.in - sched/ - file_upload_handler.C - -Eric H June 19, 2002 - - Removed redundant files - - sched/ - parse.C (removed) - parse.h (removed) - -Eric H June 20, 2002 - - added soft link support via XML tags - - fixed Windows ASCII/binary bug - - Added Windows networking support - - Fixed some bad indenting - - api/ - api.C - api.h - lib/ - md5_file.C - client/ - client_state.C - cs_scheduler.C - net_xfer.C - win_net.cpp (added) - win_net.h (added) - win_main.C (changed to win_main.cpp) - win_main.cpp (changed from win_main.C) - windows_cpp.h - -David A June 20 2002 - - Replaced the "accounts.xml" file with the user preferences ("prefs.xml"). - All non-host-specific project info is stored in this file; - all host-specific project info is in client_state.xml. - The PROJECT class is a union of the two. - The logic for dealing with inconsistencies between - prefs.xml and client_state.xml, and with updating in-memory - and on-disk project lists in response to an update from a server, - are a little tricky and are described in the code. - - The prefs file can be overwritten by in a scheduling - server reply. To prevent buggy servers from zeroing out - users' project lists, the client makes sure there's at least - one project, and backs up the old prefs.xml into a timestamped file. - - The command-line client, if prefs.xml is absent, - prompts the user for a project URL and authenticator, - and creates an initial prefs.xml. - - Each project now has a "master URL", with is its home page - and also contains elements giving the URLs of - its scheduling servers. - - Added a class SCHEDULER_OP which encapsulates fetching and - parsing a project's master page (if necessary), - then making an RPC to one of its scheduling servers. - TODO: add retry and failure logic. - - A project can have more than one scheduling server. - TODO: use all of them. - - Project directories are stored in URL-encoded form. - This allows project master URLs to have slashes, which is a necessity. - - client/ - Makefile.in - accounts.C,h (deleted) - app.C,h - client_state.C,h - client_types.C,h - cs_apps.C - cs_scheduler.C - file_names.C,h - main.C - prefs.C,h - scheduler_op.C,h (new) - scheduler_reply.C,h (deleted) - doc/ - project.html - lib/ - parse.C,h - sched/ - server_types.C - test/ - account1.xml, account2.xml (deleted) - init.inc - prefs1.xml, prefs2.xml (new) - test_*.php - -David A June 21 2002 - - top-level Makefile now compiles RSAEuro/, - and doesn't refer to sched_fcgi - - Added element to html_user/index.html, - making it the "master file" for test project. - This file must be placed in the directory referred to by - http://localhost/ - - Makefile.in - html_user/ - index.html - -Michael Gary June 21 2002 - - added install to the make system to put executables - in /usr/local/boinc - - simplified make system for fast cgi scheduling server - - completed implementation of high/low water system and - testing of host. - - checkpoints and timekeeping now implemented in api - - timekeeping through api done in client state - - Makefile.in - configure - api/ - Makefile.in - api.C - api.h - api_test.C - apps/ - Makefile.in - client/ - Makefile.in - client_state.C - client_state.h - client_types.C - client_types.h - cs_scheduler.C - hostinfo.C - hostinfo.h - app.h - app.C - db/ - db.h - lib/ - Makefile.in - sched/ - Makefile.in - feeder.C - handle_request.C - main.C - parse.C (removed) - parse.h (removed) - sched_shmem.C - server_types.C - show_shmem.C - test/ - log_flags.php - sched_fcgi/ (removed) - -Micahel Gary 6/23/2002 - - Checkpoint timer initialized in boinc_init. - - Test script added for api. - - api/ - api.C - test_api.C - test/ - init.inc - test_api.php (new) - ta_correct_atc (new) - ta_correct_f (new) - core_to_app.xml.in (new) - -Michael Gary 6/25/2002 - - Maggie is now the master url for boinc. - - test/ - prefs1.html - doc/ - test.html - -Michael Gary 6/27/2002 - - Fixed a bug in add_work and added water level testing to test_uc.php - - test/ - test_uc.php - tools/ - add_work.C - -Michael Gary 6/28/2002 - - Added an explicit test for water level - - Added a -no_time_test argument to the boinc client to stop the time tests - from running. - - client/ - main.C - client_state.h - client_state.C - test/ - test_water.php (new) - -Eric Heien 7/01/2002 - - Added S@H test scripts, added other testing functionality. - - Added random WU generation. - - Added concat_slow application. - - Altered functionality of API checkpoint_completed. - - api/ - api.C - api.h - api_test.C - apps/ - concat_slow.C (added) - Makefile.in - uc_slow.C - upper_case.C - test/ - sah_result (added) - sah_wu (added) - sah_test.php (added) - init.inc - test_uc_slow.php - tools/ - create_work.C - -Michael Gary 7/01/2002 - - Fixed fast cgi scheduling server - - If low water mark is higher than high water mark, water marks are - switched - - Updated documentation - - doc/ - flow.html - protocol.html - client/ - client_state.C - cs_scheduler.C - sched/ - main.C - test/ - prefs1.xml - -Michael Gary 7/03/2002 - - api test is now more thorough, tests time accounting and restarting - - added app_completed function to api - - api_test.C was moved to api_app.C - - removed #ifdef solaris and #ifdef unix from all files - - api/ - Makefile.in - api.C - api.h - api_test.C - api_app.C (new) - test/ - init.inc - ta_correct_f - test_api.php - client/ - app.C - hostinfo_unix.C - configure - configure.in - filesys.C - doc/ - api.html - configure - configure.in - -David Anderson July 4, 2002 - - Added support for upload authentication. - This prevents bad guys from filling up data servers with trash. - In this scheme, each element sent from - server to client includes a field limiting - the size of the file, and includes a digital signature - based on the project's "upload authentication" key pair. - File uploads, instead of being done by PUT, are now done by POST - to a CGI program, "file_upload_handler". - The request header includes the signed , - and the CGI program verifies the signature and enforces the size limit. - - The affected pieces of code: - - Added a function create_keys() in PHP test scripts - to create encryption keys. Call it from all script. - - Added environment var BOINC_KEY_DIR saying where keys are kept. - - The client must maintain an exact copy of each XML, - and of the signature, so that it can send to upload server. - - Added a new variant of HTTP operation, HTTP_OP_POST2. - The existing variants all use single files for request and reply. - The new variant (used for file upload) has a request - consisting of a memory block followed by (part of) a file; - the reply is in memory. - This avoid copying possibly huge upload files. - - FILE_XFER objects now take a FILE_INFO as initialization argument; - needed to convey authentication info. - The upload variant creates and sends the authentication header. - - Result templates now include a in each - element, and the URLs refer to the - file_upload_handler (with no filename) - - process_result_template() works differently, since it must - generate a digital signature at the end of each - - create_work expects the name of a private key file. - - Added crypt/md5 functions to sign/verify in memory, - encode/decode ASCII data in memory, checksum in memory - - Change "gmake" to "make" in top-level makefile. - (alias make to gmake if this is a problem) - - boinc/ - Makefile.in - TODO - RSAEuro/source/ - rsaeuro.h - client/ - Makefile.in - client_state.C - client_types.C,h - cs_files.C - file_names.C - file_xfer.C,h - http.C,h - main.C - scheduler_op.C - test_file_xfer.C - db/ - mysql_util.C - doc/ - index.html - intro.html - master_url.html (new) - project_startup.html (new) - tools_security.html (new) - html_user/ - index.html - lib/ - Makefile.in - crypt.C,h - crypt_prog.C - md5_file.C,h - parse.C,h - sched/ - Makefile.in - file_upload_handler.C - server_types.C - test/ - 1sec_result - concat_result - init.inc - master.html (new) - sah_result - test_1sec.php - test_concat.php - test_dynamic.php - test_max_water_prefs.php - test_min_water_prefs.php - test_normal_water_prefs.php - test_prefs.php - test_projects.php - test_stderr.php - test_uc.php - test_uc_slow.php - uc_result - ucs_result - tools/ - Makefile.in - add.C - backend_lib.C,h - create_work.C - process_result_template.C - -David July 4, 2002 - - fixed compile problems on linux. - use kill() instead of sigsend() - - client/app.C - sched/file_upload_handler.C - -Michael Gary July 5, 2002 - - fixed fast cgi crypto - use fgets and sscanf instead of fscanf, which - is not implemented in fcgi_stdio.h - - sched/Makefile.in - lib/crypt.C - -David A. July 7, 2002 - - Added code signing. All files associated with an app version - (i.e. all executable files) must now be signed - with the project's "code sign key". The components include: - - PROJECT has new field "code_sign_key", keep track of project's - public code-signing key. - Send this on each scheduler RPC. - - The scheduling server stores the public code-signing key in memory. - Send it to any client who doesn't have it. - If the client has an old key, - send them the new key signed with the old key. - NOTE: this uses a scheme in which signatures are kept - in files on the server, to avoid keeping private keys - in online machines. This should be documented. - - The utility to add new app versions (add.C) adds a signature - to the FILE_INFO element. - NOTE: eventually the signing should be done offline. - - FILE_INFO has a new boolean field "signature_required"; - set for all files associated with an app version - - FILE_INFO has a new char* field "file_signature", - which is the digital signature. - Renamed upload authenticator from "signature" to "xml_signature" - to avoid confusion. - - Add function verify_downloaded_file(), called after every download; - does MD5 or signature checking as needed. - - Added some new functions for signature checking etc. - - the client is now linked with the crypt library - - Server-side errors should always include the name of the - CGI program generating the error (scheduler or file upload handler) - - client/ - Makefile.in - client_state.C - client_types.C,h - cs_files.C - cs_scheduler.C - file_xfer.C - scheduler_op.C,h - test_file_xfer.C - doc/ - index.html - project_startup.html (new) - security.html - lib/ - crypt.C,h - parse.C,h - sched/ - file_upload_handler.C - handle_request.C,h - main.C - server_types.C,h - test/ - init.inc - prefs1.xml - test_uc.php - tools/ - add.C - process_result_template.C - -David A. July 8, 2002 - - fix compile errors - - fix bugs in FCGI version of scan_hex_data stuff - - client/ - client_types.C - lib/ - crypt.C - crypt_prog.C - sched/ - file_upload_handler.C - tools/ - Makefile.in - add.C - process_result_template.C - -Michael Gary July 10, 2002 - - Added asserts to the server side - - Added error checks on function parameters - - Made the api update result with time information at - checkpoints and when an application exits - - Removed unused tests - - Fixed bug in crypto sscan - - Moved client/error_numbers.h to lib/error_numbers.h - - api/ - Makefile.in - api.C - app.C - client/ - app.h - client_state.C - client_types.C - cs_apps.C - cs_files.C - cs_scheduler.C - file_names.C - file_xfer.C - filesys.C - hostinfo.C - hostinfo_unix.C - http.C - log_flags.C - main.C - net_stats.C - scheduler_op.C - speed_stats.C - time_stats.C - util.C - error_numbers.h (removed) - db/ - db_mysql.C - mysql_util.C - lib/ - crypt.C - md5_file.C - parse.C - shmem.C - error_numbers.h (added) - sched/ - Makefile.in - feeder.C - file_upload_handler.C - handle_request.C - main.C - sched_shmem.C - sched_shmem.h - server_types.C - test/ - max_water_prefs.xml (removed) - min_water_prefs.xml (removed) - normal_water_prefs.xml (removed) - test_max_water_prefs.php (removed) - test_min_water_prefs.php (removed) - test_normal_water_prefs.php (removed) - tools/ - add.C - backend_lib.C - process_result_template.C - -Barry Luong July 11, 2002 - - added changes to allow for multiple servers on one machine - - database names are from environment variables - - download and upload directories are from environment variables - - download and upload url's are from environment variables - - boinc_key (for shared memory) is from environment variables - - new directory tree: - - ~barry/ - / \ - / \ - / \ - boinc_cvs/ boinc_server/ - / / / \ \ - / / / \ \ - / / / \ \ - boinc/ cgi/ keys/ upload/ download/ - / \ \ - / \ \ - / \ \ - client/ sched/ ... - - - sched cgi, fcgi, file_upload_handler are copied into - ~barry/boinc_server/cgi/ - - in httpd.conf set up cgi permissions for appropriate files and - directories - - must define new environment variables: - BOINC_DOWNLOAD_DIR ~/barry/boinc_server/download - BOINC_UPLOAD_DIR ~/barry/boinc_server/upload - BOINC_DB_NAME boinc_barry - BOINC_UPLOAD_URL http://localhost/barry/boinc_server/cgi/fileupload_handler - BOINC_DOWNLOAD_URL http://localhost/barry/boinc_server/cgi/download - BOINC_KEY 0xdabacafe - BOINC_USER barry - BOINC_PUBLIC_KEY_PATH ~/barry/boinc_server/keys/upload_public - BOINC_KEY_DIR ~barry/boinc_server/keys - - db/ - init_db - drop.sql - schema.sql - constraints.sql - - sched/ - main.C - feeder.C - Makefile.in - file_upload_handler.C - sched_shmem.h - - tools/ - backend_lib.C - process_result_template.C - add.C - create_work.C - - html_user/ - db.inc - -Barry Luong July 12, 2002 - - Changed error messages in main.C so user names are printed out also - - took out a debugging variable I accidentally left in feeder.C - - removed an assert in file_upload_handler.C - - changed so BOINC_UPLOAD_DIR and BOINC_KEY_DIR are defined at compile time - - sched/ - main.C - Makefile.in - feeder.C - file_upload_handler.C - -Michael Gary July 12, 2002 - - Added a test to make sure the scheduling server does not send unfeasible - work units - - Removed some debug output - - lib/ - shmem.C - sched/ - file_upload_handler.C - handle_request.C - test/ - prefs3.xml - test_rsc.php - -David A July 14 2002 - - Added reasonable policies for making scheduler RPCs. Summary: - - results now have a "report deadline". - This may be useful for various purposes; for now, - we use it to trigger scheduler RPCs to report results - - The client now tries all a project's scheduler URLs in turn. - - Projects have a "min_rpc_time", the earliest time to - attempt another RPC (replaces next_request_time) - - We maintain an RPC failure count for each project. - If RPCs to all its URLs fail, we increment the count - and set its min_rpc_time according to an exponential backoff - - If a project is getting repeated RPC failures, - reread and parse its master URL file every so often, - in case the set of scheduler URLs has changed - - When the client has a completed result past its deadline, - it attempts to report it to that project. - - When the client's estimated work falls below low water, - it ranks projects according to their "resource deficit", - then attempts RPCs to project in that order - until the estimated work is above high water. - NOTE: only the simplest case has been tested. - We need to write test scripts for many other cases. - NOTE: currently a result's report deadline is now+1000. - We need to add a mechanism for setting it. - - The CLIENT_STATE is now kept in a global variable instead of - a local var of main(). - This is because SCHEDULER_OP needs to get at it. - - client/ - client_state.C,h - client_types.C,h - cs_scheduler.C - main.C - scheduler_op.C,h - db/ - db.h - db_mysql.h - schema.sql - doc/ - file_xfer_policy.html (new) - index.html - result.html - rpc_policy.html (new) - html_user/ - db.inc - tools/ - backend_lib.C - create_work.C - -David A July 15, 2002 - - added env var BOINC_MASTER_URL. - Each / in the master URL must be preceded by four \s - e.g. setenv BOINC_MASTER_URL http:\\\\/\\\\/localhost\\\\/index.html - - team name must be non-null to be unique - - TODO (Barry): make the master page per-project; - make database access from PHP/Web per-project - db/ - schema.sql - html_user/ - db.inc - test/ - init.inc - master.html - prefs1.xml - tools/ - Makefile.in - -Michael Gary July 15, 2002 - - Fixed compile bug - - Updated documentation - - Fixed test script bug - - Added comments to some .h files - - Fixed timing bug - doc/ - api.html - client_debug.html - flow.html - index.html - protocol.html - sched_debug.html - sched_policy.html - test.html - tools/ - Makefile.in - test/ - test_uc.php - test_rsc.php - init.inc - client/ - client_types.h - hostinfo.h - api/ - api.C - api.h - -Michael Gary July 16, 2002 - -Fixed test script bug - test/ - concat_result - test_concat.php - -Eric Heien July 17, 2002 - - Removed assembly optimized routines from RSAEuro, since we - want to be platform independent and RSAEuro isn't a highly speed - critical piece of code. This had the side benefit of making the - RSAEuro Makefile operate cleanly with make. - - Fixed compiler warnings in RSAEuro demo programs. Do we really - need to keep these demo programs around? - - Turned off the "secure" versions of memcpy, memset and memcmp. - If needed, we can turn them back on. - RSAEuro/ - source/ - makefile (moved to Makefile) - Makefile (renamed from makefile) - des386.s (removed) - rsa386.s (removed) - rsa68k.s (removed) - rsasparc.s (removed) - demo/ - mdemo.c - randemo.c - redemo.c - -Michael Gary 7/17/2002 - - Fixed more test scripts - - Added a comprehensive test - - Added make tar_client to toplevel makefile - - Added installation notes for the server and the client - Makefile.in - INSTALL (added) - INSTALL_CLIENT (added) - test/ - test_1sec.php - test_dynamic.php - test_prefs.php - test_projects.php - test_stderr.php - test_uc_slow.php - test_suite.php (added) - - -Michael Gary 7/18/2002 - - Configure now checks to make sure that apache, mysql, and php are - installed. If they are not installed, it prints out a warning and - continues configuration - - Added uninstall target, made Makefiles more compliant with GNU standards - INSTALL - INSTALL_CLIENT - aclocal.m4 (added) - configure - configure.in - Makefile.in - sched/ - Makefile.in - lib/ - Makefile.in - api/ - Makefile.in - client/ - Makefile.in - -Eric Heien 7/18/2002 - - Fixed RSAEuro makefile so that it doesn't require gcc. This was - causing problems when porting. - - RSAEuro/source/ - Makefile (removed) - Makefile.in (added) - configure - configure.in - -Michael Gary 7/23/2002 - - Added a test for sticky files. Required updating escape_url to support - RRC1738 (-_. no longer escaped out). - client/ - file_names.C - test/ - test_sticky.php (added) - uc_wu_sticky (added) - uc_result_sticky (added) - -Michael Gary 7/24/2002 - - Added a test for the time reporting system. - test/ - test_time.php (added) - init.inc - apps/ - uc_slow.C - uc_cpu.C (added) - Makefile.in - -David July 28 2002 - - Changed the "add" utility so that, when adding an app version, - you can give it the signature files (computed offline, presumably) - - Changed the "add" utility so that an app version can consist - of multiple files - - Removed the notion of alpha/beta/production versions of an app. - The same effect can be achieved by making separate projects - for alpha and beta testing. - - Apps now have a "minimum version number" on the server side - - Don't send a WU unless there's an app version of that number or greater. - Send the latest available version for the platform. - - Clarified app version semantics: - - Workunits don't have a version# on the server - - When a client gets a workunit, it associates it with - the most recent version of the application that it knows about - (possibly one it received in the same reply message). - It continues to use this version for this WU, - even if it receives a later version while the WU is in progress. - - On the client, no version #s are associated with apps - - PROGRAMMERS NOTE: - - Removed checking of args in client_state.C - This gunks up the code too much. Let's do checking at higher level. - - Comments should be in the imperative mood. - "Write the state file", not "Writes the state file" - - Comments should not be vague, e.g. - // See if the application (name) associated with project p is - // around here - ... what does "around here" mean? - - Leave a space between "if" and "(" - - When asserting that a pointer is non-NULL, just say "assert(p)". - Saying "assert(p!=NULL)" is like saying if (flag==true) - - Linux doesn't have -lsocket and -lnsl. - Don't put them in Makefile.in. - - TODO - client/ - client_state.C,h - client_types.C,h - cs_scheduler.C - main.C - db/ - db.h - db_mysql.C - schema.sql - doc/ - app.html - index.html - intro.html - project.html - tools_other.html - html_user/ - db.inc - sched/ - handle_request.C - sched_shmem.C - server_types.C - test/ - init.inc - master.html - tools/ - Makefile.in - add.C - backend_lib.C - - -Eric Heien July 29 2002 - - Added code to determine the amount of disk space being - used by BOINC, by recursively descending through the - root directory. Still needs to be ported to Windows. - - client/ - filesys.C - filesys.h - -David A. July 30 2002 - - Revised API doc - - made some API implementation functions static - (this breaks the test program, need to discuss) - - removed CPU spin from uc_slow (why?) - - api/ - api.C,h - apps/ - uc_slow.C - doc/ - api.html - graphics.html - index.html - -David A. July 30, 2002 - - Revised API and graphics docs - - removed error checks from parse.C - - doc/ - api.html - graphics.html - index.html - lib/ - parse.C - -Eric Heien August 2, 2002 - - Implemented HTTP 301 and 302 redirect commands. - - These still need to be fully tested. - - TODO - client/ - http.C - http.h - net_xfer.C - net_xfer.h - -David A. August 4 2002 - Various changes to API: - - Added user, team names, credit info to APP_INIT_DATA - - separate call for getting init data - - separate call for returning fraction done - - separated out fraction_done_update_period - - moved graphics API to separate file - - moved MFILE implementation to separate file - - API timer is now 0.1 sec; use counters for various uses - (checkpoint, fraction done, graphics) - - changed name of API files to boinc_api.C,h - - - clarify distinction between - "current CPU time" - "CPU time at last checkpoint" - "CPU time at start of current run" - These are all kept in ACTIVE_TASK. - RESULT now only has "final CPU time". - - - fixed bug in dir scanning (ahem...) - - - Coding style notes: - - every fopen() MUST have a matching fclose() in same function - - every malloc() MUST have a matching free() in same function - - don't do a rewind() right after fopen() - - write function calls as - func(arg1, arg2); - NOTE: there's a space after every comma, everywhere - - write "if" statements as - if (condition) { - ... - } - - no explicit argument checking. do this at higher level - - functions in foo.C should be declared (as extern) in foo.h, - AND NOWHERE ELSE. - - api/ - Makefile.in - api.C,h (removed) - boinc_api.C,h (new) - graphics_api.C,h (new) - mfile.C (new) - apps/ - Makefile.in - *.C - client/ - Makefile.in - app.C,h - client_state.C,h - client_types.C,h - cs_apps.C - cs_scheduler.C - file_names.C - filesys.C,h - doc/ - api.html - - -Barry Luong August 6, 2002 - - - Added team pages in html_user/ - - pages to display team page, join team, quit team, edit team, disband - team, and remove inactive members - - Added database access per project via the web - - a new file in html_user/ called db_name containing only the name of - that project's database - - html_user/ - db.inc - team.inc - team.php - team_create_action.php - team_create_form.php - team_disband_action.php - team_disband_form.php - team_display.php - team_edit_action.php - team_edit_form.php - team_join_action.php - team_join_form.php - team_lookup.php - team_quit_action.php - team_quit_form.php - team_remove_inactive_action.php - team_remove_inactive_form.php - - -Eric Heien August 7, 2002 - - Added PERS_FILE_XFER (persistent file transfer) - functionality. This includes the notions of retrying - when unable to connect, exponential backoff, and giving - up after a period of time. Giving up is currently - not fully implemented. Includes initial work for - supporting upload/download resumption. All features - still need to be thoroughly tested. - - Added initial functionality to calculate allowable disk - usage. - - client/ - Makefile.in - client_state.C - client_state.h - client_types.C - client_types.h - cs_files.C - cs_scheduler.C - file_xfer.C - hostinfo_unix.C - http.C - http.h - pers_file_xfer.C - pers_file_xfer.h - scheduler_op.C - test_file_xfer.C - test_http.C - util.C - util.h - sched/ - file_upload_handler.C - -Eric Heien August 9, 2002 - - Moved windows files to client/win directory, added win_build.zip - for building Windows GUI and CLI clients. - - Fixed compile bugs in graphics_api.C and graphics_api.h - - Updated TODO and INSTALL docs - - Added Mac init, event loop, and cleanup functionality in main.C - - Added user requestable quit to main loop for use in GUI interfaces. - - Fixed Windows specific compile bugs in filesys and pers_file_xfer. - - TODO - INSTALL - INSTALL_CLIENT - win_build.zip - api/ - boinc_api.C - graphics_api.C - graphics_api.h - client/ - app.C - filesys.C - filesys.h - hostinfo_win.C (removed) - main.C - pers_file_xfer.C - util.C - util.h - win_main.cpp (removed) - win_net.cpp (removed) - win_net.h (removed) - windows_cpp.h (removed) - win/ - hostinfo_win.cpp (added) - win_main.cpp (added) - win_net.cpp (added) - win_net.h (added) - windows_cpp.h (added) - -David A. August 10 2002 - - Changed Winmain() to get argc/argv correctly - - fixed bugs in CLIENT_STATE::allowed_disk_usage - NOTE: keep track of whether units are bytes or GB. - Not interchangeable! - NOTE: above bugs caused compiler warnings. - - Got rid of all compiler warnings in Windows - - api/ - boinc_api.h - client/ - app.C - client_state.C - hostinfo_unix.C (??? should remove this from Windows project) - pers_file_xfer.C,h - client/win/ - Resource.h (new) - win_main.cpp - wingui.cpp,h (new) - -Barry August 12, 2002 - - Changed front page to a php page so we can check for cookies - Added explanatory text to front page and to team pages - - html_user/ - index.php - -Eric Heien August 12, 2002 - - Added concept of result state. This replaces the old boolean - flags and represents what phase of the computation pipeline - each result is currently at (downloading, computing, uploading, - etc). - - Added file upload/download resumption. For downloads, this - involves checking how big the local file is, then asking - the server for the remainder of it. For uploads, this - involves asking the file_upload_handler how much of a certain - file it already has, then sending the remainder of it. - Both ul and dl resumption need to be thoroughly tested. - - client/ - client_state.C - client_state.h - client_types.C - client_types.h - cs_apps.C - cs_files.C - cs_scheduler.C - file_xfer.C - http.C - net_xfer.C - pers_file_xfer.C - scheduler_op.C - sched/ - file_upload_handler.C - -David August 12 2002 - - Cleaned up initialization code: - main.C is now used ONLY for CLI versions - (remove this file from GUI projects) - Factored out initialization code that is common to - both GUI and CLI versions. - - client/ - client_state.C,h - log_flags.C,h - main.C - prefs.h - -Eric Heien August 13, 2002 - - Implemented correct handling of RSA or MD5 failures. The - result associated with the file will be flagged and the - failure will be passed back to the scheduling server. - - client/ - client_state.C - client_types.C - client_types.h - cs_files.C - pers_file_xfer.C - lib/ - error_numbers.h - -Eric Heien August 21, 2002 - - Finished persistent file transfer implementation, including - file upload/download resumption, exponential backoff - - client/ - client_state.C - client_state.h - client_types.C - client_types.h - cs_files.C - file_xfer.C - file_xfer.h - http.h - main.C - pers_file_xfer.C - pers_file_xfer.h - mac/ - mac_main.cpp - mac_main.h - lib/ - error_numbers.h - -David August 24, 2002 - - fixed bugs in the Windows variant of app.C - Notes on Windows: - - Some places (e.g. current dir arg of CreateProcess()) - require a full path - - Some places require \ instead of / in paths. - Added the constant PATH_SEPARATOR for this purpose. - - To redirect stdin/stdout, you need to use freopen(); - it's not enough to dup2 the underlying descriptor - - api/ - boinc_api.C - apps/ - upper_case.C - client/ - app.C,h - file_names.C - filesys.C,h - lib/ - error_numbers.h - -David August 25, 2002 - - Implemented project name (as shown in GUI). - It's stored in the DB (in a single-row "project" table) - and sent in scheduler RPC - - Changed env var BOINC_KEY to BOINC_SHMEM_KEY - (avoid confusion w/ encryption keys) - - Makefile.in - client/ - cs_scheduler.C - filesys.C - scheduler_op.C,h - win/ - windows_cpp.h - wingui.cpp - db/ - db.h - db_mysql.C - schema.sql - sched/ - Makefile.in - feeder.C - main.C - server_types.C - show_shmem.C - test/ - init.inc - test_uc.php - test_uc_win.php - tools/ - add.C - -Eric August 26, 2002 - - Finished multi-slot functionality. The client now requests an - open slot from the ACTIVE_TASK_SET which will be the slot - for the new process. - - client/ - app.C - app.h - cs_apps.C - -David August 26, 2002 - - adding missing clause to SCHEDULER_OP::poll(); was failing to - return state to IDLE, caused reply to get processed twice - - return user name, total credit, avg credit in scheduler RPC reply - - save/restore these in client state file - - client was trying to delete "checkpoint CPU file" in wrong directory - - change CLIENT_STATE field from "version" to "core_client_version" - - got rid of CLIENT_STATE::update_net_stats(), insert_file_xfer() - (made some stuff public) - - disable host performance measurement (temp! turn back on later) - - removed comments of the form - read_config_file(); // read config file - - in HTTP op of type POST2, it's not an error if htp->file is zero - - replaced hardwired HTTP_STATUS constants - - made separate db.inc, util.inc in html_ops - - key creation prints message before delay, not after - - file upload handler prints user name in error log lines - - scheduling server: make USER, HOST part of SCHEDULER_REPLY - so don't have to pass around as separate args - - in test/init.inc, don't use the init_db() from html_user/. - define it separately here. - - in test/init.inc, split up clear_data_dirs() into - client, server parts - - change test_uc.php to not create keys by default - - client/ - app.C - client_state.C,h - cs_scheduler.C - file_xfer.C - http.C,h - pers_file_xfer.C - scheduler_op.C,h - db/ - db.h - html_ops/ - db.inc (new) - util.inc (new) - lib/ - crypt_prog.C - sched/ - file_upload_handler.C - handle_request.C - server_types.C,h - test/ - init.inc - master.html - test_uc.php - -David August 28, 2002 - - added DB fields to keep track of credit for hosts and result - - added utility program "grant_credit" to grant credit for a result - - removed some extraneous printfs - - file upload handler error messages have user name - - added a "poll_debug" flag; turn this on in case of infinite - poll loop, to see what's causing the problem - - added a "libboinc.a" target to lib/ Makefile. - We might want to consider using a random library - instead of referring to explicit .o files everywhere - - api/ - boinc_api.h - client/ - Makefile.in - app.C - client_state.C - cs_apps.C - cs_files.C - cs_scheduler.C - file_xfer.C - log_flags.C,h - net_xfer.C - pers_file_xfer.C - db/ - db.h - db_mysql.C - schema.sql - html_ops/ - db.inc - db.php - html_user/ - index.html - lib/ - Makefile.in - sched/ - feeder.C - file_upload_handler.C - handle_request.C - test/ - master.html - test_uc.php - tools/ - Makefile.in - backend_lib.C,h - grant_credit.C (new) - -David August 30 2002 - - improved Win GUI - - print error if file validate failure - - fix lib Makefile.in - - client/ - client_state.C - cs_files.C - pers_file_xfer.C - client/win/ - wingui.cpp,h - lib/ - Makefile.in - countries.C - crypt.C - error_numbers.h - filesys.C - md5_file.C - -Eric September 4, 2002 - - condensed uc_slow, uc_cpu into upper_case, concat_slow into concat, using command line arguments - - changed test_uc to use files rather than stdin/stdout - - apps/ - uc_slow.C (removed) - concat_slow.C (removed) - uc_cpu.C (removed) - upper_case.C - concat.C - Makefile.in - lib/ - error_numbers.h - test/ - test_uc_slow.php - test_concat.php - uc_result - uc_wu - ucs_wu - -Eric September 18, 2002 - - Windows OpenGL based graphics added, graphics API updated - - Beginning of Mac Carbon based graphics added - - Uppercase application updated to use GL, GLUT graphics - - apps/ - upper_case.C - api/ - boinc_api.C - boinc_api.h - graphics_api.C - graphics_api.h - windows_opengl.cpp - -David Sept 22, 2002 - - Various changes to prevent buffer overrun in servers; - parse_str and parse_attr now take a buffer length arg - - api/ - boinc_api.C,h - apps/ - concat.C - upper_case.C - client/ - app.C - client_types.C - file_xfer.C - hostinfo.C - scheduler_op.C - doc/ - account.html - lib/ - parse.C,h - sched/ - file_upload_handler.C - handle_request.C - server_types.C,h - -David Sept 25 2002 - - Progress on validation and credit-granting - - added DB fields to support the above - - client/ - cs_scheduler.C - db/ - db.h - db_mysql.C - schema.sql - sched/ - Makefile.in - validate.C - validate_test.C (new) - -David Sept 25 2002 - - Move account into (master URL, authenticator, per-project prefs) - from the prefs.xml file into separate files, one per project - (with names of the form account_XXX.xml, XXX = master URL). - Adding new projects is now done using the core client - (via GUI or command line) or by copying an existing account file, - but NOT via web site; this was a major security weakness - since bad guys could guess your web password, - then register you for a bogus project. - - This change also involved the html_user files (not finished). - - - Further work on credit-granting. - On each RPC, the scheduler computes a "credit per CPU second" - for the host (linear combo of FP/int/mem speeds). - For each result received, the scheduler computes a "claimed credit", - the claimed CPU time times the credit per CPU second. - It also sets the "need validate" flag of the WU. - - api/ - boinc_api.C - apps/ - upper_case.C - client/ - Makefile.in - account.C,h (new) - client_state.C,h - client_types.C,h - cs_scheduler.C - file_names.C,h - file_xfer.C - main.C - prefs.C,h - db/ - db.h - doc/ - account.html - boinc_dev.html - client_files.html - client_logic.html - prefs.html - startup.html - validation.html - html_user/ - prefs.inc - prefs.php - prefs_edit_project_form.php - sched/ - handle_request.C - validate.C - test/ - account1.xml (new) - init.inc - master.html - prefs1.xml - test_uc.php - tools/ - backend_lib.C - -David Sept 26 2002 - - added todo list - - added license comment to various files - - tools/ - grant_credit.C (removed) - -David Sept 26 2002 - - continue with separation of global vs. project preferences. - Added separate DB field for project prefs. - Revised PHP files for editing separately - - client/ - prefs.C - db/ - db.h - db_mysql.C - schema.sql - doc/ - prefs.html - html_user/ - removed prefs_add*, prefs_delete*, prefs_edit_disk*, prefs_edit_work* - removed prefs_edit_projects.php - added prefs_edit_global* - prefs_edit_project_action.php - prefs.inc - prefs.php - util.inc - sched/ - server_types.C - test/ - init.inc - test_uc.php - tools/ - add.C - -David Sept 28 2002 - - Clarified the way that preferences (global and project) - are stored in the database and in the core client, - and the protocol (part of scheduler RPC) for maintaining them. - See doc/prefs_impl.html - - Implemented the above: lots of small changes to client, server - - Changed names from "prefs" to "global_prefs" where relevant - - client/ - client_state.C,h - client_types.C,h - cs_scheduler.C - file_names.C,h - prefs.C,h - scheduler_op.C,h - db/ - db.h - db_mysql.C - schema.sql - doc/ - boinc_dev.html - prefs_impl.html (new) - prefs_mod.html (removed) - html_user/ - prefs.inc - sched/ - handle_request.C - server_types.C,h - tools/ - add.C - -David Oct 3 2002 - - Changed the PHP framework for testing to facilitate - multi-project, multi-host tests (all on one machine). - See doc/test.html for details. - - NOTE: the BOINC-related environment variables have changed. - There are no longer any project-specific variables - (e.g. database name, shmem key) - - NOTE: the server programs now expect a configuration file - in their directory. - - TODO: enhance the testing framework to allow projects with - multiple scheduling servers or data servers - - TODO: enhance the testing framework to allow specification - of failure and recovery of servers - - - changed things so a NULL in the DB won't crash db_mysql.C - - parse_int() can now handle hex - - "add" now takes args for DB name/passwd - - "create_work" now takes args for DB name/passwd, - upload/download URL, download dir - - db/ - db_mysql.C - mysql_util.C - doc/ - data_server_setup.html - sched_server_setup.html - test.html - web_site.html - html_user/ - index.html - lib/ - md5_file.C - parse.C - sched/ - Makefile.in - config.C,h (new) - feeder.C - file_upload_handler.C - main.C - validate.C - validate_test.C - test/ - test.inc (new) - test_uc.php - tools/ - add.C - backend_lib.C,h - create_work.C - process_result_template.C - -David Oct 3 2002 - - updated test scripts to use new framework - - got rid of some obsolete scripts - -David Oct 8 2002 - - progress getting "make_work" (dummy work generator) to work. - Removed the element from workunit XML, - and the and elements from result XML; - instead, the scheduler server inserts these as it sends them. - - This simplifies things a little in work generation, - and removes some redundancy. - - Everything seems to work now except that the file upload signature - ends up being wrong, which is expected, - and it shows that the security mechanism works. - - added test_loop.php, which simulates a system that is complete - except for the validation process. - - client/ - http.C - db/ - db.h - db_mysql.C - html_ops/ - index.html - sched/ - Makefile.in - feeder.C - file_upload_handler.C - handle_request.C - main.C - make_work.C (new) - test/ - *_result - *_wu - *.php - test_loop.php (new) - tools/ - backend_lib.C,h - process_result_template.C - -Eric October 13, 2002 - - Now uses alternate means (statfs, sysctl) to get host information - on non-Linux platforms - - Fixed compile warnings - - client/ - client_state.C - hostinfo.h - hostinfo_unix.C - file_names.C - scheduler_op.C - -Eric October 14, 2002 - - Added initial support for Mac OpenGL graphics, still needs to - be polished and tested (particularly multithreaded aspect) - - api/ - mac_app_opengl.c,h - mac_carbon_dsp.c,h - mac_carbon_gl.c,h - mac_build/ - boinc.pbproj/ - project.pbxproj - -David Oct 14 2002 - - Change make_work so that it generates results with - valid file upload signatures. - Instead of directly creating new DB.result records, - it now calls create_result() to do the work. - - Changed create_result() to take a name suffix - - Factored key parsing into a function - - Removed random-WU-name feature from create_work; - names should be generated at a higher level - - added a key-generation function to test.inc - - lib/ - parse.C - sched/ - Makefile.in - config.C,h - make_work.C - test/ - test.inc - test_loop.php - tools/ - add.C - backend_lib.C,h - create_work.C - process_result_template.C - -David Oct 15 2002 - - remove the idea of "dynamic result" generation - (remove some DB fields and code relating to it) - - remove the nresults_* fields from the workunit table. - These are redundant, and they weren't being used. - Furthermore, they were being updated in a way that - overwrote other updates. - - change html_ops table displays to 2 columns - - db/ - db.h - db_mysql.C - mysql_util.C,h - schema.sql - doc/ - test.html - html_ops/ - db.inc - sched/ - handle_request.C - tools/ - backend_lib.C - create_work.C - -David Oct 18, 2002 - - make_work now adds new WUs as well as results - - sched/ - feeder.C - make_work.C - -David Oct 20, 2002 - - Pin down exactly what credit is, both in the docs and the code - - Show credit in admin PHP pages. - - NOTE: multi-word titles (e.g. in admin pages) should - have only the first letter capitalized - - todo - client/ - client_state.C - speed_stats.C - doc/ - credit.html (new) - participation.html - validation.html - html_ops/ - db.inc - db.php - index.html - util.inc - sched/ - handle_request.C - validate.C - -David Oct 21, 2002 - - floating-point values are passed to/from MySQL using sprintf and atof. - The "%f" format, by default, uses 6 decimal places of precision. - This is inadequate for small values, e.g. 1e-7. - So db_mysql.C should use %.12e instead of %f. - - changed all floats to doubles in DB schema - - Credit half-life is one week - - db/ - db_mysql.C - schema.sql - doc/ - credit.html - html_ops/ - util.inc - sched/ - validate.C - test/ - test_loop.php - -Eric October 28, 2002 - - added signal handling to API - - removed win_build.zip - - api/ - boinc_api.C,h - apps/ - upper_case.C - concat.C - lib/ - error_numbers.h - win_build.zip (removed) - -Eric October 29, 2002 - - Mac graphics completed (except for screensaver mode) - - api/ - boinc_api.C - graphics_api.C - mac_app_opengl.c,h - mac_carbon_dsp.c,h - mac_carbon_gl.c,h - -David Nov 5 2002 - - Continued work on result retry mechanism: - - new fields "retry_check_time" and "state" in workunit table - - logic for creating new output filenames - - needs a bit more work - db/ - db.h - db_mysql.C - schema.sql - sched/ - Makefile.in - make_work.C - result_retry.C - -David Nov 7 2002 - - Finished and did basic testing of result retry mechanism. - It now correctly generates new results with unique names, - unique filenames, and upload signatures. - TODO: make a test script - - added DB field workunit.delay_bound: - determines deadlines of result, determines retry check period - Mandatory argument to create_work. - - Added DB indices for all enumeration functions - - client/ - client_types.C - db/ - constraints.sql - db.h - db_mysql.C - schema.sql - doc/ - result.html - tools_work.html - work.html - html_ops/ - db.inc - sched/ - Makefile.in - feeder.C - handle_request.C - result_retry.C - test/ - 1sec_wu - concat_wu - sah_result - sah_wu - test.inc - test_uc.php - uc_wu - ucs_wu - tools/ - backend_lib.Ch - create_work.C - process_result_template.C - -David Nov 9 2002 - - fixed bug that caused file upload authentication failure - - The user web site now correctly provides download of the core client, - as long as you add a core client app version in your test script - (see test_uc.php for an example) - - version numbers now come from env vars BOINC_MAJOR_VERSION - and BOINC_MINOR_VERSION. You must set these in your .cshrc - - Web server config file must have - DefaultType application/octet-stream - so that core client is saved as file, not displayed - - replaced "db_name" file in html_user, html_ops directories with - "config.xml", which contains download URL as well as DB name/passwd - - got rid of "install" target in main Makefile - - Makefile.in - client/ - Makefile.in - doc/ - data_server_setup.html - single_host_server.html - html_ops/ - util.inc - html_user/ - db.inc - download.php - index.php - login.inc - login_action.php - util.inc - sched/ - file_upload_handler.C - handle_request.C - test/ - test.inc - test_uc.php - tools/ - process_result_template.C - -David Nov 9 2002 - - Simplified account creation. - Only screen name, email address required; country, zip optional. - Only account ID required to log in - Removed web password from form; - projects can add this if they want. - - Change "authenticator" to "account ID" everywhere - - made country list appear on account creation form - - todo - db/ - constraints.sql - db.h - doc/ - account.html - app.html - create_project.html - participate.html - startup.html - html_user/ - renamed create_account.php to create_account_form.php - renamed login.php to login_form.php - download.php - index.php - login_action.php - util.inc - test/ - test_uc.php - -Eric Nov 12, 2002 - - X11 graphics support added - - upper_case_x11 target added - - configure now checks for pthread, gl libraries - - configure - configure.in - api/ - boinc_api.C - graphics_api.C - x_opengl.C,h (added) - apps/ - upper_case.C - Makefile.in - -Eric Nov 14, 2002 - - windows screensaver module - - api/ - boinc_api.C - graphics_api.C - windows_opengl.cpp - client/ - win/ - win_screensaver.cpp (added) - win_build/ - boinc.dsw - boinc_ss/ (added) - boinc_ss.dsp (added) - -Seth/Eric Nov 18, 2002 - - windows idle detection - - Communication to app for suspend/resume/quit - - api/ - boinc_api.C,h - windows_opengl.cpp - client/ - app.C - client_state.C,h - prefs.C,h - win/ - win_screensaver.cpp - wingui.cpp,h - win_idle_tracker.cpp,h,def (added) - win_build/ - boinc.dsw - boinc_dll/ (added) - boinc_dll.dsp (added) - boinc_gui/ - boinc_gui.dsp - -David Nov 30 2002 - - use the major/minor version from env vars to identify the core client - (rather than the single version in Makefile) - - client/ - Makefile.in - client_state.C,h - cs_scheduler.C - -David Nov 30 200 - - first part of work sequence implementation - - db/ - schema.sql - db.h - db_mysql.C -David Dec 1 2002 - - If request to scheduling server is from client with wrong version, - return an error - - Change the file upload handler protocol a little: - 1) add core client version to request - 2) add enclosing element - - The file upload handler returns an error if client has wrong version - - Split up long function in file_upload_handler.C - - Changed name of feeder trigger file so that it works - (when did this get broken??) - - client/ - file_xfer.C,h - doc/ - protocol.html - upload.html - sched/ - Makefile.in - feeder.C - file_upload_handler.C - handle_request.C - server_types.C,h - test/ - test.inc - -David Dec 3 2002 - - change scheduling server so that by default it doesn't - store request and reply messages in files; - add "-use_files" option to do this - - added validation step to test_uc.php; - this computes and grants credit - - added "-one_pass" option to validate - - split scheduler trigger files into two: - stop_server: used for all server components; - NOT deleted after reading - reread_db: used to tell feeder to reread DB - deleted after reading - - added license text to some files - - sched/ - config.C,h - feeder.C - handle_request.C - main.C,h - make_work.C - result_retry.C - sched_shmem.h - show_shmem.C - validate.C - test/ - test.inc - test_uc.php - -David Dec 5 2002 - - added initial support for aborting runaway applications: - check for exceeding maximum CPU time or disk usage - - create_work now takes max_cobblestones and max_disk_usage - - split ACTIVE_TASK::suspend into separate suspend, resume functions - - A bunch of coding style notes: - - changed ACTIVE_TASK::request_exit() so that it doesn't sleep. - ==> The core client should never sleep <== - This would cause a period of non-response in the GUI client - - changed file_delete() so that it doesn't sleep or retry. - Should eventually add garbage-collection mechanism - - Most functions NEED to be implemented in the client. - So e.g. instead of - #if HAVE_SIGNAL_H - unix code - #endif - #ifdef _WIN32 - win code - #endif - we should have - #ifdef _WIN32 - win code - #else - unix code - #endif - Any compilation that doesn't match anything should cause a - compile-time error - - change file_size(), dir_size(), CLIENT_STATE::total_disk_usage() etc. - so that: - 1) they report file size in double, not int - 2) they return an error code, not a size overloaded with error code; - size is return in reference param - - All fopen()s should check for zero pointer and return ERR_FOPEN - - Omit "this->" wherever it appears - - client/ - app.C,h - client_state.C,h - client_types.C,h - file_xfer.C - http.C - pers_file_xfer.C - lib/ - filesys.C,h - test/ - test.inc - tools/ - backend_lib.C,h - create_work.C - -David Dec 6 2002 - - fix bugs in get_local_ip_addr() - (need to figure out why they were happening) - -Eric Dec 8, 2002 - - added and tested HTTP proxy support (no SOCKS support yet) - - proxy server is specified through environment variable HTTP_PROXY - - client/ - client_state.C,h - http.C,h - net_xfer.C - pers_file_xfer.C - scheduler_op.C - -Hamid Dec 9,2002 - - added field client_state to result - - - added some more functionality to repor_project_error() - It now adds the following info to stderr_out of the result: - - message if any passed - %d - %d - %d - if download had failures - "\ - " %s - " %d\n" - " \n" - - - if upload had failures - same as above - - if coudln't start active task for result (in which err_num should be set) - "%d\n" - - - - The error mechanism right now is such that any failures - regarding file_infos (download, upload or whatever) - are recorded in the status of the file_infos and then garbage collect - called report_project_error. - However errors regarding starting and ending active tasks - are reported from app.C and cs_apps.C. - -Seth Dec 9, 2002 - - time tests run in their own thread when needed, if they are global state - won't do anything until they are done; threads communicate by a file - - windows host info complete except for cache - - client/ - client_stat.C,h - file_names.h - hostinfo.C,h - client/win/ - hostinfo_win.cpp - -David Dec 11 2002 - - Have process_wu_template() fill in the file size as well as the MD5. - This necessitated changing the format of WU templates, - and the way they are processed. - - NOTE: this breaks the multiple-data-server test. - Need to figure out another way to do that. - - tools/ - backend_lib.C - doc/ - tools_work.html - test/ - *wu - -David Dec 13 2002 - - use lock file mechanism to prevent multiple instances of - core client from running in same directory - - configure - configure.in - client/ - file_names.h - main.C - lib/ - util.C,y - -David Dec. 17 2002 - - Added new state fields to workunit and result to support - file deletion and assimilation backend phases - - Added sample assimilator program - - Added file_deleter program (AKA garbage collector) - - client/ - main.C - db/ - db.h - db_mysql.C - schema.sql - sched/ - Makefile.in - assimilator.C (new) - config.C,h - result_retry.C - validate.C - test/ - test.inc - tools/ - backend_lib.C - -David Dec 17 2002 - - The assimilator takes a -app argument - - Added execution of file_delete and assimilator to test_uc.php - this should delete all input and output files - TODO: check that it actually does - - fixed bugs in file_deleter - - todo - db/ - db.h - db_mysql.C - doc/ - backend.gif (new) - backend.html - backend.png (new) - work_states.html - html_ops/ - db.inc - html_user/ - user.inc - sched/ - assimilator.C - file_deleter.C - handle_request.C - test/ - test.inc - test_uc.php - -Seth Dec 18 2002 - - net_xfers in windows will get permission before connecting if needed - - added global pref for whether or not to hang up the modem if BOINC dialed - - client state saves global prefs confirm_before_connecting - and hangup_if_dialed locally for now - - wingui split into different files, bug fixes - - client/ - net_xfer.C,h - prefs.C,h - client_state.C - client/win - win_net.cpp,h - wingui.cpp,h - wingui_mainwindow.cpp,h (new) - wingui_dialog.cpp,h (new) - wingui_listctrl.cpp,h (new) - wingui_pictrl.cpp,h (new) - -David Dec 18 2002 - - Have account create action redirect to a different page - so you don't get "Repost form data" if you go back to it - - Added full support for project-specific preferences. - Logic is encapsulated in project_specific_prefs.inc. - The example lets you choose color scheme - (Tahiti Sunset, Desert Sands) - - html_user/ - account_created.php (new) - project_specific_prefs.inc (new) - create_account_action.php - prefs.inc - prefs.php - prefs_edit_global_form.php - prefs_edit_project_action.php - prefs_edit_project_form.php - util.inc - lib/ - countries.C,h - -David Dec 19 2002 - - The Edit Account form now shows current values - directly in input fields. - - Country select popup shows current value - - Improve new account email - - html_user/ - account_created.php - change_pass_action.php - create_account_action.php - edit.inc - edit_action.php - edit_user_info.php - util.inc - tools/ - country_select.C - -Hamid Dec 19 2002 - - -Edited make_work.C, now when a new work_unit is created, - it's input files are copied along with it, - with some random numbers added to the end, - so for each new work_unit there are a set of associated new input files - - -fixed a little bug in file_deleter - - -note: strtok() changes the original string passed to it, kind of dangerous to use - - -from parse.h : replace_element() is now in use ( I used it for make_work.C) - -David Dec 19 2002 - - added -add_new_project option to command line version - changed func name from get_initial_project() to add_new_project() - - client/ - account.C,h - client_state.C,h - main.C - scheduler_op.h - win/ - wingui.cpp,h - -David Dec 23 2002 - - Made stripcharts work with BOINC test framework - The script "test_loop.php" now generates a data file of - CPU load that can be graphed using stripchart. - TODO: add other data sources - - added "country" field to team - - expanded team description from 256 chars to blob - - turned off debug output from file upload handler, scheduler - - removed "time" args from various Project member functions - in test.inc. Use sleep(). - - db/ - db.h - db_mysql.C - schema.sql - html_user/ - db.inc - team_create_form.php - sched/ - file_upload_handler.C - handle_request.C - result_retry.C - stripchart/ - stripchart.cgi - stripchart.cnf - samples/ - datafiles - test/ - test.inc - test_download_backoff.php - test_loop.php - test_masterurl_failure.php - test_sched_failure.php - -David Jan 2 2003 - - Back off on a project if we make a scheduler RPC asking for work - and don't get any - - fixed "http_proxy_name" XML parsing problem in client - - added drand() function. - NOTE: always make repeated code blocks into functions - - make_work was using uninitialized seqno, caused negative - numbers in filenames - - client/ - client_state.C,h - cs_scheduler.C - scheduler_op.C - doc/ - credit.html - lib/ - util.C,h - sched/ - make_work.C - validate.C - -David Jan 3 2003 - - added some indices to DB. - - NOTE: there must be an index for each field or combination of fields - that we do a "select" on!! - -David Jan 6 2003 - - change all server programs to do logging the same way: - - all log entries written to stderr - - write date/time at start of log entries - - don't include program or user name in log entries - - client: when get no work from project, - don't back off if we're in exit_when_idle mode - - added ob_end_flush() call in test.inc so that PHP test scripts - have unbuffered output - - added other backend phases (validate, file_delete) to test_loop.php - - PROGRAMMER NOTES: - - don't use tab chars in files - - split long comments into separate lines - - "extern" should never appear in a .C file - - Don't use member function names that conflict with global functions - (e.g. CLIENT_STATE::exit(); use cleanup_and_exit() instead) - - client/ - client_state.C,h - client_types.h - cs_apps.C - http.h - main.C - scheduler_op.C - html_ops/ - db.inc - db.php - sched/ - assimilator.C - feeder.C - file_deleter.C - file_upload_handler.C - handle_request.C - main.C,h - make_work.C - result_retry.C - server_types.C - validate.C - stripchart/ - stripchart.cnf - test/ - test.inc - test_loop.php - -David Jan 7 2003 - - extend client "print state summary" function to give more - detailed information about state, e.g. names and states - of everything, and active file xfers and tasks - - fixed bug where feeder inserted same result twice in shmem - - client/ - client_state.C,h - cs_apps.C - cs_scheduler.C - sched/ - assimilator.C - feeder.C - test/ - log_flags.xml - -David Jan 8 2003 - - changed the DB code so that you can use the mySQL utility functions - to access different databases from a single program. - There's now a MYSQL_DB class that you can subclass. - See db_mysql.C for an example. - - db/ - db.h - db_mysql.C - mysql_util.C,h - sched/ - assimilator.C - feeder.C - file_deleter.C - handle_request.C - main.C - make_work.C - result_retry.C - validate.C - tools/ - add.C - backend_lib.C - create_work.C - -Seth Jan 8 2003 - - Set up Windows client to read captions from a file - - client/win/ - Resource.h - resource.rc - wingui_dialog.cpp,h - wingui_mainwindow.cpp,h - -David Jan 13 2003 - - With -no_time_test flag, client now uses default values for - various speeds, rather than zero - - Restored commented-out timezone code. - May need to get working on Solaris - - Added stripchart scripts for getting DB info - (need to macro-substitute DB name) - - Net result: test_loop.php now works correctly and generates - stripcharts that show an ever-growing set of results - - client/ - client_state.C,h - hostinfo_unix.C - html_ops/ - db.inc - stripchart/samples - count_users - count_results (new) - datafiles - get_load - looper - test/ - test.inc - test_loop.php - -David Jan 14 2003 - - Removed INSTALL_CLIENT and gutted INSTALL - - NOTE: all docs should be in HTML - NOTE: spell-check all new documents - - INSTALL - INSTALL_CLIENT (removed) - doc/ - boinc_dev.html - road_map.html - single_host_server.html - test.html - -David Jan 14 2003 - - Added log writes to sched server in some error cases - - Removed -use_files flag to sched server. Use compile-time flag instead. - - sched/ - handle_request.C - main.C - -David Jan 15 2003 - - create_work() makes a copy of result, WU templates since - they get modified (fixed bug when create >1 WU) - - scheduler reports errors in WU/result XML docs - - sched/ - handle_request.C - test/ - test.inc - tools/ - backend_lib.C - -David Jan 22 2003 - - Changed some of the state fields of workunit and result, - to accommodate new policies about when to delete files - See doc/backend_* for details - - Split off dummy assimilation function from the main program. - - Added new stripchart scripts for logging DB counts - and directory sizes - - NOTE: it looks like shared memory segment is at same address - in feeder and cgi. So it's OK to use pointers in it. - - db/ - db.h - db_mysql.C - schema.sql - doc/ - backend.html (removed) - backend_functions.html (new) - backend_programs.html (new) - backend_state.html (new) - backend_work_sequence.html (new) - create_project.html - garbage.html (removed) - retry.html (removed) - work.html - work_states.html (removed) - html_ops/ - db.inc - db.php - sched/ - Makefile.in - assimilate_handler.C,h (new) - assimilator.C - handle_request.C - result_retry.C - validate.C - strichart/samples/ - datafiles - db_count (new) - db_looper (new) - dir_size (new) - test/ - test.inc - test_loop.php - tools/ - backend_lib.C - create_work.C - -David Jan 29 2003 - - updated country-name list according to CIA site - - added program to generate XML stats files - - added classes to assist double-buffered graphics info for applications - - api/ - graphics_data.C,h (new) - Makefile.in - lib/ - countries.C - sched/ - db_dump.C (new) - Makefile.in - -David Jan 30 2003 - - continued work on db_dump - - added doc for db_dump - - added create_time field to team table - - db/ - db.h - db_mysql.C - mysql_util.C,h - doc/ - db_dump.html (new) - stripchart.html (new) - stripchart_data.html (new) - html_user/ - team_create_action.php - lib/ - util.C,h - sched/ - Makefile.in - db_dump.C - -David Jan 30 2003 - - got db_dump working - - scheduler: change max WUs from 2 to 10 - - NOTE: for any DB field that could conceivable contain a ', - you must escape and unescape it in struct_to_str() - - db/ - constraints.sql - db_mysql.C - mysql_util.C - sched/ - db_dump.C - handle_request.C - -Eric Feb 04, 2003 - - Cleaned up formatting of client_state.xml - - Added retry message to transfers tab of Windows client - - Added error catching for network transfer failures - - client/ - client_state.C - client_types.C - cs_files.C - http.C - pers_file_xfer.C,h - win/ - wingui.h - wingui_mainwindow.cpp,h - -David Feb 4 2003 - - removed graphics logic from boinc_ready_to_checkpoint(). - Rendering logic is now entirely in the GUI thread. - It's up to the application to synchronize computation and rendering. - - added REDUCED_ARRAY::draw_part() - - bug fixes in db_dump - - api/ - boinc_api.C - graphics_data.C,h - reduce.cpp,h - windows_opengl.cpp - db/ - db_mysql.C - doc/ - db_dump.html (new) - index.html - participate.html - sched/ - db_dump.C - -David Feb 7 2003 - - Changed account creation features quite a bit. - It now bifurcates according to whether this is first project. - Asks for preferences and offers download accordingly. - - html_user/ - account_setup* (new) - -David Feb 8 2003 - - Work on account creation a bit more. - Removed project graphics prefs. - Added email prefs. - - html_user/ - various - -David Feb 10 2003 - - fix memory leaks - - client/ - client_types.C - net_xfer.C - -David Feb 10 2003 - - attempt to fix bugs by eliminating dynamic allocation - - client/ - client_state.C - client_types.C,h - cs_scheduler.C - scheduler_op.C - test_file_xfer.C - lib/ - parse.C,h - -David Feb 12 2003 - - Added mechanism for starting or restarting all back-end processes - for a project. A list of the programs are now in config.xml. - All programs now use lock files to prevent duplicate execution. - A new program "start_servers" reads config.xml and starts servers. - - Added "user-friendly name" field to platform, so that users - see e.g. "Windows 95/98/XP" instead of "windows_intelx86" - NOTE: this requires patching existing databases - - db/ - db.h - db_mysql.C - schema.sql - html_ops/ - db.inc - html_user/ - download.inc - download.php - index.php - sched/ - Makefile.in - config.C,h - start_servers.C - test/ - make_project.php - test.inc - tools/ - add.C - -David Feb 12 2003 - - changed "exit_after" to "exit_after_app_started_secs" - and changed its null value from -1 to 0. - - don't ask a scheduler for work if in exit_when_idle mode - and we've already contacted scheduler - - remove exit_when_idle clause from backoff after no work available - - client/ - client_state.C,h - cs_apps.C - cs_scheduler.C - scheduler_op.C - test/ - test_time.php - -David Feb 12 2003 - - changed server startup mechanism so that config.xml contains - actual commands (so you can include cmdline args etc.) - - sched/ - config.C,h - start_servers.C - test/ - test.inc - -David Feb 12 2003 - - changed user HTML so that all project-specific stuff - (intro, banner, etc.) is in a separate file. - Can specify this file in test scripts. - - added test scripts to make dummy SETI@home and Astropulse projects, - and made project-specific HTML files for them - - html_user/ - index.php - project.inc (new) - project_ap.inc (new) - project_sah.inc (new) - sched/ - start_servers.C - test/ - make_project.php - make_project_ap.php (new) - make_project_sah.php (new) - test.inc - -David Feb 14 2003 - - Added "long_name" field to project table (display this in GUI) - Can have spaces, special chars etc. - - fixed bugs in prefs updating - - db/ - db.h - db_mysql.C - schema.sql - html_user/ - prefs.inc - sched/ - server_types.C - test/ - make_project_ap.php - make_project_sah.php - test.inc - -David Feb 17 2003 - - restored some of the changes for faster network throughput - - client/ - client_state.C,h - main.C - next_xfer.C,h - -David Feb 18 2003 - - fixed formatting; changed vector remove to use iterator - - client/ - app.C - cs_files.C - app.C - -David Feb 18 2003 - - added "opaque" fields to result and workunit tables. - (allows projects to cross-reference to their science DB) - - added "venue" field to host (home/school/work) - This has two goals: - 1) provides a basis for multiple preference sets - (one each for home/school/work) - 2) provides another account breakdown for stats - - added "venue" field to user - This is the default venue, for newly created hosts - - simplified preferences: - For account setup, all preferences are now on one form - (different forms for new/return users) - For preference editing, preferences are now in two groups - - project preferences, including resource share, - venue, and per-project prefs - - global prefs (called "BOINC prefs" in user interface) - - fixed bug where user/host credits in client state file were giant numbers - - todo - client/ - scheduler_op.C - db/ - db.h - db_mysql.C - schema.sql - html_ops/ - db.inc - html_user/ - account_setup_first.php - account_setup_first_email.php (removed) - account_setup_first_project.php (removed) - account_setup_first_action.php (new) - account_setup_nonfirst.php - account_setup_nonfirst_email.php (removed) - account_setup_nonfirst_project.php (removed) - account_setup_nonfirst_action.php (new) - create_account_action.php - prefs.inc - prefs_edit_global_* - prefs_edit_email_* (removed) - prefs_edit_project_* - prefs_edit_resource_* (removed) - project_specific_prefs.php - sched/ - handle_request.C - server_types.C - test/ - test.inc - -David Feb 19 2003 - - Added scheme for verified user update of email address - When user updates email address, their email address in the DB - is set to a "munged" form that includes a random string, - and an email is sent to the new address that includes a - URL that they must visit to verify the change. - - The same mechanism is used on account creation; - the email DB field is initially set to a munged form. - This prevents hackers from adding entries to the DB - with other peoples' email addresses. - - Separate logic for update email address from update other user info; - remove combinatorial logic (?) for update other user info - - configure (removed; generated from configure.in by autoconf) - db/ - db.h - html_user/ - create_account_action.php - create_account_form.php - edit_action.php (removed) - edit_email_action.php (new) - edit_email_form.php (new) - edit_user_info.php (removed) - edit_user_info_form.php (new) - login_action.php - user.inc - util.inc - -David Feb 20 2003 - - project preferences are now handled correctly, - written/read to account file - - fix bugs in web pages for editing prefs - - change dont_run_on_batteries to run_on_batteries etc. - - fix bug in test scripts where account file had wrong name - - apps/ - upper_case.C - client/ - account.C,h - client_state.C - client_types.C - cs_scheduler.C - prefs.C,h - doc/ - client_files.html - html_user/ - confirm_email_change.php - edit_user_info_action.php - prefs.inc - prefs_edit_project_action.php - prefs_edit_project_form.php - test/ - test.inc - test_uc.php - -David Feb 22 - - API now passes both host and user credit to apps - - API now passes team name to apps (scheduler RPC now returns it) - - don't use malloc in get_free_slot - - added fancier project-specific prefs for astropulse - - fixed bugs in account creation - - imported code to remove dangerous HTML tags from user-supplied text - - api/ - boinc_api.C,h - client/ - app.C - client_state.C - client_types.C,h - cs_scheduler.C - hostinfo.C,h - hostinfo_unix.C - time_stats.C - html_user/ - account_setup.php - account_setup_first_action.php - download.inc - htmlfilter.inc - logout.php (new) - prefs.inc - project.inc - project_specific_prefs_ap.inc (new) - sanitize_html.inc - team.inc - team_edit_action.php - util.inc - sched/ - handle_request.C - server_types.C,h - test/ - make_project_ap.php - test.inc - -Seth Feb 24 - - changed windows graphics handling. - client now has a child window in which all graphics are displayed. - when an app is running, this window sends a message to the app telling - it to draw on the window. - - api/ - windows_opengl.cpp - client/win/ - wingui.C,h - wingui_mainwindow.C,h - wingui_sswindow.C,h (new) - -David Feb 25 2003 - - Implemented network throughput limits, part of global prefs. - There are separate limits for upload and download. - Implementation: the NET_XFER_SET objects now has fields for - 1) the max # bytes/sec up and down (from global prefs) - 2) the limit on bytes that can be xferred this second - Can go negative. If it's negative, don't include - sockets in select(). - Replenish every second. - This replaces an implementation that didn't work - - Reimplemented the way network throughput is measured. - The old way measured throughput for each file xfer, and kept an average. - This doesn't work with multiple simultaneous xfers. - The new way uses a NET_STATS::poll() function. - If there has been an active file xfer during the last poll period - (new logic in NET_XFER_SET lets you find this out) - then you add the duration of the polling period, - and the number of bytes transferred. - The reported throughput is averaged with throughput - from previous sessions of the core client. - - Increased file xfer blocksize from 4KB to 16KB - - Got rid of dynamic buffer allocation in NET_XFER - - Renamed "water days" to "work buf days" everywhere - NOTE: - clock() measure calling process CPU time, not time of day. - Use time(0) if you want time of day. - - client/ - client_state.C,h - cs_scheduler.C - file_xfer.C - http.C - main.C - net_stats.C,h - net_xfer.C,h - pers_file_xfer.C - prefs.C,h - scheduler_op.C - test_file_xfer.C - test_http.C - test_net_xfer.C - test/ - test.inc - test_uc.php - -Eric Feb 25, 2003 - - Added net transfer progress. Tracks number of bytes transferred - for file uploads and downloads. - - Fixed Windows battery status bug. - - Net transfer speed measurement in bytes/sec. The measurement decays by - 1/2 every 3 seconds. - - Added PHP function to password protect project admin pages via .htaccess. - - Altered show_message function to specify the project a message is - associated with. - - client/ - client_state.C - cs_scheduler.C - file_xfer.C - net_xfer.C,h - pers_file_xfer.C - mac/ - mac_main.cpp - main.C - message.h - scheduler_op.C - win/ - wingui_mainwindow.cpp - wingui.cpp - hostinfo_win.cpp - test/ - test.inc - -Eric Feb 26, 2003 - - Added ability to automatically zip/gzip stats files. - - sched/ - db_dump.C - -David Feb 27 2003 - - fix bug in prefs display - - use $_GET["foo"] to access form variables in PHP scripts - (this makes it clear what the form variables are) - - use trim() to get rid of white space and start/end of authenticator. - Should do this for most user-supplied data - - use row2() to generate all two-item rows. - Right-align the first part and embolden the second. - Get rid of row() and row2a() - - change "water days" terminology to "work buf" - - html_user/ - account_created.php - bug_report_action.php - confirm_email_change.php - login_action.php - login_form.php - prefs.inc - prefs_edit_global_action.php - prefs_edit_project_action.php - prefs_edit_project_form.php - project_specific_prefs.inc - project_specific_prefs_ap.inc - show_host_detail.php - team.inc - user.inc - util.inc - -Eric Feb 28, 2003 - - Fixed screensaver to open client/go to full screen mode correctly. - - Implemented "Go to blank screen after x minutes" functionality. - - api/ - graphics_api.h - client/ - client_state.C,h - win/ - wingui_mainwindow.cpp,h - win_util.h - win_screensaver.cpp - wingui_sswindow.cpp,h - -David Feb 28 2003 - - after master URL fetch done, write client state file - (so that we don't fetch it again) - - scheduler: don't check for WU feasibility if the client reports - zero disk or zero memory; - improved reporting of infeasibility - - added a "watchdog" script (wd.php) that checks log files for error msgs - and sends an email if any. Also added a sample watchdog that - makes sure #results changes - - client/ - client_types.C - cs_scheduler.C - scheduler_op.C - sched/ - handle_request.C - wd.php - wd_nresults_changing.php - -David Feb 28 2003 - - add some fields to copy_state_fields(). - (fixed bug where client always fetches master URL) - - client/ - client_types.C,h - -David Mar 2 2003 - - added code to garbage-collect APP_VERSIONs: - delete any APP_VERSION that's not referenced and for which - there's a later version of the same app. - Also garbage-collect executable files - (previously, they were never deleted). - - fixed minor bug (file offset on redirected POST2 HTTP op) - - added network bandwidth limits to global prefs web interface - - todo - client/ - client_state.C,h - cs_files.C - hostinfo_unix.C - http.C,h - html_user/ - prefs.inc - sched/ - handle_request.C - -David Mar 2 2003 - - escape single quotes on result.stderr_out and result.xml_doc_out - (since client could return something with single quotes) - - when get a DB error, write mysql's error string to log - - db/ - db.h - db_mysql.C - mysql_util.C,h - sched/ - handle_request.C - -David Mar 3 2003 - - run_on_batteries defaults to true - (else can't run test_uc.php on batteries) - - show correct time diffs in client out - - In user_html, use row2() uniformly, and added shading - - laid some groundwork for multiple prefs sets - - client/ - client_state.C - main.C - prefs.C - html_user/ - prefs.inc - prefs_edit_global_form.php - project_specific_prefs.inc - show_hosts.php - user.inc - util.inc - test/ - test_uc.php - -David Mar 4 2003 - - added PHP code for creating/editing/deleting multiple pref sets - See "prefs.inc" for a description of the XML format. - Prefs are divided into two subsets (global and project). - For each subset there is a mandatory "primary" version - and optional versions for home, school, and work. - The prefs display/editing code has been consolidated - and parameterized (subset = global or project, - venue = none, home, school, work). - This actually simplifies things a little. - - html_user/ - account_setup_first_action.php - account_setup_nonfirst_action.php - add_venue_action.php (new) - add_venue_form.php (new) - prefs.inc - prefs.php - prefs_edit_action.php (new) - prefs_edit_form.php (new) - prefs_edit_global* (removed) - prefs_edit_project* (removed) - user.inc - util.inc - -David Mar 4 2003 - - debugged prefs editing code - - html_user/ - account_setup_first_action.php - add_venue_action.php - add_venue_form.php - prefs.inc - prefs_edit_action.php - project_specific_prefs.inc - -David Mar 5 2003 - - use venue-specific prefs on client side: - - schedule server passes element in scheduler reply - (but only when it passes back new global prefs) - - when parsing global prefs, if find a matching - element, parse its contents and ignore all else - - when passing project-specific prefs to app, - look for matching element - - changed XML syntax of venue-specific prefs: instead of - ..., e.g., use - ... - - added safe_strncpy(): always adds zero byte at end. - Use this instead of strncpy(). - - client/ - app.C - client_state.C,h - cs_scheduler.C - hostinfo.C - prefs.C,h - scheduler_op.C,h - html_users/ - add_venue_action.php - prefs.inc - show_host_detail.php - user.inc - lib/ - parse.C,h - util.C,h - sched/ - Makefile.in - server_types.C - -David Mar 6 2003 - - new show_message() conventions (not fully implemented): - - all error conditions should call show_message() with MSG_ERROR - - all log writes should use show_message() with MSG_INFO - TODO: change Win implementation of show_message() to - write to window AND to file (stderr.txt or stdout.txt) - - messages are now timestamped and show project name - - use start_table() and row2() more uniformly in user HTML - - user HTML: show message if can't connect to DB - - standardize terminology in user HTML: "general prefs", - "default computer location", etc. - - client/ - client_state.C - cs_scheduler.C - main.C - message.h - scheduler_op.C - doc/ - prefs.html - html_user/ - add_venue_form.php - bug_report_form.php - create_account*.php - db.inc - edit_email_form.php - edit_user_info_form.php - index.php - login*.php - prefs.inc - prefs_edit_form.php - show_user.php - team_create_form.php - top_hosts.php - user.inc - util.inc - lib/ - util.C,h - sched/ - *.C - -Eric March 7, 2003 - - Moved common functions (write_log, check_trigger, update_average) - into sched_util.C - - Added stop_server checking to more server programs - - Added update_stats program to periodically update exponential average - credit for users and hosts, and to update team credit by summing member credit - - Added db_sum, db_query_double to retrieve sums of columns (used by update_stats) - - Added db_user_sum_team_expavg_credit, db_user_sum_team_total_credit, - db_user_count_team for updating team statistics - - Confirmed that current exponential average algorithm is correct - - db/ - mysql_util.C,h - db_mysql.C - db.h - html_user/ - top_teams.php - sched/ - Makefile.in - *.C - sched_util.C,h (added) - update_stats.C (added) - -Seth March 10, 2003 - - changed windows graphics handling again. client/app messaging - now mainly consists of the client polling the app windows, - with apps messaging the client when they change modes. - moved most of this into the client's child screensaver window. - - api/ - windows_opengl.cpp - client/win/ - wingui_sswindow.cpp,h - wingui_mainwindow.cpp,h - -Eric March 11, 2003 - - changed client exit to send a quit request to the apps, wait 1 - second for them to quit, then kill them if they're still open. - This allows applications to do a final checkpoint before - quitting, rather than lose their recent work - - changed boinc_sleep to accept fractional sleep values - - apps/ - concat.C - upper_case.C - client/ - app.C,h - client_state.C - cs_apps.C - test_*.C - lib/ - util.C,h - -Eric March 12, 2003 - - Quit requests are now sent via the SIGQUIT signal (on UNIX) - or a named Event (on Windows), rather than via an XML file - - api/ - boinc_api.C,h - client/ - app.C,h - -Eric March 13, 2003 - - Added System V message queue functions to library - - lib/ - msg_queue.C,h - msg_test.C - -David Mar 15 2003 - - added some state diagrams to docs - - changed var name from "giveup_after" to "file_xfer_giveup_period" - PLEASE USE MEANINGFUL NAMES, especially for global vars - - todo - api/ - boinc_api.h - client/ - app.C - client_state.C,h - pers_file_xfer.C,h - doc/ - various - sched/ - feeder.C - -Eric March 17, 2003 - - Changed app->client communication to use shared memory rather - than files. The client sets up a shared memory segment when - starting the app. The app attaches to it and writes XML tags - into a 4K text buffer every second. - - The shared memory communication has been tested by hand under - Windows and UNIX (Mac OS X). We should write test scripts for - it to make sure. - - configure.in - api/ - boinc_api.C,h - apps/ - Makefile.in - client/ - app.C,h - cs_apps.C - lib/ - shmem.C,h - -David Mar 18 2003 - - Don't write signed_xml and xml_signature tags in the state file - if they're empty strings - (this eliminates malformed XML in state file) - - Replace safe_strncpy(foo, "", sizeof(foo)) with strcpy(foo, ""). - Reduce noise. - - client/ - app.C - client_state.C - client_types.C - file_xfer.C - hostinfo.C - http.C - scheduler_op.C - -Eric March 19, 2003 - - Moved OpenGL context creation/destruction outside of drawing - loop. This seems to improve speed on Windows 98. - - Added memory deallocation routine for client_state vectors. - This clears up several dozen unnecessary memory leak reports. - - api/ - windows_opengl.cpp - client/ - app.C,h - client_state.C,h - cs_apps.C - win/ - wingui_mainwindow.cpp - -David Mar 19 2003 - - general cleanup of user web - - html_user/ - * - show_hosts.php (removed) - -David Mar 19 2003 - - added global pref for max CPUs - - added global pref for min interval between disk writes - (applies to checkpoint writes only) - - added URL field to user table - - moved "send_email" field from XML to DB - - added "show_hosts" field to user table - - show_host_public.php (removed) - client/ - app.C - client_state.C,h - cs_apps.C - prefs.C,h - db/ - db.h - db_mysql.C - schema.sql - doc/ - index.html - html_user/ - edit_user_info* - host.inc - prefs.inc - prefs_edit_* - show_host_detail.php - user.inc - util.inc - sched/ - db_dump.C - test/ - test.inc - tools/ - add.C - -Eric March 20, 2003 - - Changed speed tests to use a realtime timer rather than - estimating the number of iterations. - - Changed floating point test to use more accurate code. - - Fixed memory bandwidth test reporting. - - client/ - app.C - client_state.C,h - speed_stats.C,h - -David Mar 20 2003 - - added web interface for "merging" hosts - - cleaned up team-related PHP code - - html_user/ - edit_host_action.php - edit_host_form.php - -David Mar 21 2003 - - fixed bugs in host merge - - (Eric) fix secs-per-day problem in credit - -David Mar 24 2003 - - added preference for time-of-day restrictions - (run only between hours X and Y) - - client/ - client_state.C - prefs.C,h - html_user/ - create_account_action.php - create_account_form.php - prefs.inc - -David Mar 25 2003 - - account creation is now turned off by putting - "" in html_user/config.xml - - change name of config file to .htconfig.xml - (so can't read via HTTP) - - html_user/ - create_account* - util.inc - -David Mar 31 2003 - - add "-exit_before_upload" cmdline option - - client/ - client_state.C,h - pers_file_xfer.C - html_user/ - team_create_action.php - test/ - test_uc.php - -David Mar 31 2003 - - added random field to result. - Results are sent in random order, making it hard for hackers - to get multiple results for the same WU - - user-visible messages about files give names, not URLs - - Changed all occurrences of "time test" and "speed test" - to "CPU benchmark". - Please use accurate, consistent terminology in the code. - - changed command-line options: - -skip_cpu_benchmarks instead of -no_time_tests - -run_cpu_benchmarks instead of -run_speed_test - - client/ - client_state.C,h - file_names.h - hostinfo.C,h - net_xfer.C - pers_file_xfer.C - speed_stats.h - db/ - constraints.sql - db.h - db_mysql.C - schema.sql - html_user/ - prefs.inc - user.inc - sched/ - make_work.C - test/ - test_1sec.php - test_backend.php - test_uc.php - tools/ - backend_lib.C - -David Apr 3 2003 - - added macro "safe_strcpy(x, y)" - ** USE THIS INSTEAD OF safe_strncpy(x, y, sizeof(x)) - - added macro "safe_strcat(x, y)" - ** USE THIS INSTEAD OF strcat() - - changed dynamically-allocated fields of SCHEDULER_REQUEST, - SCHEDULER_REPLY to static - - That combination of the above fixes a bug where a long - stderr_out could overwrite other fields of RESULT - - client/ - app.C - client_state.C - client_types.C - cs_scheduler.C - hostinfo_unix.C - http.C - net_xfer.C - pers_file_xfer.C - scheduler_op.C - doc/ - index.html - lib/ - filesys.C - util.C,h - sched/ - file_deleter.C - file_upload_handler.C - handle_request.C - server_types.C,h - -David Apr 7 2003 - - changed names of DB interface routines to get rid of conflict - with SETI@home DB interface - - changed name of "db.h" to "boinc_db.h" to remove conflict w/ SETI@home - - db/ - db.h (removed) - boinc_db.h (new) - db_mysql.C - sched/ - *.C - tools/ - *.C - -Erik May 6 2003 - - Added a notion of "transient" and "permanent" errors on file uploads. - A permanent error is returned by the file upload handler if - - the request is malformed - - filename includes ".." - - the signature is bad - - the file size is larger than allowed - PERS_FILE_XFER checks for this return from FILE_XFER - and gives up immediately. - - FILE_XFER now always parses the server response (not just for file size) - - Added some missing error checks to FILE_XFER - - Punted on the timezone-related ifdefs: - added hardwired ifdefs for linux and unix. - Need to revisit this - - in PHP test library, add a provision for multiple files per application - - client/ - file_xfer.C - hostinfo_unix.C - pers_file_xfer.C,h - doc/ - client.html - index.html - old_news.html (new) - result.fig - setiathome.jpg - upload.html - lib/ - error_numbers.h - sched/ - file_upload_handler.C - test/ - test.inc - -Erik May 8 2003 - - Added a new class SS_LOGIC that encapsulates the core client's - screensaver-related logic. - It tries to get graphics-capable apps to provide graphics, - and if necessary it draws logo-based graphics or blanks the screen. - - Changed ACTIVE_TASK.app_client_shm from a pointer to an object. - NOTE: AVOID DYNAMIC ALLOCATION WHENEVER POSSIBLE - - got rid of free_mem() stuff - - client/ - Makefile.in - app.C,h - cs_apps.C - ss_logic.C,h (new) - lib/ - Makefile.in - app_ipc.C,h - -Erik May 13 2003 - - Added a notion of "tentative" project. - This means that the (URL, account ID) pair hasn't been verified, - i.e. we haven't fetched the master page, found a scheduler, - and done a scheduler op that verified the account ID. - If anything fails for a tentative project, call project_add_failed(). - in the cmdline version this prints an error message, - deletes all evidence of the project, and exits. - TODO: implement for GUI - - Make write_account_file() into a member function of PROJECT. - - Got rid of CLIENT_STATE::change_project(). - The user must detach and attach. - - CLIENT_STATE::quit_project() now takes a PROJECT*, not an int. - Need to change the GUI code. - - got rid of separate WIN_32 implementations of - make_project_dir(), remove_project_dir(), make_slot_dir(). - THIS IS THE WRONG LEVEL FOR PLATFORM-DEPENDENT CODE! - Instead, added boinc_mkdir() and boinc_rmdir() - - added implementation docs for screensaver logic - - test_uc.php: wait for a second before running client. - On fast computers the client runs before feeder has seeded shmem. - - client/ - account.C,h - client_state.C,h - client_types.C,h - cs_scheduler.C - file_names.C - main.C - scheduler_op.C,h - ss_logic.C - win/ - wingui.cpp - wingui_mainwindow.cpp - doc/ - client_app.html - client_app_graphic.html - lib/ - filesys.C,y - test/ - test_uc.php - -Erik May 14 2003 - - added function to "reset" project (stop all current activities - and delete everything except sticky files) - - added function to "detach" from project (the above, plus - deleting all files, the account file, and the project) - - client/ - account.C - client_state.C,h - main.C - pers_file_xfer.C - lib/ - util.C - test/ - test_uc.php - -Erik May 15 2003 - - added cmdline options for show/detach/reset project - - -update_prefs command now takes a URL - - added license text to some files - - client/ - account.C - client_state.C,h - lib/ - util.C - doc/ - client.html - -Erik May 15 2003 - - change NET_XFER::net_sleep() so that it does up to about .5 sec of I/O, - rather than just one block per socket - - client/ - net_xfer.C - -Erik May 16 2003 - - set FILE_INFO::upload_offset to -1 before restarting file upload. - This forces file size check, so that upload can resume - with nonzero offset. - NOTE: THE USE OF "SPECIAL VALUES" (LIKE -1) IS DISCOURAGED - - don't set RESULT::state to NEW after parse. - This caused completed results to start over. - - PERS_FILE_XFER::start_xfer() is int, not bool - - better messages on file transfer failure and project backoff - - better message from scheduler if wrong major version - - file upload handler logging is on by default - - client/ - scheduler_op.C - pers_file_xfer.C,h - client_state.C - file_xfer.C - lib/ - error_numbers.h - sched/ - file_upload_handler.C - handle_request.C - -Eric May 16, 2003 - - changed do_select to keep calling do_xfer for uploads until either - a) the send buffers are full or b) 1 second has passed - - changed variable name in Windows GUI code for clarity - - client/ - net_xfer.C - win/ - wingui_mainwindow.cpp - -Erik May 19 2003 - - added support for user-selected files to be included - as part of an app_version. - If there is an element of the form - - X - Y - - in a user's project preferences, - then for every APP_VERSION that is sent to the user, - elements of the form - - X' - X - - ... and in the element - - X' - Y - - are added to the app version's XML description, - where X' is an escaped version of X. - This can be used (for example) to allow applications to - have user-specified images in their graphics - - Handle it correctly if the "insert" part of a file transfer fails - - The "main program" of an app version is the one labeled - (not necessarily the first one) - - Only files labeled are required to be signed - - added copyright notice to some files - - added sgets() for parsing a string that is made up of multiple lines - - write MD5 checksum elements only if checksum is present - - created escape_url_readable - - TODO: app_versions are currently treated as immutable by client. - Need to change this. - - todo - api/ - graphics_data.C,h - util.cpp,h - client/ - app.C - client_state.C - client_types.C - cs_files.C - file_names.C - pers_file_xfer.C,h - doc/ - api.html - boinc_dev.html - client_app.html - client_app_graphics.html - graphics.html - lib/ - parse.C,h - util.C,h - sched/ - handle_request.C - server_types.C,h - -Eric May 20, 2003 - - When you create a team you automatically join it - - html_user/ - team.inc - team_create_action.php - team_join_action.php - -Erik May 21 2003 - - in application w/ graphics, make sure worker thread is lower - priority than GUI thread - - show error msg if attach to existing project - - trim CR from end of message strings - - consider it a failure if tentative project master page - downloads OK but has no scheduler URLs - - clean up formatting of download page - - api/ - graphics_api.C - client/ - account.C - main.C - scheduler_op.C - win/ - wingui.cpp - html_user/ - download.inc - lib/ - error_numbers.h - -Erik May 21 2003 - - various changes to support abort of apps if use too much disk or CPU - - send workunit rsc_* fields in scheduler reply; store on client - - scheduler doesn't send estimated CPU time; instead, - client calculates it - - CPU time bound is estimated time * 2 - - disk bound is rsc_disk - TODO: finish implementing this - - When an app finishes, see if any of the output files is larger - than its max_nbytes. - If so set its status to ERR_FILE_TOO_BIG. - This will prevent the client from trying to upload it. - TODO: make sure result is flagged as erroneous - - Change API_IGNORE_CLIENT to API_STANDALONE - - Apps start in MODE_WINDOW if standalone - - api/ - boinc_api.C,h - windows_opengl.cpp - client/ - app.C,h - client_state.C,h - client_types.C,h - cs_apps.C - cs_scheduler.C - db/ - boinc_db.h - lib/ - error_numbers.h - sched/ - handle_request.C - -Erik May 22 2003 - - abort applications that exceed max disk usage - Do this check at most global_prefs.disk_interval seconds - - moved code that detaches core/app shared memory from - CLIENT_STATE::handle_finished_apps() to - ACTIVE_TASK::check_app_exited() - NOTE: ACTIVE_TASK IS SUPPOSED TO ENCAPSULATE TASK IMPLEMENTATION - - CLIENT_STATE::handle_finished_apps(): don't view an app as finished - if it's in PROCESS_ABORT_PENDING state - - got rid of ACTIVE_TASK_SET::poll_time(); - moved its functionality to ACTIVE_TASK_SET::poll() - - broke up ACTIVE_TASK_SET::poll() into subfunctions: - get_cpu_times(), check_app_exited(), - check_max_cpu_exceeded(), check_max_disk_exceeded() - - change function names: - get_cpu_time() -> get_cpu_time_via_os() - check_app_state() -> get_cpu_time_via_shmem() - handle_running_aps() -> handle_finished_apps() - - exit_tasks() is a member function of ACTIVE_TASK_SET, not CLIENT_STATE - - client/ - app.C,h - client_state.C,h - cs_apps.C - -Eric May 29, 2003 - - added foreign language support functions - - fixed allowed space calculation (standardized on 1 GB=2^30 bytes, not 10^9) - - client/ - client_state.C - lib/ - language.C,h - -Eric May 30, 2003 - - nslots will now be updated correctly - if user changes preferences on web site - - client/ - client_state.C,h - cs_scheduler.C - -David June 2 2003 - In client API, standalone mode uses init files if they're there - - api/ - boinc_api.C - -Karl 2003/06/02 - - fixed some spelling and grammar - - doc/ - api.html - boinc_version.html - road_map.html - sequence.html - single_host_server.html - -Eric June 3, 2002 - - Added msg_printf function. - Use this function rather than show_message, since it - doesn't require a locally allocated buffer for formatted strings. - - client/ - account.C - app.C - client_state.C,h - cs_apps.C - cs_scheduler.C - file_xfer.C - net_xfer.C - pers_file_xfer.C - scheduler_op.C - -Tim June 3, 2003 - - Windows GUI enhancement - graphics window opens on top - simplified disk chart labels - message window scrolls to the bottom with new messages - reduce flicker in projects, results, and transfers - - api/ - windows_opengl.cpp - client/ - gui_titles.c - wingui_mainwindow.cpp - -David June 4 2003 - - Checked in Eric Korpela's rewrite of the DB interface code. - No more db_xxx functions; instead, use derived classes - with insert(), update() etc. functions - - db/ - Makefile.in - boinc_db.C,h (.C new) - mysql_util.C,h (removed) - db_mysql.C (removed) - sched/ - Makefile.in - assimilator.C - db_dump.C - feeder.C - file_deleter.C - handle_request.C - main.C,h - make_work.C - sched_shmem.C - timeout_check.C - update_stats.C - validate.C - tools/ - Makefile.in - add.C - backend_lib.C,h - create_work.C - -Eric June 4, 2003 - - Added signal handlers for keyboard suspend/resume on UNIX - - client/ - main.C - -Tim June 4, 2003 - - Windows GUI enhancement - added "show" and "hide" to system tray icon context menu - added line between menu and tabs (not perfect; currently reside in updateGUI) - results now reads "downloading" and "uploading" during file transfer - removed history (i.e. completed results, old messages from last session) - - client/ - client_state.c - client_types.h - wingui_mainwindow.cpp - resource.rc - -David June 5 2003 - - use a separate DB table for core versions - - db/ - boinc_db.C,h - schema.sql - html_user/ - download.inc - test/ - test.inc - test_uc.php - tools/ - add.C - -Tim June 5, 2003 - - bug fix - fixed "uploading" "downloading" problem - fixed minor problem with updateGUI - fixed "time of day" suspension check (was parsing XML incorrectly) - fixed "website" problem (missing "http://") - fixed "write to disk frequency" (was not implemented) - - client/ - client_state.c - client_state.h - prefs.c - wingui_mainwindow.cpp - -Karl 2003/06/06 - Rewrote build system using automake and modern autoconf. - - Added: - - RSAEuro/Makefile.am - RSAEuro/source/Makefile.am - api/Makefile.am - apps/Makefile.am - client/Makefile.am - db/Makefile.am - lib/Makefile.am - sched/Makefile.am - sched_fcgi/Makefile.am - tools/Makefile.am - configure.ac - - (helper files:) - Makefile.incl - _autosetup - aclocal.m4 - compile - depcomp - install-sh - missing - mkinstalldirs - config.h.in - test/version.inc.in - - Modified: - test/test.inc - - Removed: - RSAEuro/source/targets.mak - configure.in - - These files are now built automatically: - - RSAEuro/Makefile.in - RSAEuro/source/Makefile.in - api/Makefile.in - apps/Makefile.in - client/Makefile.in - db/Makefile.in - lib/Makefile.in - sched/Makefile.in - sched_fcgi/Makefile.in - tools/Makefile.in - -Eric June 6, 2003 - - Removed old extraneous functions from wingui - (EnumWindowsProc, GetWndFromProcId) - - Moved GetByteString to util.C, made platform independent, - added "x/y KB" option - - Changed est_time_to_completion to use a recent exponential - average of change in percent done. This is more accurate - than the old method. - - Bug fixes involving result state changes - - client/ - app.C,h - client_types.h - client_state.C - win/ - wingui.cpp, h - wingui_mainwindow.cpp - wingui_piectrl.cpp - lib/ - util.C,h - -Karl 2003/06/06 - - - updated version number, email address, copyright date - - documented automake system and updated build notes (there's only 1 step - now instead of 5) - - configure.ac - LICENSE - doc/ - boinc_dev.html - build.txt - build_system.html (added) - -Karl 2003/06/07 - - - removed "client" distribution - - started "make check" targets - - "make distcheck" now works - - documentation - - Makefile.am - Makefile.incl - configure.ac - doc/ - build.txt - build_system.html - road_map.html - test/ - Makefile.am (added) - -Tim June 9, 2003 - - Windows GUI Enhancement - disk usage now displayed in two separate pie charts - improved the separation line between menu and tabs - - Preference - prompt user when downloading executable (commented out) - - client/ - file_xfer.c - gui_titles.c - pers_file_xfer.c - wingui_mainwindow.h - wingui_mainwindow.cpp - -Karl 2003/06/09 - - refactored exponential backoff to util.h - - client/ - pers_file_xfer.C - scheduler_op.C - lib/ - util.h - util.C - -Karl 2003/06/09 - - enabled automake maintainer mode - less rebuilding of Makefiles - - updated doc - - configure.ac - doc/ - build_system.html - -Karl 2003/06/11 - - fixed skip_cpu_benchmarks bug - - client/ - client_state.C - -Tim June 11, 2003 - - Windows GUI Enhancement - modified flicker-reducing checks - - Preference - fixed prompt user when downloading executable (commented out) - - client/ - file_xfer.c - pers_file_xfer.c - wingui_mainwindow.cpp - -Tim June 11, 2003 - - Preference - improved executable confirmation message (commented out) - added max_memory_mbytes, process_priority, cpu_affinity - - client/ - pers_file_xfer.c - prefs.c - prefs.h - -Karl 2003/06/11 - - test suite overhaul - - _autosetup - configure.ac - test/ - Makefile.am - db_def_to_php - boinc_db.inc - version.inc.in - test.inc - test_1sec.php - test_backend.php - test_concat.php - test_download_backoff.php - test_limit.php - test_masterurl_failure.php - test_mdownload_backoff.php - test_pers.php - test_rsc.php - test_sched_failure.php - test_sticky.php - test_time.php - test_uc.php - test_upload_backoff.php - -Eric K. 2003/06/16 - Attempted to make the XML parser more robust by adding - extract_xml_record() to parse.C - Added const modifier to constant parameters to increase class - compatibility. - - parse.C - parse.h - -Karl 2003/06/16 - Removed bzip2 rule; add 'foreign' option to automake through - configure.ac so you don't need to specify when invoking automake - manually - - _autosetup - configure.ac - -Karl 2003/06/16 - Testing upload and connection failures (work in progress) - - test.inc - test_uc.inc - test_uc.php - test_masterurl_failure.php - test_upload_resume.php - test_upload_backoff.php - testproxy - -Tim June 16, 2003 - - Preference - removed executable confirmation - implemented max_memory_mbyte - - client/ - pers_file_xfer.c - app.c - -Tim June 17, 2003 - - application graphics file - added timestamp to astropulse appfile - modified APP_FILE struct to include timestamp handling - scheduler sends "openname_timestamp" as name - open_name (if available) is used when creating a slot directory - - Windows GUI - finished items in results and transfers are now immediately removed - - client/ - app.c - wingui_mainwindow.cpp - html_user/ - project_specific_prefs_ap.inc - sched/ - handle_request.c - server_types.c - server_types.h - -David June 17 2003 - - If connect() fails, mark the HTTP_OP as done and in error. - Previously it just hung forever. - - Added DB fields for BOINC disk usage: total, project, and max - TODO: compute these on client and send in sched RPC - - Scheduler RPC request now includes a list of projects - and resource shares for the host. - Stored in the DB. - This lets the web site show other projects - that people participate in. - Also might be used in scheduling estimates. - - added a "Rules and policies" page to the web interface. - Users read this before creating account - - commented out check_max_mem_exceeded() (not ready) - - todo - client/ - app.C - cs_scheduler.C - http.C - db/ - boinc_db.C,h - schema.sql - doc/ - index.html - html_user/ - create_account_form.php - index.php - info.php - -Karl 2003/06/17 - Fixed miscellaneous bugs, some very dangerous, from compiler warnings - - lib/ - parse.C - crypt.C - tools/ - backend_lib.C - create_work.C - -Karl 2003/06/17 - Converting test scripts to Python - - configure.ac - test/ - Makefile.am - boinc.py - boinc_db.py - db_def_to_py - testproxy - test.inc - test_upload_backoff.php - test_uc.py - test_concat.py - test_1sec.py - test_backend.py - version.py.in - -Tim June 18, 2003 - - Windows GUI - updated icons - - project preference - implemented account mirroring - - client/win/res/ - icon.ico - iconhigh.ico - iconsmall.ico - html_user/ - create_account_action.php - create_account_form.php - -David June 18 2003 - - export user country and create_time in db_dump - - move functions involving BOINC "soft links" to app_ipc.C - (they don't belong in filesys.C) - - move functions to get filesystem total/free to filesys.C - - add doc page for watchdogs - - api/ - boinc_api.C - client/ - hostinfo.h - hostinfo_unix.C - db/ - boinc_db.h - doc/ - create_project.html - db_dump.html - watchdog.html (new) - lib/ - app_ipc.C,h - filesys.C,h - sched/ - Makefile.am - db_dump.C - file_upload_handler.C - handle_request.C - server_types.C,h - -David June 18 2003 - - upload: if exceed size limit, read and discard rest of request - - sched/ - file_upload_handler.C - -David June 18 2003 - - added user web interface for seeing results for a host - - client/ - cs_scheduler.C - lib/ - result_state.h - html_user/ - host.inc - result.inc (new) - results_host.php (new) - -David June 19 2003 - - added admin web interface for looking at status of recent results - - set result.received_time whenever the server_state becomes DONE - (this makes it possible to enumerate all results that have - become done recently, including timeouts and other errors) - - html_ops/ - index.html (removed) - index.php - result_summary.php (new) - sched/ - handle_request.C - validate.C - timeout_check.C - -Karl 2003/06/19 - - make_work: make hard links instead of copies of workunit files - - sched/ - make_work.C - -Tim June 19, 2003 - - Astropulse Website - added description to project preferences - - Windows GUI - implemented message pane entry limit - new icons - - client/win/res/ - icon.ico - iconhigh.ico - iconsmall.ico - html_user/ - db.inc - host.inc - project_specific_prefs_ap.inc - -Karl 2003/06/19 - - scheduler daemons: write pid to a pidfile. trap SIGINTs and exit on - the next check_stop_trigger() (the 'stop_server' file still works) - - wrote a kill_server program that kills specified daemons by sending - SIGINT to processes - - use kill_server in test scripts - - sched/ - kill_server (added) - Makefile.am - assimilator.C - feeder.C - file_deleter.C - make_work.C - sched_util.C - sched_util.h - timeout_check.C - update_stats.C - validate.C - test/ - .cvsignore - Makefile.am - boinc.py - version.py.in - -David June 20 2003 - - use mysql_connect() instead of mysql_pconnect() in PHP. - The latter caused failures in mysql_select_db(), - with "commands out of sync" error. - - html_user/ - db.inc - html_ops/ - db.inc - -Karl 2003/06/20 - - make client build by default use static libraries - - client/ - Makefile.am - doc/ - build.txt - -Karl 2003/06/20 - - improve readability of shmem error message - - sched/ - main.C - lib/ - shmem.C - test/ - boinc.py - -Karl 2003/06/20 - - remove OpenGL(U) dependency on unix test apps - - apps/ - Makefile.am - upper_case.C - -Tim June 23, 2003 - - Project Preference - Added venue parsing (fixes stderr.txt PROJECT::parse_account() error), but commented out - - Windows GUI - UpdateGUI only refreshes active tab (reduces Windows CPU time by 85%) - Fixed m_MessageListCtrl scrolling issue - Changed pie chart labels - Temporarily fixed the afx assertion failure at line 157 - - client/ - client_types.c - gui_title.c - client/win/ - wingui_mainwindow.cpp - -John Brian 2003/06/23 - - Changed label text in "Disk" tab: - "BOINC" -> "BOINC core client" - "PROJECT:" prepending removed - - - Removed CProgressListCtrl::OnLButtonDown to allow - left mouse clicks to highlight list items. - - /client/win/ - gui_titles.C - wingui_listctrl.h - wingui_listctrl.cpp - -Karl 2003/06/23 - - changed uses of HOST to HOSTTYPE to simplify command line and fix - conflict with boinc_db.h's HOST - - configure.ac - Makefile.incl - client/ - client_state.C - db/ - boinc_db.h - -Karl 2003/06/23 - - Make sure the user can't add one project twice (by one having a trailing - slash). - Canonicalize master urls to have a trailing '/' and remove double - slashes. Ensure account filenames and directories do not have the - trailing '_'. For many users their account files already have - trailing '_'s so if such files are found, rename them and their - corresponding project directories on startup. Created C++ string - versions of some functions for easier/safer/more efficient string - manipulation. - - client/ - account.C - client_types.C - file_names.C - lib/ - filesys.C - filesys.h - util.C - util.h - -Karl 2003/06/23 - - removed stderr messages on detach_project() after user adds a URL that - doesn't work - - client/ - http.C - net_xfer.C - -John Brian 2003/06/24 - - Added context-menu support for copying items in the Messages tab to the - clipboard. - - client/ - wingui_mainwindow.cpp - wingui_mainwindow.h - resource.rc - resource.h - -Karl 2003/06/24 - - Got test_1sec working - - test/ - boinc.py - test.inc - test_backend.py - test_uc.py - sched/ - start_servers.C - -Karl 2003/06/25 - - if application exceeds disk space limit, output message "Exceeded size - limit" instead of "Couldn't upload files" - - test that an aborted result due to file limit causes client_state = - RESULT_OUTCOME_CLIENT_ERROR (currently this test FAILS!) - - test resource limits in python - - db/ - boinc_db.h - client/ - client_state.C - sched/ - handle_request.C - test/ - boinc.py - test_abort.py (new) - test_rsc.py (new) - test_backend.py - test_concat.py - test_uc.py - -Karl 2003/06/25 - - created a script to automatically run make all, check, distcheck from a - cronjob - complains if anything fails. - - ./testbase (new) - -Karl 2003/06/26 - - fixed bug that caused client state to transition to - RESULT_FILES_UPLOADING even when file info(s) had errors; now it stays - in RESULT_COMPUTE_DONE. [passes test_abort now] - - client/ - client_state.C - cs_apps.C - -Karl 2003/06/26 - - makefile should rebuild version.py and boinc_db.py if necessary - - test_sanity should make sure proxy setup works - - test_masterurl_failure - - test/ - Makefile.am - test_sanity.py - boinc.py - test_masterurl_failure.py (new) - -Karl 2003/06/26 - - working on master url fetch failure retry policy - - test_signal.py. currently FAILS! - - test_exit.py. currently FAILS! - There is another bug similar to the one found by test_abort where the - client goes into FILES_UPLOADED even the application exited with an error. - - client/ - client_state.C - scheduler_op.C - - lib/ - util.C - util.h - - test/ - boinc.py - test_masterurl_failure.py - test_uc.py - testproxy - test_exit.py (added) - test_signal.py (added) - -Karl 2003/06/30 - - added checks for OUTCOME for successful and (expected) unsuccessful - results, and CLIENT_STATE for successful results. Parse - lib/result_state.h. - - test/ - Makefile.am - boinc_db.py - BOINC_db.inc - test_uc.py - -John Brian 2003/06/30 - - Removed stray printf used in debugging background graphics code. - - astropulse/client/ - ap_graphics.C - - -Karl 2003/06/30 - - schedulers: improved logging facilities. - - Use a library for common object files. - - changed timestamp() to be numeric, similar to ISO 8601 - - lib/ - util.C - sched/ - Makefile.am - assimilate_handler.C - assimilator.C - db_dump.C - feeder.C - file_deleter.C - file_upload_handler.C - handle_request.C - main.C - make_work.C - sched_util.C - sched_util.h - server_types.C - start_servers.C - timeout_check.C - update_stats.C - validate.C - validate_test.C - -David June 30 2003 - - change the admin interface to the DB - - html_ops/ - db.inc - db_action.php (new) - db_form.php (new) - index.php - result_summary.php - util.inc - -David July 1 2003 - - further tweaks to web DB interface - - html_ops/ - db.inc - db_action.php - db_form.php - index.php - -Karl 2003/07/01-02 - - redesigned logging facilities for both scheduler servers and client - It is now easy to see the flow of events from looking at client.out - - client/ - Makefile.am - app.C - client_messages.C (added) - client_state.C - cs_apps.C - cs_files.C - cs_scheduler.C - file_xfer.C - http.C - main.C - message.h - net_xfer.C - pers_file_xfer.C - scheduler_op.C - - lib/ - messages.C (added) - util.h - - sched/ - Makefile.am - assimilate_handler.C - assimilator.C - db_dump.C - feeder.C - file_deleter.C - file_upload_handler.C - handle_request.C - main.C - make_work.C - sched_messages.C (added) - sched_util.C - sched_util.h - server_types.C - start_servers.C - timeout_check.C - update_stats.C - validate.C - validate_test.C - -Karl 2003/07/02 - - added grepping for WU/results in log files. Can also just view log - file(s). Spiffy colorization and hyperlinks. - - html_ops/ - db.inc - db_action.php - show_log.php (new) - sched/ - grep_logs (new) - test/ - boinc.py - test_backend.py - -Karl 2003/07/02 - - turn on static libraries only on Linux - - configure.ac - client/ - Makefile.am - -Karl 2003/07/02 - - changed when "deferring communication" messages are printed so that user - sees them on client startup and every hour. Also format the message as - "X hours, X minutes, X seconds", etc. - - lib/ - util.h - util.c - - client/ - client_types.C - client_types.h - cs_scheduler.C - scheduler_op.C - scheduler_op.h - -David July 2 2003 - - changed all "fprintf(stderr," in the client to msg_printf() - This will give better messages (timestamps, project names) - in the cmdline version, and more complete error messages - in the GUI version - - moved msg_printf() from client_state.C to message.C - - client/ - *.C - message.C (new) - -David July 3 2003 - - added "custom signup page" feature - - html_user/ - clone.php (new) - create_account_action.php - create_account_form.php - index.php - project_ap.inc - team.php - user.inc - util.inc - -Karl 2003/07/03-08 - - created python start/stop program to handle daemonish and cronish tasks. - See sched/start builtin help for info - - sched/ - boinc_config.py (new) - start (new) - Makefile.am - assimilator.C - config.C - feeder.C - file_deleter.C - make_work.C - timeout_check.C - update_stats.C - validate.C - test/ - boinc.py - -John Brian 2003/07/11 - - added profile functionality to BOINC. Users can now add, modify, and delete - personal profiles. Scripts to build picture galleries, and country summaries - are also available. Most of the functionality of the SETI@Home profiling system - is now available in BOINC. - - html_user/ - create_profile.php (new) - delete_profile.php (new) - gallery.inc (new) - generate_country_pages.php (new) - generate_picture_pages.php (new) - index.php - languages.txt (new) - profile.inc (new) - profile_menu.php (new) - project.inc - user.inc - util.inc - view_profile.php (new) - -David July 15 2003 - - use double for VM working set size - - finished replacing license text - - api/ - boinc_api.C,h - -David July 15 2003 - - project-specific files are now kept in separate repositories - - html_user/ - project_ap.inc (removed) - project_specific_prefs_ap.inc (removed) - -Karl 2003/07/18 - - created make_project script - - split test/boinc.py into test-specific and project-creation - - made everything work if build dir != src dir - - configure.ac - - py/ (added) - Makefile.am - boinc.py - version.py.in - - test/ - boinc.py (removed) - test_*.py - - tools/ - make_project (added) - -Karl 2003/07/22 - fixed 'debug assertion failure'. Release 1.05. - - Client/* - - updated database schema - db/*, test/*, py/* - -Karl 2003/07/24 - fixed dll problem. Added language.ini files from - http://www.boinc.dk/index.php?page=download_languages. - - Release 1.06. - -David July 24 2003 - - added code to check integrity of client data structures - - client/ - client_state.C,h - -Karl 2003/07/24 - fixed bugs with file_info->pers_file_info->file_info and stderr.txt - reading - - release 1.07. - - client/* - -Karl 2003/07/25 - added client_version_num (e.g. 105) field to RESULT table - - New tools/update_core_client_versions script that scans apps/ for client - versions and updates the database - - improved start/stop program - - added "run benchmarks now" File menu command, and display results. - - Fixed global preferences not being updated to/from client because of - parse bug. - - db/* - sched/* - py/* - tools/* - client/* - -Karl 2003/07/27 - fixed bug in timeout_check if WU has no results - sched/timeout_check.C - -Karl 2003/07/28 - - fixed "work between X:00 and Y:00" prefs/xml bug - - added idle_time_to_run and run_if_user_active checking - - changed country "none" to "none or international" - - show "Suspended" in GUI if suspended. Preliminary work to cleanup - files,transfers - - fixed "platform '%s' not found" not found \n bug - - show "preferences updated" for global and project prefs - - html_user/* - client/* - sched/* - -Karl 2003/07/29 - - GUI: right clicking sets list item focus - - added right click -> retry transfer now - - client/* - client/win/* - -David July 29 2003 - - allow scheduler RPCs while client is suspended - - when suspend client, stop all PERS_FILE_XFERs, - close the associated sockets and FILE*s - and delete the FILE_XFER objects - - cleaned up suspend/resume logic a bit; - check_suspend_activities() now just checks, - a separate function suspend_activities() does the suspending - - don't start new FILE_XFERS while suspended - - show message when restarting a result - - client/ - app.C - client_state.C,h - cs_apps.C - cs_files.C - file_xfer.h - http.C - net_xfer.C - pers_file_xfer.C,h - win/ - wingui_mainwindow.cpp - doc/ - index.html - old_news.html - -Karl 2003/07/30-31 - - translations: refactored translation functions; added dynamic project - menu item; added missing translations for dialogs and menu - items. Updated translation template and fixed '\r's. - - file & status bar menus: 'force run' / 'run based on preferences' / - 'pause' (as radio checks) - - file menu: 'Hide' - - show reason for Unrecoverable error in user output - - Client/* - client/win/* - client/translations/* - -Karl 2003/07/31 - - fixed screensaver "freezing" (on blanking) bug - - client/ss_logic.C, win/* - -Karl 2003/07/31 - - fixed astropulse memory leak - - astropulse/client/* - -Karl 2003/08/01 - - if a file to download exists already and signature and checksum match, - skip downloading it. - - when running benchmarks say pausing computation, and "run always / run - never" works correctly with benchmarks - - Client/* - -David August 1 2003 - - add "-suspend" cmdline option (start up in suspended mode) - - parse tag within element - - implement behavior for "optional" file references - (if file hasn't been downloaded by deadline, start app anyway) - - client/ - client_state.C - client_types.C,h - cs_apps.C - cs_scheduler.C - -David Aug 1 2003 - - global_prefs.disk_interval doesn't apply to writing the state file - (only to application checkpointing) - - client/ - client_state.C,h - -David Aug 1 2003 - - use _exit() instead of exit() on execv failure - - garbage_collect() and update_results() even if suspended - - client/ - app.C - client_state.C - -Karl 2003/08/01 - - increased MAX_APP_VERSIONS from 100 to 500 - sched/* - -Karl 2003/08/01 - - fixed \n s in client messages - client/* - -Karl 2003/08/01 - Release BOINC 1.09, Astropulse 1.09 - -Karl 2003/08/04 - Astropulse: Fixed windows \r\n translation bug - - release Astropulse 1.10. - -Karl 2003/08/04 - Show release date and "new" on download page. - Fixed date_str and changed format of timestamps to be sortable. - Remodelling html_ops view. - - Html_user/* - html_ops/* - -Karl 2003/08/05 - Fixed Astropulse checkpoint-resume crash bugs: save relevant state - variables. In the process got rid of single-letter variables and - refactored some code. - - Astropulse/client/* - - Release Astropulse 1.11. - -Karl 2003/08/06 - Fixed time stats calculation - changed integer division to FP division. - - Client/time_stats.C - -David Aug 7 2003 - - use "%e" instead of "%f" in database printfs; avoid roundoff errors - - let users browse info about their results, - e.g. to see other results for the same WU - - db/ - boinc_db.C - html_user/ - explain_state.php (new) - login_action.php - results_host.php - workunit.php (new) - -Karl 2003/08/07 - - client: Start tasks in order of earliest report_deadline. - - added next_result_to_start() - - client: don't report a result until 6 hours before report_deadline - (or other reason to contact scheduler) - - scheduler: Send report deadline - - client GUI: added 'report deadline' column. Rewrote column-order - profile code. - - client/ - client_state.h - cs_apps.C - cs_scheduler.C - win/* - - sched/ - handle_request.C - -Karl 2003/08/08 - - fixed bug with timeout_check not noticing old wu error_mask, generating - new result and then marking WU as FILE_DELETE_READY. - - Sched/timeout_check.C - -Karl 2003/08/08 - - changed team disbanding to happen automatically when user quits it (or - joins a different team). - - fixed various bugs and quirks in team - joining/quitting/switching/removing inactive users - - Html_user/* - -Karl 2003/08/08 - - client: take into account active_frac and n_cpus when requesting work. - - removed vestigial host_info variables {active,on,connected}_frac. - - server: take into account delay_bound, active_frac and n_cpus when - checking WU feasibility - - client/* - sched/* - -Karl 2003/08/10 - - client (unix): handle fork() failure - - client (unix): set application process priority to 19 - - configure.ac - config.h.in - client/ - app.C - -Karl 2003/08/10 - - client: show platform name on startup - client/ - client_state.C - -Karl 2003/08/10 - - timeout_check: change 'random' for new results (!) - - moved lrand48() and init code from create_result() to - result.insert() - - tools/ - backend_lib.C - - db/ - boinc_db.C - boinc_db.h - -Karl 2003/08/11 - - astropulse: change delay_bound from 2 days to 14 days - - astropulse: validator fixes - - allow broken results (file not found) instead of crashing - - misc fixes - - astropulse/result/* - -Karl 2003/08/12 - - client: take into account active_task's fraction_done when calculating - seconds of work needed - - client: completion time estimate fixes - - client/ - app.[Ch] - client_state.[Ch] - cs_scheduler.C - client/win/ - wingui_mainwindow.cpp - -Karl 2003/08/12 - - Astropulse: changed timeout_check_time to time(0)+delay_bound instead - of time(0)+1day - - Astropulse: rsc_fpops calculation: reduced fudge factor by 3 - - Astropulse/split/pulse_split.C - -Karl 2003/08/12 - - scheduler: if a result is received while already in - RESULT_SERVER_STATE_OVER, don't immediately mark it FILE_DELETE_READY. - we shouldn't delete the file yet because we could potentially still - check it against the canonical result (if its result hasn't been deleted - yet). - - sched/ - handle_request.C - -Chrisz 2003/8/13 - - if get either new global prefs OR new venue, - parse and install prefs - - client/ - cs_scheduler.C - -Karl 2003/08/13 - - validator: use SQL queries instead of 'if' statements - - validator: fixed bug where UNSENT results don't get marked DIDNT_NEED - - sched/ - validate.C - -Karl 2003/08/13 - - applied FreeBSD patch & misc fixes - - configure.ac - m4/ - acx_pthread.m4 - client/ - hostinfo_unix.C - lib/ - filesys.C - shmem.C - - _autosetup - aclocal.m4 - - - -Karl 2003/08/13 - - test script fixes: increase delay_bound to reasonable value since it's - now checked by handle_request - - test/ - testbase.py - test_uc.py - -Karl 2003/08/13 - - create validation routines which generalize what used to be - validate_test, but more efficiently and safer (from buffer overruns and - allows NULL character in files). Rewrote validate_test using this, and - created validate_trivial which grants credit to all results. - - more greppability - - Sched/ - Makefile.am - validate.C - validate_test.C - validate_trivial.C (new) - validate_trivial.h (new) - validate_util.C (new) - validate_util.h (new) - -Karl 2003/08/13 - - added '-return_results_immediately' flag to client to allow it to - ignore the report deadline when deciding when to report a result - (mainly for testing) - - client/ - cs_scheduler.C - client_state.C - client_state.h - -Karl 2003/08/14 - - Astropulse: created autoconf and automake files - - Astropulse: if output file doesn't exist yet when opening, write a - version number. - - scheduler: renamed config.h to sched_config.h to avoid conflict with - default autoconf config.h - - api: added MFILE::ftell() function - - cleaned up boinc configure/makefiles - - Astropulse/ - configure.ac, configure (added) - _autosetup, aclocal.m4, config.h.in (added) - depcomp, install-sh, missing, mkinstalldirs (added) - */Makefile.am, */Makefile.in (added) - */Makefile (removed) - client/ - ap_file_io.C - - sched/ - config.h ->renamed-> sched_config.h - *.C - api/ - boinc_api.h - mfile.C - - -Karl,Dave 2003/08/14 - - - rewriting scheduler - - tagged old code as SCHEDULER_V1 - - sched/ - -Karl 2003/08/15 - - sched: added explanatory messages to file_upload_handler errors - - sched/ - file_upload_handler.C - -Karl 2003/08/15 - - db_dump: added core_versions.xml; simplified - - sched/ - db_dump.C - -David Aug 15 2003 - - revised backend logic - This fixes some bugs and inefficiencies (I hope) - Redundancy parameters are now part of workunit DB records - - TODO: update test scripts to reflect these changes; debug - - db/ - boinc_db.C,h - constraints.sql - schema.sql - sched/ - assimilate_handler.C - assimilator.C - handle_request.C - main.h - timeout_check.C - validate.C - tools/ - backend_lib.C,h - create_work.C - -David Aug 15 2003 - - changed "timeout_check" to "transitioner" - -David Aug 15 2003 - - changed logic so that create_work doesn't create any results; - this is left to the transitioner, since it does this anyway. - This required adding a result_template field to the workunit table, - which is the original result template macro-substituted - with the upload URL - - db/ - boinc_db.C,h - schema.sql - sched/ - make_work.C - transitioner.C - tools/ - backend_lib.C,h - process_result_template.C - - -Chrisz 2003/8/15 - - first init preference then parse command line - - client/win/ - wingui_mainwindow.cpp - -Eric K 8/15/2003 - - Prefaced transform() with std:: to get util.C to compile under windows. - api/util.C - - -Karl 2003/08/18 - - scheduler bug fixes - - test system update - - astropulse: - - updated scheduler code - - rewrote validator - - created autoconf system to check host so that we can have separate - settings on kodos test project - - sched/ - transitioner.C - make_work.C - lib/ - backend_lib.C - - py/boinc.py - test/*.py - - astropulse/*/*.C - -Karl 2003/08/19 - - misc test case updates - -Karl 2003/08/20 - - changed 'active_frac' initial assumption to "on" instead of the current - state - - client/ - time_stats.C - -Chrisz 2003/08/20 - - make progress and size on GUI keep old values when suspend during downloading - - client/ - http.C - client/win - wingui_mainwindow.cpp - -Karl 2003/08/20 - - rewrote header parsing to be more robust: - - allow for header to not have to be a single TCP message - - parse line-by-line instead of full-header strstr for efficiency - - compare header names case insensitively - - test scripts: no longer need apache or any environment variables. - - client/ - http.C - http.h - account.C - lib/ - util.C - util.h - - test/ - cgiserver.py (added) - fake_php.py (added) - miniserv.pl (removed) - testbase.py - -Karl 2003/08/21 - - changed 'standalone' mode from a compile-time option to a run-time - option - - boinc_init() takes optional bool parameter which is true if - standalone (app has to parse this from argv or however it wants) - - api/ - boinc_api.C - boinc_api.h - windows_opengl.C - -David Aug 21 2003 - - added administrative function for adding accounts - (even if account creation is disabled in config) - - html_ops can now refer to project-specific stuff (e.g. PROJECT) - - removed include of db.inc in html_user/util.inc. - This lets you use util.inc from html_ops - - html_ops/ - create_account_form.php (new) - create_acction_action.php (new) - -Karl 2003/08/21 - - various website and documentation fixes and updates - - - - doc/* - tools/ - update_versions - -Karl,ChrisZ 2003/08/21 - - changed url_encode_readable from '%zz' to '_' - - lib/ - util.C - -Chrisz 2003/08/25 - - changed _url_to_filename from nonalnum to '_' - - py/ - boinc.py - -Karl 2003/08/28 - - rewrote all documentation related to software prerequisites and - build system, and compiling server and clients - - doc/ - boinc_dev.php - build_client.php (new) - build_client_mac.php (new) - build_client_unix.php (new) - build_client_win.php (new) - build_server.php - build_system.php - build.txt (removed) - create_project.php - single_host_server.php - software.php (new) - -David Aug 30 2003 - - split db_base.C off from boinc_db.C - (it's the class DB_BASE that supports MySQL access, - independent of the BOINC database) - - db/ - db_base.C,h (new) - -David Sept 1 2003 - - Client: keep error messages about failed file transfers - in the FILE_INFO object (and save them in client_state.xml), - so that they can be reported to server. - - client/ - client_state.C,h - client_types.C,h - file_xfer.C,h - net_xfer.C - pers_file_xfer.C - -David Sept 1 2003 - - Client: project reset wasn't working in cmdline version - if there was an active task - (because kill_task() blindly sends a KILL signal, - even though no process has been started yet so the PID is zero, - which just kills the core client) - - Correctly print command-line options - - client/ - app.C - client_state.C - doc/ - client.php - -David Sept 2 2003 - - changed tools (create_work, add) to use config.xml if it's present - (reduces number of command-line args) - - renamed config.h to sched_config.h - - renamed tools/add to add.py (to avoid confusion with binary) - - sched/ - Makefile.am - sched_config.h (renamed from config.h) - *.C - tools/ - Makefile.am - add.py (renamed from add) - add.C - create_work.C - -David Sept 2 2003 - - fix omissions in parsing of general prefs - - show which set of general prefs was actually used - - client/ - prefs.C,h - -Karl 2003/08/25 - 2003/09/02 - - created python database modules - - created sign_executable C program which factors out key signing from - add.C for python use - - tools/ - Makefile.am - add.py (added) - sign_executable.C (added) - backend_lib.C - backend_lib.h - lib/ - crypt.C - crypt.h - py/ - boinc_db.py (added) - db_mid.py (added) - database.py (added) - Makefile.am - - -Karl 2003/09/02 - - temporarily remove satellite test cases from 'make check' - - check MySQL setup in test_sanity - - test/ - Makefile.am - test_sanity.py - -Korpela 2003/09/02 - Added lib/std_fixes.h which is used to add missing functions/templates - to the standard namespace. Used in SETI@home, but probably has wider - application, so I moved it to BOINC. - -Korpela 2003/09/03 - - Added OpenGL header check to configure.ac - - Changed gutil.C to use OpenGL header paths found by configure. - - api/gutil.C - configure.ac - -David Sept 3 2003 - - Changed the way a WU's resources usage is described. - There are now separate estimates and bounds for FP ops. - Nothing about integer ops. - Disk and memory numbers are bounds. - - This changes the client/server RPC format and the DB format, - so it will require a major version number increment - - client/ - app.C - client_state.C - client_types.C,h - http.C - net_xfer.C - db/ - boinc_db.C,h - schema.sql - lib/ - crypt.C,h - sched/ - handle_request.C - test/ - test_rsc.py - testbase.py - tools/ - create_work.C - -quarl 2003/09/03 - - overhauled python scripts - - reorganized directory structure. Now 'modules' are under - boinc/py/Boinc (so you can do "from Boinc import *"). - - - all python scripts can run from anywhere - - - start and add.py know where config.xml and run_state.xml are - (customizable too) - - - finished database.py and add.py - - - configure runs test/test_sanity.py - - - wrote extensive documentation for python framework and tools; revised - other documentation - - py/Boinc/ (added entire tree) - Makefile.am - __init__.py - boinc_db.py - boinc_path_config.py.in - configxml.py - database.py - db_def_to_py - db_mid.py - setup_project.py (this used to be py/boinc.py) - util.py - version.py.in - test/ - testbase.py - tools/ - add.py - sched/ - start - */Makefile.am - configure.ac - - doc/ - python.php (added) - software.php - test.php - tools.php (added) - tool_add.php (added) - tool_start.php (added) - tool_update_versions.php (added) - tools_other.php - single_host_server.php - create_project.php - -David Sept 4 2003 - - fix bug in scheduler: the buffer in insert_wu_tags() wasn't large enough. - This is a powerful argument in favor of using "string" everywhere! - NOTE: in spite of fix, test_uc.py isn't working. Problem w/ proxy? - - HTTP_OP_SET::poll(): if header read_reply() returns nonzero, - set htp->io_ready to false (to avoid lots and lots of spurious recv()s) - - in test scripts: if TEST_STOP_BEFORE_RUN is set, - go into sleep loop rather than exiting - (to avoid deleting the test setup) - - factor out get_socket_error() - - client/ - client_state.C - cs_scheduler.C - http.C - main.C - net_xfer.C,h - scheduler_op.C - sched/ - handle_request.C - main.C - test/ - testbase.py - -David Sept 5 2003 - - changed DB interface to make it possible for an application - to use different MySQL databases at the same time. - A new class DB_CONN represents a connection to a database. - Old functions like boinc_db_open() etc. are members of this class. - The connection to the BOINC database is represented by - by a global object "boinc_db" of this class. - You're free to have others - (e.g. "app_db" in the work gen or assimilator for an app) - - db/ - boinc_db.C,h - db_base.C,h - html_ops/ - db_ops.php - sched/ - *.C - -Karl 2003/09/05 - - restructured application add system; rewrote update_versions: - - applications now go in /APPLICATION/ - - update_versions checks for all versions of core client and all - applications, regardless of package version - - py/Boinc/ - configxml.py - database.py - db_mid.py - tools.py (new) - - tools/ - add.py - update_versions - - - renamed add.C output to old_add and renamed add.py to add - - tools/ - Makefile.am - add.py -> add (renamed) - - - - astropulse: use a protocol version number separate of the astropulse - client version - - astropulse/client/ - *.C - - - misc. Win32 fixes - api/ - boinc_api.C - guitl.C - -Karl 2003/09/05 - - created COBBLESTONE_FACTOR variable and changed it from 1/3 to 100. - - fixed superfluous authenticator in cgi.log - - Sched/ - handle_request.C - -David Sept 6 2003 - - fixed bug where do_select wasn't sleeping - when there are no fds (doh!!) - - client/ - net_xfer.C,h - lib/ - util.C - -Karl 2003/09/07 - - working on python code: - - database back end: - - database objects are now weakly hashed, with a cached list of - size 1024. - - new count() methods with arbitrary arguments like find() - - misc. bug fixes - - - make_project and setup_project modify database directly instead of - calling old_add - - - make_project doesn't add platform, app, or app_version - -Karl 2003/09/07 - - changed all user-visible cobblestone numbers to use a new - format_credit() function which does sprintf %.3f - - - allow sorting top_{team,user,host}s.php by either expavg_credit or - total_credit (default expavg_credit) - - html_user/*.php, *.inc - - - changed "Results uploaded" to "Outputs uploaded" - - client/ - gui_titles.C - - - use rsc_fpops_bound instead of rsc_fpops_est*2 - - client/ - app.C - client_types.C - -Karl 2003/09/10 - - fixed transitioner bug where canonical result output files got deleted. - - changed all forms of "DB_RESULT result = results[I]" to "DB_RESULTS& - result = results[I]" - - Sched/ - transitioner.C - -David Sept 11 2003 - - transitioner: set file delete state to READY only if it's currently INIT - This should make file_deleter more efficient, - because each WU/result is file-deleted only once. - Also means that unlink()s should always succeed - - file deleter: print retval of unlink() (should always be zero) - - sched/ - file_deleter.C - transitioner.C - -Karl 2003/09/15 - - fixed transitioner bug where usage of `unsigned int' instead of signed - int caused 400k results to be generated. - - Sched/ - transitioner.C - -Eric K. 16-Sep-2003 - - added "const" qualifiers to prototype for create_work and some others - where appropriate. I didn't fix all the API routines where parameters - should be const. Using C++ makes it important to get these right. - - tools/backend_lib.[Ch] - tools/create_work.C - tools/process_result_template.C - -Jeff 2003/09/17 - No code changes. This is the branch point for the seti beta. The tag is: - - setiathome-4.xx_all_platforms_beta - - for both seti_boinc and boinc. They both make on solaris without serious - error and the resulting seti client links without error with the resulting - boinc libs. - -Karl,Eric Heien 2003/09/18 - - fixed some pre-ANSI C - sched/ - transitioner.C - tools/ - create_work.C - -David Sept 21 2003 - - Added mechanism for marking results as COULDNT_SEND: - When the scheduler finds that a result is infeasible - for a host, it increments the "infeasible_count" in the work array. - When the feeder finds that too many results in the array - have nonzero infeasible_count, it marks some of them - as COULDNT_SEND and removes them from the array - - db/ - boinc_db.h - sched/ - feeder.C - handle_request.C - sched_shmem.h - -David Sept 21 2003 - - Partly debugged the above changes: - - The feeder's result enumeration should have no limit; - otherwise it may enumerate the same results over and over - - If the infeasible_count of a result a threshold (MAX_INFEASIBLE_COUNT) - the feeder marks it as couldnt_send. - This prevents a situation where results sit in the work array - forever, their infeasible_count approaching infinity - - Added show_shmem to sched/ Makefile, and fleshed it out a bit - - Show hostID correctly when get RPC from wrong major version - - NOTE: still haven't exercised the case where a result is marked COULDNT_SEND - - sched/ - Makefile.am - feeder.C - handle_request.C - show_shmem.C - -Eric K 9/22/03 - - Modified DB_CONN::open() to support "db_name@host" syntax for remote - database connections. - - db/db_base.C - -David Sept 23 2003 - - Don't reference-count WUs for results that are ready to report - (since don't need their input files anymore) - NOTE: this means that RESULT.wup may be zero. - Much check before dereferencing. - - Changed "ready_to_ack" to "ready_to_report" - (Ack is server->client, not client->server) - - Changed "server_ack" to "got_server_ack" - - Moved CLIENT_STATE integrity-check code to a new file (check_state.C) - In general it would be nice to move stuff out of client_state.C; - It's a hodge-podge currently - - client/ - Makefile.am - client_state.h - client_types.C,h - cs_scheduler.C - check_state.C (new) - -Eric K 9/24/03 - - Create an XML entity encoder/decoder for single byte entities. In new - files lib/xml_util.[Ch]. Encoder will make the following translations. - '>' => ">" - '<' => "<" - '&' => "&" - "'" => "'" - '"' => """ - other unprintable -> "&#nnnd;" - The decoder recognizes a larger number of translations for single byte - entities found in XML/HTML. - - Added check for header to configure scripts. - (Used by xml_util.[Ch] if found). - - lib/xml_util.[Ch] - lib/Makefile.am - configure.ac - -David Sept 27 2003 - - add app_name to APP_INIT_DATA structure - (so that an app can know its own name, - and in particular so that we can use it to title its window) - - api/ - boinc_api.h - windows_opengl.C - client/ - app.C - lib/ - app_ipc.C,h - -David Sept 27 2003 - - added a program "wu_check" that sees whether input files - of unsent or in-progress results are actually on disk - - sched/ - Makefile.am - wu_check.C (new) - -Eric K Sept 29 2003 - - Fixed bug that cause a encoded null to be appended to strings in - xml_encode() - - lib/xml_util.C - -Karl 2003/09/28 - - python work - - py/Boinc/ - database.py - setup_project.py - tools/ - dbcheck_files_exist - -David Sept 30 2003 - - Core client: if get 404 error (not found) when downloading file, - treat it as permanent error. - (not tested) - - api/ - boinc_api.C,h - client/ - file_xfer.C,h - http.C,h - pers_file_xfer.C - lib/ - error_numbers.h - - -David Sept 30 2003 - - Move graphics-related code from boinc_api.C to graphics_api.C - - Don't use the preprocessor symbol BOINC_APP_GRAPHICS in api/ - - api/ - boinc_api.C - graphics_api.C,h - windows_opengl.C - x_opengl.h - apps/ - upper_case.C - -David Sept 30 2003 - - Undid checkin of 9/23. Reference count all WUs, - and can assume that result->wup is always valid. - I can't remember why we did this, but it creates too many problems. - - in Windows GUI, if a result had an error in download or upload, - display status as "Download failed" instead of "Download" etc. - - client/ - client_state.C - cs_scheduler.C - win/wingui_mainwindow.cpp - - -Eric Oct 1 2003 11:15 am - - Fixed compile problems on solaris. - - redid graphics_api.h entirely. C'mon people we use automake for a - reason. Use the macros in config.h! - - Moved OpenGL and header and library finding to a macro file - sah_grx.m4 (an identical macro file exists in seti_boinc) - - Will verify it works on windows in the next hour or so - - Makefile.in - aclocal.m4 - config.h.in - configure - configure.ac - graphics_api.C - graphics_api.h - m4/sah_grx.m4 - -David Oct 2 2003 - - Added code to limit frame rate in either or both of two ways: - 1) max frames per second - 2) upper bound on rendering CPU time as a fraction or real time - NOTE: currently these limits are hardware in the code. - Need to put them in preferences. - - api/ - graphics_api.C,h - windows_opengl.C - -Eric Oct 2 2003 - - -moved xml_indent() from seti_boinc/db/sqlrow.[cpp,h] to i - boinc/lib/xml_util.[C,h] - -fixed problems with graphics_api.h - - api/graphics_api.h - lib/xml_util.[Ch] - -Karl 2003/10/02 - - rewrote make_project and related; a lot of restructuring: - - - make_project only creates the project and database but doesn't add - platform, app, app_version, or core_version. Use `add' for these. - - database actions are through MySQLdb, removing need for mysql client - binary. - - tools/ - make_project - add - update_versions - upgrade (new) - py/Boinc/ - configxml.py - database.py - setup_project.py - tools.py - test/ - testbase.py - test_uc.py - sched/ - boinc_config.py (removed) - db/ - constraints.sql - doc/ - single_host_server.php - -Karl 2003/10/02 - - made C parsing of config.xml more flexible (allow multiple tags per - line or tags on multiple lines) - - made config.xml and run_state.xml pretty - - sched/ - sched_config.C - sched_config.h - lib/ - parse.C - parse.h - - py/ - configxml.py - -David Oct 4 2003 - - throttled_app_render() returns true iff it rendered anything. - This lets the caller do swapbuffers only if needed - - app_render() now returns void - - added functions that read graphics files (JPEG, PPM, BMP, TGA) - and create textures (moved from SETI@home) - - api/ - graphics_api.C,h - gutil.C,h - windows_opengl.C - lib/ - xml_util.C - -David Oct 6 2003 - - Created class MOVING_TEXT_PANEL (in boinc/api/gutil.h) - to do Astropulse-type text display - - Created class TEXTURE_DESC (same place) - to represent an OpenGL texture (including its ID and size). - - Modify draw_texture() to not change the aspect ratio of the picture; - it shrinks the image in one dimension or the other, and centers - it in the allotted space - - Add a GRAPH_DRAW_STYLE field to REDUCED_ARRAY - - Eliminate methods of REDUCED_ARRAY that take a style argument - - api/ - graphics_api.C - gutil.C,h - reduce.C,h - -Karl 2003/10/06 - - client release 2.04 - -Karl 2003/10/06 - - transitioner: log every state transition, and check return value for - every update() - - sched/ - transitioner.C - -David Oct 6 2003 - - Don't send two results from the same WU in a single RPC - Note: this is a weak but possibly sufficient step towards not sending - multiple results from the same WU to one user. - - Scheduler: before updating a result, reread it from the database. - What's in shared memory may be way out of date. - E.g. it may no longer be in server state UNSENT. - Hopefully this fixes the missing-input-file bug!! - - sched/ - handle_request.C - -David Oct 6 2003 - - added "repair" option to wu_check - - sched/ - wu_check.C - -David Oct 8 2003 - - added "present" flag to TEXTURE_DESC - - fixed function names: - double_to_ydhms() -> ndays_to_string() - get_byte_string -> nbytes_to_string() - - api/ - boinc_api.C - gutil.C,h - client/ - win/ - wingui_mainwindow.cpp - wingui_piecectrl.cpp - lib/ - util.C,h - -David Oct 8 2003 - - add low-detail option to WU display - - html_ops/ - db_action.php - db_form.php - db_ops.php - -Oliver Oct 8 2003 - - fixed reduced graph display - - fixed opengl resize bug - /api/ - recuce.c - gutil.c - windows_opengl.c - -David Oct 8 2003 - - made draw, CreateTextureJPG etc. into member functions of TEXTURE_DESC - - added xalign, yalign args to TEXTURE_DESC::draw() - - attempted to turn off rendering when window is hidden (don't think I succeeded) - - api/ - gutil.C,h - windows_opengl.C - -Oliver Oct 9 2003 - - fixed error handling when jpeglib fails - api/ - gutil.C - -Karl 2003/10/08 - - tests: fixed bug re user global prefs - - tests: fixed checking of result outputs - - tests: fixed min_quorum=2 bug - - py/ - setup_project.py - test/ - testbase.py - test_uc.py - - - transitioner: fixed bug in sscan_hex_data() with \r or other whitespace - - transitioner: log more - - file_upload_handler: log more - - lib/ - crypt.C - sched/ - file_upload_handler.C - transitioner.C - -David Oct 10 2003 - - made STARFIELD CLASS - - implement tickmarks for RIBBON_GRAPH - - api/ - gutil.C,h - -David Oct 10 2003 - - various web stuff - - "-repair" option for wu_check - - html_ops/ - db_action.php - db_form.ph - db_ops.inc - html_user/ - white.css, black.css (new) - -Oliver Oct 10 2003 - - fixed surface drawing bug - - fixed jpeg loading bug - - updated primitives (progress bar. etc.) to have public pos field - - api/ - gutil.c,h - graphics_api.c - reduce.c - windows_opengl.c - -Karl 2003/10/11 - - Astropulse: output in index by samples, rather than bytes + fft bin; - - indicate that output is finished; also make it valid XML - - fixed BOINC graphics api header problems with autoconf - - Astropulse/client/ - ap_client_main.C - ap_fileio.C - ap_params.h - Astropulse/m4/ - sah_grx.m4 - - - BOINC: fixed make distcheck problem - - sched/ - Makefile.am - -David Oct 12 2003 - - add "Confirm before accept executable" flag to global prefs - - Implement said flag in cmdline client: - - add "approval_pending" flag to FILE_INFO - - don't count a file as present if it has approval pending - - set approval pending flag on new exec files if - "confirm_executable" is set in global prefs - - TODO: implement in Win GUI; IMPORTANT!! - - client/ - client_state.C,h - client_types.C,h - cs_apps.C - cs_files.C - main.C - prefs_file_xfer.C - html_user/ - prefs.inc - white.css - -Karl 2003-10-13 - - removed some graphics stuff from non-graphics files. Split graphics - source files into separate library libboinc_graphics_api.a - - api/ - boinc_api.C - lib/ - Makefile.am - api/ - Makefile.am - -Oliver Oct 13 2003 - - stars now draw in visible pyramid - - api/ - gutil.C,h - - -David Oct 14 2003 - - don't call boinc_finish_opengl() in boinc_finish()!! - - max frame rate and max graphics CPU are accessible to app - (via global variables boinc_max_fps and boinc_max_gfx_cpu_frac) - - in windows_opengl.C, moved InitGL() and app_init_gl() calls - from SetMode() to start of win_graphics_event_loop() - (just want to call these once, right?) - - in windows_opengl.C: if in standalone mode and get WM_CLOSE event, - actually exit (makes debugging easier). - - api/ - boinc_api.C - graphics_api.C,h - gutil.C - windows_opengl.C - -Oliver Oct 14 2003 - - stars now draw in visible pyramid with original coordinate system - - axis draws vertices in correct CCW order - - added font width function - - api/ - gutil.C,h - reduce.c - windows_opengl.C - -David Oct 14 2003 - - extended MOVING_TEXT_PANEL interface to let you draw text on - particular line numbers, - and get the coords the start of a line number - - api/ - gutil.C,h - -Karl 2003-10-14 - - makefiles: - - fixed some issues when building outside of source tree - - fixed some missing 'make dist' files - - fixed "ln -s start stop" bug - - */Makefile.am - -Karl 2003-10-14 - - replaced C country_select program with a php function - - replaced "None or International" with "None" and "International" - - lib/ - countries.C (removed) - Makefile.am - - tools/ - country_select.C (removed) - Makefile.am - - html_user/ - countries.inc (added) - util.inc - -Karl 2003-10-14 - - added Rank column to top users; made presentation consistent for top - teams/users/hosts - - - show number of results valid, successful, total (instead of just total) - - html_user/ - top_teams.php - top_users.php - top_hosts.php - team.inc - user.inc - host.inc - -David 15 Oct 2003 - - if user rejects executable, mark result as failed (not tested) - - client/ - cs_apps.C - main.C - doc/ - graphics.php - lib/ - error_numbers.h - -David 16 Oct 2003 - - add "userid" to result table - - send at most one result per WU per user - NOTE: since this change breaks test_uc.py and other tests, - it's enabled by a tag in the config file; - make sure this is present in production projects - - db/ - boinc_db.C,h - schema.sql - constraints.sql - sched/ - handle_request.C - -David 16 Oct 2003 - - moved client/win/windows_cpp.h to client/cpp.h, - since it's included (and needed) in UNIX as well as Windows - -Oliver 16 Oct 2003 - - Implemented scaling factor to center objects - - Fixed starfields - - Right justified text - - api/ - graphics_api.C - gutil.C,h - windows_opengl.C - -Karl 2003-10-16 - - updated python database API with new workunit.userid field - - - refactored database.py into db_base.py and merged in changes from - CourseSurvey system - - improved object caching and implemented lazy lookup of relational - objects; database-heavy python programs should now be much faster - - - added to - config.XML in make_project (but not testbase) - - py/Boinc/ - db_base.py (new) - database.py - setup_project.py - test/ - testbase.py - -David 17 Oct 2003 - - db_base::lookup() returns an error if >1 rows satisfy the query - - return #defined error numbers in db_base.C - - add more info to CGI log entries - - db/ - db_base.C - lib/ - error_numbers.h - sched/ - handle_request.C - -Oliver 17 Oct 2003 - - small label coord tweak - api/ - reduce.c - -David 18 Oct 2003 - - factored some code out of client_state.C into new files - - client/ - client_state.C,h - cs_account.C,h (renamed from account.C,h) - cs_benchmark.C (new) - cs_prefs.C (new) - cs_statefile.C (new) - main.C - maybe_gui.h (removed) - -David 18 Oct 2003 - - When reset (or detach from) a process, wait for running applications to exit - before doing other things (e.g., deleting files, - which will fail if processes have them open) - Implementation: exit_tasks() etc. now take a PROJECT* arg - - When a master file fetch fails on a tentative project (e.g. bad URL) - avoid a situation where we remove the HTTP_OP, - then detach_project() tries to remove it a second time - - print messages when reset/detach - - client/ - app.C,h - client_state.C,h - prefs.C - scheduler_op.C - win/ - wingui.h - -David 19 Oct 2003 - - fixed file names - - client/ - speed_stats.C,h (old) - cpu_benchmark.C,h (new) - -Karl 2003-10-19 - - maybe fixed "screensaver blanks immediately" bug due to uninitialized - variable - - if blank time is <=0 or unset: don't blank (instead of blanking - immediately). - - client/win/ - wingui_mainwindow.cpp - -David 20 Oct 2003 - - fixed bug that prevented screensaver from launching core client - - win_screensaver.cpp - -Karl 2003-10-20 - - BOINC client release 2.05 - - added glut32.dll to BOINC distribution - -David 20 Oct 2003 - - replace return -1's with error codes - - client/ - app.C - cs_benchmark.C - hostinfo.C - net_xfer.C - lib/ - app_ipc.C - crypt.C - error_numbers.h - filesys.C - md5_file.C - parse.C - shmem.C - util.C - sched/ - handle_request.C - sched_shmem.C - validate_util.C - wu_check.C - - -David 20 Oct 2003 - - changed CPU benchmark code to store all times as doubles. - This might fix the "negative fpops/sec" bug - - client/ - cpu_benchmark.C - cs_benchmark.C - -David 20 Oct 2003 - - changed overflowing integer calculation in CPU checkpoint code. - This definitely will fix the negative fpops problem - - client/ - cpu_benchmark.C,h - -Karl 2003-10-21 - - BOINC client release 2.06 - - - Astropulse client release 2.06 - - -David 22 Oct 2003 - - trunc_stderr_stdout() had a typo: it never truncated stdout.txt - - client/ - cs_files.C - -David 22 Oct 2003 - - fixed bug that caused project disk usage to be reported as zero - - Added debugging printfs (enabled by #define DEBUG) - to wingui_mainwindow.cpp. These write to C:/temp/core.txt. - - In CMyApp::InitInstance(), changed 2nd arg of CreateMutex - from false to true. This matches "1 instance" code samples from web. - Thought it might fix startup bug - no. - - Added debugging printfs (enabled by #define DEBUG) into screensaver; - causes it to write info to C:/temp/boinc_scr.txt - - Removed CREATE_NO_WINDOW and IDLE_PRIORITY flags from - CreateProcess() call in screensaver. - These aren't listed in the MSDN man page; are they needed? - - slight change to startup logic in screensaver: - - send it a BOINC_SS_START message only if it's already running - (not needed if start it ourselves, since we give it -saver arg) - - don't wait for 3 seconds after starting it - - In the cmdline passed to the core client from screensaver, - make argv[0] the real path of the executable. - Thought this might fix startup bug - no. - - Change "start_saver" to "started_by_screensaver". Truth in advertising. - - client/ - client_state.C,h - cs_cmdline.C - win/ - win_screensaver.cpp - wingui_mainwindow.cpp - lib/ - filesys.C - -David 24 Oct 2003 - - complete Bob's addition of SETI@home "grandfather" fields to DB - - db/ - boinc_db.C,h - constraints.sql - schema.sql - sched/ - handle_request.C - -Oliver 24 Oct 2003 - - updated reduced array class to contain the name of the labels. they are set when the reduced array - is created - - api/ - reduce.h,C - -David 24 Oct 2003 - - db_dump generates valid XML - - fixed bugs in boinc_db.C (team parse) - - db/ - boinc_db.C - sched/ - db_dump.C - - -Karl 2003-10-24 - - fixed missing comma typos - db/ - constraints.sql - -Karl 2003-10-25 - - client GUI: fixed context menu bug - - client/win/ - wingui_mainwindow.cpp - - -David 25 Oct 2003 - - removed code that caps backoff count at one - TODO: we still need to reexamine the backoff policy, - so that multiple file failures don't lead to huge backoffs - - moved OpenGL init calls from the start of the event loop - back to SetMode, undoing an earlier change. - Turns out the need to be in SetMode because it creates a new - window every time. - This should fix the bug that cause Astropulse to show no graphics. - TODO: make sure that when an application window is hidden, - no rendering work gets done. - - api/ - windows_opengl.C - client/ - scheduler_op.C - -Karl 2003-10-25 - - updated_versions: don't be so verbose unless "-v" verbose command-line - option is given - - if a directory contains an executable, add the first executable found, - and bundle all other files as non-executables. - - process_executable_file(): added mechanisms for adding non-executable files - - tools/ - update_versions - - py/Boinc/ - tools.py - -David 27 Oct 2003 - - Parse project-specific prefs correctly (i.e. based on venue) - These prefs are read from account files. - Account files are read before the client state file is parsed. - This presented a problem because the host venue, - which is needed to decide which project prefs to use, - is kept in the client state file. - So I added a new function, parse_venue(), that gets the - host venue from the state file; this is done before parsing account files. - - Also added element to account file so that we can - display that correctly in message about project prefs - - api/ - windows_opengl.C - client/ - client_state.C,h - client_types.C - cs_statefile.C - pers_file_xfer.h - prefs.C - -Oliver 27 Oct 2003 - - Fixed efficiency bugs in starfield - api/ - gutil.C,h - -Eric K 27 Oct 2003 - - xml_indent() is now limited to a max of 40 spaces. - - lib/ - xml_util.h - -David 27 Oct 2003 - - let users see list of all their results - - added db_dump to list of programs updated by update_project - - html_user/ - host.inc - results.php (new) - results_host.php (deleted) - user.inc - py/Boinc/ - setup_project.py - -Karl 2003-10-27 - - installshield: add "BOINC_gui -min" to startup folder - - win_build/ - boinc_installshield.zip - - - process_app_version: write tags; open_name is parsed from - disk filename 'open_name=url_filename' (url_filename is the basename of - file as copied to download/) - - print objects as they are committed (for database ID) - - tools/ - update_versions - py/Boinc/ - tools.py - - - upgrade: restart BOINC scheduler daemons automatically - - tools/ - upgrade - - - BOINC 2.07 release - - Astropulse 2.07 release (...) - - SETI@Home 2.01 release - -Karl 2003-10-27 - - fixed bug in assuming client_state.XML always exists (it doesn't, on a - clean install) - - - BOINC 2.08 release - -David 28 Oct 2003 - - login form: keyboard focus is on auth input field - html_user/ - util.inc - -Eric K 28 Oct 2003 - - for machines with sysinfo, host.p_vendor and host.p_model are now - meaningful. - - client/hostinfo_unix.C - -Karl 2003-10-28 - - added "const" to API function calls - - created "string" (as opposed to char[]) version of API function calls - - M api/boinc_api.h - M api/mfile.C - M lib/app_ipc.C - M lib/app_ipc.h - -Oliver 29 Oct 2003 - - - fixed improperly scaled logos - - api/ - gutil.C,h - - -David 28 Oct 2003 - - app library: don't access shared memory if it's not there - (should keep non-standalone version from crashing - when run in isolation) - - api/ - windows_opengl.C - -Karl 2003-10-29 - - removed test_sanity check from configure - - updated distribution file lists - - updated installation program to get rid of country_select - configure.ac - */Makefile.am - tools/ - make_project - -David 30 Oct 2003 - - On call to CreateEvent() to make "event" object for - core client to ask app to quit (Windows) - changed ManualReset argument to false. - This fixes a bug where, after resetting a project, - all apps get quit signal immediately - - Change CLIENT_STATE::report_result_error() so that it - takes a format string and varargs - - client/ - app.C - client_state.C,h - pers_file_xfer.C - -David 30 Oct 2003 - - API writes to stderr if get quit request - - Include signal numbers, error codes in messages about process exit - - api/ - boinc_api.C - client/ - app.C - client_state.C - cs_apps.C - cs_scheduler.C - -David 30 Oct 2003 - - When get new project preferences, notify (via shared-memory msg) - all running apps of that project. - New graphics prefs will take effect immediately. - - lib/ - app_ipc.C,h - client/ - app.C - -David 31 Oct 2003 - - clarified types of seti_* fields - (cpu time is double, last result time is int) - - fixed bug in project prefs that caused unbounded extraneous CRs - - db/ - boinc_db.C,h - schema.sql - html_user/ - index.php - prefs.inc - prefs.php - prefs_edit_action.php - stats.php (new) - -David 31 Oct 2003 - - Added a mechanism allowing applications to change their graphics - "on the fly" in response to new project preferences: - - Added a new message type to the - core->app graphics segment - - When the graphics framework (windows_opengl.C) gets this message, - it calls an application function app_graphics_reread_prefs(). - This function can call boinc_parse_init_data_file() (see below) - to get the new prefs - - Core client: when get new project preferences, - write new init_data.xml files for all running apps, - and send them messages. - New functions: - ACTIVE_TASK::write_app_init_file() - ACTIVE_TASK::request_reread_prefs() - ACTIVE_TASK_SET::request_reread_prefs(PROJECT*) - - name changes: - old new - boinc_init_opengl boinc_init_graphics - boinc_finish_opengl boinc_finish_graphics - app_init_gl app_graphics_init - app_render app_graphics_render - app_resize app_graphics_resize - REDUCED_ARRAY::init init_data - REDUCED_ARRAY::init_draw init_display:$ - - changed graphics objects (PROGRESS, PROGRESS2D, RIBBON_GRAPH) - to use init() functions instead of constructor for setup; - changed STARFIELD::build_stars() so that it can be called repeatedly - - factored code to read init_data.xml into a new function - boinc_parse_init_data_file() - - moved tImageJPG out of the .h file - it's not interface - - api/ - boinc_api.C,h - graphics_api.C,h - gutil.C,h - reduce.C,h - windows_opengl.C - client/ - app.C,h - cs_scheduler.C - doc/ - graphics.sxd (new) - graphics.png (new) - lib/ - app_ipc.C - parse.C,h - -David 31 Oct 2003 - - boinc_resolve_filename() (string version) - physical name defaults to virtual name - - lib/ - app_ipc.C - -David 1 Nov 2003 - - core client: when get new project prefs, - use PROJECT::parse_account_file() to extract the correct - venue-specific variant - - client/ - client_types.C,h - cs_scheduler.C - -David 2 Nov 2003 - - Changed the way that user-supplied files (e.g. logos and images) work. - OLD WAY: (see checkin by "Erik", May 19 2003) - the scheduling server scans the user's project prefs - and inserts and elements - into the element, - making it look like the user-supplied files are associated - with the app. - This necessitated the slightly kludgy "optional" - attribute of FILE_INFO, so that slow-downloading - user-supplied files wouldn't defer work indefinitely. - NEW WAY: - The scheduling server is not involved. - PROJECT now has list "user_files" of FILE_REFS - FILE_INFO now has an attribute "is_user"file" - - When parse project prefs from account file, - or when get new project preferences from server, - convert elements to entries in project.user_files - - new function ACTIVE_TASK::link_user_files() makes links - from slot dir to all user files that are present - - when the download of a user file completes, - tell running apps to reread prefs - (they'll find the user file now) - - garbage collection reference-counts user files - - got rid of "optional" mechanism - With this change, user-supplied images in graphics are updated - dynamically when the user edits prefs on web, - then does "Get Preferences" in core client - - Handling of completed file transfers moved from - PERS_FILE_XFER::poll() to CLIENT_STATE::handle_pers_file_xfers(). - (this job of PERS_FILE_XFER is to transfer the file, - not deal with its contents) - - changed benchmarks defaults from 1GFLOPs to 10MFLOPs; - prevents slow computers from being inundated with work - - api/ - gutil.C (fixed code formatting) - client/ - app.C,h - client_state.C,h - client_types.C,h - cs_account.C - cs_apps.C - cs_benchmark.C - cs_files.C - cs_scheduler.C - cs_statefile.C - pers_file_xfer.C - -David 2 Nov 2003 - - removed code in scheduling server for parsing project prefs - and inserting elements into elements - - lib/ - parse.C - sched/ - handle_request.C - server_types.C,h - -Karl 2003-11-02 - - changed GUI titles: - - "computation done" is now "computation error" - - "results uploaded" is now "ready to report" - - client/ - gui_titles.C - - - BOINC core client release 2.09 - -Karl 2003-11-03 - - - installer: ask whether BOINC should run at system startup (default yes) - - - Moved installation files from win_build/boinc_installer.zip to - win_build/installer/ - - - automate changing version numbers - - win_build/ - boinc_installer.zip (removed) - - win_build/installer/* - added (115 files) - -Karl 2003-11-04 - - trivial validator: check for a minimum CPU time - - sched/ - validate_trivial.C - -David 4 Nov 2003 - - scheduler now respects disk usage limits. - Scheduler request message now includes BOINC disk usage, - both total and for this project. - The scheduler parses user's global preferences - to get disk-related prefs, - and computes the max storage that can be used. - It will send only as many results as fit within this limit. - NOTE: this is still deficient in several ways: - - it assumes that all results will use all their storage - simultaneously. It doesn't take into account that - some results may use large storage while running, - but not before or after. - - it doesn't take into account storage that has been - committed (to this or other projects) but not yet in use. - - there's no mechanism for enforcing resource shares for storage, - or for dynamic adjustment - - print exit codes in both dec and hex - - client/ - app.C - client_state.h - cs_prefs.C - cs_scheduler.C - pers_file_xfer.C - win/ - wingui_mainwindow.cpp - sched/ - handle_request.C - server_types.C,h - -David 4 Nov 2003 - - change project file to get cmdline version to compile - (didn't test it) - - client/ - client_state.C - win/ - win_net.cpp - win_build/ - boinc_cli.dsp - boinc_gui.dsp - -David 5 Nov 2003 - - The following changes fix core client crashes that occur when - reset a project, then quickly detach from the project - while downloads are occurring. - In once instance, this produced a state file that caused - the client to crash each time it started up. - - when parse an ACTIVE_TASK in state file, - verify that the corresponding result is in the right state - (RESULT_FILES_DOWNLOADED, with got_server_ack and ready_to_report false) - - when parse a RESULT in state file, - make sure it's consistent: in particular, - if got_server_ack or ready_to_report is true, - the state must be RESULT_FILES_UPLOADED - - CLIENT_STATE::detach_project(): delete all the project's FILE_INFOs - (reset_project() doesn't do this) - - client/ - app.C - client_state.C - client_types.C - lib/ - error_numbers.h - -David 5 Nov 2003 - - improve clarity of messages about prefs - (e.g. say "your defaults" instead of just "defaults") - - client/ - client_state.C - client_types.C - prefs.C - -David 6 Nov 2003 - - cleaned up CPU time chaos - OLD: - An app measures and reports its CPU time when it calls - boinc_time_to_checkpoint(), which may be infrequent. - The reported CPU time is for the whole process - (including graphics thread: wrong) - If the core client doesn't get a message within 5 seconds, - it measures app CPU time externally, - with ACTIVE_TASK::get_cpu_time_via_os() - (this can cause reported CPU time to jump up and down). - Ambiguous function boinc_cpu_time(): does it return time for - calling thread only? time since WU start? - NEW: - An app measures and reports its CPU time every 1 sec, - from the timer interrupt. - The reported CPU time is only for the worker thread. - Replace boinc_cpu_time() with: - boinc_thread_cpu_time(): CPU time of calling thread - (also used by graphics_cpi.C to measure rendering time) - boinc_wu_cpu_time(): CPU time of WU so far (for graphics thread) - Notes: - - The app no longer needs to call boinc_time_to_checkpoint() - with any regularity - - the timer interrupt handler runs on a different thread, - so we record the worker thread handle. - - use double rather than time_t in calculation of estimated completion - - Code cleanup: - removed some declarations from boinc_api.h - (Don't declare internal functions in a .h file!) - removed using_opengl, write_frac_done - made things static that should be static - removed "externs" from .C files (SHOULD NEVER EXIST) - - api/ - boinc_api.C,h - graphics.C,h - windows_opengl.C - client/ - app.C,h - -David 6 Nov 2003 - - default value for disk_min_free_gb is now 0.1 (100 MB) - - scheduler writes detailed msg when get insufficient disk condition; - also writes explanatory msg to user - - Admin interfaces: order WUs/results by descending ID in general - - html_ops/ - db_action.php - db_form.php - db_ops.inc - index.php - html_user/ - prefs.inc - sched/ - handle_request.C - -Eric 7 Nov 2003 - - Fixed UNIX (Mac) compile problems - - api/boinc_api.C - apps/upper_case.C - -David 6 Nov 2003 (note: Eric's on the other side of the Int. Date Line) - - Fixed bug that cause CPU time to jump whenever Get Preferences. - It's because the app is getting a new aid.wu_cpu_time - as part of reread_prefs; - this is incorrectly added to the thread's CPU time. - Solution: make a copy of aid.wu_cpu_time at startup and use the copy. - - api/ - boinc_api.C - -David 7 Nov 2003 - - Added "remember authenticator" checkbox to user login - (sends cookie with 1 year expiration) - - General preferences use defined symbols so field descriptions - are same in both display and edit versions - - In admin web interface, make SQL clauses feature work - - html_ops/ - db_ops.inc - html_user/ - index.php - login_action.php - prefs.inc - util.inc - logout.php - -David 7 Nov 2003 - - Were using the wrong block size in disk size calculation - (off by a factor of 16 on Solaris) - - api/ - boinc_api.C - client/ - app.C - lib/ - filesys.C - -David 7 Nov 2003 - - In make_work, need to initialize many fields of the WU being created. - For example, if assimilate_state is not INIT, - the transitioner will not create any results for the new WU! - - html_ops/ - db_form.php - sched/ - make_work.C - -David 7 Nov 2003 - - Added const to some char* args (so can use strings) - - Removed cruft from upper_case.C - - apps/ - upper_case.C - lib/ - filesys.C,h - -Karl 2003-11-07 - - changed { 'Get preferences' , 'Retry now' } to { 'Update', 'Update - (retry now)' } - - client/win - wingui_mainwindow.cpp - -David 9 Nov 2003 - - change upper_case app so that -cpu_time actually uses - significant CPU time (36 secs on my laptop) - - core state file writes sometimes fail if another app (e.g. text editor) - has the file open. Show error code. - - don't start a scheduler RPC if we're suspended - - don't show parse error messages for empty lines in scheduler reply - - if reset a project during a scheduler RPC, set the scheduler_op state - to IDLE (else will never do another RPC) - - api/ - graphics_api.C - apps/ - upper_case.C - client/ - client_state.C - cs_scheduler.C - scheduler_op.C - lib/ - filesys.C - -Eric 10 Nov 2003 - - readded statfs support for systems that don't have statvfs (i.e. Mac) - - lib/filesys.C - -David 9 Nov 2003 - - boinc_init(): initialize last_checkpoint_cpu_time. - This is why reported CPU time would sometimes go to zero - - Upper case app: report fraction done like you're supposed to - - Write checkpoint CPU time in %.15e format. - SHOULD ALWAYS USE THIS FOR FLOATING PT NUMBERS - - released version 2.06 of upper_case in the client test project. - Also changed est FP ops in that DB so that clients get few results - - api/ - boinc_api.C - apps/ - upper_case.C - win_builc/ - upper_case.dsp - -David 10 Nov 2003 - - released versions of Astropulse (2.10) and SETI@home (2.08) for Windows. - -Karl 2003-11-11 - - compile fixes - lib/ - xml_util.C - -David 11 Nov 2003 - - added "appid" field to result (redundant copy of WU's appid) - - added index on result (appid, received_time desc) - - changed admin web interface to show recent results - broken down by application - - sched_shmem: omit app versions with wrong major version - - db/ - boinc_db.C,h - constraints.sql - schema.sql - html_ops/ - db_action.php - db_form.php - db_ops.php - index.php - html_user/ - util.inc - sched/ - sched_shmem.C - tools/ - backend_lib.C - -David 11 Nov 2003 - - modify the scheduler so that if a client requests work, - and there are unsent results, but none can be sent, - then the client gets an explanatory message: either - - no app version available - - insufficient disk - - insufficient memory - - host is too slow - This involved creating a WORK_REQ structure that gets passed - around, to avoid huge numbers of arguments - - modify the scheduler so that if either - 1) the shared-mem segment is absent or - 2) the DB can't be opened - then it writes a "project temporarily down for maintenance" - message instead of just exiting - - sched/ - handle_request.C - main.C - -David 11 Nov 2003 - - if get MD5 error, print expected and computed checksum - - client/ - cs_files.C - -David 12 Nov 2003 - - commented, cleanup up and fixed SqlQueryString (db_ops.inc) - It now correctly passes clauses in URLs, etc. - - client/ - cs_files.C - html_ops/ - db_action.php - db_ops.inc - -Karl 2003-11-17 - - BOINC release 2.10 for windows, Linux, solaris2.7, solaris2.8 - - -Karl 2003-11-20 - - updated translation files - - client/translation/ - language.ini.fr - langauge.ini.nl - -Karl 2003-11-21 - client/translation/ - langauge.ini.de - -Karl 2003-11-21 - - fixed recursive boinc_thread_cpu_time typo bug that resulted in loss of - client app functionality (bug noticed by Nuno Ferreira - ) - - api/ - boinc_api.C - - -Karl 2003-11-22 - - made change to get_filesystem_info() that reportedly is all that's - needed to get BOINC working on NT4. (fix by ) - - lib/ - filesys.C - - - accept command-line options with two dashes or one dash (instead of - only with one dash) - - if arguments are incorrect, exit after showing help - - client/ - cs_cmdline.C - - - chmod 600 the account file. - - client/ - client_types.C - -Karl 2003-11-24 - - fixed bug in boinc_db.C which causes SQL lookups to seg fault if any of - the 'seti_*' grandfather fields are NULL (how does the current beta test - run at all?!) - - db/ - boinc_db.C - - - testbase tweaks - - test/ - testbase.py - cgiserver.py - -David 25 Nov 2003 - - added host.rpc_time to DB dump - - made seti_* fields "not null" in schema - - client/ - hostinfo_unix.C - db/ - schema.sql - doc/ - db_dump.php - index.html - software.php - sched/ - db_dump.C - -David 25 Nov 2003 - - Changes to a running app's checkpoint_cpu_time - (as conveyed in shared-memory msgs) - were not triggering state file writes. - As a result the CPU time of a result was, in general, - returning to zero after a reboot. - - ACTIVE_TASK_SET::poll(): if any task's checkpoint_cpu_time has changed, - trigger a client state file write - - renamed ACTIVE_TASK_SET::get_cpu_times() -> get_status_msgs() - Also, this function now returns boolean: - whether any checkpoint_cpu_time has changed - - renamed ACTIVE_TASK::get_cpu_time_via_shmem() -> get_status_msg() - (since the message includes more than just CPU time) - - removed ACTIVE_TASK.last_status_msg_time (not used) - - factored out logic to compute frac_rate_of_change - and put it in a separate function - (ACTIVE_TASK::estimate_frac_rate_of_change()) - - print app version for results in GUI - - client/ - app.C,h - client_types.C,h - win/ - wingui_mainwindow.cpp - -Karl 2003-11-25 - - wrote release notes - doc/ - ssl_client_release_instructions.txt - -David 25 Nov 2003 - - Fixed bug that could cause a workunit to be sent to a client - without any corresponding result. - I'm not sure what happens then but it can't be good. - - Here's the deal: - OLD: - retval = add_wu_to_reply() // returns error if no app version - if (retval) continue - reread result from DB - if result.state != UNSENT continue - // if this happens, we'll send the WU but not the result - NEW: - found = find_app_version() - if (!found) continue; - reread result from DB - if result.state != UNSENT continue - add_wu_to_reply() - - sched/ - handle_request.C - -David 25 Nov 2003 - - Changed db_dump to generate valid XML. - Escape text fields as follows - & -> & - ' -> ' - " -> " - < -> < - > -> > - - sched/ - db_dump.C - -Gary 25 Nov 2003 - - BOINC release 2.11 for windows, Linux, solaris2.7, solaris2.8 - -Gary 26 Nov 2003 - - BOINC release 2.12 for windows, Linux, solaris2.7, solaris2.8 - fixes problem with windows release 2.11 installer - no change to Solaris/Linux clients - -Gary 26 Nov 2003 - - Changed Network Bandwith limits display & entry units to be - expressed in terms of Kbytes instead of bytes. Values are - still stored in db as bytes. - - html_user/ - prefs.inc - -David 27 Nov 2003 - - put missing tags around - project-specific prefs when write account files - - removed uniqueness constraint on user.seti_id - (this will generally be zero) - - client/ - client_types.C,h - db/ - constraints.sql - -David 28 Nov 2003 - - Fixed various problems with project preferences. - (overrides yesterday's non-fix) - PROJECT now has separate fields for - project_prefs (entire prefs, include venue variants) - project_specific_prefs (only project specific, - and only for current venue). - These had been confused before. - The account_*.xml file has the project_prefs, - enclosed in a element - - updated document about account files - - Changed project prefs from char[MAX_BLOB_LEN] to string, - and added variant of copy_element_contents() for string. - - client/ - app.C - client_types.C,h - cs_scheduler.C - scheduler_ops.C - doc/ - client_files.php - lib/ - parse.C,h - -Karl 2003-11-28 - - fixed unix help for -update_prefs - - client/ - cs_cmdline.C - -David 2003-11-28 - - changed date/time display in Windows to yyyy-mm-dd hh:mm:ss - - client/win/ - wingui_mainwindow.cpp - -David 28 Nov 2003 - - added "signature" field to user table; - when making forum postings, - users have the option of appending signature - - db/ - boinc_db.C,h - schema.sql - html_user/ - edit_user_info_action.php - edit_user_info_form.php - index.php - util.inc - -Karl 2003-11-28 - - fixed problems in testbase.py: - - changed workunit fpops due to change in client default benchmark - - changed app_version major version to come from version.MAJOR_VERSION - - added new columns to python database interface - - test_uc.py (and thus 'make check') pass now. - - test/ - testbase.py - py/Boinc/ - database.py - - - client: close write socket when done writing (but still reading) by - using shutdown(2). This allows the 'use_file' mechanism in - sched/main.C to work. - - client/ - http.C - -David 28 Nov 2003 - - print "expected X, got Y" msg only if md5 computation succeeded - - client/ - cs_files.C - -Karl 2003-11-28 - - new base64_encode() and base64_decode() functions. - - small fixes to Makefiles - - lib/ - parse.h - base64.C (new) - Makefile.am - api/ - Makefile.am - -David 29 Nov 2003 - - top hosts shows 10 hosts, lets you page forward/back - - Various stuff related to message boards (formerly known as Forum) - - don't show blue links on blue background - - terminology in message-board interface - "message boards" describes the message system - "questions/problems" describes the FAQ system - - got rid of hard-wired field widths - - removed "activity" stuff (wasn't being used) - - cleaned up names in the beta-test database - - Yahoo-type hierarchical page titles - - made "sort by" work when step through pages - - added category, forum tables to schema.sql - - added comments on PHP-only tables to schema.sql - - db/ - schema.sql - html_user/ - edit_user_info_action.php - index.php - top_hosts.php - user.inc - util.inc - white.css - forum/ - forum.inc - forum.php - help_desk.php - index.php - post.php - reply.php - thread.php - -Karl 2003-12-02 - - created export-tarball program for nightly-tarball - - nightly-tarball - -David 2 Dec 2003 - - changed indices on result table - changed res_hostid to include id desc - removed res_wuid - added app_received_time - - removed "last result for host" info from web pages; - this required an index with no other function - - added comments to constraints.sql explaining why each index is needed - - add "subscriptions" table to schema.sql - - db/ - constraints.sql - schema.sql - html_user/ - host.inc - totals.php - util.inc - forum/ - post.php - subscribe.inc - -David 2 Dec 2003 - - Don't start more than 2 simultaneous file transfers per project - - client/ - client_state.h - cs_cmdline.C - cs_files.C - cs_scheduler.C - hostinfo.C - pers_file_xfer.C - -Karl 2003-12-02 - - committed Robi Buecheler's translation updates. - - client/translation/ - language.ini.bg - language.ini.ca - language.ini.cs - language.ini.da - language.ini.de - language.ini.es - language.ini.et - language.ini.fi - language.ini.fr - language.ini.gl - language.ini.hr - language.ini.it - language.ini.ja-euc (added) - language.ini.ja-sjis (added) - language.ini.ko - language.ini.nl - language.ini.pl - language.ini.pt - language.ini.ru - language.ini.sk - language.ini.sv - language.ini.template - language.ini.zh-big5 (added) - language.ini.zh-gb2312 (added) - -David 3 Dec 2003 - - Added "Pending credit" row to user page - - Added new elements to XML stats dump (tables.xml) to show - - applications - - # results unsent/in progress/over for each app - - html_user/ - user.inc - sched/ - db_dump.C - -David 3 Dec 2003 - - express message board times as "X days Y hours Z minutes ago" - instead of absolute time - - on FAQ entries, display #times asked and time of last answer - - html_user - /forum/ - forum.inc - forum.php - help_desk.php - time.inc (new) - sched/ - db_dump.C - -Gary 04 Dec 2003 - - fixed a bug in app.C which caused the checkpoint_cpu_time to - nearly double in certain cases. This was most obvious in the - windows core client. - [in ACTIVE_TASK::write_app_init_file()] - old: - aid.wu_cpu_time = checkpoint_cpu_time; - new: - aid.wu_cpu_time = starting_cpu_time; - - client/ - app.C - -Gary 04 Dec 2003 - - BOINC release 2.13 for windows, Linux, solaris2.7, solaris2.8 - -David 4 Dec 2003 - - Use a different PHP HTML filter; the old one was buggy. - - Add HTML filtering of user-supplied text - (user profiles, message boards, etc.) - NOTE: should be explicit about what things - cannot contain ANY html tags - (user names, team names) - what about team descriptions? user URLs etc. - NOTE: someone should figure out exactly where we should - be using stripslashes() and addslashes(). - - html_user/ - htmlfilter.inc (removed) - profile.inc - sanitize_html.inc - team.inc - time.inc - kses.php (new) - forum/ - edit.php - forum.inc - forum.php - index.php - reply.php - -Gary 05 Dec 2003 - - in check_app_exited() look for most recent checkpoint_cpu_time - and use it to calculate final_cpu_time for result. - - client/ - app.C - -David 5 Dec 2003 - - On Windows, removed the shutdown() in http.C; - this caused a problem with Norton Firewall - - Removed counts of done/validated results for host from user web; - no efficient way to get this - - in cgi.log, show when send an app_version - - make_work: maintain cushion based on unsent results for this app - (not total) - - transitioner: check trigger file every WU, not every pass - - client/ - app.C - http.C - html_user/ - host.inc - profile.inc - sched/ - handle_reqest.C - make_work.C - transitioner.C - -David 6 Dec 2003 - - Extend the "start" script to handle remote tasks. Summary: - - config.xml has a mandatory config.host element - (for the project's main server) - and optional task.host elements (default is main host) - - Host X has its own run state file, run_state_X.xml - - Host X has its own pid directory, pid_dir_X/ - - Host X has its own log directory, log_X/ - - Host X has its own lock file for "start", start.lock.X - - run_daemons() etc. run tasks only for the current host - - When run on the main host, start builds a list of other hosts - and runs itself (with same cmdline, using ssh) - on each of the other hosts. - - Notes: - 1) I didn't add * capability; - it's not clear that we need this - 2) Output formatting could be improved - - - Changed the scheduler to log to ../log_X/cgi.log (X=hostname) - - sched/ - main.C - start - -David 7 Dec 2003 - - Fixed bugs involving buffer overflow of BLOB fields. - These can be up to 65536 bytes in MySQL. - MAX_BLOB_SIZE was defined as 4K. - strcpy2() didn't do any buffer size checking. - A team description was over 8K long. - This caused db_dump to crash. - Solution: - - strcpy2() now defined as a macro that uses the sizeof() - its destination, and doesn't overwrite it. - - MAX_BLOB_SIZE replaced with 2 symbols: - MEDIUM_BLOB_SIZE for fields used by BOINC - defined as 4K so as to not increase shmem usage - LARGE_BLOB_SIZE for fields with user-supplied text - defined as 64K - - db/ - boinc_db.h - db_base.C,h - html_user/ - result.inc - white.css - sched/ - assimilator.C - db_dump.C - file_deleter.C - handle_request.C - make_work.C - server_types.C - transitioner.C - tools/ - add.C - backend_lib.C - create_work.C - process_result_template.C - -David 7 Dec 2003 - - Changed db_dump so that it doesn't chdir() into the output directory - (it it does, and it crashes, that makes its core file - visible to the world, and that may contain private info) - - sched/ - db_dump.C - -David 7 Dec 2003 - - add sort options for FAQ questions, answers - - added create_time field to "thread" table - (so can sort questions by time asked) - - increase href limit in HMTL sanitizer to 150 chars - - simply time difference display - - db/ - schema.sql - html_user/ - sanitize_html.inc - time.inc - forum/ - forum.inc - forum.php - help_desk.php - thread.php - -Jeff 8 Dec 2003 - - Fixed the ifdef's surrounding the typedef of socklen_t. Removed the - "#ifdef socklen_t" because it does nothing and added the - "#elif defined (__APPLE__)". - - client/ - net_xfer.C - -David 8 Dec 2003 - - added full-text keyword search of message bodies and thread titles - - html_user/forum/ - forum.inc - forum.php - help_desk.php - index.php - text_search_action.php (new) - text_search_form.php (new) - -Jeff 09 Dec 2003 - - We have the same gcc version problem with solaris that we do with - linux whereby if the version number of libstdc++.so on the run - machine is different than that on the build machine, the loader - fails. However, on solaris you cannot just say gcc -static as there - are dynamic only versions of some needed libs, namely libdl and - libaio. I tried to use the -Xlinker gcc option which theoretically - should allow us to specify the link (collect2) line in precise - detail. But -lstdc++ kept showing up twice with one occurrence - being outside my -Xlinker -B -Xlinker static directive. So I - hand crafted a collect2 line and placed it in a file - collect2_line. - Sourcing this file produces an executable that will load and run - across gcc versions (and solaris versions for that matter). I - don't like it but it works. - - IMPORTANT NOTE. After sourcing collect2_line you have to - re-"hard link" the executable boinc_client to a proper - name with the correct version. - - client/ - collect2_line (new file) - -Gary 09 Dec 2003 - - BOINC release 2.14 for windows, Linux, solaris2.7, solaris2.8 - -Gary 09 Dec 2003 - - fixed typo in Network Bandwidth limits display (was missing /s) - - html_user/ - prefs.inc - - -Karl 2003-12-09 - - don't run the scheduler cgi if stop_server trigger exists. - - sched/ - main.C - -David 9 Dec 2003 - - scheduler returns message if "../stop_servers" exists - NOTE SPELLING; "stop_server" was error - - web site main page checks for "stop_servers" file, - shows "project down" message if so - TODO: have all DB-driven pages do this - - don't show link to main page on main page - - turned off "rate message" control (wasn't being used) - - html_user/ - index.php - time.inc - util.inc - forum/ - forum.inc - post.php - text_search_action.php - thread.php - sched/ - main.C - sched_util.C,h - -Eric K. 12/11/2003 - - Added check for strlcpy() to configure.ac and definition of - strlcpy() to std_fixes.h. - Added C++ header and namespace checks to m4 and config.h - Added include of "std_fixes.h" to boinc_db.C - - aclocal.m4 - configure.ac - configure - config.h.in - lib/std_fixes.h - m4/sah_namespace.m4 - m4/sah_header_stdcxx.m4 - -David 11 Dec 2003 - - Add element to config file and SCHED_CONFIG. - Add db_host argument to DB_CONN::open() - All server programs can now be run on different machine from MySQL - - Add "deprecated" field to app table - Deprecated apps are treated as non-existent - - Add "deprecated", "user_friendly_name" to platform table - Deprecated platforms are treated as non-existent - - Add new value for validate_state: VALIDATE_STATE_NO_CHECK - This indicates the the result's WU had an error, - and the result will never be validated. - Such results are not counted towards pending credit. - Transitioner: when set a WU error flag, - change its results VALIDATE_STATE_INIT -> NO_CHECK - - Add "Applications" page to web site: - shows platforms, latest version for each app - - db/ - boinc_db.C,h - db_base.C,h - schema.sql - html_ops/ - db_ops.inc - html_user/ - download.inc - host.inc - index.php - stats.php - util.inc - apps.php (new) - intro.php (new) - py/Boinc - database.py - sched/ - assimilator.C - db_dump.C - feeder.C - file_deleter.C - main.C - make_work.C - sched_config.C,h - sched_shmem.C - transitioner.C - update_stats.C - validate.C - wu_check.C - -Gary 11 Dec 2003 - - changed the way tab windows are hidden/shown in windows gui, - to fix intermittent window repainting bug. - old: - - - - The trouble with this technique is that it does not - activate the window, so it will only work if the - window becomes active *before* the redraw takes place. - new: - - - - - client/win/ - wingui_mainwindow.cpp - -David 12 Dec 2003 - - changed "opaque" fields from int to double - - Unix core client: if execv() fails, exit with errno rather than -1 - - show link to user on non-private host page - - fix bug in update_stats: don't crash if team has zero members - - add "update_stats" to install_boinc_files() - - client/ - app.C - doc/ - client_files.php - db_dump.php - index.html - old_news.php - prefs.php - db/ - boinc_db.C,h - schema.sql - html_user/ - db.inc - host.inc - index.php - workunit.php - py/Boinc/ - setup_project.py - sched/ - update_stats.C - -David 12 Dec 2003 - - Core client: print host ID (per project) in startup messages - - calculate file transfer speeds correctly - (e.g. use doubles for time, not int) - Show latest transfer speed in message when transfer finishes - - client/ - client_state.C - net_xfer.C,h - pers_file_xfer.C - -Gary 12 Dec 2003 - - fixed bug that caused 'Progress' and 'To completion' columns to reset to - 0.00% and init completion time at end of WU. - - client/win/ - wingui_mainwindow.cpp - -David 12 Dec 2003 - - fixed bug that caused est. time to completion to not update - - client/ - app.C - -David 14 Dec 2003 - - added "has_profile" flag to user table; - whenever a user has a profile, - display a "profile icon" linking to it. - Also write it to XML files - - Change file_upload_handler to put its log file - in the right directory - - db/ - boinc_db.C,h - scheme.sql - html_user/ - host.inc - host_user.php - index.php - profile.inc - team.inc - top_hosts.php - user.inc - util.inc - py/Boinc/ - database.py - sched/ - db_dump.C - file_upload_handler.C - -David 15 Dec 2003 - - fixed bug in database API: "return p && atoi(p)" - In C (unlike Python) this does not generally return atoi(p); - it returns 1. Fortunately the only effect of this was that user.posts - kept getting set to 1 for all users - - increased max query length in DB API, - in case prefs become really really long - - db/ - boinc_db.C - db_base.C - html_user/ - download.php - util.inc - forum/ - forum.inc - forum.php - reply.php - -Gary 15 Dec 2003 - - fixed bug in installer script which would not clean up previous - Boinc client autostart settings, when a new version was installed - without uninstalling the previous version first. - - win_build/installer/Script Files/ - setup.rul - -Gary 16 Dec 2003 - - fixed bug in windows Boinc_gui core client, which caused the - horizontal scroll bar on the Messages tab to be moved to the - extreme right whenever new messages were written. - - client/win/ - wingui_mainwindow.cpp - -Eric K. 17 Dec 2003 - - Added include of unistd.h to get definition of gethostname() on - Solaris 7 - - sched/ - file_upload_handler.C - -Gary 17 Dec 2003 - - BOINC release 2.15 for windows, Linux, solaris, mac os x - -David 17 Dec 2003 - - fixed bug where remote invocation of "start" is not verbose when it should be - - lib/ - error_numbers.h - sched/ - feeder.C - start - -Karl 2003-12-18 - - fixed CRLF bug in *.dsw, *.dsp - - Makefile.am - win_build/ - *.dsp - *.dsw - -Jeff 18 Dec 2003 - - Surrounded the base64 prototypes in parse.h with an #ifndef _WIN32. Windows - compiles were failing on it. - - lib/ - parse.h - -David 19 Dec 2003 - - new system tray icons, for "new message" and "new error message" situations, - contributed by Rom Walton. - NOTE: these are not actually used; - we need to add flags for when they should be displayed - - client/win/ - resource.h - resource.rc - wingui_mainwindow.cpp,h - res/ - iconerror.ico (new) - iconinfo.ico (new) - -Karl 2003-12-19 - - undid #ifndef for base64. Renamed to r_base64. - - lib/ - parse.h - base64.C - -David 20 Dec 2003 - - Changes by Rom Walton to flash system tray icon when new message - - client/win/ - wingui_mainwindow.cpp,h - -David 20 Dec 2003 - - compute recent average credit correctly - - compute "activity" for questions in a reasonable way: - the number of times per day this question has been asked - - default sort order for questions is by descending activity - - added fulltext indices on profile.response1 and profile.response2 - - added text search of profiles to web interface - - link to list of a user's posts from their user page - - generate UOD page even if already there - - clean up some PHP code: - use $foo->bar, not $foo['bar'] - indent by 4 spaces - - db/ - constraints.sql - schema.sql - html_ops/ - gallery.inc - update_forum_activities.php - html_user/ - profile_menu.php - user.inc - util.inc - profile_search_action.php (new) - forum/ - forum.inc - forum.php - text_search_action.php - user_posts.php (new) - sched/ - sched_util.C - -David 21 Dec 2003 - - moved "search for user name" feature out of profile code - - add link to profile from user page - - fix bug in get_passwd - - html_user/ - get_passwd.php - profile.inc - profile_menu.php - profile_search_action.php - user.inc - user_search_action.php (new) - -David 23 Dec 2003 - - add mechanism to prevent server spamming - (i.e. frequence requests for work from a single host). - The mechanism: if the last RPC was within 15 minutes, - don't send any work. - - add result.exit_status field to DB - Currently this is populated by the server, - if there's a element in the reply's stderr_out. - There may be a better way to do this. - TODO: display this field in the web GUI - - use SIGHUP instead of SIGINT to stop daemon processes - - db/ - boinc_db.C,h - schema.sql - sched/ - handle_request.C - start - -David 23 Dec 2003 - - improved error messages in stderr_out - - client/ - app.C - client_state.C - -David 23 Dec 2003 - - added boinc_fopen() function. - This should be used in lieu of fopen(), in both core client and apps, - whenever opening a file for writing. - This is because on Windows a utility program like FileFind - might have the file open at that exact moment, - and your fopen() will fail. - boinc_fopen() deals with this by sleeping for 3 seconds and trying again. - NOTE: in SETI@home there's a much fancier function - that does exponential backoff up to one hour. - Can't do that here, in part because the GUI requires - the core client to be nonblocking. - api/ - boinc_api.C - graphics_api.C - gutil.C - mfile.C - client/ - app.C - client_types.C - cs_benchmark.C - cs_scheduler.C - cs_statefile.C - http.C - doc/ - (various) - lib/ - filesys.C,h - -David 24 Dec 2003 - - Fixed errors in deciding whether more work was needed, - and if so how much. - This caused a situation where hosts would repeatedly - ask the server for more work - (which, because of recent anti-spam mechanism, would return no work) - The error involved the confusion of two quantities: - 1) work buffer - This is an estimate of the time (measured in days) - until this host will finish all current work. - It reflects the host's "active_frac" and the # of CPUs. - 2) CPU time - This is an estimate of the CPU time a WU will take on this host. - It does not reflect active_frac or # of CPUs - Example error: current_work_buf_days() didn't reflect active_frac and ncpus. - So we underestimated the work buffer, and requested work inappropriately. - - NOTE: the field in a request message - is in units of CPU time, NOT work buffer - - - Fixed errors in estimating the wallclock duration of a WU - (used in feasibility test in scheduler): - Should divide, not multiply, by active_frac; - should not multiply by # cpus - - add a "deprecated" flag to app_version. - If you decide that a particulate app_version has problems, - you can deprecate it. - The scheduler advertises the latest non-deprecated version. - NOTE: this only is effective if core clients have the following: - - Changed the policy assigning an app_version to a WU - Use the version included in the scheduler reply, - and if there is none, use the latest version. - This means that if a project deprecates an app_version, - clients won't use it. - client/ - client_state.h - cs_apps.C - cs_scheduler.C - scheduler_op.C - db/ - schema.sql - boinc_db.C,h - lib/ - filesys.h - result_state.h - py/Boinc/ - database.py - sched/ - handle_request.C - sched_shmem.C - -David 23 Dec 2003 (supplied by Rom Walton) - - new message class: warnings and network (with corresponding icons) - - client/ - message.h - win/ - resource.h - resource.rc - wingui_mainwindow.cpp,h - res/ - iconnetwork.ico (new) - iconwarning.ico (new) - win_build/ - boinc_gui.dsp - -David 23 Dec 2003 - - change string-escape function in DB code to handle \ as well as ' - (otherwise updates/inserts can fail) - - db/ - boinc_db.C - db_base.C,h - sched/ - update_stats.C - -Gary 25 Dec 2003 - - BOINC release 2.16 for windows, Linux, solaris, mac os x 10.3 - (os x 10.2 compatability will come soon) - -Jeff 30 Dec 2003 - - Check for buffer reallocation errors in MFILE functions and return values - that mimic the normal system versions of these functions. - - Functions that were changed: * indicates a change. - function successful return failure return - -------------- ------------------ -------------- - MFILE::printf() num bytes output -1 * - MFILE::write() num bytes output -1 * - MFILE::putchar(c) c EOF * - MFILE::puts(s) strlen(s) * EOF * - - MFILE::puts() used to return 0 on success. I greped both astropulse - and seti_boinc code and found no current use of this function. - - api/ - mfile.C - -David 30 Dec 2003 - - added optional 1 flag to daemons and tasks - in config.xml. (would prefer "", but couldn't - figure out how to get the minidom parser to recognize) - - sched/ - start - -David 30 Dec 2003 - - added element to in RPC request message - - client/ - client_types.C,h - -David 31 Dec 2003 - - Made the basic test script (test_uc.py) work again: - - fixed syntax errors in SQL files - - initial config.xml file includes element - - back-end processes handle SIGHUP, not SIGINT - (we changed in "start"; need to change here too) - - "MIN_SENDWORK_INTERVAL" is read from config.xml (default 0) - - added 12-second sleep in run_check_all() - (based on 10-sec sleep in assimilator; should reduce) - - The user and admin web interfaces now work in the basic test case - (i.e. you can use html_ops to look at DB contents) - - db/ - constraints.sql - schema.sql - html_ops/ - db_ops.inc - html_user/ - project.inc.sample - util.inc - py/Boinc/ - setup_project.py - sched/ - assimilator.C - feeder.C - file_deleter.C - handle_request.C - make_work.C - sched_config.C,h - sched_util.C,h - transitioner.C - validate.C - test/ - testbase.py - -David 31 Dec 2003 - - Added Python assimilator, courtesy of Stephen Pellicer - All the back-end programs could be implemented in Python; - CPU usage is a non-factor. - Some people might prefer this to C++. - No reason not to have both, as long as the logic stays in synch. - - py/Boinc/ - sched_messages.py - sched/ - assimilator.py - -Gary 31 Dec 2003 - - Fixed error in windows client initial startup after a clean - install. Default wait time before initial server request was - too long (3 minutes). - - Fixed initial screensaver blank time setting. Test for existence - of registry entries before writing values to dialog box. - - client/ - Prefs.C - client/win - win_screensaver.cpp - -David 3 Jan 2004 - - prelimary checkin of "trickle" mechanism - - added trickle table to DB - - add boinc_trickle() to API; implement - - logic in client to find/rename trickle files - - got rid of strlcpy() (not portable) - - commented out WORKSEQ code (probably will never finish) - - factored out project directory name function - - error checking of malloc()s in MFILE - - api/ - boinc_api.C,h - mfile.C - client/ - app.C,h - client_state.C - client_types.C - cs_benchmark.C - file_names.C,h - db/ - boinc_db.C,h - constraints.sql - db_base.h - schema.sql - doc/ - api.php - create_project.php - language.php (new) - trickle.php (new) - lib/ - filesys.C,h - tools/ - backend_lib.C,h - -Gary 4 Jan 2004 - - Added missing sys header declaration needed to build libboinc - on OSX jaguar - - api/ - boinc_api.C - -David 5 Jan 2004 - - patch up hole in hosts_user.php that shows hosts - even when user doesn't want - - All pages check for project up before opening DB - - html_user/ - apps.php - db.inc - download.php - hosts_user.php - util.inc - -Gary 5 Jan 2004 - - changed file_delete() function calls to boinc_delete_file() - as a result of the 2004-01-03 change to filesys.C,h - client/win - wingui_mainwindow.cpp - -Gary 5 Jan 2004 - - BOINC release 2.17 for windows, linux, solaris, mac os x - (os x version supports both 10.2 and 10.3 ) - -David 6 Jan 2004 - - When showing a user's posts, break into groups of 10 - - Don't show pending credit directly in user page. - Give a link to a separate page that shows pending results - and their claimed credit - - When show list of results, add linked ID column allowing user - to see details of result (e.g. stderr_out) - - removed "private" arg for show_host_detail.php. - If the host belongs to logged-in user, show private info - - removed alternative sorting options for host lists - (there was a bug where a user host list - linked to top_hosts.php) - - added a couple of "repair" scripts - - html_user/ - db.inc - host.inc - host_edit_action.php - host_venue_action.php - pending.php (new) - repair.php (new) - result.inc - result.php - results.php - show_host_detail.php - user.inc - util.inc - workunit.php - forum/ - repair.php (new) - user_posts.php - -David 7 Jan 2004 - - don't show #results in 1-line host summary (too slow) - - totally redid "host merge" mechanism. - - show all hosts that are compatible with this one - (not just older ones) - - show checkboxes with "select all" button - so you can easily merge large #s of hosts - - merge logic merges into newest host - - let anyone look at any result and any host - (may want to change this later, - but for now it helps with debuggin) - - write log message when scheduler creates new host - because of bad RPC seqno - - html_user/ - host.inc - host_edit_action.php - host_edit_form.php - repair.php - result.php - results.php - show_host_detail.php - user.inc - workunit.php - sched/ - handle_request.C - -David 7 Jan 2004 - - more trickle support: - - server parses elements from RPC request, - creates trickle records, - sends if it did any - - client scans project for trickle files, - adds them to RPC requests - - if get in RPC reply, delete trickle files - - parse in RPC reply - - use safe_strncpy for shared-mem graphics messages - - client/ - client_state.h - cs_scheduler.C - scheduler_op.C,h - db/ - boinc_db.h - doc/ - boinc_dev.php - host_id.php (new) - host_measure.php - participate.php - lib/ - app_ipc.C,h - filesys.h - sched/ - handle_request.C - server_types.C,h - -David 7 Jan 2004 - - scheduling server: if get invalid hostid, - look up user before creating new host - (otherwise will create a host record with userid 0) - - if get a result that's already been received, ignore it - - sched/ - handle_request.C - -David 7 Jan 2004 - - added "host delete" function (if host has zero results) - - html_user/ - host_delete.php (new) - -David 8 Jan 2004 - - Fixed bugs that caused WUs to be mistakenly marked COULDNT_SEND: - - the feeder marks WUs as COULDNT_SEND whenever - at least 50% of the results have infeasible_count > 20 - (it used to be > 0, i.e. a WU could be marked as COULDNT_SEND - when it was infeasible for even a single host) - - Some hosts (Macs) report their memory size (host.m_nbytes) - as a large negative number. - Change this so that the min memory size is 64 MB - - html_user/ - host.inc - host_delete.php (new) - sched/ - feeder.C - handle_request.C - sched_shmem.h - -Gary 8 Jan 2004 - - Fixed problem in windows client where user prefs were - being ignored at startup as a side-effect of the previous - initial startup fix. Now initial startup works and user - prefs are honored at startup. - - client/ - Prefs.C - client/win - wingui_mainwindow.cpp,h - -David 9 Jan 2004 - - on download page, don't tell people to create an account - if they already are logged in (and hence have an account) - - print message in CGI log if can't find user - - don't hyperlink 0 results etc. - - html_user/ - download.inc - download.php - host.inc - repair.php - forum/ - help_desk.php - thread.php - user_posts.php - sched/ - handle_request.C - -David 9 Jan 2004 - - added project files for VC++ 7.0, and fixed a few compile warnings - - client/ - app.C - cs_benchmark.C - cs_scheduler.C - net_xfer.C - win/ - stackwalker.h - win_build/ - boinc.sln - *.vcproj - -Karl 2004-01-12 - - - BOINC how has a project.xml file (by default in the same location as - config.xml) that can contain database information: - - projects - - platforms - - core versions - - apps - - app versions - - this information used to be added one at a time using the `add' - command-line tool; now there is a new tool `xadd' available, which - parses project.xml and adds anything necessary. - - - refactored configxml.py into boincxml.py and configxml.py: - - boincxml.py contains generic XML utility code - - configxml.py contains code specific to config.xml and run_state.XML - - external interface to configxml.py unchanged - - - new projectxml.py that parses and writes project.xml - - - refactored tools/add into tools/add and py/Boinc/add_util.py - - - added new addable fields - - py/Boinc/ - boinc_project_path.py - configxml.py - boincxml.py (new) - projectxml.py (new) - add_util.py (new) - db_base.py - Makefile.am - tools/ - xadd (new) - add - Makefile.am - doc/ - tool_xadd.php (new) - tool_add.php - make_project.php - tools.php - -Karl 2004-01-12 - - source release 2.18 (no client-visible changes) - -David Jan 12 2004 - - change team account so that team gets (and keeps) credit - for results of users while they belong to team: - - add team_id field to result - - add expavg_time field to team - - validator increments team credit - - scheduler fills in result.teamid - - don't delete empty teams - - rename result.client_version_num to result.app_version_num - populate this field based on field of stderr_out - - change update_stats so that it doesn't compute team credit fields, - and so that it updates expavg fields only if the entity - has been idle for 4 days or more - - add DB_BASE::update_field() (to update one or more fields, - not whole record) - - add lookup_team() to db.inc - SHOULD ALWAYS USE FUNCTIONS LIKE THIS INSTEAD OF AD-HOC QUERIES - - factor out mysql_query() into DB_BASE::do_query() - - db/ - db_boinc.C,h - db_base.C,h - schema.sql - html_user/ - db.inc - team.inc - team_join_action.php - team_quit_action.php - sched/ - handle_request.C - update_stats.C - validate.C - -David Jan 14 2004 - - typo in boincxml.py - (caused "start" script to always set enabled=0 - in run_state file, with various bad consequences) - - two indentation problems in "start": - line 499 - line 516 - - py/Boinc/ - boincxml.py - sched/ - start - -David Jan 14 2004 - - add element to - of results when send to server - - client/ - client_types.C - -David Jan 14 2004 - - don't blink sys tray icon more than 10 sec (from Rom Walton) - - client/win/ - wingui_mainwindow.cpp,h - -David Jan 14 2004 - - windows console version works again (from Rom Walton) - - client/ - main.C - net_xfer.C - win_build/ - boinc_cli.vcproj - -David Jan 15 2004 - - factored base64 declarations - - lib/ - base64.h (new) - -David Jan 15 2004 - - changed file_upload_handler so that it returns success - if offset >= nbytes. - That this happens at all indicates an error in the client, - but we'll get to that later. - - Scheduler: if last RPC too recent, show the interval - - html_user/ - db.inc - info.php - team_join_action.php - team_quit_action.php - sched/ - file_upload_handler.C - handle_request.C - -Karl 2004-01-15 - - fixed database schema for new 'teamid' field - - misc. fixes - - db/ - schema.sql - py/Boinc/ - Makefile.am - database.py - lib/ - Makefile.am - base64.C - base64.h - -Karl 2004-01-15 - - renamed user_name to db_user - - - applied changes by Daniel Sumers Myers - - setup script creates log_ - - add support for field in config.XML in C, python, php - - missing default project.inc.sample fields - - db/ - db_base.C - db_base.h - html_ops/ - db_ops.inc - db.inc - project.inc.sample - py/Boinc/ - setup_project.py - sched/ - assimilator.C - db_dump.C - feeder.C - file_deleter.C - main.C - make_work.C - transitioner.C - update_stats.C - validate.C - wu_check.C - -David Jan 16 2004 - - released core client 2.18 for Windows - -David Jan 17 2004 - - change logic in windows_opengl.C so that an app has no window - when it doesn't need one. - In particular, it has no window when it initially runs, - so it won't wake up screensaver when an app starts. - This requires using a window-less timer - to poll for messages from core client. - - api/ - windows_opengl.C - -David Jan 17 2004 - - remove win_main.cpp - - if result exceeds disk, show both usage and limit - - change title of Attach to Project dialog - - change debugging symbol from DEBUG to SS_DEBUG - (since VC7.0 equates _DEBUG and DEBUG) - - client/ - app.C - win_main.cpp (removed) - win/ - resource.rc - win_build/ - boinc_gui.vcproj - -David Jan 17 2004 - - new screensaver (from Rom Walton) - works correctly on multiple monitors; - handles password protection correctly - - fix compile warnings - - removed redundant definition of BOINC_SS_END - - client/ - cs_benchmark.C - net_xfer.C - win/ - Scricon3.ico (removed) - boinc_ss.h (new) - boinc_ss.rc - win_main.cpp (removed) - win_screensaver.cpp - win_screensaver.h (new) - win_util.h - wingui_listcrl.cpp - wingui_mainwindow.cpp - wingui_piectrl.cpp - res/ - Scricon3.ico (new) - lib/ - app_ipc.h - win_build/ - boinc.vcproj - boinc_cli.vcproj - boinc_ss.vcproj - -David Jan 17 2004 - - use TRACE() instead of fprintfs for debugging output - - client/win/ - wingui_mainwindow.cpp - -David Jan 18 2004 - - fix possible memory leak in screensaver on Win9x (from Rom Walton) - - client/win/ - win_screensaver.cpp,h - -David Jan 18 2004 - - add a function HOST::fix_nans(), called before updating or inserting - a host record; replaces NaNs with zeros. Otherwise DB barfs - - on any failed DB query, write the query to stderr - - store sorting order for message boards in a cookie - - db/ - boinc_db.C,h - db_base.C - html_user/forum/ - forum.php - thread.php - sched/ - file_upload_handler.C - handle_request.C - -David Jan 19 2004 - - use STOP_SS_MSG symbol instead of END_SS_MSG - (these redundantly refered to the same string) - - fixed buggy error-handling code for Win CreateProcess() - - api/ - windows_opengl.C - client/ - app.C - win/ - win_util.h - lib/util.C - -David Jan 19 2004 (from Rom Walton) - - Win screensaver: check to see if BOINC is configured for - automatic startup and if not make a suggestion to the user to do so. - - client/win/ - boinc_ss.h - boinc_ss.rc - win_screensaver.cpp,h - win_util.cpp,h - -David Jan 19 2004 (from Rom Walton) - - handle BOINC core client as service - - client/ - client_state.C,h - cs_cmdline.C - main.C - win/ - win_net.cpp - win_service.cpp,h (new) - win_build/ - boinc_cli.vcproj - boinc_ss.vcproj - -David Jan 19 2004 - - modify logic of file_upload_handler so that it always - returns an HTML header, regardless of whether - request message is missing or malformed - - hyperlink results on pending credit page - - fix bug in parsing of exit status in result stderr_out - - include "validate_trivial" in install_boinc_files() - - html_user/ - index.php - pending.php - py/Boinc/ - setup_project.py - sched/ - file_upload_handler.C - handle_request.C - -David Jan 20 2004 - - added basic support for GUI RPCs in the core client. - This allows GUIs to be implemented in a separate process. - There can be multiple GUIs looking at the same core client. - New classes: - GUI_RPC_CONN: represents a connection to a GUI program - GUI_RPC_CONN_SET: represents the set of all such connections - has the usual poll() function. - This is currently implemented only for UNIX, using UNIX domain sockets. - Should be straightforward to do in Win using named pipes. - - The isspace() macro crashes if called with a non-ASCII arg, - so use it only after isascii() - - reimplement strip_whitespace() to do the above, - have it trim at both start and end, - and make a version for string - NOTE: the real problem is that user-supplied text is being - kept in XML elements in the state file. - Should escape it. - - client/ - Makefile.am,in - client_state.C,h - gui_rpc_client.C,h (new) - gui_rpc_server.C,h (new) - gui_test.C - - lib/ - parse.C - util.C,h - -David Jan 21 2004 - - get new GUI RPC stuff to compile on Win - - client/ - gui_rpc_server.C - win_build/ - boinc.sln - boinc_cli.vcproj - boinc_gui.vcproj - -Eric Jan 21 2004 - - Modified match_tag to work with tags of the form "" and "tag" - - Added strlcat() to std_fixes.h - - Added check for strlcat() configure.ac - - fixed "#elif" without clause in main.C - - configure - configure.ac - config.h.in - client/ - main.C - lib/ - parse.C - std_fixes.h - -Karl 2004-01-21 - Client translations update from Robi Beucheler - - client/translation/ - language.ini.ca - language.ini.es - language.ini.et - language.ini.gl - language.ini.hr - language.ini.ko - language.ini.pl - language.ini.pt - language.ini.template - language.ini.th (new) - language.ini.tr (new) - -David Jan 21 2004 - - small changes to get console version to compile - - client/ - cs_cmdline.C - main.C - win_build/ - boinc_cli.vcproj - -David Jan 22 2004 - - match_tag() changes broke Win compile. - Moved new match_tag() to xml_match_tag() in xml_util.C, - put old match_tag() back. - - lib/ - util.C,h - xml_util.C,h - -David Jan 22 2004 - - change the GUI RPC protocol so that there's a single - request that returns the entire state - (same contents as the client state file) - - add fraction_done, current_cpu_time to output - - factored out CLIENT_STATE::write_state(FILE*) - (used for both state file write and GUI RPC) - - always copy team name from scheduler reply - (so that we'll learn if user quits team) - - client/ - app.C - client_state.h - cs_scheduler.C - cs_statefile.C - gui_rpc_client.C,h - gui_rpc_server.C - gui_test.C - -David Jan 23 2004 - - fix problem with DLL dependency (from Rom Walton) - - api/ - boinc_api.C - graphics_api.C - gutil.C - windows_opengl.C - lib/ - parse.C - util.C - -David Jan 23 2004 - - Fleshed out client-side support for GUI RPCs - The GUI_RPC class now parses the XML it gets back from - the request, and builds a data structure - that is more or less a clone of the state of the core client. - There are still a number of missing pieces, - e.g. active tasks and file transfers - - client/ - cs_apps.C - gui_rpc_client.C,h - gui_test.C - makefile.gui_test (new) - -David Jan 24 2004 - - add resource to let you control name of screensaver in - choose-screensaver popup (from Rom Walton) - - client/win/ - boinc_ss.h - boinc_ss.rc - -David Jan 26 2004 - - server-side support for anonymous platform mechanism - - struct CLIENT_APP_VERSION represents an app version - that an anonymous-platform client says it has - - SCHEDULER_REQUEST has a vector of CLIENT_APP_VERSIONs, - parsed from request message - - in scan_work_array(): if anonymous platform, - instead of checking for an app version in the DB, - check that the client has an app version with an - acceptable version# - - NOTE: for this to work you need to add an entry named "anonymous" - to the platform table - - html_user/ - index.php - team_join_form.php - team_quit_form.php - sched/ - handle_request.C - server_types.C,h - -David Jan 26 2004 - - client-side support for anonymous platform mechanism - - To use this mechanism, user puts a file "app_info.xml" in a project dir. - This file contains , , and elements - for app versions present in the project dir - (compiled or manually installed by the user). - - If this file is found, the project is marked as "anonymous_platform" - and app/app_version info in the state file is ignored. - - Scheduler RPCs for anonymous projects include a list of app_versions - - CLIENT_STATE::link_*(): fail if object is already in state - - client/ - client_state.C,h - client_types.C,h - cs_scheduler.C - cs_statefile.C - file_names.h - lib/ - error_numbers.h - -David Jan 30 2004 - - replaced a bunch of "return 1"s with meaningful codes - (mostly ERR_NOT_FOUND); fixed comments; added license text here and there - client/ - app.C - client_state.C - cs_apps.C - cs_cmdline.C - cs_files.C - cs_prefs.C - cs_scheduler.C - file_xfer.C - gui_rpc_server.C,h - http.C - message.C - net_stats.C - net_xfer.C - pers_file_xfer.C - doc/ - account.php - lib/ - app_ipc.C - error_numbers.h - -David Jan 30 2004 - - mark result as OUTCOME_SUCCESS only if exit status is zero (from Rom Walton) - - sched/ - handle_request.C - -David Jan 31 2004 - - GUI RPC: get_state RPC now returns active tasks and file xfers - - remove "hostname" field from HTTP_OP. - There was already a field of this name in NET_XFER, - a base class of HTTP_OP. - - client/ - client_types.C - gui_rpc_client.C,h - gui_rpc_server.C - http.h - net_xfer.C,h - pers_file_xfer.C - makefile.gui_test - -David Feb 2 2004 - - escape all user-supplied text in XML (messages and files) - e.g. user name, team name - - added functions xml_escape() and xml_unescape() - (very simple versions; just escape < and &) - - parse_str() does unescape - - client/ - client_types.C - lib/ - parse.C,h - sched/ - server_types.C - -David Feb 2 2004 - - changed directory structure of HTML stuff - -Rom Feb 2 2004 - - Added a diagnostics library for project clients - Currently only windows specific stuff has been implemented for the - BOINCASSERT and BOINCTRACE. - BOINCASSERT has been defined as an ASNI C assert - for all other platforms. - - boinc_trace(), boinc_diag_init(), and boinc_diag_cleanup() - need to be defined for all the other platforms. - - Moved stderr redirection into boinc_diag_init() for the Windows client. - - api/ - boincdiag.cpp,h (Added) - boinc_api.c - -Rom Feb 3 2004 - - Fixed warning while compiling with gcc. - - api/ - boincdiag.cpp,h - -David Feb 3 2004 - - removed pathMod arguments in PHP code (this was needed when we had - multi-level directory structure; not needed anymore) - - changed max_wus_to_send from a compile constant to a config.xml parameter - - html/ - forum/ - post.php - rate.php - reply.php - subscribe.php - inc/ - db.inc - subscribe.inc - util.inc - sched/ - handle_request.C - sched_config.C,h - -David 2004-02-03 - BOINC 2.23 release for Windows - -Karl 2004-02-03 - - updates for html directory structure change - - tools/ - make_project - - py/Boinc/ - setup_project.py - - html/ - project.sample/ (new directory) - project.inc (new) - project_specific_prefs.inc (new) - - html/ - user/ - project.inc.sample (removed) - project_specific_prefs.inc (removed) - -Rom Feb 4 2004 - - Fixed the windows_error_string routine so it'll report back windows system errors. - - Updated the CreateProcess part of app.c to report OS Errors based on the above funtion. - - Removed the seperate header blocks for both release and debug and made them the same. - clears up one customer bug on Windows NT 4.0 platforms - - Changed the 1400 version check in stackwalker.h to 1310 which is what the 7.1 compiler - version is really. - - Changed the service routines to use windows_error_string instead of GetSystemErrorText - - client/ - app.c - client - win/ - stackwalker.h - win_screensaver.h - win_service.cpp - lib/ - util.c,h - -Rom Feb 4 2004 - - Changed from using SHGetSpecialFolder to SHGetFolderPath which now uses COM and so will - will not throw a dynamic link error on startup for platforms that don't support it. - - client - win/ - win_screensaver.cpp - -David Feb 4 2004 - - BOINC API: if get a REREAD_PREFS message from core client, - only call the app's reread_prefs function if there's a window open - (the SETI@home reread_prefs function goes into an infinite loop - if there's not a window open) - - change copyright year to 2004 - - api/ - windows_opengl.C - client/win/ - resource.rc - -Karl 2004-02-03 - - more misc. make_project fixes - -David Feb 4 2004 - - define a destructor for ACTIVE_TASK. - Do all resource deallocation (close thread/proc/msg handles; - detach and/or destroy shmem) here. - This deallocation was being done piecemeal; - for example, it wasn't being done if the process was aborted. - Hence the "quit message" object was still there, - and when another process started in the same slot it would - immediately get the message (caused "reset project" problem) - - Eventually delete all ACTIVE_TASK objects. - The following removed them from the list but didn't deleting: - ACTIVE_TASK_SET::abort_project() - ACTIVE_TASK_SET::restart_tasks() (failure case) - - Don't ask for work if we have any unfinished work. - This is a temporary kludge to prevent repeated work requests; - it means that min work buffer is meaningless. - But maybe this is OK. - - client/ - app.h,C - cs_scheduler.C - -David Feb 4 2004 - - Cleaned up the project-reset logic a little: - - first garbage-collect, THEN unlink and delete the apps and app_versions - - When detach project, delete FILE_INFO*s. - - NOTE: there are lots of loose ends, e.g. files/sockets left open etc. - - client/ - client_state.C - -David Feb 4 2004 - - Released version 2.24 of core client - -Rom Feb 4 2004 - - When handled errors occur provide the translated error message as well as the - error code. - - client/ - app.c - -Rom Feb 4 2004 - - Update the debugging page with some more useful information about what we need - when a crash occurs - - html/user/ - debug.php - -Rom Feb 5 2004 - - Microsofts documentation on the matter of SHGetFolderPath seems to be wrong. - instead of relying on it, just do a dynamic link and call the function - if successful. - - client/win/ - win_screensaver.cpp - -David Feb 5 2004 - - db_dump: files ordered by ID now have a fixed-size ID range, - not a fixed # of elements - - Changed FEASIBLE_COUNT parameters to very large values, - so that results are never classified as COULDNT_SEND. - This mechanism is not needed for SETI@home (all results are the same) - and is occasionally screwing things up. - Can revisit this later. - - Make "host" web links consistent ("---" if ID is zero) - - In UOTD browse, show only profiles w/ pics - - html/ - inc/ - host.inc - result.inc - util.inc - ops/ - profile_ops.php - sched/ - db_dump.C - feeder.C - handle_request.C - sched_shmem.h - -David Feb 5 2004 - - My checkin of Jan 31 broke access via HTTP proxies. - Here's an attempt to fix it - - client/ - http.C,h - net_xfer.C,h - pers_file_xfer.C - -David Feb 5 2004 - - skip over elements while parsing - (they're there for the benefit of GUI RPC) - - removed old TRACEs from Win code - - client/ - client_types.C - win/ - wingui_mainwindow.cpp - -Rom Feb 5 2004 - - Moved the unhandled exception filter back into boinc_api.c where it was orginally. - - Moved stackwalker that is used by BOINC Client applications into api folder since - the unhandled exception filter depends on it. - - Removed the unhandled exception filter init code from boincdiag.cpp - - api/ - boinc_api.c - boincdiag.cpp - api/win/ - stackwalker.cpp,h (Added) - -Rom Feb 6 2004 - - Removed boincdiag.cpp,h from build and encorporated all its functionality into - boinc_api.c, h - - Improved unhandled exception filter to handle STACK_OVERFLOW exceptions, using - new stackwalker code base, STACK_OVERFLOWs would have caused a nested - exception issue that would have masked the real error. - - Improved unhandled exception filter to handle ACCESS_VIOLATIONs better, using - stackwalker code base, giving some of the same information for release builds - that is given in debug builds - - Created a new macro called BOINCERROR which will trip the management thread into - gracefully exiting the process with the correct exit code. This macro will work - across debug/release builds. Some more work has to go into the base function, - hopefully in tomorrow. - - api/ - boinc_api.c,h - boincdiag.cpp,h (deleted) - -David Feb 6 2004 - - changed default min/max work buffers from (1,3) to (.1, 1) - - html/incs/ - prefs.inc - -David Feb 6 2004 - - ask for more work when # of results in progress is less than # CPUs - - when get an APP_VERSION in a scheduler reply that's already in client state, - DON'T update the client state (it can't be any different anyway) - This fixes a garbage-collection crash - - Win client: added check_state.C to the project. - You can call check_all() to verify the integrity of client data. - This is commented out but useful for debugging. - - FILE_XFER_SET::insert() adds item to list, even if the underlying - HTTP_OP::insert() fails (because can't connect, e.g.) - This is necessary to make sure that the FILE_XFER remains in the - FILE_XFER_SET even in case of error, so that check_all() works. - - NOTE: the semantics of insert() should be reexamined through the whole - FSM stack. Does it initialize? Is it guaranteed to insert? - Need consistency. - - client/ - check_state.C - client_state.C,h - cs_scheduler.C - file_xfer.C - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - -David Feb 6 2004 - - Windows core client 2.25 release - -David Feb 6 2004 - - API: is we're not using shared memory, - then app_client_shm is NULL (not app_client_shm->shm) - - add constructor for APP_CLIENT_SHM - - api/ - boinc_api.C,h - lib/ - app_ipc.C,h - -Rom Feb 6 2004 - - When reporting exit codes of the project application to the DB, - use the exit code that was reported from the application - instead of the value from GetLastError() - - lib/ - util.c,h - client/ - app.c - -David Feb 8 2004 - - reorganized "Creating a BOINC project" and "Getting work done" - parts of docs - doc/ - anonymous_platforms.php - assimilate.php (new) - back_end.php (removed) - backend_functions.php (removed) - backend_logic.php (new) - backend_programs.php - boinc_dev.php - build_system.php - configuration.php (new) - create_project.php - database.php - docutil.php - make_project.php - platform.php - server_components.php - software.php - tool_start.php - tool_xadd.php - tools_work.php - validate.php - web_site.php (removed) - -David Feb 9 2004 - - Scheduler: when last work request was too recent, - send request_delay to tell client to wait (from Jens) - - code that generates user profile gallery pages (inc/gallery.inc) - has a nightmare of hardwired URL and path names. - I unraveled things enough to make them work again. - Should revisit at some point. - - page_tail() wasn't working when writing to files - - html/ - inc/ - gallery.inc - profile.inc - util.inc - ops/ - gallery.inc (removed) - project.sample/ - project.inc - user/ - debug.php - profile_menu.php - project.inc.sample - sched/ - handle_request.C - -David Feb 9 2004 - - ACTIVE_TASK_SET::poll(): set state file dirty flag whenever the - set of active tasks changes (e.g. app exited). - - rename ACTIVE_TASK::abort() to abort_task() (eliminate ambiguity) - - ACTIVE_TASK_SET::check_rsc_limits_exceeded(): - check only running tasks - - CLIENT_STATE::reset_project(): don't delete apps, app_versions - if project is anonymous-platform - - PROJECT::set_min_rpc_time(): don't change min_rpc_time - if it's already later than requested time (from Jens) - - client/ - app.C,h - client_state.C - cs_scheduler.C - -David Feb 11 2004 - - updated docs - - "request_delay" from server overrides exponential backoff - - client/ - cs_scheduler.C - -David Feb 15 2004 - - updated docs - - make_project: - use short hostname - shorten instructions at end - - add a sample project.xml - - scheduler: write log debug msg when set result.outcome - - setup_project.py and make_project: - add copy of "create_work" - make symbolic link of html/user_profile to itself - don't capitalize long name - - parse_attr(): don't modify const input string - - XML error in client: - - doc/ - (many files) - lib/ - parse.C - sched/ - handle_request.C - tools/ - create_work.C - project.xml (new) - make_project - py/Boinc/ - database.py - setup_project.py - -David Feb 16 2004 - - removed references to Workseq table from python code - - commented out shutdown()s in http.C. - These seemed to be causing problems. - - doc updates - - client/ - http.C - html/user/ - index.php - stats.php - doc/ - (various) - py/Boinc/ - database.py - db_mid.py - -David Feb 16 2004 - - enable the min_core_version attribute of app_version: - don't send a result to a host whose core version is too low. - (Note: this is a no-op unless you set min_core_version - to something nonzero). - If a host isn't sent any work because of this, - send a message suggesting upgrade - - Core client: put an element at the top level of , - not within - - Scheduler: parse from within - Also parse it within for backwards compat - - Client state file not parsed correctly when it contained a - (because of active file xfer). - - add uniqueness constraints for category and forum - - add a script to set up initial categories and forums - - client/ - client_state.C - client_types.C - db/ - constraints.sql - html/ops/ - create_forums.php (new) - sched/ - handle_request.C - sched_shmem.C - server_types.C - -Rom Feb 19 2004 - - Removed #ifdef around stackwalker dump so it'll dump release builds as well - - api/ - boinc_api.C - -David Feb 19 2004 - - FILE_XFER_SET::insert(): check for error BEFORE inserting in set. - - fix time zone display - - client/ - file_xfer.C - http.C - doc/ - (various) - html/inc/ - host.inc - -Jeff Feb 19 2004 - - CVS tagged as seti_boinc_app_release_2_25. - -Rom Feb 23 2004 - - Removed stackwalkers exception description so duplicate information is not logged. - - api/win/ - stackwalker.cpp - -Karl 2004-02-23 - - cookbook changes - - doc/ - project_cookbook.php - -Rom Feb 23 2004 - - New projects were failing to be able to make profiles. Added a bunch of defines - to project.inc that are now required. - - Updated the schema.sql file to include columns that are now required. - - Changed URL handling to include URL_BASE before quite a few relative links. - Basically PROFILE_PATH was being used for URL generation instead of URL_BASE + - IMAGE_URL|PROFILE_URL. - - db/ - schema.sql - html/inc/ - forum.inc - gallery.inc - html/project.sample/ - project.inc - user/ - profile_menu.php - -Jeff Feb 25 2004 - - CVS tagged as seti_boinc_app_release_2_26. This tag is a little late but - the sources should be little if any changed. - -David Feb 28 2004 - - change page_head() so that it doesn't try to find user - when being used for offline page generation - - html/inc/ - gallery.inc - host.inc - util.inc - -David Feb 28 2004 - - added some #includes for freeBSD compile - -David Feb 28 2004 - - made some stuff const - - added new GUI RPCs (for control) - - added GUI RPCs for Windows - NOTE: pipes don't work on Win. need to change to TCP - - client/ - client_state.C,h - cs_account.C - gui_rpc_server.C - doc/ - gui_rpc.php - -David Feb 28 2004 - - (from Rom) fixes a bug reported by Matze in the forums - where after an explorer crash the BOINC GUI doesn't re-register itself with - the new explorer. - - client/win/ - wingui_mainwindow.cpp,h - -Rom Feb 28 2004 - - Added boinc_diagnostics.c,.h, boinc_exceptions.c,.h. Not included in the build yet, - but needed to snapshot the source. - - Fixed a bug where on Windows we were not really waiting for three seconds before - a retry. This is done for both reads and writes since on Windows there is a notion - of exclusive reads which would make successive read requests fail as well. - - api/ - boinc_diagnostics.C, .h (added) - boinc_exception.C, .h (added) - lib/ - filesys.C - -David Feb 29 2004 - - check for "w", "a" in boinc_fopen() - - lib/ - filesys.C - -Rom Mar 1 2004 - - Retry on all boinc_fopen operations - - added boinc_file_exists() - - client/ - app.c - cs_scheduler.c - cs_statefile.c - log_flags.c - lib/ - filesys.C, .h - -David Mar 1 2004 - - compile errors - - client/ - gui_rpc_server.C - -Rom Mar 1 2004 - - Update project files so they'll build symbol files for release builds - - Remove the name collision between boinc.scr and boinc.dll as far as symbol - generation goes - - updated uppercase so it'll build again - - winbuild/ - boinc_cli.vsproj - boinc_dll.vsproj - boinc_gui.vsproj - boinc_ss.vsproj - upper_case.vsproj - -Rom Mar 2 2004 - - Get the complete version string for the Windows OS and include Service Pack - Information if any exist. An example is below: - Microsoft Windows 2003 Standard Server Edition (Build 3790) - - #ifdef out the GUI RPC stuff on Windows for right now, causes a crash on startup. - - client/ - client_state.C - client/win/ - hostinfo_win.cpp - -Rom Mar 2 2004 - - Update version Resouces to version 2.26 for the Windows release. - - client/win/ - boinc_ss.rc - resource.rc - win_config.h - -Rom Mar 2 2004 - - CVS tagged as boinc_app_release_2_26. - -David Mar 3 2004 - - added "using namespace std;" a couple places to fix bizarre - link problems on Windows - - client/ - parse.C - util.C - -David Mar 3 2004 - - "account key" -> "account ID" in the PHP code - - html/ - inc/ - util.inc - user/ - account_created.php - accountsetup_nonfirst_done.php - create_account_form.php - get-passwd.php - login_action.php - mail_passwd.php - -Rom Mar 3 2004 - - Some house keeping with the Windows sources - - All Windows binaries now have a version resource assigned to them. - - The Windows CLI should no longer need to have references to afxwin.h - - project file cleanup work to get rid of some warnings - - client/ - app.h - net_xfer.c - client/win/ - boinc_ss.rc, .h - boinc_cli.rc, .h (added) - boinc_dll.rc, .h (added) - boinc_gui.rc, .h (added) - resource.rc, .h (removed) - update-resource-version - win_idle_tracker.def - win_net.cpp - wingui.h - wingui_mainwindow.cpp, .h - winbuild/ - *.vcproj - boinc.vcproj (removed) - -Rom Mar 4 2004 - - Include file overhaul for the Windows platform - - Basically the linker was linking Windows GUI resources into it because of various - references to afxwin.h, these have now been banished from the source tree except in - one location. - - I added a header file called stdafx.h which contains all the includes for all the - system header files on Windows, each source file contains a pointer to stdafx.h. - - stdafx.h contains conditional logic to switch between afxwin.h and windows.h depending - on whether or not _CONSOLE is defined. - - Compiled Source Sizes: Debug Release - boinc_gui.exe (Before Changes) 1.732MB 328KB - boinc_cli.exe (Before Changes) 2.080MB Unknown - boinc.scr (Before Changes) 244KB 88KB - boinc.dll (Before Changes) 136KB 44KB - - boinc_gui.exe (After Changes) 1.716MB 428KB - boinc_cli.exe (After Changes) 1.508MB 412KB - boinc.scr (After Changes) 188KB 116KB - boinc.dll (After Changes) 140KB 58KB - - I pretty much touched all the source and header files. This checkin should not have any - effect on any platform other than Windows. - -Rom Mar 4 2004 (from John Keck) - - Edits to change when the client considers a result to be at its deadline - it was originally 6 hours as defined in _BASE - if I did this right it will use the connected fraction to modify that amount - a 100% connected client will use the base figure, a 0% connected client will - use the base figure times the multiplier in addition to the base figure. - The figures I have here will produce a maximum time before deadline of - 18 hours. 6*2=12+6=18 for debugging that may be too much but - it may not be enough for release. - - client/ - client_state.h - cs_scheduler.c - -Rom Mar 4 2004 - - More Windows header file cleanup. - - api/ - boinc_api.c - mfile.c - client/ -
- lib/ - filesys.h - language.h - parse.h - util.h - -Rom Mar 5 2004 - - Include file overhaul for the Windows platform ( Part 2 ) - - Compiled Source Sizes: Debug Release - boinc_gui.exe (Before Changes) 1.732MB 328KB - boinc_cli.exe (Before Changes) 2.080MB Unknown - boinc.scr (Before Changes) 244KB 88KB - boinc.dll (Before Changes) 136KB 44KB - - boinc_gui.exe (After Changes) 1.716MB 332KB - boinc_cli.exe (After Changes) 624KB 324KB - boinc.scr (After Changes) 188KB 88KB - boinc.dll (After Changes) 140KB 35KB - - I pretty much touched all the source and header files. This checkin should not have any - effect on any platform other than Windows. - -Rom Mar 5 2004 (from John Keck) - - Adjust default values to download minimum work-unit load until the client can - collect preferences from the server. - - client/ - perfs.c - -Rom Mar 5 2004 - - Add the Alpha project test team members names to the Contact Us page. - - doc/ - contact.php - -Rom Mar 6 2004 - - I am backing out a change by John Keck until a server RPC overload problem is fixed. - - client/ - cs_scheduler.c - -Rom Mar 6 2004 - - Changed the namespace references back to the orginal references so that the clients - will build on Solaris and Linux. - - lib/ - util.c, .h - -Rom Mar 6 2004 - - Updated the version setting code so that it will include the new file resources for Windows - - / - set-verson - client/ - makefile.am - client/win/ - update-boinc-cli-version - update-boinc-dll-version - update-boinc-gui-version - update-boinc-ss-version - -Jeff Mar 9 2004 - - CVS tagged as boinc_app_release_2_27. - -Rom Mar 9 2004 - - Fix fatal error with the intro.php page because of missing function in project.inc - - html/project.sample/ - project.inc - html/user - info.php - -Rom Mar 9 2004 - - Windows Product SKU was being over-written if the person was running with Service Pack 6a. - - client/win/ - hostinfo_win.cpp - -Rom Mar 11 2004 - - Properly identify Windows Longhorn - - client/win/ - hostinfo_win.cpp - -Rom Mar 11 2004 (for Thomas Horsten) - - Here is a patch that fixes CPU detection for Linux (i386) and adds CPU detection for MIPS. - It is not perfect (it's really the proc interface's fault), but at least it is a lot better - than what is there now. - - - client/ - hostinfo_unix.cpp - -Jeff Mar 14 2004 - - Another static/dynamic linking problem fixed by an ugly collect2 - hack. It turns out that a statically linked linux client gets the - following warning at build time: - - hostinfo.C:230: warning: Using 'gethostbyname' in statically - linked applications requires at runtime the shared libraries - from the glibc version used for linking - - and sure enough, when such a client is run on a linux platform - with a incompatible glibc, we saw the following: - - 2004-03-12 11:07:57 [BOINC] Can't resolve hostname setiboinc - 2004-03-12 11:07:57 [BOINC] Can't resolve hostname setiboinc - 2004-03-12 11:07:57 [http://setiboinc/ap/] Couldn't read master - page for http://setiboinc/ap/: error -113 - 2004-03-12 11:07:57 [http://setiboinc/ap/] Couldn't read master - page for http://setiboinc/ap/: error -113 - 2004-03-12 11:07:57 [http://setiboinc/ap/] Detaching from project - - check for URL error - 2004-03-12 11:07:57 [http://setiboinc/ap/] Detaching from project - - check for URL error - - So we needed to link dynamically to libc but statically to libstdc++ - (for reasons described elsewhere in these notes). The only way found - so far to do this is via a hand crafted collect2 line. That, and - not linking the client statically in a global fashion. - - We should make the collect2 scripts adapt to the environment in - which they ar run. Or, better, figure out how to do this all - within configure/make. - - - bumped version to 2.28. - - configure.ac - configure - client - Makefile.am - Makefile.in - collect2_line_linux.csh new file - collect2_line_solaris.csh new file - collect2_line removed - -Jeff Mar 15 2004 - - CVS tagged boinc and seti_boinc as boinc_app_release_2_28. - -Karl 2004-04-15 - - fixed bug when files are copied to apps/ in different order - - tools/ - update_versions - -David Mar 16 2004 - - fleshed out trickle-message support a bit. - Separate notions of "trickle up" (client->server) - and "trickle down" (server->client) messages. - They're kept in different tables. - - added a program trickle_handler.C for handling trickle-up messages. - This is a framework program: you need to supply a handler function - - The scheduler sees if there are any trickle-down messages - for the host, and sends them - - STILL TO BE DONE: - - server-side API for creating trickle-down messages - - client logic for delivering trickle-down messages - - - fix bad mem size reporting on Mac w/ > 2GB mem - - client/ - hostinfo_unix.C - scheduler_op.C,h - db/ - boinc_db.C,h - constraints.sql - doc/ - contact.php - docutil.php - gui_rpc.php - software.php - trickle.php - validate.php - sched/ - handle_request.C - sched_config.C,h - server_types.C,h - trickle_handler.C (new) - validate_test.C - validate_trivial.C - -Rom Mar 16 2004 - - Add back in support for Thomas's multi-proc protection aginst strcat for - vendor and CPU information - - Included the same multi-proc stuff for the x86 - - Add JKecks change for changing when to report results based on the amount - of time the machine is connected onto the Internet. - - Added support for keeping a backup copy of stderr.txt and stdout.txt for - the previous session of BOINC in case it crashes. - - client/ - cs_scheduler.c - file_names.h - hostinfo_unix.c - client/win/ - wingui_mainwindow.cpp - -kevin 17 March 2004 - checked in signal handling code. Uses sigaction. If signal is - originally ignored, do not handle signals. - -David Mar 18 2004 - - Remove "confirm executables" preference. - This is replaced by the anonymous platform mechanism. - - client/ - client_state.h - client_types.C,h - cs_apps.C - cs_files.C - main.C - prefs.C,h - html/inc/ - prefs.inc - -kevin 18 March 2004 - - exit status of application set to nonzero value if there is an - uncaught signal. - client/ - app.C - -Rom Mar 18 2004 - - Fixed a bug causing build problems for a customer in Australia, basically - we were trying to do some ANSI<->Unicode conversions that were not needed. - - sighandle.h does not need to include its contents on the Win32 platform - - client/win/ - wingui_dialog.cpp - lib/ - sighandle.h - -Jeff Mar 19 2004 - BTW, here is how to buils the mac osx client/app in such a way that you - can specify the build name: - configure --build powerpc-apple-darwin - -David Mar 19 2004 - - small web-site fixes (e.g. you can now set your country to Cote d'Ivoire) - - html/ - inc/ - download.inc - prefs.inc - util.inc - user/ - host_edit_form.php - index.php - profile_menu.php - white.css - -kevin March 19 2004 - - Scheduler: don't handle partial requests - (i.e. missing tag) - lib/ - error_numbers.h - sched/ - server_types.C - handle_request.C - -David Mar 20 2004 - - Various changes to the way CPU benchmarking is done, - motivated by the need to make claimed credit constant across CPUs, - including "hyperthreaded" X86 CPUs - Old: - A single process runs the benchmark. - This gets 100% of the FPU on a HT CPU. - When 2 copies of an app are run, - they will each get 50% of the FPU, - so the claimed credit will be too high by a factor of 2. - New: - Run N copies of the benchmark in parallel, - where N is the number of CPUs reported by the OS - (e.g. twice the number of HT CPUs) - Average the results. - Revised interface: - start_cpu_benchmarks() starts up the N benchmark processes - cpu_benchmarks_poll() checks for completion - are_cpu_benchmarks_running() returns true iff running (doesn't poll) - abort_cpu_benchmarks() aborts processes - The set of running processes is maintained in an - array of BENCHMARK_DESC structures - Results are passed back in files in the Unix case, - where we use separate processes. - In the Windows case (where we use threads) - results are passed back in the BENCHMARK_DESC structure. - - api/boinc_api.C - client/ - Makefile.am - client_state.C,h - cs_apps.C - cs_benchmark.C - cs_prefs.C - file_names.h - gui_rpc_server.C - win/ - wingui_mainwindow.cpp - doc/ - various - lib/ - sighandle.C - -Rom Mar 22 2004 - - Setup project clients so they report back possible memory leaks on exit and - validate the heap after every 1024 allocations. - - Define constant for stdout.txt - - api/ - boinc_api.c - lib/ - app_ipc.h - -kevin Mon Mar 22 2004 - - ensure that is included in stderr_out, - even if stderr_out is too long. - client/ - app.C - -Rom Mar 22 2004 - - Attempt to force load glut32.dll in a specific location, - if it fails catch the SEH exception and just disable grapgics. - - api/ - graphics_api.c - -David Mar 22 2004 - - Web: Show mod time when display global prefs - - Client: when write global prefs to a file, - tag with source project and scheduler only if not already tagged - (otherwise get multiple tags) - - Client messages: show source project and mod time of global prefs - - Web: show all date/time strings in same format, use UTC - - Client messages: don't list "BOINC" as a project. - Indicate non-project-specific by "---" - - client/ - app.C - cs_scheduler.C - main.C - prefs.C,h - win/ - wingui.cpp - html/ - inc/ - prefs.inc - util.inc - user/ - prefs_edit_form.php - lib/ - util.C,h - -kevin Mar 22 2004 - - Scheduling server: we were failing to copy a result's exit_status - from the request message to the DB record. - So exit_status was always zero in the DB. Dooh! - - sched/ - handle_request.C - -David Mar 22 2004 - - Change the policy for propagating global preferences. - OLD: if a scheduler request message has newer prefs than - those in the DB, update the user record. - I.e. propagate prefs from hosts to projects - The problem with this: see bug #1164 - NEW: Use whichever is more recent of the prefs in the - request msg and the prefs in the DB. - Don't update the prefs in the DB - - sched/ - handle_request.C - server_types.C - -Jeff Mar 23 2004 - - At check_pair() time, if the validator sees that the canonical result - is deleted, a message is sent to the validator log. Canonical result - deletion should only happen when all results for a WU are received - or expired. - - sched/ - validate.C - -Rom Mar 23 2004 - - client applications don't really need to dump leak detection information - for public consumption. So remark it out for public release. - - api/ - boinc_api.c - -David Mar 23 2004 - - Initial global prefs (as defined in GLOBAL_PREFS::init()) should - impose minimal restrictions, so that the client can do its first - scheduler RPC and get global prefs from a server - - Fix bug where benchmarks always run on Win client startup - - Improve startup and prefs messages - - client/ - client_state.C - client_types.C - cs_benchmark.C - prefs.C - -David Mar 23 2004 - - Turned off the entire "infeasible result" mechanism for now. - The recent usage of min_core_version was causing - lots of results to (undeservedly) get tagged as infeasible. - - Don't bump infeasible_count (or print message!) - if min_core_version is not met - - sched/ - handle_request.C - feeder.C - -Rom Mar 24 2004 - - Unify all diagnostics functionality under the same banner, SETI_BOINC, - BOINC_CLI, BOINC_GUI, upper_case now all initialize the BOINC Diagnostics - Library which sets up stdout and stderr redirection, heap corruption - detection, stackwalker for Windows, and stackalker fo *nix can be pluged - in and be automatically used by all applications. - - Taskbase#1131 -- closed - - Taskbase#1132 -- closed - - api/ - boinc_diagnostics.c, .h (removed) - boinc_exeception.c, .h (removed) - boinc_api.c, .h - api/win/ - stackwalker.cpp, .h (removed) - apps/ - upper_case.c - client/ - file_names.h - main.c - stdafx.h - client/win/ - wingui_mainwindow.cpp - lib/ - diagnostics.c, .h (added) - exception.c, .h (added) - stackwalker_win.cpp, .h (added) - winbuild/ - boinc_cli.vcproj - boinc_gui.vcproj - boinc_ss.vcproj - upper_case.vcproj - -kevin Mar 24 2004 - - class boinc_base_exception: changed order of initialization - in constructor so that initialization matches declaration. - - lib/ - exception.h - -Rom Mar 24 2004 - - I was a little to agressive in cleaning up boinc_api.c and removed some - signal handling code, added that back in. - - The new exceptions use string's, so include in the exception header. - - gcc has stronger exception enforcement than mscl - - api/ - makefile.am - lib/ - diagnostics.c - exception.c, .h - -Rom Mar 24 2004 - - Taskbase#1029 - graphics API bugs - * App graphics window sometimes becomes invisible - Not Repro - * App graphics window doesn't restore to original size - if you maximize, close window, and show graphics again. - Fixed - - When window is in minimized state switch the visibility flag to false - - api/ - windows_opengl.C - -David Mar 24 2004 - - change priority of "no work" messages in scheduler reply - from low to high - - remove "hide_email" field from profile table and associated web pages - (BOINC should never show email addresses) - - html/inc/ - profile.inc - sched/ - handle_request.C - -David Mar 24 2004 - - check for the existence and correct size (but not checksum) - of a result's files (app_version and inputs) - before starting or restarting the app - If a file is deleted (e.g., manually by the user) - the core client should download it again before starting the app. - - New function: FILE_INFO::verify_existing_file() - - various changes to get Unix client and apps to compile - with new diagnostics code - - diagnostics.C subsumes sighandle.C - - NOTES: - - use int where possible - - all numeric error codes go in lib/error_numbers.h - - libboinc.a is to be used by applications only - (not client or server programs) - We can create a different lib for the latter, - but for now they use explicit .o's - - api/ - boinc_api.C - client/ - Makefile.am - app.C - client_state.h - client_types.C,h - cs_apps.C - cs_files.C - main.C - html/inc/ - util.inc - lib/ - Makefile.am - diagnostics.C,h - error_numbers.h - sighandle.C,h (removed) - -David Mar 24 2004 - - get the above stuff working on Windows - - client/ - app.C - cs_apps.C - lib/ - diagnostics.C,h - error_numbers.h - -David Mar 24 2004 - - add log flag to suppress file-size checking on app startup - - client/ - client_types.C - log_flags.C,h - -Rom Mar 25 2004 - - I have made SETI_BOINC Glut Free, Basically copied font code from glut - and put it into the glut folder. - - Removed Glut libraries - - Removed Delay Load technologies - - api/ - graphics_api.C - -David Mar 25 2004 - - Unix client: use semaphore instead of lockfile to prevent multiple copies - - rename boinc_init_diag() to boinc_init_diagnostics() - - rename boinc_execution_engine() to main_loop() - - add get_key() (to generate IPC key unique to a directory) - - replaced RETSIGTYPE with void - - apps/ - upper_case.C - client/ - Makefile.am - client_types.h - cs_apps.C - main.C - lib/ - diagnostics.C,h - error_numbers.h - synch.C,h - -Jeff Mar 26 2004 - - Release tags. Sources were tagged as seti_boinc_release_2_30 and then, - after some build problems were fixed, - were tagged as seti_boinc_release_2_30a. - The build from this latter tag was what was released - as app version 2.30. - -David Mar 26 2004 - - when show country select on web, - pre-populate based on client's IP (using GeoIP; from Janus) - - fix compile problem with semaphore code - - html/ - inc/ - GeoIP.dat (new) - geoip.inc (new) - team.inc - util.inc - lib/ - app_ipc.h - synch.C - user/ - create_account_form.php - edit_user_info_form.php - -David Mar 26 2004 - - Give the PHP session mechanism a "path" (last component of project URL) - to disambiguate multiple projects on same host, - so you can log into both at once w/ separate cookies - (suggested by Janus) - - Change "Most often asked" to "Most frequently asked" - - html/inc/ - forum.inc - util.inc - -Rom Mar 26 2004 - - Fix a minor bug where after the screen saver shutdown BOINC would fire-up - a new SAH Window - - Fix a few build breaks in the Windows CC - - Tag for a 2.31 release. - - api/ - boinc_api.c - windows_opengl.c - client/ - app.c - client/win/ - wingui_mainwindow.cpp - lib/ - app_ipc.c - -Rom Mar 26 2004 - - Update versions started to complain about PDB files, - so tell it to ignore them for determining platforms - - tools/ - update_versions - -David Mar 26 2004 - - combine RAC when merging hosts - - html/ - inc/ - forum.inc - user/ - host_edit_action.php - -Eric H Mar 27 2004 - - added support for SOCKS4 and SOCKS5 proxy servers - - added a new PROXY layer between HTTP_OP and NET_XFER. - This layer takes care of the state transitions - involved in negotiating with a SOCKS server. - Support for editing SOCKS proxy server - information still needs to be completed in the Windows GUI. - - Possible future projects: add IPv6 support, GSSAPI support, - test on SOCKS4 server - - client/ - Makefile.am - client_messages.C - client_state.C,h - cs_cmdline.C - cs_statefile.C - gui_rpc_server.C - http.C,h - log_flags.C,h - message.h - net_xfer.C,h - pers_file_xfer.C - proxy.C,h (added) - scheduler_op.C - lib/ - error_numbers.h - -Eric H Mar 27 2004 - - Catch error returns from CPU benchmark timer - - client/ - cpu_benchmark.C - lib/ - error_numbers.h - -Rom Mar 26 2004 - - Updated setup so it'll ask if you want it to be the defult screensaver - - Updated setup so that it'll remember where you installed it last and - select that folder by default. - - win_build/installer - BOINC.ipr - win_build/installer/Media/Default/ - default.mda - win_build/installer/Script Files/ - Setup.ino, .ins, .obs, .rul - -Rom Mar 28 2004 - - Prepare the environment and installation program for a language aware - system. All language files will be installed with every installation. - - This is the begining on bringing us into the Windows MUI effort. - - win_build/installer/ - - client/translation/ - - - -Rom Mar 28 2004 - - Issue fix that Janus gave for the parsing error. - - html/user/ - host_edit_action.php - -David Mar 28 2004 - - Fix compile/link errors I introduced on Friday (sorry!!) - - api/ - Makefile.in - boinc_api.C - client/ - Makefile.in - cpu_benchmark.C - -Rom Mar 29 2004 - - Fix BOINC_GUI so it'll build again. - - client/ - proxy.c - client/win/ - wingui_dialog.cpp - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - -David Mar 29 2004 - - Don't use semaphores for multiple-copy exclusion on Unix. - Semaphores don't work better than lockfile. - - Fix bugs in global preferences. - - GLOBAL_PREFS::parse() now sets all booleans to false - - removed confused should_request_global_prefs() from Win client. - - client/ - main.C - prefs.C - win/ - wingui_mainwindow.cpp,h - lib/ - filesys.C - tools/ - create_work.C - -David Mar 29 2004 - - rename main_loop() to boinc_main_loop() - - api/ - boinc_api.C - client/ - main.C - win/ - win_service.cpp - -Rom Mar 29 2004 - - Implement UI for SOCKS proxy server - - Fix setup bug in the making, only automatically startup BOINC if the user - has opted for the always start BOINC at startup. - - client/win - wingui_dialog.cpp, .h - wingui_mainwindow.cpp, .h - wingui_proxydlg.cpp, .h (Added) - win_build/ - boinc_gui.vcproj - win_build/installer/Script Files/ - setup.rul - -David Mar 30 2004 - - preparation for moving prefs.C from client/ to lib/ - (so can use in server): - - add bool found_venue return value from GLOBAL_PREFS::parse_file() - - add separate show_global_prefs_source() to print messages - - before sending signals to ACTIVE_TASKs, check their state - to avoid signaling non-existent processes - (this caused the Unix client to crash when reset) - - remove remaining semaphore-related code - - api/ - boinc_api.C - client/ - app.C - client_state.C,h - cs_prefs.C - cs_scheduler.C - prefs.C,h - -David Mar 30 2004 - - don't check file size (on app startup) if it's an anonymous - platform project, and it's an app version file - - client/ - cs_apps.C - -David Mar 30 2004 - - sched server: when parse preferences, take venue into account - - lib/ - parse.C,h - sched/ - Makefile.am - handle_request.C - server_types.C,h - -Rom Mar 30 2004 - - Asserts should be included in the output spew under the Windows IDE - - Make sure Semephore stuff is out of app_ipc.* stuff - - Include fix for Linux APM bug, the driver version info can contain - characters - - client/ - hostinfo_unix.c - lib/ - app_ipc.c, .h - diagnostics.c - -David Mar 31 2004 - - make host_info related functions into members of HOST_INFO - - client/ - client_state.C - cs_benchmarks.C - cs_prefs.C - hostinfo.C,h - hostinfo_unix.C - win/ - hostinfo_win.cpp - lib/ - app_ipc.C - -David Mar 31 2004 - - call set_nslots() whenever there are new global prefs, - in case max_cpus has changed. - E.g. on a multiproc machine, if max_cpus is increased from 1 to 2, - it should start a new app. - - Call report_result_error() immediately when abort a client - due to excess CPU/disk/mem usage, - to ensure that the result is marked as erroneous, - and to make the error message more specific. - (Currently this is called after process is reaped, - but this may never happen). - - client/ - app.C,h - cs_prefs.C - hostinfo_unix.C - prefs.C - lib/ - error_numbers.h - -Rom Mar 31 2004 - - Checkin prototype of universal gui based on wxWidgets. - - clientgui/proto/ - - -David Mar 31 2004 - - add support for mouse-event handling in apps - Apps that use graphics must now supply - boinc_app_mouse_move() and boinc_app_mouse_button functions - - check for file existence before opening for read, avoid 5-second delay - - api/ - boinc_api.C - graphics_api.C - windows_opengl.C - -David April 1 2004 - - Client: add a mechanism for suspending/resume network activity, - exactly parallel to the one existing mechanism for - suspending/resuming all (CPU+network) activity. - Initially this will be used to provide a GUI control. - Eventually we might have preference that control network - independently (time of day, only if idle, etc.) - - Client: save all messages in memory. - Implement GUI RPCs for getting ranges of messages. - - client/ - client_state.C,h - cs_prefs.C - gui_rpc_client.h - gui_rpc_server.C - main.C - message.C,h - lib/ - messages.C - util.C,h - - -Davaid April 1 2004 - - print message when resume network activity - - flesh out GUI RPC for messages - - client/ - cs_prefs.C - gui_rpc_client.C,h - gui_test.C - makefile.gui_test (new) - -Rom April 1 2004 - - Checkin UI for disabling/enabling network activity from the GUI - - client/win/ - boinc_gui.rc, .h - wingui_mainwindow.cpp, .h - -David April 1 2004 - - extend mouse interface to handle buttons better - - api/ - windows_opengl.C - -Rom April 1 2004 - - Found another place that should have been using boinc_file_exist. - NOTE: Still hasn't fixed the performance issue(s) on my machine though. - - api/ - boinc_api.c - -David April 2 2004 - - Client: fixed for disabling network activity - - cs_files.C - cs_scheduler.C - hostinfo_unix.C - main.C - -Jeff April 2 2004 - - tagged as seti_boinc_app_release_2_32 and released to alpha. - -David April 3 2004 - - added a mechanism to handle situations where an app - appears to have exited successfully, - but in fact didn't call boinc_finish() or exit(0). - This apparently can happen on various platforms, don't ask me how. - The new mechanism: - boinc_finish() writes a file "boinc_finish_called" - in the slot directory. - When an app appears to have exited successfully, - the core client checks for the existence of this file. - If it's not there, the result is placed "in limbo": - it takes up a slot, but the app isn't restarted. - If the core client is restarted, the app is restarted. - - NOTE: when we release a core client with this feature, - it's critical that all users reset the project, - and that updated versions of all apps are released. - Might be a good time for a major release increment. - - api/ - boinc_api.C - client/ - app.C,h - lib/ - app_ipc.h - -David April 3 2004 - - synchronize access to shared-mem work array by scheduler processes, - with the goal of NEVER sending the same result to different hosts. - - Instead of a single bool present flag, there are now 3 states - for an element in the array: absent, present, and - "checked out" (being considered for sending) - - There's now a semaphore that a scheduler process must acquire before - examining the state field of an array entry - (note: the feeder creates this semaphore, - but doesn't have to acquire it - because of the producer/consumer situation). - - split out the work-sending part of handle_request.C to a new file - (sched_send.C,h) because it was getting kinda big - - sched/ - Makefile.am - main.C,h - sched_send.C,h (new) - sched_shmem.h - show_shmem.C - -David April 3 2004 - - fix bugs in the above - - client/ - app.C - html/inc/ - result.inc - lib/ - filesys.C - synch.C - sched/ - feeder.C - main.C - sched_config.C,h - -David April 3 2004 - - added code (from Rob Ogilvie) to check for battery usage - on Linux ACPI hosts - - client/ - hostinfo_unix.C - -David April 3 2004 - - If a web page requires login (e.g., forum/post.php) - the resulting form will refer to a handler (login_action.php) - in the wrong directory. - Kludge solution: put a symbolic link in forum/login_action.php - Is there a better solution? Maybe, but I'm too tired to think of it. - - better download instructions for Unix - - html/ - forum/ - post.php - user/ - account_setup_first_download.php - py/Boinc/ - setup_project.py - -David April 4 2004 - - change the way file transfer speed is computed. - Instead of fancy exponential averaging, - just take the average every 3 seconds - - client/ - net_xfer.C,h - pers_file_xfer.h - -David April 4 2004 - - ACTIVE_TASK::request_exit() (win): kill the process immediately, - instead of sending it a quit request event, - waiting a few seconds, then killing it. - Currently the quit request event is checked only in - boinc_time_to_checkpoint(), - which (at least, in SETI@home) isn't called very often. - So it always takes 5 seconds to exit the core client. - - NOTE: when the new app management-thread stuff is done, - we can change this back - - client/ - app.C - -David April 6 2004 - - move update_average() from sched_util.C to util.C - (and give it a half-life arg) - - move Messages class declaration out of util.h into its own file - - move file_lock() from util.C to filesys.C - - client: rename get_percent_done() to get_fraction_done - (uh... percents are 0..100; fracs are 0..1) - - client/ - client_state.h - cs_apps.C - cs_benchmark.C - cs_cmdline.C - cs_prefs.C - cs_scheduler.C - gui_rpc_server.C - message.h - lib/ - filesys.C,h - messages.C - messages.h (new) - util.C,h - sched/ - Makefile.am - sched_send.C - sched_util.C,h - update_stats.C - validate.C - validate_test.C - -David April 7 2004 - - Client: replace the buggy update_avg_cpu() - with the tried-and-true update_average() - to estimate average CPU rate per project - - client/ - client_state.h - client_types.C,h - cs_apps.C - cs_scheduler.C - -David April 8 2004 - - Clarify distinction between log messages (debugging) - and user messages (shown to user) in the client - and put both in one place (client_msgs.C,h) - - rename ClientMessages to CLIENT_MSG_LOG - - rename SchedMessages to SCHED_MSG_LOG - - rename Messages to MSG_LOG - - rename ScopeMessages to SCOPE_MSG_LOG - - client/ - Makefile.am - *.C - client_messages.C (removed) - message.h (removed) - client_msgs.C,h (new) - lib/ - messages.C,h (removed) - msg_log.C,h (new) - sched/ - Makefile.am - *.C - sched_messages.C (removed) - sched_msgs.C,h (new) - -David April 8 2004 - - If an active task is in limbo, don't mark its result as done! - (from James Drews) - - client/ - cs_apps.C - -David April 8 2004 - - Fix a major error in back-end logic (found by Jeff): - The canonical result's output files (and WU input files) - were being deleted when all results had server_state = OVER. - But this doesn't mean they've been validated! - So the third result from every group of three - was failing validation about half the time - because the canonical result output files had been deleted. - - The fix: delete canonical result and WU files only when - all results are OVER *and* all results with outcome SUCCESS - have been validated. - - sched/ - transitioner.C - -David April 9 2004 - - Added zip/unzip code (from Carl Christensen). - This is basically the Info-ZIP code with unused files stripped out, - and some minor tweaks to return errors instead of exiting - - zip/ - * (new) - unzip/ - * (new) - -David April 9 2004 - - Fixed a nasty bug that caused back-end processes - to corrupt records in the "result" table, and potentially others. - The Bug: - - escape_string() replaces ' and \ by \' and \\ respectively; - this is done so that they can be used in SQL statements, e.g. - update foo set blah='abc\'def'; - - escape_string() (which can increase the length of a string) - didn't check the size of its output buffer - - The stderr_out field of results with stack traces - often are near their 4KB limit, - and have LOTS of \s (in file paths) - - escape_string() was writing beyond the end of the - stderr_out field, writing garbage into fields - like batch, claimed_credit, etc. - The Fix: - add a "len" argument to escape_string(), - and use safe_strncpy() to avoid writing off the end of the buffer. - - db/ - boinc_db.C - db_base.C,h - html/user/ - stats.php - -Rom April 10 2004 - - Initial Snapshot of the new BOINC Universal GUI, - this GUI will provide the native interface for all supported platforms. - NOTE: This is just a bare bones skeleton. - Header file stuff still needs - to be moved around to support all the platforms. - stdwx.h should include config.h or win_config.h - depending on platform, etc. - - clientgui/ - * (new) - -David April 10 2004 - - restore compilation on Linux - - lib/ - filesys.C - sched/ - sched_config.C - zip/ - Makefile - -David April 11 2004 - - scheduler RPC: return a result's app version number - in a field within , - not an field within - Change scheduler to look in both places for now. - - client/ - client_types.C - sched/ - handle_request.C - server_types.C - -Jeff April 12 2004 - - tagged with both: - boinc_core_release_3_00 - seti_boinc_app_release_3_00 - - -David April 13 2004 - - removed "result_template_file" arg (and several other args) - from make_work; these can just be copied from the WU - - sched/ - make_work.C - -David April 13 2004 - - Changes in the parsing of WU template files: - - Any unrecognized elements in a - are now just copied to the output. - So you can include attributes like - and they'll get propagated correctly. - - The following items can now be included in a WU template: - rsc_fpops_est - rsc_fpops_bound - rsc_memory_bound - rsc_disk_bound - delay_bound - min_quorum - target_nresults - max_error_results - max_total_results - max_success_results - - These are not copied to the output, - but are used to populate the WORKUNIT - (which is now passed in as an arg) - - The latter means that 'create_work' (the cmdline program) is simplified; - it can now take as few as 5 args - - tools - backend_lib.C - create_work.C - -David April 14 2004 - - Added code (from Janus Kristensen) to cache web pages. - Restored leader boards (users/teams/hosts) - and made them cached with a refresh time of 1 hour - - html/ - inc/ - cache.inc (new) - user/ - index.php - stats.php - top_hosts.php - top_teams.php - top_users.php - -David April 14 2004 - - added boinc_make_dirs() - (preliminary support for projects subdirs for CPDN) - - If is in config file, send it in sched replies - - lib/ - app_ipc.C - filesys.C,h - sched/ - sched_config.C,h - server_types.C - -David April 14 2004 - - moved MFILE declaration to a separate file - to facilitate a plain-C BOINC API - - api/ - mfile.h (new) - -David April 15 2004 - - change GUI RPC so that it uses TCP instead of UNIX-domain socket. - Core client accepts connections only from local host (127.0.0.1) - We currently use port 31416, since there's been no response - to my request for an official port. - - changed boinc_mkdir() so that it sees if the path already - exists and is a dir, and returns success if so - - main.C: print error message if CLIENT_STATE::init() fails - - client/ - client_state.C - file_names.C - gui_rpc_client.C,h - gui_rpc_server.C,h - main.C - lib/ - filesys.C - -David April 15 2004 - - CLIENT_STATE::computer_resource_debts(): - fix kludge that could result in seg fault - - client/ - cs_scheduler.C - -Rom April 15 2004 - - Increase benchmark timeout from 60 seconds to 120 seconds - - client/ - cpu_benchmark.h - -David April 18 2004 - - Added cross-project identification (scheme developed by Janus Kristensen) - - NOTE: this involves a database change (new field in user table). - You must update your database by adding the field and initializing it - (see html/ops/db_update.php) before using this code. - - client/ - client_types.C,h - cs_scheduler.C - db/ - boinc_db.C,h - schema.sql - html/ - user/ - create_account_action.php - ops/ - db_update.php (new) - py/Boinc/ - database.py - sched/ - db_dump.C - server_types.C - -David April 19 2004 - - Client: change the way network transfer speed is computed. - Instead of computing it every 3 seconds (which doesn't work - for short transfers) just computed it from start of transfer. - - when detach from a project, and global prefs are from that project, - delete the global prefs file and init() prefs in mem. - Otherwise you have prefs from unknown project. - - write element in only if writing to server - (avoid error parsing state file) - - some message end with multiple \n's. delete them all. - - change return type of boinc_file_exists() to bool - - client/ - client_state.C - client_types.C - net_xfer.C,h - prefs.C - win/ - wingui.cpp - wingui_proxydlg.cpp - lib/ - filesys.C,h - -Rom April 20 2004 - - Prevent a nested exception during a heap check by disabling the - heap check during a stack dump. - lib/ - diagnostics.C - - -David April 20 2004 - - The Windows CreateDirectory and RemoveDirectory return - nonzero on error (unlike rmdir and mkdir). - The code had it backwards, which led to various problems, - e.g. after attaching to a new project no RPC happened - - print error messages if fail to delete account file - or project dir on detach - - client/ - client_state.C - file_names.C - lib/ - filesys.C - -Jeff April 21 2004 - - tagged as seti_boinc_app_release_3_01 - -David April 21 2004 - - Web: page_head() no longer checks for logged-in user. - Pages that care about that must do it separately, - and can pass the user into page_head() if they want. - - added is_valid_country() function - - don't get logged-in user for pages that don't show sensitive info - (results, workunit, host). - This also makes these pages cacheable. - - html/ - forum/ - edit.php - inc/ - countries.php - util.inc - user/ - result.php - results.php - show_host_detail.php - -Rom April 22 2004 - - Integrate in Sebastian Masch's ACPI code that works with multiple - AC Adapter types - - Integrate back in the APM code that works with the Linux 2.6 kernels - - client/ - hostinfo_unix.c - -Jeff April 22 2004 - - tagged as boinc_core_release_3_01 - -David April 22 2004 - - boinc_fopen(): add a Unix-specific #ifdef case that, - in case of failure, sees if errno is EINTR and if so retries the fopen. - This fixes a problem in the SETI@home app, - where an initial fopen() gets interrupted by the timer (I think) - - add project_dir and wu_name elements to the APP_INIT_DATA structure; - add corresponding elements to the app_init_data.xml file; - populate these in the core client, and parse in the API - - rename boinc_trickle() to boinc_trickle_up() - - rename full_path() to relative_to_absolute() - - api/ - boinc_api.C - client/ - app.C - cs_statefile.C - lib/ - app_ipc.C,h - filesys.C,h - -David April 23 2004 - - added new items to APP_INIT_DATA (for Folding@home): - slot - boinc_dir - authenticator - - rename app_preferences to project_preferences in APP_INIT_DATA - - api/ - boinc_api.C - client/ - app.C - lib/ - app_ipc.C,h - -Rom April 26 2004 - - Fix a condition where we were leaking a file handle on Linux - - Fix a seg fault when the dirscanner attempts to scan a non - existent directory - - client/ - hostinfo_unix.c - lib/ - filesys.c - -Rom April 27 2004 - - Remove dependency on semaphore stuff so the Mac 10.2 client will build. - NOTE: The semaphore stuff should only be used in server components now. - - client/ - Makefile.am - lib/ - Makefile.am - -Rom April 28 2004 - - Fixup build system so it doesn't have to change the version number in the - Windows resource files for every version change. Make the resource files - include win_config.h which contain the nessassary information and then - reference it. - - / - set-version - client/ - Makefile.am - client/win/ - *.rc - update* (deleted) - -David April 28 2004 - - fix compile problem on Linux - - client/ - hostinfo_unix.C - -Rom April 28 2004 - - Fixup Windows service controls so that pause/resume/start/stop work as - expected, when running as a service log to the Windows event log. - - When attempting to change the service description use runtime dynamic - linking for the call to ChangeServiceConfig2 so that we will work even - on NT 4.0 systems. - - Some of these fixes were based on code from Mathias Walter - - client/ - cs_cmdline.C - main.C - client/win/ - win_service.cpp, .h - win_build/ - boinc_cli.vcproj - -David April 30 2004 - - scheduler: connect to DB after checking major version# - - scheduler: request 24-hour delay if bad major version# - - scheduler: request 1 hr delay if project is shut down - - scheduler: parse from client - - print expanded error in PHP when can't connect to DB - - html/ - inc/ - db.inc - user/ - create_account_action.php - sched/ - handle_request.C - main.C,h - server_types.C,h - -David April 30 2004 - - Add a 10 second delay in "start", after starting daemons - but before writing run_state.xml file. - This lets the feeder delete the shared-mem segment - (if there is one) before CGI programs are created - and create new attachments - - get Fast CGI to compile (but not link) - - sched/ - Makefile.am - handle_request.C - main.C - server_types.C - start - -David April 30 2004 - - Got the scheduling server to compile (but not link) under fastCGI - For some reason I had to modify fcgi_stdio.h to accomplish this. - Would be nice to figure out what the problem is. - - Eliminated the use of streambuf stuff in various places. - This seems to cause problems. - - db/ - db_base.C - lib/ - filesys.C - msg_log.C,h - parse.C - util.C,h - sched/ - Makefile.am,in - fcgi_stdio.h (new) - fcgsapp.h (new) - handle_request.C - main.C - sched_config.C,h - sched_util.C - server_types.C - - tools/ - backend_lib.C - process_results_template.C - -David May 2 2004 - - removed the "project" table from DB. - Its only role was to store the project name. - This is now in the config file instead. - - NOTE: if you upgrade to this code, you must add an entry - ... - to your config.xml file. - - db/ - boinc_db.C,h - schema.sql - py/Boinc/ - add_util.py - database.py - db_mid.py - setup_project.py - sched/ - main.C,h - sched_config.C,h - server_types.C - -David May 2 2004 - - finished the implementation of cross-project identification: - scheduler: if get cross_project ID in request message, - and it's different than in DB, update user record - - new global-prefs propagation policy: - global prefs are propagated to accounts with the same email address. - Implementation: - - RPC request message has - - scheduler: if get global prefs in request message, - and they're from an account w/ same email address, - and they're newer than in DB, - then update user record - - client/ - cs_scheduler.C - sched/ - handle_request.C - server_types.C,h - -David May 2 2004 - - client: fixed bug in general prefs parsing that caused - source project to be "unidentified" - - client/ - prefs.C - -David May 3 2004 - - server: instead of a single "stop" file, we now have two: - stop_daemons: tells daemon processes to stop - stop_sched: tells scheduler to return "down" message - - This allows us to have the following logic in "start": - remove stop_daemons - start daemon processes - wait 10 seconds - remove stop_sched - which is necessary to give the feeder a "head start" - on deleting and creating the shared memory segment. - - NOTE: there's still a problem when a sched process - hangs (e.g. while sending to hung client) while attached to shmem. - - sched/ - *.C - start - -David May 3 2004 - - core client, Unix: if app is killed by SIGKILL, - put it in limbo (same as if exited zero without writing finish file). - - client/ - app.C - -Rom May 3 2004 - - Try to cleanup a recursive failure during a dump to stderr by changing - the fprintf call in diagnostics.c - - Apparently exceptions don't walk up the inheritance tree when calling - virtual functions, so force the issue by locally scoping additional - variables that can be set by constructors which will allow base functions - to get the correct information. - - lib/ - diagnostics.c - exception.c, .h - -Rom May 3 2004 - - Add new report to OPs pages to show failures by platform - - html/ops/ - db_ops.inc - failure_result_summary_by_platform.php - index.php - -Rom May 3 2004 - - Fix a screensaver bug where if BOINC was suspended it would get stuck - trying to bring up graphics for a suspended application. - - Remove obselete db_ops.inc and util_ops.inc file from the ops directory. - - client/ - ss_logic.c - html/ops/ - db_ops.inc (remove) - util_ops.inc (remove) - -Rom May 3 2004 - - Fix a bug where the number of files deleted being returned on the result - summary report was actually the number of invalid records - - html/inc/ - db_ops.inc - -Rom May 4 2004 - - Fixup new report so it gives a quick roll-up of information, i.e. strips - Linux kernel version down to just major, minor, and revision and shortens - the Windows on_name down to just 'Windows' - - html/inc/ - db_ops.inc - -Rom May 4 2004 - - Use a more optimized query for the results summary page, - load times go from 8-10 seconds to 1-2 seconds - - Fix client_version_num bug after field was renamed to app_version_num - - html/inc/ - db_ops.inc - -Rom May 4 2004 - - Include a link on the failure page that'll bring up a report - with only those failures - - html/inc/ - db_ops.inc - -David May 4 2004 - - file upload handler: accept any major version - - scheduler: if wrong major version, don't set "nucleus only" flag - (this prevents acking of results) - - db_dump: put encoding=iso-8859-1 into header - - sched/ - db_dump.C - file_upload_handler.C - handle_request.C - -Rom May 4 2004 - - Touchup on the os_name and os_version fields in the host table. - This will cause some merging woes but should fix things - in the long run as version changes and service packs - won't block a host merger. - - client/win/ - hostinfo_win.C - -Rom May 4 2004 - - Tag for 3.03 release, all platforms - boinc_core_release_3_03 - seti_boinc_app_release_3_03 - -David May 5 2004 - - fixed bug where Unix client ignored QUIT signal - - rename CLIENT_STATE::cleanup_and_exit() - to CLIENT_STATE::quit_activities() - (this function does NOT exit!!!!) - - quit_client(): exit() after quitting activities - (this is why the client wasn't exiting) - - quit_client(), susp_client(), resume_client(): - print messages about which signal was received - - core client, Unix: if app is killed by SIGQUIT, - put it in limbo (same as if exited zero without writing finish file). - - client/ - app.C - client_state.h - cs_apps.C - main.C - win/ - wingui_mainwindow.cpp - tools/ - backend_lib.C - create_work.C - -Rom May 5 2004 - - Tag for 3.03 release, all platforms - boinc_core_release_3_04 - -David May 5 2004 - - core client: if there are errors in GUI_RPC setup - (e.g. the port is already in use), - just print the error, don't exit - - In some cases we ask for work in order to keep - all processors busy; - make sure we ask for at least 1 second in this case. - - client/ - cs_scheduler.C - gui_rpc_server.C,h - scheduler_op.C - lib/ - error_numbers.h - -David May 5 2004 - - get "make dist" to work again - - Makefile.am,in - client/ - Makefile.am,in - sched/ - Makefile.am,in - -Rom May 5 2004 - - Our exit strategy should be the same for Windows and Unix. - The signal handler should use the same global flags as Windows - for suspending and resuming activities. - - client/ - main.C - -Rom May 6 2004 - - Add a new report called pass percentage by platform which will allow us - to continue monitoring the pass percentages for the latest release of - each app version per platform. - - NOTE: The query isn't smart enough yet to exclude invalid platform to - version combinations. For instance currently Linux is on version - 302 and Windows is on 301, but the report will still show results - for Linux 301 - - html/inc/ - db_ops.inc - html/ops/ - failure_result_summary_by_platform.php - index.php - pass_percentage_by_platform.php - -David May 9 2004 - html/ - inc/ - gallery.inc - uotd.inc (new) - user/ - index.php - team.php - team_lookup.php - -David May 10 2004 - - extend the set of signals that are treated as "external", - i.e. if an app exits with one of these, put it in limbo - rather than treating it as error: - SIGHUP, SIGINT, SIGQUIT, SIGKILL, SIGTERM, SiGSTOP - Note: some of these should in principle never happen - because they're caught by the API. - But it doesn't hurt to be safe. - - update_average(): avoid divides by zero - - client/ - app.C - lib/ - exception.h - util.C - -David May 10 2004 - - added support for key up/down handling by apps - - api/ - windows_opengl.cpp - -David May 11 2004 - - replaced zip/unzip libraries with new code from Carl Christensen - - zip/ - * - -David May 11 2004 - - remove "user" argument from page_head() - - html/ - * - -David May 11 2004 - - Web: added "title" argument to project_banner(). - Lets the project control how page titles are rendered. - Removed explicit

title

s from most pages - - html/ - inc/many - user/many - -David May 11 2004 - - continued implementation of trickle messages; - fairly complete now except for app receipt of trickle-downs - - NOTE: changed format of trickle_down table. - An update function is included in html/ops/db_update.php - - api/ - boinc_api.h - client/ - Makefile.am,in - app.h - client_state.h - cs_scheduler.C - gui_rpc_server.C - scheduler_op.C - cs_trickle.C (new) - db/ - boinc_db.C,h - schema.sql - sched/ - handle_request.C - trickle_handler.C - -David May 11 2004 - - bug fixes in trickle code. - Trickle-ups work correctly. - handle_trickles works correctly. - trickle-downs are getting sent back OK - - client: if scheduler reply gets parse error, backoff project - (fixed bug where we retry every second) - - sched server: if request message doesn't parse, - send an "incomplete request received" reply - (instead of just returning: uh, ????) - - sched server: if request is not asking for work, - don't check min_sendwork_interval or try to send work - (avoid spurious "last RPC too recent" messages) - - client/ - scheduler_op.C - sched/ - handle_request.C - server_types.C,h - trickle_handler.C - -David May 12 2004 - - Server: remove MEDIUM_BLOB_SIZE and use LARGE_BLOB_SIZE instead. - MEDIUM_BLOB_SIZE was used in various C structs - to hold database blobs for: - app_version.xml_doc (list of files in app) - result.xml_doc_in, xml_doc_out (output files) - result.stderr_out - wu.xml_doc (input files) - It was defined as 4KB, which overflowed if you had - more than 10 or so files (with signatures etc.) - - Note 1: this greatly increases the size of WORKUNIT and RESULT, - to I decreased the number of WU_RESULTs in shared memory - from 1000 to 100. - Eventually we might want to redefine the shared memory - so that it doesn't store the entire structs - Note 2: these buffer overflows should have been caught early-on, - i.e. when the workunit, result or app_version was created. - We should never just do a strcpy() or even safe_strncpy(); - instead, we should check for overflow, return error if so, - then do the copy. - I added some code to do this in workunit and result generation; - still need to do this for app_version (in Python) - - db/ - boinc_db.h - sched/ - assimilator.C - file_deleter.C - make_work.C - sched_send.C - sched_shmem.C - server_types.h - transitioner.C - tools/ - backend_lib.C - process_result_template.C - -David May 12 2004 - - Added Janus Kristensen's "download network" pages - (for dissemination of 3rd-party add-ons) - - html/ - inc/ - download_network.inc - user/ - download_network.php - -Karl 2004-05-12 - - update_versions: by default only allow most recent core client - - tools/ - update_versions - -David May 14 2004 - - various web fixes - -David May 15 2004 - - small trickle-down fixes - client/ - cs_trickle.C - scheduler_op.C - -David May 15 2004 - - Massive simplification of STARFIELD implementation. - Instead of using the same 3D coordinate space as other stuff, - stars now have their own -1..1 type coordinate space, - and we do the perspective transformation ourselves. - This eliminates the need for all the is_visible() crap. - - The goal was to get rid of the hang/crash when the user - moves the viewpoint too far away, - but I ended up rewriting the (crufty) code. - - Got rid of get_matrix_invert() - - - Moved glFlush() from REDUCED_ARRAY::draw() to SAH_GFX_BASE::render - (or whatever the app's render routine is) - - api/ - gutil.C,h - reduce.C - -David May 17 2004 - - In the scheduler shared-memory segment, - keep only the result ID (not the whole result record) - in each WU_RESULT. - This saves large amounts of memory, - and doesn't incur any DB overhead because we have to - reread the result record anyway. - - sched/ - feeder.C - sched_shmem.h - sched_send.C - show_shmem.C - -David May 18 2004 - - Added the "homogeneous redundancy" feature courtesy of Michela Taufer. - This lets a project say that results for a given - workunit should be sent only to hosts with the same - OS name + CPU vendor. - Enabled it by putting in config.xml - - parse in scheduler replies - - client/ - scheduler_op.C - sched/ - sched_config.C,h - sched_send.C - -David May 18 2004 - - Various changes to benchmark code: - - unroll loops in FP benchmark - - use 10M instead of 1M ops per iteration - - use dtime() for timing - - get rid of wacky integer benchmark; - replace with integer counterpart to FP benchmark - - client/ - cpu_benchmark.C - -Rom May 18 2004 - - XML Parsing errors should now be hidden from normal operation. - NOTE: In order to see XML parsing errors you'll need to turn on the - debug state and debug scheduler operation log flags. - - client/ - app.C - client_types.C - cs_statefile.C - hostinfo.C - prefs.C - proxy.C - scheduler_op.C - time_stats.C - -Rom May 18 2004 - - Tag for 3.05 release, all platforms - boinc_core_release_3_05 - -David May 19 2004 - - Added code for Whetstone benchmark. - This produces a result several times larger than our own floating-point - benchmark (e.g., 750MFLOPS versus 160MFLOPS). - But it's not clear that the Whetstone number - should be interpreted as MFLOPS. - If you want to check it out, add a call to whetstone(10, x) somewhere, - and look at the result in the debugger. - - client/ - whetstone.C (new) - -David May 19 2004 - - Added code for Dhrystone benchmark. - Use the "VAX MIPS" result as integer benchmark. - It's somewhat higher than the benchmark we've been using. - - Switch to using Whetstone and Dhrystone instead of home-brew benchmarks. - - client/ - cpu_benchmark.C,h - cs_benchmark.C - dhrystone.C (new) - whetstone.C - -David May 19 2004 - - Since new benchmarks are higher than old ones, - redefine a cobblestone as 100 * (fpops + iops)/2 - (omit memory bandwidth, use 100 instead of 300) - - sched/ - handle_request.C - -David May 19 2004 - - Changed dhry/whetstone to use fixed # of iterations instead - of dynamically adapting. - This hopefully will make multiple CPUs run more in lockstep - - client - cpu_benchmark.h - cs_benchmark.C - dhrystone.C - whetstone.C - -David May 19 2004 - - boinc_fopen: if opening for read, and file doesn't exist, - return 0 immediately (avoid 5-sec delays) - - boinc_resolve_filename: use boinc_fopen() to open symlink file - - graphics: scale starfield velocity down by a factor of 10 - - api/ - gutil.C - lib/ - app_ipc.C - filesys.C - -David May 20 2004 - - In messages about benchmarks, report the number of CPUs, and - say that benchmark numbers are per CPU - - client/ - cs_benchmark.C - -David May 21 2004 - - API: changed timer period from 50 Hz to 1 Hz. - This timer is used only for reporting progress and CPU, - not for doing graphics, to 1 Hz is enough - - API: if setup_shared_mem() returns error, set standalone = true. - This means that if you run an app standalone, - it will be detected automatically, - so no need for command-line args or even - standalone argument to boinc_init() - (but leave that arg in for now) - - API: initialize fraction_done to -1, - and only report it to core client if >= 0 - (i.e. don't report it unless app specifies it) - - API: removed - #ifdef HAVE_SYS_SHM_H - #ifdef HAVE_SYS_IPC_H - around calls to attach_shmem in non-Win case. - This not an appropriate place for these ifdefs. - - core client: ACTIVE_TASK_SET::check_app_exited(): - skip tasks in state PROCESS_IN_LIMBO. - This avoid core client spinning when apps misbehave. - - core client: changed variable names in app.C: - starting_cpu_time -> episode_start_cpu_time - - api/ - boinc_api.C - client/ - app.C,h - -David May 21 2004 - - Core client: attempted to make benchmarks more accurate - and reproducible on multiprocessor or HT machines - be forcing each phase (floating point, integer) - to be more or less concurrent across processors. - This is done using trigger files. - Each benchmark waits for its trigger file before starting, - and stops when the file goes away. - - client/ - cpu_benchmark.h - cs_benchmark.C - dhrystone.C - whetstone.C - -Rom May 21 2004 - - A little fine tuning to the benchmark process. - Should be less than 1% difference between executions without any - other software runing - - client/ - cs_benchmark.C - dhrystone.C - whetstone.C - -David May 21 2004 - - Core client: in FILE_XFER_SET::poll(), when completed a file-size query, - close the socket before iniating the file transfer. - Otherwise we have a socket that's never closed. - - Note: some aspects of the FILE_XFER/HTTP_OP/NET_XFER hierarchy - seem absurdly complex, like the issue of when sockets are closed. - The whole thing should be reexamined at some point (but not now). - - client/ - file_xfer.X - -Rom May 22 2004 - - Somehow the boinc release build switched over to using shared libraries on - Windows instead of static, so now i'm switching it back to static libraries. - - win_build/ - boinc_gui.vcproj - -Rom May 23 2004 - - Add new report to OPs pages to show failures by host - - html/ops/ - failure_result_summary_by_host.php - index.php - -David May 23 2004 - - web: activating an account (un-munging the email address) - can fail if there's already an account with that email address. - Print an explanatory message in this case. - - web: moved forum-display code to separate file/functions - (forum_show.inc) so can selectively show forums - Renamed "$n" to "$thread_per_page" (come on, folks) - - remove extra tags in core_version XML dump file - - html/ - forum/ - forum.php - forum_show.inc (new) - sample_index.php (renamed from index.php) - inc/ - forum.inc - user/ - download.php - download_network.php - login_action.php - sample_index.php (renamed from index.php) - sched/ - db_dump.C - -David May 23 2004 - - Support for "compound applications" (such as climateprediction.net) - in which a main program runs several apps in sequence. - The items are: - 1) The app init file now contains fields - and - giving the fraction-done range occupied by the app. - Note: the app calls boinc_fraction_done() with values - from 0 to 1 as usual. - The API implementation takes care of scaling them - to the start..end range. - - The main program must fill in these fields and call - boinc_write_app_init_file() prior to running each app. - 2) boinc_finish() fills the final CPU time into the - APP_INIT_DATA struct, then calls boinc_write_app_init_file(). - This passes the CPU time along to the next program. - 3) got rid of boinc_child_start() and boinc_child_done(). - - api/ - boinc_ipc.C,h - client/ - app.C - lib/ - app_ipc.C,h - -David May 24 2004 - - Change benchmarks functions to use CPU time instead wall-clock time. - - move CPU measurement functions from api/boinc_api.C to lib/util.C - - api/ - boinc_api.C - client/ - cs_scheduler.C - dhrystone.C - whetstone.C - lib/ - util.C,h - -David May 24 2004 - - boinc_delete_file(): Windows: retry 5 times w/ 1 second delay - (in case virus-check program has file locked). - This may fix a problem where slot directories - weren't getting cleaned up. - - if clean_out_dirs() fails when starting app, - print error message and return error (so app won't start) - - client/ - app.C - cpu_benchmark.h - cs_benchmark.C - file_names.C - lib/ - filesys.C,h - -David May 24 2004 - - client: initialize NET_XFER::xfer_speed to -1, - and when we print it out check for this value - and print "no bytes transferred" - (this happens e.g. if upload a file that's - already been uploaded) - - removed NET_XFER::net_xfer_state (not used) - - client/ - net_xfer.C,h - pers_file_xfer.h - -Rom May 24 2004 - - Tag for 3.06 release, all platforms - boinc_core_release_3_06 - -David May 24 2004 - - bugs in update_versions: - "cur" -> "cursor" - move call to get_current_core_version() after DB init - - tools/ - update_versions - -David May 24 2004 - - Change benchmarks to not use global variables - (since, on Windows, we have several threads running them - in the same address space). - This requires passing around an extra structure pointer, - which slows down the benchmarks, - but it doesn't seem to make a big difference. - - client/ - dhrystone.C - whetstone.C - -David May 25 2004 - - added -noinsert option to assimilator - - sched/ - assimilator.C - -David May 25 2004 - - change client compile from -O2 to -O6 (Unix) - This brings the benchmark speeds on my laptop - (2.2 GHz Celeron) roughly into line with Win: - - Linux -O6: - whet 933 - dhry 1585 - - Linux -O2 - whet 545 - dhry 1268 - - Win release - whet 840 - dhry 1512 - - Win debug - whet 655 - dhry 1436 - - client/ - Makefile.am - -David May 25 2004 - - setup_project.py: - copy sample_index.php to index.php - Otherwise tests don't work. - - py/Boinc/ - setup_project.py - test/ - testbase.py - -Rom May 25 2004 - - Tag for 3.07 release, all platforms - boinc_core_release_3_07 - -David May 26 2004 - - update Dhrystone/Whetstone code based on latest versions (2.1, ?) - I don't think this will make a damn bit of difference, - but it's better to stay current - - client/ - dhrystone.C - whetstone.C - -David May 26 2004 - - updated config.guess - - config.guess - -Rom May 26 2004 - - Update config.guess so we don't have to add the --build command to - each execution of ./configure for the Macs - - / - config.guess - -Rom May 26 2004 - - NEW GUI: Implement Render and State management infrastructure. - - clientgui/ - BOINCGUIApp.cpp - BaseListCtrlView.cpp, .h - BaseWindowView.cpp, .h - MainFrame.cpp, .h - MessagesView.cpp, .h - ProjectsView.cpp, .h - ResourceUtilizationView.cpp, .h - TransfersView.cpp, .h - WorkView.cpp, .h - -David May 27 2004 - - Added a mechanism for limiting the number of results - sent to a given host in a given day. - - added 'nresults_today field' to host DB table - - added 'daily_result_quota' element to config.xml and SCHED_CONFIG - (optional - gives max results per host per day) - - change server logic so that the host record is updated - after calling send_work() - - change server logic to enforce daily result quota, - send message to user if quota exceeded, - also write log message if this happens - - Added script to send email to all opted-in users - - NOTE: existing projects will have to update their DB. - You can do this using html/ops/db_update.php - - db/ - boinc_db.C,h - schema.sql - html/ops/ - create_forums.php - db_update.php - mass_email.php (new) - sched/ - handle_request.C - sched_config.C,h - sched_send.C - -David May 27 2004 - - update comments in 'start' - - sched/ - start - -David May 27 2004 - - The BOINC app graphics framework does not use - (or require the use of) OpenGL. - Get rid of all OpenGL stuff in the code. - Note: windows_opengl.C is misnamed. - - api/ - graphics_api.C,h - windows_opengl.C - -David May 27 2004 - - added support for "static graphics": - applications generate graphics from a static image file - (part of the workunit) rather than dynamically. - - removed cruft from gutil.C: - mode_orth_ratio() - set_viewport_*() - center_screen_ratio() - I have no idea what these were for, - and perhaps neither did their author. - - - moved declarations of boinc_ap_mouse_button() etc. - to graphics_api.h - api/ - graphics_api.h - gutil.C - static_graphics.C (new) - windows_opengl.C - doc/ - graphics.png - graphics.sxd - -David May 27 2004 - - negated Windows timezone, and server-side timezone usage - - client/ - hostinfo_win.cpp - html/inc/ - host.inc - -Rom May 28 2004 - - Fix screensaver issue where somebody may have configured a 0 blank time, - if so, the blank time is set to twenty minutes. - - Host properties on the BOINC Ops page now shows the nresults_today value - - The host failures report now displays the nresults_today - - client/win/ - wingui_mainwindow.cpp - html/inc - db_ops.inc - html/ops/ - failure_result_summary_by_host.php - -Rom May 29 2004 - - Fix a possible bug in the new Limiting number of results sent - to a host per day due to a floating point issue. - - sched/ - handle_request.C - -David May 30 2004 - - scheduler: modify_host_struct(): - modify the actual structure, not a copy - (this caused results from new hosts to get zero claimed credit) - - numerous web site changes, including: - - added "recompute credit" feature for hosts - - moved forum files from html/forum to html/user - Also changed forum code to use object notation - (instead of archaic array notation) - and to eliminate the use of global variables - - show SETI@home credit, CPU hours - - html/ - inc/ - forum.inc - forum_show.inc (new) - host.inc - profile.inc - user.inc - ops/ - forum_repair.php (moved from forum) - user/ - forum_*.php (new; moved/renamed from forum) - host_delete.php - host_edit_action.php - host_edit_form.php - sched/ - handle_request.C - sched_send.C - -David May 30 2004 - - Add the ability to sort by total or expavg credit in most lists - - Fix the "update credit" feature to use the same - formula used to compute expavg credit in the first place - - html/ - inc/ - host.inc - team.inc - user.inc - user/ - host_update_credit.php - hosts_user.php - top_hosts.php - top_teams.php - top_users.php - -Karl 2004-05-31 - - update_versions signature files: added feature so that if - 'exec-file.sig' exists in a directory, treat it as the signature file - for exec-file. - - tools/ - update_versions - py/Boinc/ - tools.py - -David May 31 2004 - - Web: changed project news mechanism to use RSS - (Really Simple Syndication), described here: - http://blogs.law.harvard.edu/tech/rss - All projects now offer news feed at rss_main.php - This code courtesy of Jens Seidler. - - SETI@home public site: made front page cached - - added index on profile.uotd_time - - db/ - constraints.sql - html/ - inc/ - cache.inc - util.inc - news.inc (new) - user/ - rss_main.php - sample_index.php - old_news.php (new) - -David May 31 2004 - - Changed BOINC news to use RSS also - - doc/ - index.php (new) - index.html (removed) - rss_main.php (new) - -David May 31 2004 - - API: do not catch HUP, INT or QUIT signals. - This must be allowed to kill the application, - so that the core client sees the app as having - been killed externally, and puts it in limbo - (rather than seeing it as having quit with an error) - - lib/ - diagnostics.C - -David June 1 2004 - web stuff: - - fix bug in merging > 2 hosts - - remove references to html/forum in setup script - - move host_update_credit() to host.inc - and make an ops page for updating a host's credit - - py/Boinc/ - setup_project.py - -David June 1 2004 - - small web fixes related to moving forum files - html/ - inc/ - forum_show.inc - host.inc - util.inc - ops/ - host_update_credit.php (new) - user/ - forum_edit.php - forum_forum.php - forum_user_posts.php - host_edit_action.php - host_update_credit.php - -David June 1 2004 - - client: change benchmark interval from 30 days to 5 days - - Python: install_boinc_files(): don't copy sample_index.php - to index.php (overwrites file on running projects) - - client/ - cs_benchmark.C - html/user/ - forum_thread.php - py/Boinc/ - setup_project.py - -David June 1 2004 - - client: SCHEDULER_OP::poll(): if a RPC or master fetch fails for - a tentative project, set the RPC state to IDLE - before calling project_add_failed(). - Otherwise that function will attempt to remove the - NET_XFER and HTTP_OP, which have alread been removed - - client: clean_out_dir(): return 0 if directory doesn't exist - client/ - scheduler_op.C - lib/ - filesys.C - -Rom June 1 2004 - - Give visual indictators as to whether the build is debug or release. - - client/ - client_state.C - client/win/ - wingui_dialog.cpp - -Rom June 1 2004 - - Clean-up some server trace output. - - sched/ - handle_request.C - -David June 2 2004 - - client: cosmetic changes: "Account Key" -> "Account ID", - "BOINC Core Client" -> "BOINC software" - - client/ - gui_titles.C - win/ - boinc_gui.rc - -David June 2 2004 - - API: if app init data file not present, - set standalone to true, don't return error - - api/ - boinc_api.C - -Daniel June 3 2004 - - client: handle_pers_file_xfers(): if file transfer fails, - then don't verify the file - - client: start_xfer(): need to assign fxp in order for - handle_xfer_failure() to work - - client/ - cs_files.C - pers_file_xfer.C - -Karl 2004-06-04 - - start: fixed bug where Python 2.3.3 writes 'True' instead of '1' to - run_state.xml - - sched/ - start - - - fixed compile bugs - - lib/ - exception.h - util.C - - - install_boinc_files(): *do* copy sample_index.php to index.php, unless - it already exists (otherwise test scripts don't work) - - py/Boinc/ - setup_project.py - - - changed the default delay between requests for ResultMeter from 0.1 to - 0.5 - this should help MySQL servers that disconnect under load. Also - added a message on how to change it. - - - simplified code in ProjectList - - - fixed MySQL access concurrency bug that caused test scripts to fail - sometimes (re-open new database connection) - - test/ - testbase.py - -David June 6 2004 - - add "ignore_upload_certificates" flag to config.xml; - tells file upload handler to skip certificate check - - web: - - unified list displays (team members, teams, hosts, users): - groups of 20 with sort links - - clean up profile code - - make team pages generic (not depend on viewing user) - - moved team quit/manage links to user page - - update_profile_pages.php: remove PHP 30-sec time limit - - html/ - inc/ - gallery.inc - subscribe.inc - team.inc - user.inc - util.inc - ops/ - update_profile_pages.php - user/ - download_network.php - forum_edit.php - forum_post.php - prefs.php - profile_menu.php - sample_rss_main.php (new) - team_create_form.php - team_display.php - team_email_list.php - team_manage.php (new) - team_quit_form.php - top_hosts.php - top_teams.php - top_users.php - sched/ - db_dump.C - file_upload_handler.C - handle_request.C - sched_config.C,h - -David June 6 2004 - - client: show error messages on errors linking structures - - PERS_FILE_XFER::giveup(): add "why" argument; - store in FILE_INFO::error_msg, and show to user - (all permanent xfer failures pass through here) - - client/ - client_state.C - pers_file_xfer.C,h - -Karl 2004-06-08 - - changed BOINC api calls to extern "C" -- makes it easier to call from - other languages (Fortran) - - api/ - boinc_api.h - apps/ - upper-case.C - lib/ - app_ipc.C - -David 6 June 2004 - - in strcpy2(), use strlcpy instead of strncpy - strncpy() always copies the full N bytes, - which is inefficient when there are long (64KB) fields - that are short or empty. - strlcpy() does what we want - it only copies significant bytes, - but doesn't go off the end of the destination buffer. - I also commented out the version of strlcpy in std_fixes.h - - this has the same performance problem. - - fixed "show team email addresses" function to not show auths - - temporarily turned off user search by name and team search by name; - we don't have indices on these fields - - file upload handler: show bad-certificate message even - if we're not enforcing it. - - scheduler: fix insufficient-speed message - - validator: print log messages if can't lookup/update anything - - db/ - db_base.h - html/ - inc/ - util.inc - user/ - forum_text_search* - team_email_list.php - team_lookup.php - user_search_action.php - lib/ - std_fixes.h - sched/ - file_upload_handler.C - sched_send.C - validate.C - -David 6 June 2004 - - change boinc_sleep() to work correctly in the presence of signals - - add an implementation of strlcpy() for systems that don't have it - - lib/ - std_fixes.h - util.C,h - -Rom 6 June 2004 - - Enable GUI RPC's in the Windows Core Clients - - Move Winsock initialization out of each request to a per process thing - - Detect error condition where a socket initialization failure would cause - an error to be logged continuously - - client/ - client_state.C - gui_rpc_server.C - main.C - client/win/ - win_net.cpp - win_net.h - wingui_mainwindow.cpp - -David 9 June 2004 - - changed boinc_rename() to do backoff and retry, like boinc_fopen() - - changed file system ops to use random backoff instead of 1 sec, - to avoid lockstep scenario - - changed implementation of strlcpy() to use existing - library functions (strlen(), memcpy()) since these - are probably faster than doing it by hand - - moved xml_util.C,h from boinc to seti_boinc/db - This code isn't used in BOINC - - changed all - - client/ - client_msgs.C, .h - gui_rpc_server.C - log_flags.C, .h - doc/ - client_debug.php - -Jeff 11 June 2004 - - The start script now forks before exec'ing the ssh start to remote hosts. - Without this, start would run "start" on the first remote host it finds - in the config file but would go no further. - - sched/ - start - -Daniel 11 June 2004 - - client: check_idle() now also checks /dev/tty[1-7] (linux). - Also put idle checks under #ifdefs. MacOS X idle checks - will be more difficult. - - configure - configure.ac - config.h.in - client/ - cs_prefs.C - -David 11 June 2004 - - Windows sockets can't be used in fdopen() (thank you MS), - and we wanted all the standard XML output functions - to be able to write to either disk or socket (for GUI RPC). - So we added a class MIOFILE, with printf() and fgets() member funcs, - that can be implemented with either a FILE* or a memory buffer - under the hood. - - Moved MFILE from api/ to lib/ since it's used in the implementation - of MIOFILE - - Changed all XML write and parse functions to take MIOFILE& - instead of FILE* - - Changed GUI RPC client code to use MIOFILEs - - Changed GUI RPC protocol so that every reply message - ends with a \003 delimiter - (to make it unambiguous where reply ends) - - removed version number header from GUI RPC (rethink this later) - - Got this all to work on Unix; will try Windows next - - api/ - Makefile.am - mfile.C,h (moved from here) - client/ - Makefile.am - app.C,h - client_state.h - client_types.C,h - cs_scheduler.C - cs_statefile.C - gui_rpc_client.C,h - gui_rpc_server.C,h - gui_test.C - hostinfo.C,h - makefile.gui_test - miofile.C,h (new) - net_stats.C,h - net_xfer.h - pers_file_xfer.h - proxy.C,y - scheduler_op.C - time_stats.C,h - doc/ - client_sched.php (new) - lib/ - Makefile.am - mfile.C,h (moved to here) - -David 11 June 2004 - - get core client to compile on Win - - graphics API: change max frame rate from 10 to 33.3 - - api/ - windows_opengl.C - client/ - gui_rpc_server.C - miofile.h - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - -David 11 June 2004 - - moved idle-time funcs from cs_prefs.C to hostinfo_unix.C - - fixed handling of "messages" in GUI RPC - - client/ - cs_prefs.C - gui_rpc_client.C - gui_rpc_server.C - hostinfo_unix.C - -Rom June 12 2004 - - Cleanup build errors on Windows - - Fix the gui rpc to match documentation - - api/ - boinc_api.C, .h - gutil.C - client/ - gui_rpc_client.C - gui_rpc_server.C - lib/ - diagnostics.C - parse.h - shmem.C - util.C, .h - win_build/ - boinc_guirpc_test.vcproj - upper_case.vcproj - -David June 12 2004 - - fix compile errors on Unix - - apps/ - Makefile.am,in - -David June 12 2004 - - added support for name/passwd authentication to HTTP proxies. - Includes changes to the proxy settings dialog, - and to the HTTP_OP class. - All this courtesy of Kenichi Miyoshi and his colleagues - at NTT - thanks! - - client/ - http.C,h - proxy.C,h - win/ - boinc_gui.h,rc - wingui_proxydlg.cpp,h - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - -David 13 June 2004 - - fix typo on "start" - - don't allow empty thread titles - - html/inc/ - forum.inc - news.inc - uotd.inc - sched/start - -Rom 13 June 2004 - - Don't dangle sockets when the request doesn't come from the loopback - adapter. Thanks to Sebastian Masch for pointing out the bug and solution. - - client/ - gui_rpc_server.C - -Rom 13 June 2004 - - Do some more header file work and fix util.c so it'll compile on unix - platforms again. - - client/ - miofile.C, .h - stdafx.h - lib/ - base64.C, .h - util.C - -Rom 13 June 2004 - - Minor tweaks so you can setup a new project - - py/Boinc/ - setup_project.py - sched/ - start - -Karl 2004-06-14 - - 'start': simplified remote fork/exec logic, and added option for - parallel/sequential delegation to remote hosts (default sequential) - - sched/ - start - -Rom 14 June 2004 - - Fix clientside GUI RPC calls so the test app will work. - - Fix util.C so cross-platform compliation - - client/ - gui_rpc_client.C - lib/ - util.c - -David 14 June 2004 - - Email addresses in the DB should ALWAYS be lower-case, - with no leading or trailing white space. - Add code (trim, strtolower) to enforce this. - Existing databases should be cleaned up. - - html/user/ - confirm_email_change.php - create_account_action.php - edit_email_action.php - login_action.php - mail_passwd.php - -Daniel 14 June 2004 - - changed uses of mysql_fetch_assoc() to mysql_fetch_object() - - removed utility function get_profile_from_userid() (not used - anywhere) - - added proposal for new client result scheduling: please review! - - doc/ - client_sched.php - html/inc/ - subscribe.inc - util.inc - html/ops/ - migrate_tables.php - profile_ops.php - -Rom 14 June 2004 - - Add check for minor version change which will cause the client to - rerun the benchmark code. - - client/ - client_state.C - -Daniel 14 June 2004 - - client: Returning results due to "-return_results_immediately" - no longer tries to fetch work unless it's needed. - - client: Added "-check_all_logins" command-line option to force - idle checking to look at all users' terminals. - - config.h.in - configure - configure.ac - client/ - Makefile.in - client_state.C - client_state.h - cs_cmdline.C - cs_scheduler.C - hostinfo_unix.C - -Rom 14 June 2004 - - Add two additional tools to the default install - parse_config - Parses the config file looking for the requested config - information. - db_query - Queries the database for specific information in a - stripchart compatible format. - - py/boinc/ - setup_project.py - tools/ - parse_config - db_query - -Karl 2004-06-15 - - added compatibility for old versions of python XML library - - py/Boinc/ - boincxml.py - - - created Fortran wrapper - - api/ - boinc_api_fortran.C - -Daniel 15 June 2004 - - html: got rid of file descriptor parameters for a lot of - functions (esp. those used by gallery.inc). using output - buffering now (ob_start(), ob_get_contents(), etc.) - - html/ - inc/ - gallery.inc - profile.inc - util.inc - project.sample/ - project.inc - user/ - project.inc.sample - -Rom 15 June 2004 - - Move shell scripts that were in the sched folder to the tools folder - - remove start_servers.C and kill_server - - Move watchdog scripts to ops folder - - html/ops/ - watchdogs.php (added) - wd_nresults_changing.php (added) - py/boinc/ - setup_project.py - sched/ - kill_server (removed) - start_servers.C (removed) - wd.php (removed) - wd_nresults_changing.php (removed) - watch_tcp (removed) - grep_logs (removed) - tools/ - watch_tcp (added) - grep_logs (added) - -Rom June 15 2004 - - Tag for 3.08 release, all platforms - boinc_core_release_3_08 - seti_boinc_app_release_3_08 - -David 15 June 2004 - - Database inserts and updates from C++ (boinc_db.C) - were of the form "insert into foo set id=x, a=y,...". - Removed the "id=x" part. - The ID field should never be explicitly set. - - add index on user.name - - NOTE: projects should do this on their DB (see html/ops/db_update.php). - Otherwise user name search will be slow. - - db/ - boinc_db.C - constraints.sql - html/ops; - db_update.php - -Daniel 15 June 2004 - - html: Fixed bugs in gallery that caused database failures. - Fixed some bugs in building summary pages. - - html/inc/ - gallery.inc - profile.inc - -Daniel 15 June 2004 - - client: put all_logins_idle under an ifdef to check for - availability of {set,get}utent. TODO: implement these for BSD. - - aclocal.m4 - config.h.in - configure - configure.ac - client/ - hostinfo_unix.C - - -Karl 2004-06-16 - - - Compile fixes - - Removed windows MSVC-specific pre-compiled header stuff from API - headers and modules, since these are compiled/included by external - projects and do not use the same stdafx.h. - - lib/ - app_ipc.h - - api/ - boinc_api.h - boinc_api.C - - - Fortran wrapper: Return value fixes - - api/ - boinc_api_fortran.C - -David 16 June 2004 - - make team pages cached - - enable user name search - - html/ - inc/ - team.inc - user/ - team_display.php - user_search_action.php - -David 16 June 2004 - - Added to app_init_data.xml file, - passed to applications (for Folding@home). - This necessitated shuffline some code to - move write/parse code from client/ to lib/ - - client/ - app.C - hostinfo.C,h (moved from client/ to lib/) - hostinfo_network.C,h (new) - miofile.C,h (moved from client/ to lib/) - win/ - hostinfo_win.cpp - lib/ - app_ipc.C,h - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - upper_case.vcproj - - -David 16 June 2004 - - unix compile fixes for the above change - - client/ - Makefile.am - hostinfo_unix.C - lib/ - Makefile.am - sched/ - Makefile.am - -Daniel 16 June 2004 - - client: added implementations of {set,get}utent for lacking - systems (BSD, MacOSX) so all_logins_idle() will work. - - client/ - hostinfo_unix.C - -David 16 June 2004 - - renamed client/stdafx.h to lib/boinc_win.h - - api/ - boinc_api.C - client/ - stdafx.cpp - stdafx.h (removed) - lib/ - boinc_win.h (new) - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - boinc_guirpc_test.vcproj - -David 16 June 2004 - - scheduler returns message to client in case of internal errors - - sched/ - main.C,h - handle_request.C - -David 16 June 2004 - - change includes from stdafx.h to boinc_win.h - - add 1o-minute timeout on all network transfers - - client/ - *.C - lib/ - *.C - -Rom 16 June 2004 - - Additional include changes from stdafx.h to boinc_win.h - - api/ - *.C - client/ - *.C - lib/ - *.C - -David 16 June 2004 - - a few additions to the above - - api/ - graphics_api.C - gutil.C - reduce.C - static_graphics.C - windows_opengl.C - client/ - cpu_benchmark (removed) - message.C (removed) - win/ - wingui.h - lib/ - boinc_win.h - win_build/ - boinc_gui.vcproj - -David 16 June 2004 - - fixed shocking error in http.C: - in poll function (HTTP_OP_SET::poll()), - check for error conditions at the beginning, - outside of the switch on http_op_state. - Previously we were checking for errors only in a couple of states - (CONNECTING, REPLY_BODY) and errors in other states would go undetected. - This could account for hangs in file uploads, scheduler RPCs - - client/ - http.C - -Rom 16 June 2004 - - Fix HTTP:OP bug where on an upload and the server responds with a 404- - not found for the file_upload_handler would cause the client - to delete the result file. - - client/ - pers_file_xfer.C - -Rom June 15 2004 - - Tag for 3.09 release, all platforms - boinc_core_release_3_09 - -David 16 June 2004 - - Change how messages are stored in memory in core client - - use a list instead of a vector, ordered new to old - - max of 1000 messages (MAX_SAVED_MESSAGES) - - add seqno to MESSAGE_DESC - - change GUI RPC for getting messages. - Instead of "offset", has a "seqno" arg. - If nonzero, this is the minimum seqno to return - - add message-storage logic to Windows client - - - client/ - client_msgs.C,h - gui_rpc_server.C - main.C - win/ - wingui.cpp - lib/ - boinc_win.h - win_build/ - boinc_guirpc_test.vcproj - -David 16 June 2004 - - get GUI RPC working on UNIX - - client/ - Makefile.am - client_msgs.C,h - gui_rpc_client.C,h - makefile.gui_test - -Rom June 16 2004 - - Tag for 3.10 release, all platforms - boinc_core_release_3_10 - -David 17 June 2004 - - Change the way we get local host's domain name on UNIX: - instead of gethostbyname() - (which has nightmarish linkage problems that no one quite understands) - use "ping", which we assume exists on all UNIX systems, - and parse its output - - Allow Python scripts to access remote databases - (courtesy of Carl C.) - - client/ - gui_rpc_server.C - hostinfo_network.C,h - hostinfo_unix.C - win/ - hostinfo_win.cpp - py/Boinc/ - database.py - -David 17 June 2004 - - Not so fast! "ping -c 1 hostname" hangs forever on Linux - if hostname is unreachable. - "ping -c 1 -w 1 hostname" works, - but the -w option doesn't exist on Solaris! - So... - try with -w, and if get an error, try without. - Hope this is the end of the story. - - client/ - hostinfo_network.C - -Rom June 17 2004 - - Enable the low-water mark for the work queue again. - - client/ - cs_scheduler.C - -David June 17 2004 - - Fix bonehead mistake in ping/hostname code - (thanks to Rob Oglivie) - - Fix memory leak in GUI RPC - (thanks to Sebastian Masch) - - client/ - gui_rpc_client.C - gui_rpc_server.C - hostinfo_network.C - lib/ - app_ipc.h - mfile.h - -David June 17 2004 - - looser definition of "same platform" when using homogeneous redundancy - (Courtesy of Pietro Cicotti) - - sched/ - sched_send.C - -Rom June 17 2004 - - Tag for 3.12 release, all platforms - boinc_core_release_3_12 - -Rom June 17 2004 - - Tag for 3.13 release, all platforms - boinc_core_release_3_13 - -David 17 June 2004 - - enforce the application.deprecated flag in the scheduler. - When scanning the database, the feeder ignores deprecated apps - and any associated app versions and workunit/results - - sched/ - feeder.C - sched_shmem.C,h - -Daniel 17 June 2004 - - Determine utmp location at compile time so idle checking works on MacOSX - - get_local_network_info(): Redirect ping stderr to /dev/null - - config.h.in - configure - configure.ac - client/ - hostinfo_unix.C - hostinfo_network.C - -Rom 17 June 2004 - - Add an additional path to the list of pings to try. - /usr/sbin - - client/ - hostinfo_network.C - -Rom June 17 2004 - - Tag for 3.13 release, all platforms - boinc_core_release_3_13 - -David 2004.06.17 - - /usr/sbin/ping has different options than others. - Revise get_local_network_info(). - If all variants of ping fail, - set hostname="unknown" and ip_addr="0.0.0.0" - and print a helpful message. - - show more command line options - - client/ - cs_cmdline.C - cs_scheduler.C - hostinfo_network.C - hostinfo_unix.C - -David 2004.06.18 - - punt the ping/gethostbyname issue for now; - just get the hostname (not domain) - and set IP address to "unknown". - - client/ - hostinfo_network.C - -Karl 2004-06-18 - - makefile cleanup - - */Makefile.am - -Rom June 18 2004 - - Update screensaver logic to determine the difference between - 'no work avaliable' and the active tasks cannot display graphics. - - client/ - ss_logic.C - -Rom June 18 2004 - - Tag for 3.15 release, all platforms - boinc_core_release_3_15 - -David 2004.06.18 - - Undo the checkin of Mar 4 2004 that changed the "report deadline" - based on connected_frac etc. - Just use 24 hours. - - Undo checkin of June 14 2004 that didn't fetch work - if return_results_immediately is set; - this broke test_uc.py - - client/ - client_state.h - cs_scheduler.C - -David 2004.06.18 - - Aaargh! I forgot that gethostbyname() is unavoidably used - when contacting servers, so all this ping stuff - is a total waste of time! - Changed things back to the way they were originally. - - client/ - hostinfo_network.C - net_xfer.C - -Rom June 18 2004 - - Tag for 3.16 release, all platforms - boinc_core_release_3_16 - - -David 2004.06.18 - - add timestamps to messages written stdout/err.txt in Win - - client/win/ - wingui.cpp - -David 2004.06.18 - - updated zip/unzip files (from Carl) - - lib/ - boinc_zip.C,h (removed) - zip/ - various - -Rom June 19 2004 - - Tag for 3.17 release, all platforms - boinc_core_release_3_17 - -Rom June 19 2004 - - Lengthen the benchmarks so even on slow machines they won't get stuck in an - endless loop waiting on a file that has already come and gone. - - client/ - cs_benchmark.C - -Rom June 19 2004 - - Tag for 3.18 release, all platforms - boinc_core_release_3_18 - -David 20 June 2004 - - db_dump.C: major revision: make it configurable, - using an XML config file. - Lets you say what you want exported, - how to sort, whether to compress etc. - - destroy_shmem: try to destroy even if there are attachments. - Somehow ipcrm always destroys the seg. How do they do it? - - assimilator: print error and exit if handler returns nonzero - - lib/ - shmem.C - sched/ - assimilator.C - db_dump.C - -David 21 June 2004 - - Web: when displaying results, try to show "---" (i.e. undefined) - where a field isn't determined yet. - Show "pending" instead of 0 for granted credit of unvalidated results - - html/inc/ - result.inc - -Brian 22 June 2004 - - server: renamed all functions, structures and database items that - associated with trickle_up or down and renamed to - msg_from_host and msg_to_host repectively, - - Deleted result and app fields from the database entry for - msg_from_host (trickle_up) to make more generic of a - message that has no app or result associated it with it - - Changed methods that use these fields to ignore old - functionality, will update when new method agreed upon - - sched/ - handle_request.C - sched_config.C - sched_config.h - server_types.h - - db/ - schema.sql - BOINC_db.C - constraints.sql - -David 22 June 2004 - - client: handle a "down for maintenance" RPC reply as a failure, - i.e. do a backoff on the project. - This should hopefully fix a problem where if - a project is down, and a client has a result to report, - it will do an RPC every second, creating an overload on the server. - Do this by adding a new optional element - to scheduler replies. - - If get a from scheduler, - don't let that override the current min_rpc_time; - instead, take the max of the two. - - Change the implementation of trickle messages. - Instead of using dedicated trickle_up and trickle_down DB tables, - use more general msg_from_host and msg_to_host tables. - These will be used also for data management, - i.e. to send upoad or download requests to specific hosts. - - client/ - cs_scheduler.C - scheduler_op.C,h - db/ - boinc_db.C,h - schema.sql - lib/ - error_numbers.h - sched/ - assimilator.C - handle_request.C - main.C - server_types.C,h - trickle_handler.C - -Karl 2004-06-24 - - OpenBSD compile fixes from Daniel Hartmeier - - lib/ - util.C - filesys.C - - sched/ - sched_send.C - -Karl 2004-06-24 - - update_versions: only match exec_file if it's the same as the directory. - This makes executable selection deterministic. - - tools/ - update_versions - -David 24 June 2004 - - turn off sorting in team member display (slow query) - - show only up to 1000 users/teams/hosts - - use URL_BASE instead of MASTER_URL in page_tail() - - fix php typos - - html/ - inc/ - team.inc - util.inc - user/ - team_display.php - top_*.php - -Brian 24 June 2004 - - msg_from_host no longer have preceding and trailing flags in - scheduler reply. All tags will be included as part of the XML blob - to be created by whatever program handles the message. - - Sched/ - server_types.C - -Rom 25 June 2004 - - Numerious file additions to the new client gui - - Fixed a user feedback issue between restarting vs. resuming text when - describing restarting of a task. - - Limit the transitioner to a resultset of 5000 in it's workunit query so - it doesn't spend so much time waiting on the database and order by tansition_time - so we see the oldest to the newest. - - Include the prototypes of the new language translation files based off of - the standards used the wxWidgets, These files were constructed using an - automated tool called poEdit. - - client/ - app.C - clientgui/ - - clientgui/locale/ - en_US.* - sched/ - transitioner.C - -Rom 25 June 2004 - - Add the ability to just shutdown the website so we can reduce traffic - - html/inc/ - util.inc - -Karl 2004-06-27 - - fix to log directory creation from Chrischan - - sched/ - main.C - -David 27 June 2004 - - add a -mod N I option to the transitioner; - causes the transitioner to handle only WUs for which ID % N == I. - Can use this to parallelize the transitioner, - either on a single multi-CPU machine or across multiple machines - - sched/ - transitioner.C - -David 27 June 2004 - - changes (from Carl C.) to get rid of signal usage in zip/unzip code - - zip/unzip - fileio.c - unzip.c - zip/zip - zip.c - zipcloak.c - zipnote.c - zipsplit.c - -David 27 June 2004 - - Added core->app heartbeat mechanism so that apps will quit - if the core client dies - (i.e. if no heartbeat message arrives in 5 seconds). - Suppress this if app is standalone. - Also provide messages that let the core disable/enable - the mechanism (to support debugging of the core client) - - Added a 3rd message channel for suspend/resume/quit messages, - to replace signals. - This isn't used now. - - Restored code in APP_CLIENT_SHM that checks the "full" bit - before writing a message. - This may cause problems. - - NOTE: this is a backwards-incompatible change to the core/app - interface, so it requires a major version change (will do later) - - api/ - boinc_api.C - client/ - app.C,h - lib/ - app_ipc.C,h - -David 27 June 2004 - - Add a lock file mechanism to prevent two apps - from running in the same slot at the same time. - boinc_init() tries to lock the file; - if it fails, wait for 7 seconds to allow the old process to die - (the heartbeat timeout is 5 seconds) then try again. - If fail again, exit. - - api/ - boinc_api.C - client/ - client_state.C - hostinfo_unix.C - lib/ - app_ipc.h - -Rom 27 June 2004 - - Prevent the reuse of shared memory segments with ones that are already - in use on Windows. - - client/ - app.C - lib/ - shmem.C - -Rom 27 June 2004 - - Introduce the notion of high priority queries for mysql queries and - implement them for the transitioner - - db/ - db_base.C, .h - sched/ - transitioner.C - -Karl 2004-06-28 - - added configure-time option for building server+client or only client - (--disable-server or --enable-server) - - configure.ac - Makefile.am - - m4/ - kc_mysql.m4 - - [regenerated: configure, aclocal.m4, */Makefile.in] - -Daniel 29 June 2004 - - Check user idle time only if preferences require. - Some users worried that we were sniffing the keyboard. - - get rid of the CLIENT_STATE::user_idle variable; - call the function directly - - on Windows, move logic from GUI code to non-GUI (hostinfo_win.cpp) - - client/ - client_state.C,h - cs_files.C - cs_prefs.C - hostinfo_unix.C - win/ - hostinfo_win.cpp - wingui_mainwindow.cpp,h - lib/ - hostinfo.h - -David 29 June 2004 - - fix window compile by moving DLL handle out of HOSTINFO class - - client/ - app.C - win/ - hostinfo_win.cpp - wingui_mainwindow.cpp - lib/ - hostinfo.h - -Daniel 29 June 2004 - - New client CPU scheduler, as specified in client_sched.php - - Fixed NULL pointer bug in create_shmem when calling with pp=NULL - (fixed by Dave) - - client/ - app.{C,h} - client_state.{C,h} - client_types.{C,h} - cs_apps.C - cs_prefs.C - cs_scheduler.C - cs_statefile.C - gui_titles.C - gui_titles.h - win/ - wingui_mainwindow.cpp - lib/ - shmem.C - -Karl 2004-06-30 - - - updated 'about' dialog to remove "beta" and add UCB SSL copyright - - client/ - win/ - boinc_gui.rc - - - visual studio installer projects (create MSIs) - - boinc_setup creates an MSI with dialogs and options (launch on bootup, - desktop icon, etc.). boinc_setup_auto creates an MSI that installs - immediately with no prompting, ideal for Windows group policy to apply - to many computers - - win_build/ - boinc_setup.vdproj - boinc_setup_auto.vdproj - -David 30 June 2004 - - PHP code: change parse_config() so that it doesn't - read the config file; you have to read it first into a variable - (using get_config()) and pass it in to parse_config() - This saves work when you want to look at several config params. - - db_init(): parse the DB hostname and use it in mysql_connect. - This lets you run the web site from a different host than DB - - disallow caching of top_* pages with random offsets - - change cache period of top_* pages to 12 hours - - fix bug in user name search (escape _, %) - - html/ - inc/ - db.inc - db_ops.inc - util.inc - user/ - create_account_action.php - create_account_form.php - profile_menu.php - sample_rss_main.php - top_hosts.php - top_teams.php - top_users.php - -Eric K 30 June 2004 - - Removed "using" directives from header files. "using" - directives should not be used in header files for the following reasons. - - A "using namespace" directive cannot be revoked for any source file - including the header. It forces the use of the namespace regardless of - the consequences. - - Dropping the namespace qualifier on STL templates ambiguates the - resolution of template functions. (How many C libraries or headers - have you seen that define the function min()?) - - Reducing typing is not a good reason to drop namespace qualifiers any - more than it would be a good idea to "#define p printf" - - Namespaces exist for a reason. - - It's acceptable to have "using" directive in a source file, since it - won't affect other files. It's better to have "using std::string;" - directives than "using namespace std;" for hopefully obvious reasons. - -David 30 June 2004 - - change feeder query to eliminate 'order by random' - and add a limit of 100. - - change db_dump to not get counts, since these are slow on InnoDB - - sched/ - db_dump.C - feeder.C - -Daniel 30 June 2004 - - Continuing Eric's vanquishing of "using" directives from header - files. Moved "using" directives from inside "#ifndef _WIN32" - blocks. Should compile under Windows now. - - client/ - client_msgs.C - win/ - wingui_mainwindow.cpp - wingui_mainwindow.h - lib/ - miofile.C - msg_log.C - parse.C - util.C - -Daniel 30 June 2004 - - Minor changes: changed scheduling period from 30 secs to 1 hour. - - Got rid of float.h in cs_apps.C. - - client/ - client_state.C - cs_apps.C - -Brian 1 July 2004 - - Continuing Eric and Daniel's vanquishing of "using" directives from - header files. Instances of string or vector in header files were changed - to std::string and std::vector respectively. - - client/ - gui_rpc_client.h - -Rom 1 July 2004 - - Introduce skeleton of new transitioner queue class that uses a specialized - query for its job. NOTE: I don't know if it will even compile, but need another - set of eyes looking over it as well. - - db/ - db_base.C, .h - boinc_db.C, .h - -Daniel 2004-07-01 - - client: scheduler now only calls set_client_state_dirty if some - task was started or stopped (i.e. set of running tasks changed). - Also, don't try to schedule CPUs if there are no projects or - no results. - - client/ - cs_apps.C - -Daniel 2004-07-01 - - Yet more fixes related to recent "using" directive checkins... - - client/ - app.C - cs_scheduler.C - gui_rpc_client.C - hostinfo_unix.C - win/ - wingui_mainwindow.cpp - -David 1 July 2004 - - trickle message support: - - core client: send message to app when appropriate - - boinc_api: implement boinc_receive_trickle_down() - - blind attempt to fix HTTP auth crash: - check for empty URL on redirect - - api/ - boinc_api.C - client/ - app.C,h - cs_trickle.C - hostinfo_unix.C - http.C - lib/ - app_ipc.h - error_numbers.h - -Karl 2004-07-02 - - compile fixes - - db/ - boinc_db.C - - sched/ - transitioner.C - -Daniel 2004-07-02 - - fixed bug that caused CPU scheduler to decrease debts of - projects that didn't have results running. - - also undid 2004-07-01 change that only dirtied state file when - apps were started or preempted. Need to dirty state file - every time the scheduler recomputes debts. - - client/ - cs_apps.C - -David 2 July 2004 - - Changed the way result templates are stored with workunits. - Instead of storing them as blobs, - store a filename relative to project root dir. - This is to speed up DB. - - disable web command to update host credit - - turn off web commands to show results for host/user, and pending credit - - pruned command-line options from create_work. - You now have to run it in project root dir, - and it gets info from config file. - - Project note: this will require either - 1) dropping your workunit and result tables or - 2) modifying your workunit table (see ops/db_update.php) - - db/ - boinc_db.C,h - schema.sql - html/ - inc/ - host.inc - ops/ - db_update.php - user/ - pending.php - results.php - sched/ - feeder.C - transitioner.C - tools/ - backend_lib.C,h - create_work.C - process_result_template.C - -Daniel 2004-07-02 - - API: provide is_worker (default to true) parameter to boinc_init - and boinc_finish. - - Applications for which is_worker=false CANNOT access shared - memory segment that is used for status updates. But they - can still use BOINC graphics API. - - API: deleted standalone parameter to boinc_init. standalone - status is already detected in boinc_init automatically. It - should be sufficient for testing purposes. - - FORTRAN API also changed. - - Documentation updated to reflect API changes. - - api/ - boinc_api.C - boinc_api.h - boinc_api_fortran.C - doc/ - api.php - compound_app.php - -David 2 July 2004 - - added new classes DB_RESULT_DONE, DB_WORK_ITEM, DB_ACCOUNT_INFO - for efficient DB access - - feeder: don't need to check server state because scheduler also checks - - sched_config.parse(): if db host is current host, substitute "localhost" - - db/ - boinc_db.C,h - sched/ - feeder.C - sched_config.C - tools/ - create_work.C - -David 3 July 2004 - - Changed feeder to use DB_WORK_ITEM for database fetch. - This gets a stream of (result ID, WU) pairs - instead of getting a stream of results and then - fetching the WUs separately (avoid all those round-trips to DB) - - sched/ - feeder.C - db/ - boinc_db.C,h - -David 3 July 2004 - - tweak DB_WORK_ITEM for performance: - use mysql_use_result() instead of mysql_store_result(); - use high_priority - Feeder is performing well now, except that there are - long gaps when waiting for query to start returning - - Increase delay request to 1 hour when no work, bad auth etc. - - turn off showing results for host - TODO: parameterize web site feature flags - - db/ - boinc_db.C - html/inc/ - host.inc - sched/ - handle_request.C - sched_send.C - -Daniel 2004-07-03 - - API: boinc_init now only checks for lockfile if called by worker - applications. This way, we can have many non-worker apps in - addition to one worker app. - - api/ - boinc_api.C - -Rom 3 July 2004 - - Introduce basic transaction support for performance DB class. - - Implement basic transsction support for the transitioner. - - db/ - boinc_db.C - db_base.C, .h - sched/ - transitioner.C - -Rom 3 July 2004 - - Plug a memory leak in the transitioner - - db/ - boinc_db.C - -David 4 July 2004 - - scheduler: if client is requesting work, - and client is not returning results, - and there's no work, - then send "No work available" message - and return without opening DB - - scheduler: if client has wrong major version, - and is not returning results, - return without opening DB - - sched/ - handle_request.C - main.C - sched_shmem.C,h - -David 6 July 2004 - - Completed (more or less) the implementation of trickle messages. - Some changes: - - Trickle-up messages now have a "variety", - specified by the application. - Typically it's the name of the application. - The trickle-up handler (on the server side) specifies what - variety of message it wants to handle. - - boinc_receive_trickle_down() no longer returns the message itself; - instead, it returns the name of the file. - The app must open, read and delete the file. - - NOTE: the structure of the msg_to_host and msg_from_host tables - is changed. Projects will want to drop and recreate these. - - api/ - boinc_api.C,h - client/ - app.C - cs_scheduler.C - cs_trickle.C - scheduler_op.C,h - db/ - boinc_db.C,h - schema.sql - lib/ - diagnostics.h - filesys.C - sched/ - handle_request.C - server_types.C,h - trickle_handler.C - -Brian 6 July 2004 - - Changed client so that when a file info is compared to - an existing file info with the same name, the differences - in whether it is an upload or download are updated and - any urls that are not present in the file info are added to the url list. - - When a url is requested for a file info, the file info - checks whether it is an upload, and then looks for the - substring "file_upload_handler" any url it is trying to - use to upload the file. The opposite is true for downloads. - - - Changed get_url into three separate functions: - get_current_url(bool), returns the current good url - get_init_url(bool), returns the initial good url and sets the start url - get_next_url(book), increments current_url and finds the next good url - - - Changed client so that a file_info will save its signed xml - even if it doesn't include have xml signature. - - - Updated the client so that the check to see if the url is - valid for the type of network request is a private function of FILE_INFO - - - Modified the backoff_retry function in persistant_file_xfers - so that it uses the updated get_url that checks if the url - is correct for the type of transfer. Otherwise it could - increment the current_url index to point to an invalid url - - - If a file_info doesn't have a max number of bytes and a new - file_info with the same name does, update the max number - of bytes of the existing file_info and add the to the signed_xml. - - - when file_xfer is complete, the client checks if the file - was meant to be uploaded when present OR generated locally - before setting it to ready to report, instead of only the later - - - With the addition of multiple urls, the issue of sending urls - that didn't communicate well or got garbage. Whenever a file - get's a server error, it calls, check_giveup, which only gives - up on the file if there are no more urls to try. Also is called - if the downloaded file is garbage or has the same name but not the - correct size. - - - added functionality for send_file_list but does not do anything yet - - - client/ - client_types.C,h - client_state.h - cs_apps.C - cs_file.C - cs_scheduler.C - file_xfer.C - pers_file_xfer.C,h - scheduler_op.C,h - -Daniel 2004-07-06 - - client: when a project fails to attach, call quit_activities() - before exit(1) so other running apps will terminate. - - client/ - main.C - -Rom 6 July 2004 - - Removed ';' from queries that had them since the API Docs state - not to put them in the query. - - Implement a scheduler optimization so we do one batched read and one - transactional write. In the worst case scenario where the client - had submitted 20 results we would do 41 reads and 40 writes - just to update the results. - Now we batch read all the results at one time and surround - the write requests within a transaction. - So now our worst case scenario is 2 reads and 40 writes within a - transaction. - - db/ - boinc_db.C, .h - db_base.C - sched/ - handle_request.C - -Daniel 2004-07-06 - - CPU scheduler only considers resource shares for projects that have - a runnable result. - - Bound debt to [-1 day * ncpus, 1 day * ncpus] - - deleted some dead code - - client/ - app.C - cs_apps.C - cs_trickle.C - -Daniel 2004-07-06 - - client: work requests now include tag. - - scheduler: support for resource_share_fraction - when checking for wu feasibility, consider resource share of - project to determine estimated wallclock duration - - scheduler: syntax bug fix in validator - - client/ - cs_scheduler.C - sched/ - sched_send.C - server_types.C - server_types.h - validate.C - -Daniel 2004-07-06 - - client: bugfix in make_scheduler_request - - client/ - cs_scheduler.C - -Daniel 2004-07-06 - - uh, messed up doing a commit. but i put the "correct" files - back. sorry. - - client/ - app.C - client_state.h - cs_prefs.C - scheduler_op.C - -Rom 6 July 2004 - - Added event handler so we are notified of a system shutdown/logoff which - will allow us to shutdown gacefully instead of the OS terminating us. - - Do a little clean up work with the resource files in the hope that - visual studio won't remove the win_config.h reference the next time the - resources are modified. - - client/win/ - boinc_cli.rc - boinc_dll.rc - boinc_gui.rc - boinc_ss.rc - wingui_mainwindow.cpp, .h - -Rom 6 July 2004 - - Reduce the total number of messages the system attempts to keep in the - messages tab to 200. 2000 was a bit much and caused the system to spend - some time processing when there were quite a few messages to go through, - such as in Predictor@home - - Moved the code that checkes the total number of messages available in - the message tab out of the switch/case chunk of code so that it happens - more frequently than when the user clicks on the messages tab, which - could take awhile if there was more than 1000 messages. - - client/win/ - wingui_mainwindow.cpp, .h - -Rom 7 July 2004 - - Adjust the console control handler such that when a logoff event has - occurred check to see if we are running as a service and if so, ignore - the event, otherwise quit. - - Thanks to Fernando Vinan-Cano via John McLeod - - client/ - main.C - -Daniel 2004-07-07 - - client: set the result exit_code to a non-zero value when: - 1. the result couldn't start - 2. the result had a download error - 3. the result had an upload error - (unless the exit_code was already non-zero) - - This should get the validator to mark these results as invalid - and solve the problem the predictor@home people reported. - - client/ - client_state.C - lib/ - error_numbers.h - - -David 7 July 2004 - - Implement revised core/app interface - (see boinc/doc/api_v4.php). - - Augment the set of shared-memory message channels; - add a channel for suspend/resume/quit messages - (these replace the use of signals and SuspendThread calls); - add separate channels for trickle up/down - - Modify the API library accordingly. - Currently works for Windows; will do UNIX later - - Modify the core client (app.C) accordingly - - Call ACTIVE_TASK_SET::poll() even when activities suspended; - still need to send heartbeats. - - added MSG_CHANNEL class to make code better organized - - api/ - boinc_api.C - windows_opengl.C - client/ - app.C,h - client_state.C - lib/ - app_ipc.C,h - -Daniel 2004-07-08 - - NetBSD compile fixes from John Klos - (just added __NetBSD__ wherever __OpenBSD__ appeared) - - lib/ - filesys.C - util.C - -David 8 July 2004 - - got the new core/app interface working on Unix. - I looked into implementing the management functions - using a thread (with pthreads). - But the pthreads interface is kinda bizarre. - E.g. you can't suspend another thread. - You can send it a signal - but the signal handler - is not allowed to make any pthreads calls! WTF??? - - Added suspend/resume GUI RPCs; - changed gui_test to take a cmdline arg: -state -suspend -resume - - api/ - boinc_api.C - client/ - app.C - gui_rpc_client.C,h - gui_rpc_server.C - gui_test.C - -David 8 July 2004 - - Change the ind_res_st index (on result) from - (server_state, random) to just (server_state). - This makes the feeder's DB query somewhat faster (I think). - The price we pay is that results from the same WU may - be sent out close together in time. - - make download page cached - - NOTE TO PROJECTS: - this requires an update to your database. - See html/ops/db_update.php - - db/ - boinc_db.C - constraints.sql - html/ - ops/ - db_update.php - index.php - user/ - download.php - -Daniel 2004-07-08 - - Changed OpenBSD- and NetBSD-specific #ifdef's to be determined - by autoconf. No idea if this works on OpenBSD/NetBSD yet. - - Makefile.in - aclocal.m4 - config.h.in - configure - configure.ac - lib/ - filesys.C - util.C - */ - Makefile.in - -Brian 8 July 2004 - - Fixed a small bug in allowed_disk_usage where the - global_prefs.disk_max_used_pct was directly multiplied - by the total disk, creating a disk value that was a factor of 100 off, - effectively never becoming the min value returned by the function. - - client/ - cs_prefs.C - -Karl 2004-07-08 - - fixes for boinc_thread_cpu_time vs. boinc_calling_thread_cpu_time - - lib/ - util.h - api/ - boinc_api.h - boinc_api_fortran.C - client/ - dhrystone.C - whetstone.C - -Karl 2004-07-09 - - fixed CURSOR initialization problem (found by Carl Christensen) - - CURSOR now initializes itself; classes that use it don't need to - initialize it anymore - - - removed superfluous 'CURSOR cursor' in DB_WORK_ITEM -- is this correct? - - if there should be two cursors, they should be named differently -- - otherwise it is way too easy to use the wrong one in multiple - inheritance - - db/ - boinc_db.h - boinc_db.C - db_base.h - db_base.C - -Karl 2004-07-09 - - graphics API updates - - - fixed potential buffer overflows - - api/ - static_graphics.C - gutil.C - gutil.h - -Daniel 2004-07-09 - - Don't send heartbeats to, send trickle downs to, or get status - messages from apps without shared memory initialized (i.e. - PROCESS_UNINITIALIZED) - - client/ - app.C - -David 9 July 2004 - - Implemented GUI RPCs for - - showing graphics (one result or all, window or fullscreen) - - project reset, attach, detach - - Added cmdline options to gui_test to exercise the above - - client/ - gui_rpc_client.C,h - gui_rpc_server.C - gui_test.C - -Brian 9 July 2004 - - Changed server side conception of gigabyte to match client side. - - (1024.*1024.*1024.) instead of 1e9 - - makes sure that project will get work if there is space on client - - sched/ - sched_send.C - -Jeff 9 July 2004 - - create_work() now take a new parameter - the path to the result template - file. This was needed because some programs (eg the sah splitter) are - not run from the project root directory. - - tools/ - backend_lib.C - backend_lib.h - create_work.C - -David 9 July 2004 - - Integrate code (courtesy of James Drews) that lets you limit - the set of hosts from which the core client will accept GUI RPCs. - Here's how it works: make a file "remote_hosts" - in the BOINC directory with a list of hostnames (# for comment). - The core client will accept connections only from - localhost and from hosts in this list. - Note: if the -allow_remote_gui_rpc option is given, - ALL connections are accepted. - - add a "-host x" cmdline arg to gui_test - - add error checking to GUI_RPC_CLIENT so that it can tell - if its connection was rejected - - remove .gz target from client makefile - - client/ - Makefile.am - file_names.h - gui_rpc_client.C,h - gui_rpc_server.C,h - gui_test.C - tools/ - create_work.C - -David 11 July 2004 - - changes in core client related to attaching to projects - - commented out "maybe_rename_old_filename_format()" stuff. - Not needed, and contains hazardous asserts - - CLIENT_STATE::add_project() - - check that master URL starts with http://, - and has other chars after that - [WHY WASN'T THIS BEING DONE??] - - check that authenticator is non-null - - client/ - cs_account.C - win/ - wingui_dialog.cpp - lib/ - error_numbers.h - util.C,h - -Rom 11 July 2004 - - Checkin the document class stuff for the new GUI, right now the - SendMessageToCore function is hard coded to do a message - until I get around to figuring out why the compiler complains about - an attempt to cast to a void *. - NOTE: Still debugging the UI portion of the code, it'll follow shortly - - clientgui/ - ActiveTask.cpp, .h - App.cpp, .h - AppVersion.cpp, .h - BOINCGUI.vcproj - FileInfo.cpp, .h - MainDocument.cpp, .h - Message.cpp, .h - Project.cpp, .h - ProxyInfo.cpp, .h - Result.cpp, .h - stdwx.h - Workunit.cpp, .h - XMLParser.cpp, .h - -Daniel 2004-07-12 - - bugfix: don't tell uninitalized apps to reread prefs - - only call set_client_state_dirty("schedule_cpus") if some - project had a runnable result. (if no such project, then debt - and active task set can't change.) - - tell apps to stop doing screensaver graphics when rescheduling - CPUs - - added ACTIVE_TASK_SET::get_next_graphics_capable_app(), not - currently used - - client/ - app.{C,h} - cs_apps.C - -Rom 12 July 2004 - - Checkin two workable tabs for the new GUI, Project and Work, performance - isn't quite up to par yet. My client_state.xml file is roughly 256kb and - it takes the new gui almost a minute to parse the RPC from the core client. - - NOTE: The Work tab is hooked up but the I still need to massage the data - document-side to see things the same way as the existing GUI. - - clientgui/ - BaseListCtrlView.cpp, .h - BOINCGUI.vcproj - MainDocument.cpp, .h - MainFrame.cpp, .h - MessagesView.cpp, .h - Project.cpp - ProjectsView.cpp, .h - ResourceUtilizationView.cpp, .h - TransfersView.cpp, .h - WorkView.cpp, .h - XMLParser.cpp - -Karl 2004-07-13 - - fixed configure bug where MINOR_VERSION gets set to nothing if minor - version is 0 - - - changed MAJOR_VERSION, MINOR_VERSION to BOINC_MAJOR_VERSION, - BOINC_MINOR_VERSION; PACKAGE_VERSION and VERSION -> BOINC_VERSION_STRING - - - added '--disable-client' option to disable building client - - - fixed Makefile typo for message_handler - - - fixed Makefile problem with @CLIENT_BIN_FILENAME@.gz - - - misc configure fixes - - configure.ac - Makefile.am - - client/ - Makefile.am - client_state.C - cs_cmdline.C - cs_statefile.C - file_xfer.C - version.C (removed -- obsolete) - version.h (removed -- obsolete) - client/win/ - boinc_cli.rc - boinc_dll.rc - boinc_gui.rc - boinc_ss.rc - wingui_dialog.cpp - win_config.h [regenerated] - - py/Boinc/ - version.py.in - - sched/ - Makefile.am - file_upload_handler.C - handle_request.C - sched_shmem.C - - test/ - testbase.py - - configure [regenerated] - */Makefile.in [regenerated] - -Karl 2004-07-13 - - - new function generic_check_set() which generalizes - generic_check_set_majority() - - - Cleaned up sample validators and sample assimilator. Renames: - validate_test -> sample_bitwise_validator - validate_trivial -> sample_trivial_validator - assimilator -> sample_dummy_assimilator - - - sample_bitwise_validator: more efficient: compare (lazily-computed) - md5sums before comparing file contents - - - md5_file: md5_string(): new C++ version of md5_block; fixed constness - in md5_block, md5_file parameters - - sched/ - Makefile.am - validate_util.C - validate_util.h - validate.C -> validator.C (consistent w/ assimilator.C) - validate_test.C -> sample_bitwise_validator.C - validate_trivial.C -> sample_trivial_validator.C - assimilate_handler.C -> sample_dummy_assimilator.C - - lib/ - md5_file.h - md5_file.C - -Karl 2004-07-13 - - updated #includes of C headers in C++ files to C++ headers - (e.g. instead of ) - - - refactored HAVE_GL* preprocessing logic for OpenGL headers - - api/ - boinc_gl.h (new) - - 113 files modified - -David 12 July 2004 - - client: get env vars related to HTTP proxy authentication - (previously the cmdline version couldn't do auth) - - client/ - cs_cmdline.C - -David 13 July 2004 - - revised GUI RPC interface. - old: get_state() returns everything - problem: too slow to do every second - new: get_state() returns stuff that doesn't change often - (PROJECT, APP, APP_VERSION, WORKUNIT, RESULT) - get_results() returns dynamic info about results - (fast enough to do every second) - get_file_transfers() returns info about file transfers - (fast enough to do every second) - If either of the latter returns the name of something - that doesn't exist in the static state, - then do another get_state() call - - client/ - client_state.h - client_types.C,h - cs_statefile.C - gui_rpc_client.C,h - gui_rpc_server.C - gui_test.C - -Daniel 2004-07-14 - - schedule_cpus() now returns false if no projects had runnable - results. this should behave more nicely with do_something(). - - client/ - cs_apps.C - -Daniel 2004-07-14 - - implemented new work fetch policy, as described in client_sched.php - - compile fixes in client_types.h to get rid of warnings (there was - some confusing of struct and class) - - changed back to in std_fixes.h; this fixes - configure and compile problems with seti_boinc - - added some auxiliary code for new screensaver logic; actual - screensaver logic not yet changed (coming soon...) - - client/ - app.C,h - client_state.C,h - client_types.h - cs_apps.C - cs_scheduler.C - scheduler_op.C - lib/ - std_fixes.h - -Brian 14 July 2004 - - made a small changed that removed extra checks on downloaded files - when a file_xfer is completed. Was rejecting good files that had - bogus md5 checksums created using send_file or get_file. Extra time - will have to be spend to make md5 work for these two functions in the - future - - client/ - pers_file_xfer.C - -Rom July 15 2004 - - Tag for 4.00 release, all platforms - boinc_release_4_00 - -David 15 July 2004 - - server: better messages on DB errors - - web: cache system looks for "format=xml" in cache args, - sends as MIME type XML if so - - added CGI interface to get user stats as XML - - top_*.php: forgot to exit() in case of too-large offset - - xml_escape(): change \n to space - - db_dump: error checking; add fields to team output; - only output items with nonzero total_credit - - scheduler: we were doing an optimization of not opening the DB - in case there's no work and client not returning results. - Don't do this if this is initial request from host - (otherwise it won't get hostid, and will detach project) - - add "enforce_delay_bound" to SCHED_CONFIG - (NOTE TO PROJECTS: unless you pub - in your config.xml, the scheduler will send results - to hosts that are too slow to complete them within delay bound.) - - db/ - db_base.C - html/ - inc/ - cache.inc - user/ - account_created.php - download.php - show_user.php - top_*.php - lib/ - parse.C,h - sched/ - db_dump.C - handle_request.C - sched_config.C,h - -Noaa 15 July 2004 - - completely new copy of x_opengl utilizing glut, updated using Karl's - boinc_gl.h. Include-file issues including makefile issues have yet to - be resolved so this will NOT compile with your existing Makefile - - updated graphics_api with xwin_graphics_event_loop and some new - included files. Will not compile with existing Makefile. - - reduce.C rearranged includes and added GL, to be resolved later. - - gutil.C extern "C" for jpeglib, glut included, will not compile - with existing Makefile - - boinc_api.h RETSIGTYPE changed to void - - New makefile to take all of these into account will be committed when - available. - - api/ - x_opengl.C - x_opengl.h - graphics_api.C - reduce.C - boinc_api.h - gutil.C - - -David 15 July 2004 - - HTTP; increase size of request header buffer from 256 to 4096 - (fixes HTTP proxy authentication crash bug) - - New way of updating client_state.xml: - - write new file to client_state_next.xml - - rename client_state.xml to client_state_prev.xml - - rename client_state_next.xml to client_state.xml - - remove references to version.* from project file - - client/ - cs_statefile.C - file_names.h - http.h - win_build/ - boinc_gui.vcproj - -Noaa 15 July 2004 - - -added printout of usabilities in gui_test.C (ie when user types - "gui_test" with no arguments) - - client/ - gui_test.C - -Daniel 2004-07-15 - - API: made APP_INIT_DATA aid extern so apps can access it (used to set - fraction_done_start and fraction_done_end) - - api/ - boinc_api.C,h - -David 16 July 2004 - - on team listings, show only users w/ nonzero total credit - - xml_escape(): convert ^M and \r to blank as well as \n - - html/inc/ - team.inc - lib/ - parse.C - sched/ - db_dump.C - -Daniel 2004-07-16 - - API: fixes in GL code to use APP_INIT_DATA aid from boinc_api.C - - api/ - x_opengl.C - windows_opengl.C - -David 16 July 2004 - - fixed bug in transitioner where, when creating new results - for a WU, it uses the wrong suffix, - causing conflicts with existing result names. - - fixed bug in writing statefile; wouldn't work on fresh installs - - client/ - cs_statefile.C - sched/ - transitioner.C - -David 17 July 2004 - Various changes to reflect the fact that message-passing - operations may fail because buffer is full, - in which case they must be retried later. - - - in graphics API: don't ack graphics mode in set_mode(); - instead, ack it in timer_handler() - - in core client: keep track of the graphics_mode_requested - separately from the graphics_mode_sent; - in a polling routine, if these are different then try to send. - - - used CLIENT_STATE::get_next_graphics_capable_app() instead of - ACTIVE_TASK_SET::get_graphics_capable_app() - - api/ - windows_opengl.C - client/ - app.C,h - cs_apps.C - ss_logic.C - -David 19 July 2004 - - windows_opengl. - - on WM_CLOSE message, call set_mode() rather than KillWindow(). - If you call KillWindow() the core client never finds out - that we're in HIDE_GRAPHICS mode - - removed specious KillWindow() logic from make_new_window(); - - Various changes and bug fixes for GUI RPC: - - include resource share in PROJECT write - - include wu_name etc. in RESULT write - - expanded gui_test.C to include almost all RPCs - - api/ - windows_opengl.C - client/ - client_types.C,h - cs_statefile.C - gui_rpc_client.C,h - gui_rpc_server.C - gui_test.C - -Daniel 2004-07-19 - - client: try to choose new app to do screensaver graphics in - schedule_cpus() - - client/ - cs_apps.C - ss_logic.C,h - -David 19 July 2004 - - fix various bugs that kept test_uc.py from working - Project._build_sched_commandlines(): programs names have changed - (validate_test -> sample_bitwise_validator, - assimilator -> sample_dummy_assimilator) - ??? why does this function exist in the first place? - TestProject.run(): same - Work.install(): - need to copy result template file to project directory - Added -config_dir argument to create_work - For some reason, the transitioner wasn't expanding UPLOAD_URL - in result templates, when creating new results. - Fixes this. - - In spite of all this, test_uc.py doesn't quite work. - I think sample_bitwise_validator is crashing. - - py/Boinc/ - setup_project.py - sched/ - transitioner.C - test/ - testbase.py - tools/ - create_work.C - -Karl 2004-07-20 - - fixed bug in md5_string() that caused sample_bitwise_validator to - segfault. - - test_uc.py passes again. - - lib/ - md5_file.C - -Rom 19 July 2004 - - Increase the heartbeat give-up period from 5 seconds, to 30 seconds. - It looks as though we were hitting the give-up period when name resolution - was taking longer than expected. - - Increase the heartbeat timeout period to be greater than the timeout period. - - api/ - boinc_api.C - -Rom July 19 2004 - - Tag for 4.01 release, all platforms - boinc_release_4_01 - -Eric K. July 20 2004 - - Added cache control headers to the cached php pages to reduce CGI - load on the web server. The headers include Last-Modified, Expires, - and Cache-Control: public, max-age=. Expiration and max-age are - based upon the max-age parameter passed to start_cache(). - start_cache() also check the request header for 'If-Modified-Since' - and returns a 'HTTP/1.0 304 Not Modified' if 'If-Modified-Since' == - 'Last-Modified:' - - html/inc/cache.inc - -Rom July 19 2004 - - Fix a bug where during the benchmarking process all the active tasks - would die off. - - client/ - cs_benchmark.C - -Karl 2004-07-21 - - fix bug in "couldn't find app" messages - - sched/ - message_handler.C - validator.C - -Karl 2004-07-21 - - allow '.msi' as extension for installation package - - tools/ - update_versions - -Karl 2004-07-22 - - fixed html/php bugs (e.g. should be - isn't found (otherwise it just silently uses the previous command-line - argument as a file_ref!) - - tools/ - backend_lib.C - -Daniel 2004-07-26 - - Fixed fast wu_result check (broken by mysterious commit of - 2004-07-24) that caused work to never be sent. - - sched/ - sched_send.C - -Daniel 2004-07-26 - - API: send current VM usage and resident set size in - update_app_progress(). Currently only works for Solaris and Linux. - Does anyone know how to do this on Windows or OSX? - - Fixed typo on prefs page - - config.h.in - configure - configure.ac - api/ - boinc_api.C - client/ - app.C,h - html/inc/ - prefs.inc - -Rom July 27 2004 - - Fix a bug where received results were not being updated - - db/ - boinc_db.C - sched/ - handle_request.C - -Daniel 2004-07-27 - - client: upon file xfer failure, don't do multiple back-offs - - client/ - pers_file_xfer.C - -Rom July 27 2004 - - Create a tmp folder off of the project root so tasks and stuff can begin execution - from there, it was the log folder but the problem with that, is now our log directories - are symbolic links to a local volume so when we try to traverse back up to the project - folder we are missing a bunch of folders. - - py/boinc/ - setup_project.py - sched/ - start - -Daniel 2004-07-29 - - API: fixed bug that caused vm_size and resident_set_size not to be - sent to core client - - client: check_max_mem_exceeded() revived - currently only checks - against workunit max_mem_usage attribute - - api/ - boinc_api.C - client/ - app.C - -Noaa 29 July 2004 - - added another glut file to the source tree, updated the - makefile for it - - updated version of x_opengl.C - - boincglut/ - lib/ - glut/ - glut_glxext.c (new) - Makefile - - api/ - x_opengl.C - -Noaa 30 July 2004 - - added Makefile.Readme to explain how to make a Makefile.graphics - for a system since at the moment Makefile.graphics is restricted - to the setup on Miner. This can be used when Makefile.in is changed - so that a correct Makefile is generated at configure time. - - client/ - Makefile.Readme(new) - -David 3 Aug 2004 - - changed the API to handle compound applications. - API tasks are broken down into a number of boolean - "options" (struct BOINC_OPTIONS). - For compound apps, the controller and worker call a new - function boinc_init_options(), specifying which tasks - they're going to handle. - This reads the API init file, attaches shared memory, - and starts a timer (which does only the requested tasks). - - The old boinc_init() still exists (with no args now). - It is to be used by single-process apps. - It calls boinc_init_options() with all options turned on. - - Add the core client version to the API init file; - if the app has the wrong API version file, it quits. - - Core client: if an app gives us a trickle-up message, - do a scheduler RPC. - - Fixed API bug where trickle-up msgs were being read - from the wrong message channel - - Removed old code from API involving windows events - - api/ - boinc_api.C,h - apps/ - upper_case.C - client/ - app.C,h - lib/ - app_ipc.C,h - error_numbers.h - win_build/ - upper_case.vcproj - -David 3 Aug 2004 - - fixed gui_test so that - gui_test -show_graphics fullscreen - works (I hope) - - client/ - gui_rpc_client.C - gui_test.C - -David 3 Aug 2004 - - Change PHP so that web site is turned off if "stop_web" file is present; - it no longer looks at "stop_sched" or "stop_daemons". - NOTE: I don't think any script creates stop_web. - for now you'll have to do it manually - - html/inc - util.inc - xml.inc (new) - -Daniel 2004-08-03 - - Fixed "prefs and venue" issue. Before: host venue assignment always - comes from the project that is contacted. Now: host venue assignment - comes from the project with the newer global prefs. - - client/ - cs_scheduler.C - sched/ - handle_request.C - server_types.C,h - -Rom 3 Aug 2004 - - Change the Secure Windows Desktop message to include - an action item for those who want to fix it. - - client/win/ - boinc_ss.rc - -David 4 Aug 2004 - - Don't use transactions unless config.xml contains - - sched/ - handle_request.C - sched_config.C,h - transitioner.C - -David 4 Aug 2004 - - A without a signature would cause - the file_upload_handler to crash. - Fixed this. - - File upload handler: if ignore_upload_certificate is set, - don't compute the expected signature - - sched/ - file_upload_handler.C - -David 4 Aug 2004 - - fix bug in links on Top Hosts - - friendlier messages in RPC reply if bad code sign key - - html/inc/ - host.inc - sched/ - handle_request.C - -Daniel 2004-08-04 - - autoconf: added HAVE__PROC_* macros - - client: added m_swap checking for Linux (via /proc/meminfo) and - MacOSX (via sysctl(3) and CTL_USER (not CTL_VM!!!)) - - aclocal.m4 - config.h.in - configure - configure.ac - api/ - boinc_api.C - client/ - hostinfo_unix.C - -David 5 Aug 2004 - - Kinder, gentler messages when need work - - client/ - cs_scheduler.C - -David 5 Aug 2004 - - Initial support for hierarchical upload/download directories. - With large directories (100,000 - 1,000,000 files) - Solaris and NFS burn too much CPU time searching dirs. - Our plan is to use a 2-level hierarchy, - with the fanout specified in config.xml: - x - A fanout of 1024 should work OK for up to 1M files. - A couple of utility programs in tools/: - dir_hier_path shows where a file is - dir_hier_move moves existing files into a hierarchy - - lib/ - util.C,h - sched/ - sched_config.C,h - tools/ - Makefile.am - dir_hier_move.C - dir_hier_path.C - -Rom 5 Aug 2004 - - Some basic cleanup work - - sched/ - handle_request.C - main.C - -Brian 5 Aug 2004 - - Added my data management code for client. Full documentation is avaiable - on the BOINC website under Disk Space Management. Major changes to the - client are as follows: - - When a file is sent to be downloaded, it is associated with a project - which checks if there is enough space on disk - - Files are deleted when this space, as set by the user prefs, fills up - - Instead of sending the user prefs to the scheduling server, three - new values are sent and the server decides how much work to award - each host based on these values and config.xml prefs (documented) - - Files have a priority and expiration date which sorts them for - deletion purposes - - Uploaded my tools for sending and getting files to and from a host. - - Uploaded a tool that requests a file list from all hosts, although it has - not been fully implimented on the core client - - Uploaded a tool that sends a request for a host to delete a local file - - client/ - Makefile.am - gui_titles.h - scheduler_op.C,h - main.C - gui_titles.C - file_names.h - cs_statefile.C - cs_scheduler.C - cs_files.C - client_types.C,h - sched/ - server_types.C,h - handle_request.C - sched_send.C - delete_file.C - get_file.C - request_file_list.C - send_file.C - Makefile.am - db/ - boinc_db.h - -Rom 5 Aug 2004 - - Possible fix for segfaults on Linux platforms with the scheduler. - - lib/ - msg_log.h - sched/ - sched_msgs.h - -Noaa 5 August 2004 - - -changed source tree's glut library to boincglut to avoid - linking problems with possibly prexisting glut libraries - -updated the Makefile.Readme to reflect the change - -updated sample Makefile.graphics - - boincglut/ - lib/ - glut/ - Makefile - - api/ - Makefile.Readme - Makefile.graphics - - / - Graphics.Readme - -Daniel 2004-08-05 - - regenerated build files to fix (some) compilation problems from the - data management code - - aclocal.m4 - client/ - Makefile.in - sched/ - Makefile.in - win_build/ - boinc_cli.dsp,vcproj - boinc_gui.dsp,vcproj - -David 6 Aug 2004 - - Changed server software to use the hierarchical directory mechanism. - This means using dir_hier_path() to generate the pathname - of an input or output file, - rather than just concatenating directory and filename. - Also (in process_wu_template()) use dir_hier_url() - to generate the appropriate URL - - Add a scheme for transitioning from flat to hierarchical download dir. - Can have a element in config.xml, - giving the path of an old, flat dir. - file_deleter will look here if it can't find file in main download dir. - - Pass around SCHED_CONFIG in a few interfaces - (e.g. create_work()) in order to access uldl_dir_fanout - - html/inc/ - profile.inc - lib/ - util.C,h - sched/ - file_deleter.C - file_upload_handler.C - make_work.C - sched_config.C,h - validate_util.C - wu_check.C - tools/ - Makefile.am - backend_lib.C,h - create_work.C - dir_hier_move.C - dir_hier_path.C - -David 6 Aug 2004 - - In the web "get password" function, - look for not just the email addr but also - any munged versions of the email addr. - So people won't see "no such account" and create a new one. - (from Carl Christensen) - - Add escape_pattern() function for escaping "like" patterns; - use this in team lookup also - - html/ - inc/ - db.inc - user/ - mail_passwd.php - team_lookup.php - -Brian 6 Aug 2004 - - Fixed bug that was causing problems with BOINC client - Files were not being associated with projects because of small - bugs in the code that were resently checked in. Sorry - - Changed a naming convention in a new slice added to the data pies - in Windows GUI. - - client/ - client_types.C - cs_data.C - scheduler_op.C - gui_titles.C - -Daniel 2004-08-06 - - New preferences that cause apps to instead of : - leave_apps_in_memory ( if false) and vm_max_used_pct (if - exceeded, apps ) - - Various code clean up and bug fixes from data management stuff - - client/ - app.C,h - client_types.C - cs_apps.C - cs_data.C - cs_prefs.C - cs_scheduler.C - prefs.C,h - html/inc/ - prefs.inc - -Noaa 6 August 2004 - - - removed libglut.a from cvs, was accidentally in there - - boincglut/lib/glut/ - libglut.a (removed) - -Rom 6 Aug 2004 - - Feeder should be using mysql_store_result instead of mysql_use_result. - - db/ - boinc_db.C - -David 7 Aug 2004 - - changed table type to InnoDB - (except for tables that need fulltext indices, - which apparently only works w/ ISAM) - - fixed bug w/ graphics GUI RPC - - db/ - schema.sql - constraints.sql - client/ - gui_rpc_server.C - -Daniel 2004-08-09 - - client: - - check for exited apps right before (re)starting them for any - reason (unsuspend_all(), resume_or_start()) - - upon suspend_all(), if leave_apps_in_memory is false, quit all - tasks with state == PROCESS_RUNNING (not just those with - scheduler_state == CPU_SCHED_RUNNING, as before) - - client/ - app.C,h - -Noaa 9 August 2004 - - changed version of x_opengl no print statements handles - fullscreen - - added extern "C" around protos in graphics_api.h - - api/ - x_opengl.C - graphics_api.h - -Rom 10 Aug 2004 - - Bug Fix: Moved 5 day benchmark checking code into main polling function - - Bug Fix: Added extra logic so that if benchmarks execute BOINC will - successfully start back up the applications if leave_apps_in_memory - is set to false - - Bug Fix: Fix a state file parsing issue where an extra - start tag was being included within the signed_xml field without the - closing tag, this could be what was causing problems with P@H and - incorrect result file info structures. This could also lead to - messages on the server about duplicate result submissions. - - client/ - app.C, .h - client_state.C - client_types.C - gui_rpc_server.C - cs_benchmark.C - -Karl 2004-08-10 - - fixed 'make dist' bugs caused by php files being removed - - sched/ - Makefile.am - tools/ - add.C (removed - obsolete) - - -David 11 Aug 2004 - - FILE_INFO::write(): don't write signed_xml if it's not relevant - (i.e. if there's no xml_signature) - This caused an XML syntax error in client_state.xml - - NOTE: this looks similar to Rom's bug fix yesterday. - Two fixes are better than one, hopefully. - - client/ - client_types.C,h - -David 11 Aug 2004 - - Change "limit x offset y" to "limit y,x" in PHP code - for compatibility with PHP 3.x - (from Kalle Happonen) - - html/ - inc/ - team.inc - user/ - top_host.php - top_team.php - top_user.php - -David 11 Aug 2004 - - Divided app.C (which was getting too big) into: - app.C: constructor/destructor, XML write/parse - app_control.C: process control - app_graphics.C: graphics interactions - app_start.C: initialization/execution - - client/ - Makefile.am - app.C - app_control.C (new) - app_graphics.C (new) - app_start.C (new) - cs_apps.C - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - -David 11 Aug 2004 - - Make work for application files as well as input files - (this copies files to the slot dir instead of making symbolic link). - This should make it possible to use shared-library files in Mac OS/X - that have to reside in the slot dir. - This was done by factoring out file-setup code into a function - (setup_file()) that's used for all files (app, input and output) - - Deleted code for file-descriptor-based application access to - input and output files. - This feature wasn't well-designed, and no one was using it. - - api/ - boinc_api.C - client/ - app_start.C - lib/ - app_ipc.C,h - -David 11 Aug 2004 - - check for disk space overflow only every few hours - (not every second!! It traverses the entire BOINC directory, - which could contain thousands of files) - - Write out-of-disk-space messages using msg_printf(), - (not a pop-up dialog) - - fix spelling errors in error messages (ouch!) - - TODO: the disk-space logic needs review - - client/ - cs_data.C - main.C - -David 11 Aug 2004 - - DB_SCHED_RESULT_ITEM_SET::update_result(): escape the - stderr_out and xml_doc_out fields of result - (they may contain single-quote) - - db/ - boinc_db.C - -Daniel 2004-08-11 - - client: #include fixes for app.C refactoring - - client/ - app_control.C - app_start.C - -David 11 Aug 2004 - - comment out disk-management code, pending a review. - - client/ - client_state.C - client_types.C - cs_data.C - cs_scheduler.C - scheduler_op.C - -Rom 11 Aug 2004 - - Move gui_rpc_client.C, .h to the clientgui folder. - - Removed wx based document objects in favor of the - gui_rpc_client.C based objects. - - Update source to match. - - client/ - gui_rpc_client.C, .h (removed) - gui_test.C (removed) - makefile.gui_test (removed) - clientgui/ - gui_rpc_client.C, .h (added) - gui_test.C (added) - makefile.gui_test (added) - ***** Removed Numerous Files ***** - BOINCGUI.vcproj - MainDocument.cpp, .h - MainFrame.cpp - MessagesView.cpp, .h - ProjectsView.cpp - ResourceUtilizationView.cpp, .h - TransfersView.cpp, .h - WorkView.cpp - -David 12 Aug 2004 - - removed call to associate_file() for user files. - - fixed some code formatting, and comments of the form - foo(); // call foo - - client/ - client_types.C - cs_apps.C - cs_prefs.C - cs_scheduler.C - http.C - pers_file_xfer.C - prefs.C - lib/ - filesys.C - util.C - -David 12 Aug 2004 - - Improved error checking and reporting in parse state file - - check error returns of parse functions - - temp_project is local to block (so get a new one) - - delete objects in all error cases - - Check and report errors in init/insert of PERS_FILE_XFER - while parsing state file - - ignore app/app_version from state file if project is anonymous platform - - If get error parsing host info, time/net stats etc., - continue parsing rather than error out - - Improved error checking and reporting in parsing - and processing of scheduler reply - - check error returns of parse functions - - use msg_printf() instead of show_message() or fprintf(stderr)!! - - fix memory leaks - - client/ - client_msgs.C - cs_scheduler.C - cs_statefile.C - scheduler_op.C - -David 12 Aug 2004 - - compile fixes from Jakob Pedersen - - client/ - app.C - app_start.C - lib/ - util.C - sched/ - db_dump.C - send_file.C - -David 12 Aug 2004 - - Originally every scheduler reply contained - user, host and team info. - This is no longer the case because, for example, - the "no work available" logic now skips DB access. - Fixed a few bugs related to this: - - scheduler: send user/host/team info only if - the corresponding record was read from DB - - client: get team name, user credits, host credits - from scheduler reply only if they're actually there - (use -1 as a null value for credit fields) - - client/ - cs_scheduler.C - scheduler_op.C - sched/ - handle_request.C - server_types.C - -David 12 Aug 2004 - - canonicalize_master_url(): prepend http:// if it's not there. - And replace messy std::string code with nice stdlib code - - lib/ - util.C - -David 12 Aug 2004 - - db_dump: add element to team XML - - web: don't show memory BW, since we're not measuring it any more - - clear user.has_profile when delete profile - - html/ - inc/ - host.inc - user.inc - user/ - delete_profile.php - sched/ - db_dump.C - tools/ - dir_hier_move.C - -David 13 Aug 2004 - - use 0 (not -1) as null value for unix times - - comment out remaining disk management code - - compile error - - client/ - client_types.C,h - cs_scheduler.C - scheduler_op.C - sched/ - server_types.C - -David 13 Aug 2004 - - transitioner: don't set wu.transition.time to anything less - than now + wu.delay_bound. - This prevents the transitioner from repeatedly handling a WU - in the case where it's behind schedule - - sched/ - transitioner.C - -Noaa 13 Aug 2004 - - - changed Graphics.Readme to reflect movement of the gui_test stuff - - / - Graphics.Readme - -Rom 13 Aug 2004 - - Needed to backout the newer style of determining disk free space - on the clients since all the clients currently reporting to us - are 3.x clients and still using the original scheme. - - sched/ - sched_send.C - server_types.C, .h - -David 13 Aug 2004 - - bad IP address display on GUI RPC reject - - client/ - gui_rpc_server.C - sched/ - request_file_list.C - -Karl 2004-08-14 - - documentation notes on transaction support in MySQL versions & - troubleshooting - - doc/ - software.php - build_server.php - -David 16 Aug 2004 - - fix compile error - - check bind/listen failure in GUI RPC code - - added boinc_close_socket() - - client/ - gui_rpc_server.C - net_xfer.C - lib/ - util.C,h - -David 16 Aug 2004 - - changed "engine" to "type" in schema SQL - - db/ - schema.sql - -David 16 Aug 2004 - - compile fixes and more commenting-out of disk mgt code - - sched/ - delete_file.C - sched_send.C - server_types.C,h - -David 16 Aug 2004 - - client: check error return from choose_version_num(). - There's a remote chance this has something to do with - the "scrambled XML" problem - - changed my 13 Aug change to transitioner - so that new transition time is at least now + 1 day - - client/ - cs_apps.C - cs_scheduler.C - sched/ - transitioner.C - -Rom 16 Aug 2004 - - After much gnashing of teeth, head scratching, and other - assorted things, I finally can build the cross platform GUI again. - - The default project builds for the wxWidgets static library, MSVCRT - static library, and STL static library really don’t like each other. - It took a few days to get things to a point they would compile, and we - still throw a few warnings on the release build. - - clientgui/ - BOINCGUI.sln - BOINCGUI.vcproj - gui_rpc_client.C, .h (removed) - makefile.gui_test (removed) - lib/ - gui_rpc_client.C, .h (added) - makefile.gui_test (added) - -David 17 Aug 2004 - - server changes (courtesy Pietro Cicotti from Predictor@home) - to implement homogeneous redundancy more efficiently. - Instead of scanning result table, - use the workunit.workseq_next field to store an integer encoding - of the platform the WU has been sent to, if any. - - added utility program (hr_db_convert.C) to convert - existing an database to new format - - sched/ - sched_send.C - tools/ - hr_db_convert.C (new) - -David 17 Aug 2004 - - removed boinc_close_socket() from util.C, - since it causes Win link error in upper_case. - TODO: would be nice to use lib/ code as library - - client/ - gui_rpc_server.C - net_xfer.C - lib/ - util.C,h -Rom 17 Aug 2004 - - BugFix: Fix trickle messages from host. - - BugFix: HR fix for the scheduler. - - sched/ - handle_request.C - sched_send.C - -Karl 2004-08-18 - - update_versions: - - Print warning if specified signature files won't be used - - Print warning and query continue if no signature file specified - - Allow file.file_ref_info's contents to be used for inserting extra - info in the attribute (e.g. ) - - tools/ - update_versions - py/Boinc/ - tools.py - -David 19 Aug 2004 - - don't show a zillion digits of precision on file xfer speeds - - client/ - pers_file_xfer.C - -David 20 Aug 2004 - - strip_whitespace() did infinite loop on empty string!! - - removed old code in db_boinc - - db/ - boinc_db.C,h - lib/ - util.C - -David 20 Aug 2004 - - PHP fixes - - html/ - inc/ - cache.inc - util.inc - ops/ - show_log.php - white.css (new) - -David 20 Aug 2004 - - removed perror()s from shmem functions. - Shouldn't do I/O at this level. - - html/user/ - info.php - stats.php - lib/ - shmem.C - -Daniel 2004-08-20 - - client: fixed file xfer bug that caused null pointer dereference upon - some xfer failures - - client/ - pers_file_xfer.C - -Rom 20 Aug 2004 - - Tag for 4.03 release, all platforms - boinc_release_4_03 - -David 20 Aug 2004 - - handle_exited_app(): - Returning early in all cases of exiting with zero status - caused core client not to read stderr_out file - or clean out slot dir. - This made test_uc.py fail. - - DANIEL: please examine this and see if you agree, - and get test_uc.py working any time you do a major checkin - - client/ - app_control.C - -David 20 Aug 2004 - - already_sent_to_different_platform(): - fix concurrency bug by reading WU.workseq_next - from database just prior to checking, - then updating the field immediately if needed. - - scheduler: update_wu_transition_time(): - use update_field(); more efficient - - Added DB_BASE::get_field_int(): get a single integer - field from a DB record. - A little cheaper than reading the whole record - - DB_BASE::lookup(): remove code that sees if record is unique. - It's called after mysql_free_result(), - so it will never return anything. - - DB code: changed "if (db->mysql && is_high_priority) to just - "if (is_high_priority)". - db->mysql is a pointer, and is always nonzero. - It's not a flag saying whether the DB is MySQL. - All this code is only for MySQL anyway. - - db/ - db_base.C,h - sched/ - sched_send.C - -David 21 Aug 2004 - - Fixed nasty bug in feeder that has been present since April 3 (doh!). - scan_work_array() scanned the work array with logic of the form - if (wu_result.state == PRESENT) { - ... - } else { - // assume wu_result.state == EMPTY - } - but with the introduction of the CHECKED_OUT state, - this became invalid, and the feeder was overwriting entries while they - were "checked out" by a scheduler. - Fixed this by changing if() to switch() - - Added check to scan_work_array(): when read result from DB, - make sure result.workunitid matches the WU's ID. - This ensures correctness even if the feeder is wrong. - - removed commented-out code from feeder - - sched/ - feeder.C - sched_send.C - sched_shmem.h - -David 21 Aug 2004 - - removed old commented-out code - - client/ - client_types.C,h - cs_apps.C - -David 21 Aug 2004 - - If an app fails to go into fullscreen mode, - mark it as MODE_UNSUPPORTED so that we don't ask it again - - client/ - cs_apps.C - ss_logic.C - -David 23 Aug 2004 - - Cleanup and bug fixes in CPU scheduler - There was inconsistent terminology, - e.g. a task could have scheduler_state = CPU_SCHED_RUNNING - but actually be suspended; it could have state = PROCESS_RUNNING - but actually be suspended, and so on. - New terminology: - "executing" (formerly "running", which was used ambiguously) - CPU_SCHED_SCHEDULED (formerly CPU_SCHED_RUNNING): - the CPU scheduler has given its permission - for a task to execut; it may not actually be executing - PROCESS_EXECUTING: the process is executing (not suspended) - PROCESS_SUSPENDED: the process is suspended - new function: ACTIVE_TASK::process_exists(): - true if the state is EXECUTING, SUSPENDED, or ABORT_PENDING - Use this instead of (state == PROCESS_RUNNING) in many cases - renamed ACTIVE_TASK::task_exited() to has_task_exited() - changed logic in ACTIVE_TASK_SET::suspend_all() - ACTIVE_TASK_SET::unsuspend_all(): - Removed code that checks for process exit. - Poll code should take care of this. - - enabled preemption by quit - - add MSG_CHANNEL::send_msg_overwrite(): send message even - if there's already a message there. - Use this for process control messages. - - API: if suspended, check for messages as well as - (this affects Unix only) - - add enclosing tag for app init data file (so XML parsers accept it) - - api/ - boinc_api.C - client/ - app.C,h - app_control.C - app_graphics.C - app_start.C - client_state.C - cs_apps.C - cs_prefs.C - gui_rpc_server.C - lib/ - app_ipc.C,h - -David 23 Aug 2004 - - web: add cross-project ID to user page - - db_dump: add NO_SORT option (default) - - html/ - inc/ - user.inc - user/ - prefs_edit_form.php - sched/ - db_dump.C - -David 24 Aug 2004 - - logic error on task start (found by Carl C.) - - client/ - app_start.C - cs_apps.C - -Rom 24 Aug 2004 - - Fix a logic error where the benchmarks would continuously run on a - core client upgrade. - - Comment out event logging to the Windows Event log until we can - refactor the various messages. - - client/ - client_state.C - main.C - -Rom 24 Aug 2004 - - Tag for 4.04 release, all platforms - boinc_release_4_04 - -David 24 Aug 2004 - - Core client: check that shared memory exists before - attempting to send or get msgs to an app. - This hopefully will fix a crashing bug - that happens when you use quit-on-suspend - (since the shared-memory seg is deleted on quit) - - Separate get_app_status_msg() and get_trickle_up_msg() functions - - client/ - app.h - app_control.C - app_graphics.C - -Rom 24 Aug 2004 - - Tag for 4.05 release, all platforms - boinc_release_4_05 - -David 25 Aug 2004 - - Make it configurable (via in config.xml) - whether results are shown on user web site - - html/ - inc/ - host.inc - util.inc - user/ - results.php - -David 25 Aug 2004 - - Core client: print a message when an app is put in LIMBO state - (i.e. exit zero but w/o finish file) - - client/ - app_control.C - -Jeff 25 Aug 2004 - - limit workunit and result enumerations in the file_deleter to 1000. - - sched/ - file_deleter.C - -David 27 Aug 2004 - - add "use bytes" pragma to grep_logs (from Carl C.) - - tools/ - grep_logs - -David 27 Aug 2004 - - scheduling server only updates cross-project ID if the one - in request message is greater than what it has (from Janus K) - - sched/ - handle_request.C - -David 27 Aug 2004 - - db_ops DB browsing fixes (from Kalle Happonen) - - html/inc/ - db_ops.inc - -Rom 29 Aug 2004 - - Increase the feeder buffer sizes so that whatever this fcgi problem is, - we don't have to bounce the project so often. This is a temporary hack - until I or somebody else figures out whats going on. - - sched/ - feeder.C - sched_shmem.h - -Rom 30 Aug 2004 - - Win98 machines seem to be throwing a SEH stack overflow exception. - Our unhandled exception filter in this case allocated a 1MB memory buffer - and pointed the ESP register at it. Well this chunk of code seems to - be broken, it is probably the first time it has ever been used. - - lib/ - diagnostics.C - -Rom 31 Aug 2004 - - Win98 has a memory leak condition in dealing with memory mapped files. - So lets go ahead and fix one possible way to slow down the leak, A better - fix is to recycle the shared memory segments. Recycling of the shared - memory segments is forthcomming. - - lib/ - shmem.C - -David 31 Aug 2004 - - Don't delete shared-memory segment while ACTIVE_TASK is preempted - via quit (hopefully will fix Win98 problem). - - Add shmem_seg_name field to ACTIVE_TASK - - Factor ACTIVE_TASK::get_shmem_seg_name() out of write_app_init_file(). - It had no business being there. - In particular, write_app_init_file() is sometimes called - in the middle of execution, when you definitely don't want - to create a new shmem seg name - - write_app_init_file() doesn't take APP_INIT_DATA arg - - define type SHMEM_SEG_NAME (for uniformity across platforms) - - client/ - app.C,h - app_control.C - app_start.C - lib/ - app_ipc.C,h - -David 31 Aug 2004 - - feeder/scheduler: - We were seeing problems where the shared-mem array was - filling up with results that were "locked" by a particular - scheduler process, which apparently had then died, - leaving that slot in limbo. - Add code to the feeder to check if the process that - locked a slot still exists, and unlock it if not. - - end_cache(): check for ".." in params string. - We've had problems with files mysteriously disappearing, - and it's possible that the caching mechanism has a security loophole. - html/ - inc/ - cache.inc - prefs.inc - user/ - download_network.php - sched/ - feeder.C - main.C - sched_send.C - sched_shmem.h - -Jeff 31 Aug 2004 - - limit workunit enumeration in the assimilator to 1000. - - sched/ - assimilator.C - -Rom 31 Aug 2004 - - BUGFIX: Moved the delete shared memory code to the end of the function, to - happen right before slot directory cleanup. The previous instance of code - t8hat was commented out was for the unix branch. - - BUGFIX: The shared memory enumerator had a bug where the name it was - enumerating wasn't the same name that was eventually locked by the start - routine, this caused the client to only be able to run one application at - a time - - BUGFIX: The shared memory enumerator was still referencing the slot - directory number instead of the for loop iterator. - - BUGFIX: When a process has been preempted, it's pid handle and thread handle - need to be freed. - - BUGFIX: Calling MapViewOfFile on Win98 automatically causes a memory leak, - so don't call it unless we really have to. - - NOTE: I would like to thank Walt Gribben for helping me by debugging this issue - for me. - - client/ - app_control.C - app_start.C - lib/ - error_numbers.h - shmem.C, .h - -Rom 31 Aug 2004 - - Tag for 4.06 release, all platforms - boinc_core_release_4_06 - -Rom 1 Sep 2004 - - Language File Updates across all languages. - - client/translations/ - - -Rom 1 Sep 2004 - - Tag for 4.07 release, all platforms - boinc_core_release_4_07 - -David 1 Sep 2004 - - fixed bug in web-caching code that caused files in html/user - to be randomly deleted. - The function clean_cache($dir) was enumerating files in $dir, - and doing unlink($file), but without chdir'ing into $dir - or concatenating $dir onto $file. - - html/inc - cache.inc - -David 2 Sept 2004 - - If an executable file failed validation, any results using - that app version would hang forever in the "downloading" state. - Two changes were needed to fix this: - 1) garbage_collect(): when scanning results, - check for download failures of APP_VERSION files - (as well as WU files), and if so mark the result as failed. - Added new functions APP_VERSION::had_failure() and get_file_errors(). - 2) handle_scheduler_reply(): if get an APP_VERSION that we already have, - reset any errored-out FILE_INFOs, - i.e. give it a chance to download again. - There are various ways to do this, but this seems the cleanest. - Added new functions FILE_INFO::reset() - and APP_VERSION::clear_errors() - - made verify_downloaded_file() into a member function of FILE_INFO. - It now sets the error_msg field to a descriptive string - so that failures will be reported to project - - client/ - client_state.C - client_types.C,h - cs_files.C - cs_scheduler.C - pers_file_xfer.C - -David 2 Sept 2004 - - change MAX_WU_RESULTS from 500 to 100 - - sched/ - sched_shmem.h - -Rom 2 Sep 2004 - - BUGFIX: The active task destructor also tried to clean up dangling handles, so - after cleaning up a handle lets also set the handle value to NULL to keep it from - being acted on again. - - client/ - app.C - app_control.C - -David 2 Sept 2004 - - PERS_FILE_XFER::poll(): don't check file size if it's not specified in FILE_INFO - ==> This fixes download failure of user-supplied files - - PROJECT::parse_preferences_for_user_files(): fill in fip->project - ==> This fixes a crashing bug when user supplies files - - User-visible test: - change "preempt" to "pause" - change "quit" to "removed from memory" - change "suspend" to "left in memory" - - client/ - app_control.C - client_types.C - gui_titles.C - pers_file_xfer.C - -Rom 2 Sep 2004 - - BUGFIX: During a project reset the next_runnable_result becomes invalid, so each - time we go through the loop reset all next_runnable_result to NULL so we don't - crash. - - client/ - cs_apps.C - -David 2 Sept 2004 - - PERS_FILE_XFER::poll(): fixed bug that caused hang - - NOTE: check_giveup(), handle_xfer_failure(), and retry_or_backoff() - are a total mess. I'll get to them next. - - - If an app exits with zero status but no finish file, - instead of putting it in limbo (which causes the core client to do no work) - just restart the process again. - NOTE: eventually we should detect when this is happening repeatedly, - and error out the result. - For now, just print a message telling user they may need to reset project. - - rename PERS_FILE_XFER::xfer_done to pers_xfer_done - - move process cleanup code into separate functions - (ACTIVE_TASK::close_process_handles() - and ACTIVE_TASK::detach_and_destroy_shmem()) - client/ - app.C,h - app_control.C - pers_file_xfer.C - -David 3 Sept 2004 - - fix bugs in previous checkin - - schedule_cpus() - - clear temp vars at start (bug) - - don't delete ACTIVE_TASK on start failure; - other code takes care of this - - get rid of RESULT.is_active field. - Things that can be derived from other fields, - and need to be maintained in a bunch of places throughout - the code, are a bad programming practice - - client/ - app_control.C - app_start.C - client_types.C,h - cs_apps.C - -David 4 Sept 2004 - - New features for message boards (from Janus Kristensen): - Added: - - External avatars (but commented it out - - it's better to use hosted avatars) - (Tiny images under people's name) - - Hosted avatars - (Uploads and scales to 100x100 in the IMGAGE_PATH dir) - - Special users - (Project admins, devs, newcomers etc. will get a line - telling what they are under their name) - - Option to display images as links - - Option to open links in a new window - - Option to hide avatars - - Option to enable/disable attach of signature by default - - Settings for sorting is now handled using the database - instead of cookies (ie. you can change host without - having to set your preferences up again, - some users also have cookies disabled) - - Preview of signature - - Unread posts are marked as "Unread" - (if they are newer than 2 days (configurable in forum.inc) - and user hasn't visited the post) - - Interface to forum preferences and sorting methods - - Link to interface from user preferences - - Reset forum preferences button - (Some users have reported that an unusually long - signature with html could make the page unviewable. This fixes it) - - Option to sort with "Oldest first" in answers in the FAQ area - - Moved: - - Signature input in user prefs to forum prefs - - Fixed: - - Sorting in answers in the FAQ area didn't work - - minor speedups and html stuff - - DB-stuff: - - create forum_preferences & forum_logging - - transfer old settings - - NOTE: If you want to use these features, you will need to - create two new DB tables (forum_preferences and forum_logging; - just execute the commands from schema.sql) - and you'll probably want to copy existing signatures and nposts - from the user table (see html/ops/db_update.php) - - html/ - inc/ - forum.inc - forum_show.inc - user.inc - user/ - edit_forum_preferences_action.php (new) - edit_forum_preferences_form.php (new) - edit_user_info_action.php - edit_user_info_form.php - forum_forum.php - forum_post.php - forum_reply.php - forum_thread.php - -David 4 Sept 2004 - - removed old work_buffer_max_days stuff - (it's now only min_days) - - client/ - prefs.C,h - html/inc/ - prefs.inc - - -David 5 Sept 2004 - - Added new GUI RPCs and fixed bugs (from Sebastian Masch) - get_network_mode() - set_network_mode() - retry_file_transfer() - - client/ - client_types.C - cs_statefile.C - gui_rpc_server.C - lib/ - gui_rpc_client.C,h - - -David 5 Sept 2004 - - Bug fixes for recent forum changes (from Janus K) - - NOTE: if you've already added the forum_preferences table, - you'll need to do a DB update to add a new field - (see html/ops/db_update.php) - - db/ - schema.sql - html/ - inc/ - forum.inc - ops/ - db_update.php - user/ - forum_forum.php - forum_thread.php - -Rom 5 Sep 2004 - - Tag for 4.08 release, all platforms - boinc_core_release_4_08 - -David 6 Sept 2004 - - The Windows GUI and CLI versions were using different mechanisms - to ensure that only one instance of BOINC is running. - Factored this into a function check_unique_instance(), - which is used by all versions. - - client/ - file_names.C,h - main.C - win/ - wingui_mainwindow.cpp - lib/ - error_numbers.h - -David 7 Sept 2004 - - (from Ben Herndon) Some compilers optimize away sections of the Whetstone - benchmark function, since their results aren't used outside the function. - To deal with this, we added an global-scope array (extern_array[]) - and store the result of each section into it. - Also changed section 3 by initializint j from the extern_array, - so the compiler can't optimize out all the conditionals. - - client/ - whetstone.C - -David 7 Sept 2004 - - change "upgrade" to query user before overwriting files - - tools/ - upgrade - -David 7 Sept 2004 - - recognize CPU type on HP (DEC) alpha (from Duane Krahn) - - client/ - hostinfo_unix.C - -Rom 8 Sep 2004 - - If we can lock the lockfile, also aquire the global mutex. - If we don't the screensaver - cannot properly detect that BOINC is executing. - - client/ - file_names.C - -Jeff 09 Sep 2004 - - Change the validator to handle the case where one or more - of the result files for a WU's result set can't be read. - Currently, this case results in this WU and its results - never getting looked at again - no science, no credit. - - We distinguish 2 cases: - 1) transient failure, e.g. an NFS mount is not working. - (can't read directory) - In this case check_set() returns a special code to the validator, - which arranges for the WU to get transitioned again in a few hours. - 2) permanent failure (file doesn't exist) - The result's validate_state is set to ERROR (new state), - which is generally equivalent to INVALID - - add new WU arg to check_set() - (so it can access min_quorum) - - This is coordinated seti_boinc / boinc change. - This note is repeated in the seti_boinc checkin_notes. - - seti_boinc changes: - - get_result_file(), if it cannot read the result file, - tries to read the directory where the result file should be. - If it can read the directory, it returns ERR_FOPEN, as before. - If it cannot read the directory, it resturns ERR_OPENDIR. - ERR_OPENDIR in this context signals a possibly transient problem. - Upon a successful result read, it sets sah_result.have_result - (a new data member as of this change) to true. - - check_set(), upon return from get_result_file() : - - sets result.validate_state to VALIDATE_STATE_ERROR (a new state) - and retval to zero if there is a nonzero retval from check_set() - and it is not ERR_OPENDIR. It then continues. - - otherwise just continues. - check_set() then determines if any IO errors brought the result count - below wu.min_quorum. If not, it continues. Otherwise it returns. - In all subsequent logic any results for which - sah_result.have_result == false are skipped. - Note that the result and the sah_result vectors are associated. - - validate/ - sah_result.h - sah_validate.cpp - sah_boinc_db.cpp - - boinc changes: - - new validate state VALIDATE_STATE_ERROR. - - in the enumeration for check_set(), - we now include a clause to check for VALIDATE_STATE_INIT - in order to ignore results set to VALIDATE_STATE_ERROR. - This enumeration query now matches that for check_pair(). - Note that the only possible retvals from check_set() - are now zero or ERR_OPENDIR. - Note that logic to retry possibly transient errors still needs - to be done. - Also left to be done is a transitioner change to subtract - the number of results in state VALIDATE_STATE_ERROR - from the count of active results. - The latter change is needed to stimulate the production - of additional results for the affected WU. - - sched/ - validator.C - db/ - boinc_db.h - - -Rom 9 Sep 2004 ( for Sebastian Masch ) - - Don't cause the core client to rewrite the state file - for every block transfered during a network operation. - - client/ - pers_file_xfer.C - -David 9 Sept 2004 - - Further refinements of validation to deal with - recoverable/nonrecoverable file read errors. - Revised the signatures of check_set() and check_pair(), - and revised the validator accordingly. - - db/ - boinc.db.h - sched/ - sample_bitwise_validator.C - sample_trivial_validator.C - validate_util.C,h - validator.C - -David 9 Sept 2004 - - added try_fopen() (from Jeff Cobb): - like fopen(), but on tells you whether it's recoverable or not - - lib/ - util.C,h - - -David 9 Sept 2004 - - Added support for stats access via WAP (for cell phones) - (from Carl Christensen) - - html/ - inc/ - userw.inc - wap.inc - user/ - userw.php - ops/ - opsw.php - userw.php - -David 9 Sept 2004 - - In transitioner, count RESULT_OUTCOME_VALIDATE_ERROR as an error - - sched/ - transitioner.C - -David 9 Sept 2004 - - preliminary support for "locality scheduling" (for Einstein@home). - - client/ - client_types.h - sc_scheduler.C - sched/ - sched_send.C,h - server_types.h - -David 10 Sept 2004 - - compile fix for Win - - lib/ - util.C - -David 10 Sept 2004 - - validator: slight change to check_set() and check_pair(): - they no longer should update result records in case of - nonrecoverable error. - Just set the outcome to RESULT_OUTCOME_VALIDATE_ERROR, - and the framework program will do the updates. - - sched/ - validator.C - -David 10 Sept 2004 - - more changes for locality scheduling - - client/ - client_state.C - client_types.C - cs_scheduler.C - sched/ - Makefile.am - sched_config.C,h - sched_locality.h (new) - sched_send.C - server_types.C,h - -Rom 10 Sept 2004 - - NEw GUI: Put the glue back in so that we can make the various tabs work. - - clientgui/ - MainDocument.cpp, .h - stdwx.h - - -Lana 26 August 2004 - - Installation script provides better default daemons by starting - transitioner, feeder and file deleter deamons automatically - - tools/ - make_project - -Lana 11 Sept 2004 - - Created DB Purger that archives "DONE" workunits and their - results into XML archive files. Deletes those records from the database. - Added delete_from_db function to DB_BASE - - sched/ - db_purge.C - - db/ - db_base.h - db_base.C - - -David 12 Sept 2004 - - Added a queueing mechanism for shared-memory message passing, - class MSG_QUEUE. - This provides reliable, ordered message delivery. - I think process-control messages were being lost in some cases. - - Replaced ad-hoc 1-level queueing mechanism for graphics requests - - Changed the logic for selecting app for screensaver a bit; - have new field bool ACTIVE_TASK::is_ss_app that keeps track - of which app is acting as the screensaver. - This fixes bugs in a few particular cases. - - client/ - app.C,h - app_control.C - app_graphics.C - cs_apps.C - ss_logic.C - lib/ - app_ipc.h - -David 13 Sept 2004 - - Preliminary checkin for "GUI URLs" feature - (allows projects to send URLs to be use as links in GUIs) - This is implemented in a new class GUI_URLS. - Its init() member reads template file. - Its get_gui_urls() member macro-substitutes user/team/host IDs - into the URLs, and produces XML to be included in scheduler replies. - - renamed replace_element() to replace_element_contents() - - moved try_fopen() from lib/util.C to sched/sched_util.C - - added old and new docs to CVS - - doc/ (all new) - sched_locality.php - client_mac.php - delete_file.php - get_file.php - get_file_list.php - gui_rpc_control.php - gui_urls.php - info.php - send_file.php - lib/ - parse.C,h - util.C,h - sched/ - handle_request.C - main.C,h - make_work.C - sched_locality.C - sched_util.C,h - server_types.C,h - -David 13 Sept 2004 - - When email account ID, show (on the next web page) the "from" - address of the email, - since some users may have email filters based on sender. - The "from" address is the constant EMAIL_FROM, - which should be defined in project.inc. - If this is missing, it uses URL_BASE - (which is not an email address, so projects should define EMAIL_FROM) - - html/ - inc/ - util.inc - user/ - account_created.php - mail_passwd.php - -David 13 Sept 2004 - - small changes to screensaver logic, try to fix Rom's 2-CPU bug - - client/ - app_graphics.C - ss_logic.C - - -David 13 Sept 2004 - - Change CPU scheduling logic so that the min debt is subtracted - from the debt of all active projects. - i.e. debt is normalized to be zero-based. - This fixes a bug where the debt of projects with work - keeps getting bigger and bigger, - so that when a new project is attached or gets work, - it takes a long time for it to run. - - client/ - cs_apps.C - -Rom 14 Sept 2004 - - GUIRPC: Remove memory leaks from the client-side GUI RPC's. - - GUIRPC: Make the API contracts consistant. - - clientgui/ - MainFrame.h - lib/ - gui_rpc_client.C, .h - -David 14 Sept 2004 - - added a "project status" page showing daemon and DB status - The sample has various SETI@home-specific stuff; - projects will need to customize it. - - added db_init_aux(), which doesn't check stop_web, - generate HTML or exit; - moved db_init() to util.inc; it calls db_init_aux(), - and does the check/HTML/exit stuff - - html/ - inc/ - db.inc - util.inc - user/ - sample_status.php (new) - -David 14 Sept 2004 - fixes to forum code (from Janus K.): - - - Intelligently scale the avatar instead of stretching it. - (keep largest portion of the image within the 100x100 - view while keeping image proportions) - - show preview of the avatar in forum prefs - - Inform users of the maximum signature size in forum prefs - - html/ - inc/ - util.inc - user/ - edit_forum_preferences_action.php - edit_forum_preferences_form.php - -David 14 Sept 2004 - - fix bug in update_versions - - tools/ - update_versions - -Rom 14 Sep 2004 (boinc_public) - - Tag for 4.09 release, all platforms - boinc_core_release_4_09 - -Lana 14 Sep 2004 - - added cpu_scheduling to global preferences - - html/inc/ - prefs.inc - -David 18 Sept 2004 - - fixed "used before assigned" errors in whetstone. - - client/ - whetstone.C - -David 20 Sept 2004 - - changed PHP caching code to touch file before regenerating it. - This will (in most cases) prevent concurrent processes - from redundantly regenerating it. - - Change "cpu_scheduling" to "cpu_scheduling_period_minutes" - in global preferences - - html/inc/ - cache.inc - prefs.inc - -David 20 Sept 2004 - html/ - inc/ - forum.inc - user/ - edit_forum_preferences_action.php - show_user.php - -Lana 20 Sept 2004 - - Fixed create_work bug. Copy input text files to the download directories - - tools/ - backend_lib.C - -Rom 20 Sept 2004 - - NEWGUI: Refactor all view logic to accommodate - the new task based interface. - - NEWGUI: Add the new projects task pane. - - NEWGUI: Stub the other tabs. - - NEWGUI: Include new visuals for the task based UI. - - clientgui/ - - -David 21 Sept 2004 - - fixed profile image upload (from Matt) - - html/inc/ - profile.inc - -Lana 21 Sept 2004 - - added getting value of the cpu_sched_period - for the client from the global prefs - - client/ - prefs.h - prefs.C - -David 21 Sept 2004 - - parse_state_file(): - If client_state.xml doesn't exist, try client_state_next.xml. - If the resulting file is empty, try client_state_prev.xml - This should hopefully fix cases of state file corruption on crash - - change request delay from 1 hour to 1 day for: - - unknown platform - - no work for this platform - - core client out of date - - client/ - cs_statefile.C - sched/ - handle_request.C - sched_send.C - -David 22 Sept 2004 - Various cleanups; first try on project-overwrite bug - (I don't think these have anything to do with it, however). - Client now compiles with gcc -Wall -W -Werror - - - enforce buffer length arg in copy_element_contents() - - check return values from copy_element_contents() everywhere - - check return value from PROJECT::parse_account() - and PROJECT::write_account_file() - - remove unused arguments here and there - - - client/ - app.h - app_control.C - client_state.C,h - client_types.C - cs_account.C - cs_apps.C - cs_scheduler.C - cs_statefile.C - dhrystone.C - gui_rpc_server.C - main.C - net_stats.C,h - net_xfer.C,h - scheduler_op.C - lib/ - miofile.C - parse.C - -Rom 22 Sept 2004 - - NEWGUI: Add rules to enforce URL and Accout Key rules to the - attach to project dialog, this will increase the robustness - of the new UI when dealing with unexpected input. - - Cleanup the rest of the graphics stuff. - - clientgui/ - - -David 22 Sept 2004 - - store scheduler requests and replies in files whose names - include the project master URL. - This will hopefully prevent RPCs from clobbering each other. - The question of why concurrent RPC is happening is unresolved. - - rename next_project() to next_project_need_work() - - remove redundant time argument from SCHEDULER_OP::init_return_results() - - client/ - client_state.h - cs_scheduler.C - file_names.C,h - scheduler_op.C,h - - -David 22 Sept 2004 - - commented out PROJECT::share_size and PROJECT::size. - - client/ - client_state.C - client_types.C,h - -Lana 22 Sept 2004 - - included MD5 Checksum in the Core Client download page - - html/ - inc/ - util.inc - download.inc - -Rom 22 Sept 2004 - - Fix CPU Scheduler bug on a multi-proc machine after a project reset where - the core client gets stuck in a loop trying to schedule work that does - not exist. - - client/ - client_state.h - cs_apps.C - -Lana 22 Sept 2004 - - fixed opening of the ops page - - html/ - inc/ - util_ops.inc - db_ops.inc - -Rom 22 Sept 2004 - - NEWGUI: Make the quick tips section auto update with the quick tip for the - item the mouse is hovering over. - - clientgui/ - - -David 23 Sept 2004 - - fix bug in schedule_cpus() that caused it to not reschedule - when a result is done. - Removed its "must_reschedule" argument. - Add a boolean CLIENT_STATE::must_reschedule_cpus - that is set whenever a result is newly runnable or done, - and that tells schedule_cpus() to do its thang regardless of time. - - client/ - app_control.C - client_state.C,h - cs_apps.C - -David 23 Sept 2004 - - fix (from Frank Weiler) for GUI column sorting problem - - client/ - gui_titles.C,h - win/ - wingui_listctrl.cpp,h - wingui_mainwindow.cpp - -David 23 Sept 2004 - - Added code (from Ben Herndon) for getting X86 CPU names and models better. - Not using this for now. - - client/win/ - cpuid_tbl.cpp,h - opt_x86.h - opt_x86cpu.cpp - optBench.hpp - optimize.hpp - -Lana 23 Sept 2004 - - Fixed setting of the default venue on account setup. - - html/user/ - account_setup_nonfirst_action.php - -David 23 Sept 2004 - - to simplify things, removed a number of fields from SCHEDULER_REPLY - and have SCHEDULER_REPLY::parse() copy info straight into the PROJECT. - This eliminates a bunch of pointless copying - - added bool PROJECT::non_cpu_intensive - - commented out deletion_policy stuff - - client/ - client_types.C,h - cs_scheduler.C - scheduler_op.C,h - -Lana 23 Sept 2004 - - refactored access and storage to cpu_sched_period for the project. - now it is being maintained in global prefs only. - - client/ - cs_statefile.C - cs_apps.C - client_state.C,h - -David 24 Sept 2004 - - Scheduler: send a message to client (low priority) - if there is a newer minor version of the core client available. - This required adding the set of CORE_VERSIONs to shared mem - - sched/ - handle_request.C - sched_config.C,h - sched_shmem.C,h - -David 24 Sept 2004 - - db_dump: use mysql_use_result() instead of mysql_store_result() - for the enumeration of users. - Otherwise it has to store the entire result set in memory, - which could be prohibitive. - NOTE: still have to use mysql_store_result() for hosts - because of the user lookup to get show_hosts flag. - Could deal with this by doing a join. - - added use_use_result arg to DB_BASE::enumerate() (default false) - - change printfs to log_messages.printf in db_dump - - db_dump: don't show user host list - (can't do this if use mysql_use_result()) - - db/ - db_base.C,h - sched/ - db_dump.C - -David 24 Sept 2004 - - use lockf() in preference to flock(), since the former supports NFS - (from James Drews) - - lib/ - filesys.C - -David 24 Sept 2004 - - added a option to config.xml. - If set, no upload certificates will be generated for results. - This will make the transitioner run faster. - If you use this, you must set - immediately, and leave it on for a couple of weeks - even after start generating upload certificates again. - - sched/ - sched_config.C,h - transitioner.C - tools/ - backend_lib.C,h - process_result_template.C - -Rom 24 Sept 2004 - - NEWGUI: Hook up the rest of the html panes for the transfers, - messages, work, and resources tabs. - - Kick start the CPU scheduler on startup by setting must_reschedule_cpus - in case the scheduler is stuck in a funky state. - - client/ - client_state.C - clientgui/ - - -David 24 Sept 2004 - - support for projects. - The flag is parsed from scheduler and stored in state file - Non-CPU-intensive projects are treated specially - by the CPU scheduler: their results are always scheduled. - - client/ - client_state.C,h - client_types.C - cs_apps.C - -David 25 Sept 2004 - - Made GUI RPC client code a bit nicer by adding RPC class - - lib/ - gui_rpc_client.C,h - gui_test.C - -David 25 Sept 2004 - - Added new GUI RPCs: - project: suspend/resume - file transfer: abort - active task: suspend/resume/abort - get proxy info - - Modified the C++ interface to GUI RPC a little - NOTE: the RPCs themselves (XML on the wire) are unchanged - - Added suspended_via_gui flags to PROJECT, ACTIVE_TASK - - renamed CLIENT_STATE::pi to CLIENT_STATE::proxy_info - - client/ - app.C,h - client_state.C,h - client_types.C,h - cs_apps.C - cs_cmdline.C - cs_statefile.C - gui_rpc_server.C - pers_file_xfer.C,h - scheduler_op.C - win/ - wingui_proxydlg.cpp - lib/ - gui_rpc_client.C,h - gui_test.C - -David 26 Sept 2004 - - Added the ability to turn homogeneous redundancy on/off - on a per-application basis. - - NOTE: this involved adding a homogeneous_redundancy field to - the app table in the database. - To upgrade to this server software, - you must run the SQL query in html/ops/db_update.php, - which adds this database field. - - db/ - boinc_db.C,h - schema.sql - html/ - inc/ - db_ops.inc - ops/ - db_update.php - py/Boinc/ - database.py - sched/ - db_dump.C - sched_send.C - -Rom 27 Sep 2004 (boinc_public) - - Tag for 4.10 release, all platforms - boinc_core_release_4_10 - -David 27 Sept 2004 - - more support for GUI URLs. - The core client should now parse them from scheduler reply, - and save them in account file. - - client/ - client_types.C,h - scheduler_op.C - lib/ - parse.C,h - sched/ - handle_request.C - server_types.C,h - -David 27 Sept 2004 - - still more GUI URL changes - - client/ - client_types.C - scheduler_op.C - lib/ - gui_rpc_client.C,h - -David 28 Sept 2004 - - fixed CPU sched bug, I hope - - client/ - client_state.C - cs_data.C - -David 28 Sept 2004 - - parse message seqnos in GUI RPC client - - lib/ - gui_rpc_client.C,h - -Rom 28 Sep 2004 (boinc_public) - - Tag for 4.11 release, all platforms - boinc_core_release_4_11 - -Jeff 28 Sep 2004 - - reduced limit on feeder enumeration query from 10,000 to 1,000. - - sched/ - feeder.C - -David 29 Sept 2004 - - handle GUI RPCs even if we're running benchmarks - - report PROJECT::suspended_via_gui in RPC reply - - client/ - client_state.C - client_types.C - gui_rpc_server.C - -David 30 Sept 2004 - - added -db_host option to db_dump (so it can use a DB replica) - - sched/ - db_dump.C - -David 30 Sept 2004 - - Change wording of some web links - - html/ - inc/ - user.inc - util.inc - user/ - mail_passwd.php - -David 30 Sept 2004 - - got clientgui working on Linux!! - - clientgui/ - MainDocument.cpp - Makefile (new) - ValidateURL.cpp - -David 30 Sept 2004 - - changed the semantics of the GUI RPC get_messages() call. - - It no longer takes an "nmessages" arg. - - it returns messages in order of increasing seqno - - changed message_descs from a std::list to a std::deque - - client/ - client_msgs.C,h - gui_rpc_server.C - lib/ - boinc_win.h - gui_rpc_client.C,h - gui_test.C - win_build/ - boinc_guirpc_test.vcproj - -David 30 Sept 2004 - - added GUI_RPC_CLIENT::close() function. - Call this if any RPC returns ERR_READ or ERR_WRITE. - Then call init() again to reconnect - - lib/ - gui_rpc_client.C,h - -David 30 Sept 2004 - - fix crashing bug in get_messages GUI RPC (signed/unsigned issue) - - client/ - gui_rpc_server.C - -David 30 Sept 2004 - - First steps in fixing the venue mess: - venue is passed from server to client, never the other way. - - always pass back host credit info in sched reply - (not just if new hostid - how did that happen??) - - add none (---) as an option for venue in web form - - when user change venue of host, tell them that it - will take effect only after a sched request - - html/ - inc/ - host.inc - user/ - host_venue_action.php - sched/ - handle_request.C - server_types.C,h - -David 1 Oct 2004 - - Ending the venue debacle, part II: The Client - - 1) Each project maintains its venue separately. - It's stored in the project's account file, - and is used to select the project prefs variant. - - 2) Let P be the project that's the source of the global prefs. - Then P's venue is used to select the global prefs variant. - (Note: P's venue may change without the global prefs changing). - This venue is stored in the CLIENT_STATE.main_host_venue - and in the client state file; it survives even if P is detached. - - So the basic logic is: - if you get a new venue from project P, - re-parse its project prefs. - If in addition P is the source of the global prefs, - re-parse the global prefs and put the venue in CLIENT_STATE.main_host_venue - - got rid of CLIENT_STATE::parse_venue() - - don't send host_venue in scheduler request - - client/ - client_state.C,h - client_types.C,h - cs_account.C - cs_prefs.C - cs_scheduler.C - cs_statefile.C - scheduler_op.C - -David 1 Oct 2004 - - Bug fix for venue propagation - - Moved some account-file-related code to cs_account.C, - some prefs-related code to cs_prefs.C - client/ - client_types.C - cs_account.C - cs_prefs.C - cs_scheduler.C - -David 1 Oct 2004 - - CLIENT_STATE::avg_proc_rate: include on_frac in the formula - (from Ben Herndon) - - client/ - cs_scheduler.C - time_stats.h - sched/ - server_types.h - -David 1 Oct 2004 - - "default", nor "primary", prefs - - client/ - cs_account.C - -David 1 Oct 2004 - - web: add "as of May 14 2004" when show SETI@home classic stats - - fix bug in db_dump.C (wasn't checking for -d) - - html/inc/ - user.inc - sched/ - db_dump.C - -David 4 Oct 2004 - - Win GUI: don't show error box if WinsockCleanup() fails - (in CMyApp::ExitInstance()) - - client/win/ - wingui_mainwindow.cpp - -David 4 Oct 2004 - - web site fixes (forums) from Janus K - - html/user/ - edit_forum_preferences_action.php - home.php - -David 4 Oct 2004 - - fix typos and compile errors - - db/ - boinc_db.C - db_base.h - client/ - cs_scheduler.C - -David 4 Oct 2004 - - changed DB code to allow for the use of read-only DB replicas - Here's what you can do now: - - DB_CONN replica; - replica.open(name, host, user, passwd); - DB_USER user(replica); - user.enumerate(...) - - ... and this can be intermixed with access to the master DB (boinc_db). - - db/ - boinc_db.C,h - db_base.C,h - -Lana 4 Oct 2004 - - changed most of the update() statements to update_field() statements - to improve server performance - - sched/ - assimilator.C - feeder.C - file_deleter.C - update_stats.C - validator.C - wu_check.C - -David 6 Oct 2004 - - Added some new items to the APP_INIT_DATA struct - (and to the init_data.xml file): - - global preferences - - user/team/host IDs - - proxy info - - This is for the benefit of Folding@home, - whose application does some core-client-type stuff - (e.g. network communication) and therefore needs this info - - - changed GLOBAL_PREFS::source_project and source_scheduler - from std::string to char[256] - - - factored out PROXY_INFO code into lib/proxy_info.C,h - - moved GLOBAL_PREFS code from client/ to lib/ - - client/ - app_start.C - client_state.C - cs_prefs.C - cs_scheduler.C - prefs.C,h (moved to lib) - proxy.C,h - lib/ - app_ipc.C,h - prefs.C,h (moved from client) - proxy_info.C,h (new) - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - upper_case.vcproj - -David 6 Oct 2004 - - file upload handler was doing too many checks - in the ignore_upload_certificates case - - sched/ - file_upload_handler.C - -David 6 Oct 2004 - - Compile fixes. - - NOTE: on UNIX, it seems to be necessary to remove everything - from client/.deps before compiling, - else you get errors trying to compile prefs.C (which got moved) - Shouldn't something do this automatically? - - - client/ - Makefile.am - lib/ - Makefile.am - proxy_info.h - -David 6 Oct 2004 - - Added files (from Kenichi Miyoshi of NTT) to support - SSL (secure socket layer) communication. - These require an SSL library to use, - so I haven't put these files into the project. - Directions for using them are in - doc/ssl_build.txt - - client/ - ssl_http.C,h - ssl_net_xfer.C,h - -David 6 Oct 2004 - - the key generation function of crypt_prog now uses /dev/random - instead of getting random seed based on time - - lib/ - crypt_prog.C - -David 6 Oct 2004 - - boinc_resolve_filename() fix bug where link file is empty - (from Markku Degerholm) - - lib/ - app_ipc.C - -David 7 Oct 2004 - - return formatted msg in file_upload_handler - - sched/ - file_upload_handler.C - -David 7 Oct 2004 - - Housecleaning of result_report_error() and related code: - - removed RESULT::active_task_state field - - removed RESULT::signal field - - removed "errnum" argument from result_report_error() - - return XML text for upload errors - - clean up logic of result_report_error() - - changed FILE_INFO::had_failure() to optionally return error text - - changed RESULT_COMPUTE_DONE to RESULT_COMPUTE_ERROR - - renamed APP_VERSION::had_failure() to had_download_failure() - (same work WORKUNIT) - - schedule_cpus(): if any start or resume fails, - set must_schedule_cpus so we'll try something else - - client/ - app_control.C - app_start.C - client_state.C,h - client_types.C,h - cs_apps.C - cs_scheduler.C - cs_statefile.C - lib/ - prefs.C - result_state.h - -David 7 Oct 2004 - - Python DB code: don't treat a field as an external ID if - it ends with "_id" (like "seti_id") - - py/Boinc/ - db_base.py - -David 8 Oct 2004 - - Add confirm before delete prefs - - html/user/ - prefs_remove.php - -David 8 Oct 2004 - - GLOBAL_PREFS::parse(): don't erase source project/scheduler info - when parse venue-specific prefs - - compile fix for windows - - client/win/ - wingui_mainwindow.cpp - lib/ - prefs.C - -Lana 8 Oct 2004 - - changed check_set() to take input WORKUNIT instead of DB_WORKUNIT - - added VALIDATOR_ITEM and DB_VALIDATOR_ITEM_SET - - optimized validator to use DB_VALIDATOR_ITEM_SET - - db/ - boinc_db.C, .h - sched/ - validator.C - sample_bitwise_validator.C - sample_trivial_validator.C - -David 9 Oct 2004 - - forum updates (from Janus Kristensen) - - NOTE: to use this new code you'll have to update - your database (see html/ops/db_update.php) - - html/ - inc/ - forum.inc - forum_show.inc - util.inc - ops/ - db_update.php - user/ - edit_forum_preferences_action.php - edit_forum_preferences_form.php - forum_post.php - forum_reply.php - forum_thread.php - unread_post.png (new) - -David 9 Oct 2004 - - added script to cancel a WU - - html/ops/ - cancel_wu.php (new) - -David 9 Oct 2004 - - finished changes to validator to user DB_VALIDATOR_ITEM_SET - - db/ - boinc_db.C,h - sched/ - assimilator.C - db_purge.C - validator.C - -David 9 Oct 2004 - - When parsing a FILE_INFO, always copy the XML to "signed_xml". - Otherwise, when the core client tries to upload the file, - it sends an empty element. - - This fixes a problem in which all uploads fail if a project - uses the config option - - client/ - client_types.C,h - - -David 10 Oct 2004 - - GUI RPC fixes from Sebastian Masch - - client/ - client_types.C - gui_rpc_server.C - -David 11 Oct 2004 - - changed the graphics API to support Mac OS/X - (in which only the original thread can do GUI stuff). - boinc_init_graphics() now takes a function-pointer arg - for the worker function; it runs this function in a new thread, - and the calling thread does the GUI event loop. - - Did this for Windows, and attempted to make the same changes - in the Mac and X11 code. May or may not work. - - - got rid of everything related to the GRAPHICS_INFO structure. - This wasn't being used. - - NOTE: this change doesn't affect the core/app interface. - No need to recompile existing apps. - - api/ - graphics_api.C,h - windows_opengl.C - client/ - app_start.C - lib/ - app_ipc.C,h - prefs.C - -David 11 Oct 2004 - - added GUI RPC - - put extern "C" around filesys.C functions - (so can use from C apps) - - client/ - gui_rpc_server.C - lib/ - filesys.h - gui_rpc_client.C,h - util.h - -David 12 Oct 2004 - - fixes to forum code (from Janus) - - finished checkin of 9 Oct (forgot db_update.php) - - html/ - inc/ - forum.inc - ops/ - db_update.php - user/ - edit_forum_preferences_action.php - edit_forum_preferences_form.php - -David 12 Oct 2004 - - API: more detailed message when do heartbeat giveup - - remove CLIENT_STATE::previous_activities_suspended - - changed work fetch policy to get T work, not 2T - - don't handle SIGTSTP and SIGCONT - - api/ - boinc_api.C - client/ - client_state.C,h - cs_scheduler.C - main.C - win/ - wingui_mainwindow.cpp - -David 13 Oct 2004 - - in global prefs XML, if cpu_scheduling_period_minutes is empty, - set it to 60 (this caused core client to hang in some situations) - - renamed PREFS::cpu_sched_period to cpu_scheduling_period_minutes - (matching what it's called in the XML) - - client/ - cs_apps.C - lib/ - prefs.C,h - -David 13 Oct 2004 - - initial cleanup of x_opengl.C - (e.g. use a timer instead of onIdle) - - api/ - x_opengl.C - -Lana 13 Oct 2004 - - cleanup of boinc validator to handle error conditions - - sched/ - validator.C - -David 13 Oct 2004 - - Get app graphics working in Linux - - api/ - graphics_api.C - gutil.h - reduce.C - x_opengl.C,h - apps/ - Makefile.am - -David 13 Oct 2004 - - upload handler: return error msg to client if can't open log file - - sched/ - file_upload_handler.C - -David 14 Oct 2004 - - Core client: change the poll paradigm a little - OLD: all the poll functions get called, - at least once a second or more often when there's activity, - e.g. network traffic. - The problem: some of the poll functions (e.g. garbage collect) - do a lot of work, and in periods of network activity - they get called hundreds of times/sec. - NEW: all poll functions take a "double now" argument. - Those that only need to run every second can - keep track of the last time called, and return false - if not enough time has gone by - - Clarify meaning of TIME_STATS::active_frac: - it is the fraction of total time - (NOT time that core client is running) - that core client is enabled to work - - CLIENT_STATE::compute_work_requests(): - Don't divide by active_frac in computing work request; - the scheduler already does this!! - - Core client: don't use time_t for times. Use double. - - garbage collect: delete an unused FILE_INFO even if - it has an active PERS_FILE_XFER. - (Delete the PERS_FILE_XFER first.) - - API: fix crashing bug if app_init_data.xml file isn't there - - Graphics API, X version: wait for initial message - before doing anything (since GLUT needs a window) - - scheduler: fix small error in WU wallclock estimate - - api/ - boinc_api.C - x_opengl.C - client/ - app.C,h - client_state.C,h - client_types.C - cs_apps.C - cs_files.C - cs_scheduler.C - file_xfer.C,h - gui_rpc_server.C,h - http.C,h - main.C - net_xfer.C,h - scheduler_op.C - time_stats.h - win/ - wingui_mainwindow.cpp - lib/ - app_ipc.C,h - makefile.gui_test - sched/ - sched_send.C - -Lana 14 Oct 2004 - - improved db_purge to output to multiple archives - - sched/ - db_purge.C - -David 15 Oct 2004 - - GUI RPC: don't crash if bad project URL - - SCHEDULER_REPLY::parse(): tolerate extra lines - at start of scheduler reply (from Volker Hatzenberger) - - client/ - gui_rpc_server.C - scheduler_op.C - -David 15 Oct 2004 - - don't finalize WinSock unless we inited it successfully - - client/win/ - wingui_mainwindow.cpp - -Lana 15 Oct 2004 - - fixed bug in transitioner marking validate state as NO CHECK - for the workunits with the number of results exceeding max total - results - - sched/ - transitioner.C - -David 15 Oct 2004 - - debugged "clone account" feature - - html/ - inc/ - result.inc - user.inc - user/ - account_setup_first.php - account_setup_nonfirst_action.php - create_account_action.php - create_account_form.php - -David 16 Oct 2004 - - Changed semantics of "clone account" features. - As it stood, it let anyone see anyone else's project prefs, - which could be a violation of privacy. - Changed it to be team-centric: - team founders (and only them) have visible project prefs - - html/ - inc/ - team.inc - user.inc - user/ - clone.php - create_account_action.php - create_account_form.php - team_join_action.php - team_join_form.php - -David 17 Oct 2004 - - Deal with fatal GLUT errors (e.g. can't connect to X server) - by calling glut_quit() (which exits the pthread) - rather than exit() or abort() (which exits the app) - - api/ - graphics_api.C - boincglut/lib/glut/ - glut_util.C - README (new) - -David 17 Oct 2004 - - Fix bug in parsing multi-venue general prefs - (from Tim Brown) - - client/ - client_state.C - lib/ - prefs.C,h - -David 17 Oct 2004 - - cleanup of Makefile stuff (from Reinhard Prix) - Got rid of Makefile.in's. - You now have to run _autosetup ; configure to generate them - (and the Makefiles) - - 'make install' now installs header files and libs - under ${prefix}/include and ${prefix}/lib - - - *Makefile.in (removed) - */Makefile.am - configure (removed) - sched_fcgi/* (removed) - -David 18 Oct 2004 - - add web material related to "Team account creation URL"; - warn team founders that their project prefs are public - - html/ - inc/ - team.inc - user/ - clone.php - sample_rss_main.php - team.php - -David 18 Oct 2004 - - more Makfile cleanup - - removed #ifdef HAVE_DIRENT stuff from filesys.h - so apps can use it - - Graphics.Readme (removed) - configure.ac - boincglut/lib/glut/ - Makefile (removed) - api/ - Makefile.Readme (removed) - Makefile.graphics (removed) - clientgui/ - Makefile (removed) - lib/ - Makefile.am - filesys.h - -David 19 Oct 2004 - - generate clientgui/Makefile - - Makefile.am - configure.ac - -David 19 Oct 2004 - - fix bugs in GUI RPCs - - client/ - cs_apps.C - gui_rpc_server.C - -David 19 Oct 2004 - - fix GUI RPC client so it won't get confused if different - projects have the same app, WU or result names - - lib/ - gui_rpc_client.C,h - makefile.gui_test - -David 19 Oct 2004 - - if a Unix graphics-capable app is run standalone, - and it can't connect to X server, - the graphics thread exits but the worker thread continues. - - api/ - graphics_api.C - x_opengl.C - -David 19 Oct 2004 - - GUI RPC: the get_results and get_file_transfers RPC - weren't returning the project_url. - Do this, and parse it on the client side. - - client/ - client_types.C - lib/ - gui_rpc_client.C,h - -David 19 Oct 2004 - - Add to RSS export so Firefox users can bookmark RSS feed - - html/user/ - sample_rss_main.php - -David 19 Oct 2004 - - Added GLUT files for new fonts (from Bruce Allen) - - boincglut/lib/glut/ - Makefile - glut_bitmap.c - glut_hel10.c - glut_hel12.c - glut_tr10.c - glut_tr24.c - -David 19 Oct 2004 - - fixed CPU scheduler bug so that tasks suspended via GUI - actually are suspended - - client/ - cs_apps.C - -David 19 Oct 2004 - - added a -random_order option to the feeder - (this is inefficient if you don't have an index - on result.(server_state, random); - we're using it in the alpha project, where it doesn't matter) - - db/ - boinc_db.C,h - sched/ - feeder.C - -David 19 Oct 2004 - - in error messages from boincglut/ code, - use BOINCGLUT: prefix instead of GLUT: - - boincglut/lib/glut/ - glut_util.c - -David 19 Oct 2004 - - bug fix to RSS feed - - html/ - inc/ - util.inc - user/ - clone.php - sample_index.php - sample_rss_main.php - -David 20 Oct 2004 - - added to GUI RPC reply for results - - fix XML errors in GUI RPC replies (from Gilson Laurent) - - consolidated logic for estimated remaining CPU time - (don't do this in GUI) - - client/ - app.C,h - client_types.C,h - cs_apps.C - cs_scheduler.C - gui_rpc_server.C - win/ - wingui_mainwindow.cpp - -David 20 Oct 2004 - - API: don't delete shared mem in boinc_finish(). - If you do, the graphics thread (which is generally still running) - may seg fault soon thereafter. - - api/ - boinc_api.C - -David 20 Oct 2004 - - API: make the worker thread low priority - (or at least lower than the graphics thread) - - NOTE: on UNIX, the core client nices apps to 20. - Need to rethink this for graphics apps. - - api/ - graphics_api.C - -David 20 Oct 2004 - - removed clientgui stuff from build - - Makefile.am - configure.ac - -David 20 Oct 2004 - - Save user_run_request and user_network_request in client_state.xml - (so always/never/auto settings are persistent) - - Save PROJECT::suspended_via_gui in client_state.xml - (so suspend project is persistent) - - Save ACTIVE_TASK::suspended_via_gui in client_state.xml - (so suspend task is persistent) - - client/ - app.C - client_types.C - cs_statefile.C - -David 20 Oct 2004 - - commented out frac_rate_of_change stuff - (too complicated, not used) - - client/ - app.C,h - app_control.C - -David 20 Oct 2004 - - Graphics API (UNIX) change thread priority the proper way - (from Bruce Allen) - - api/ - graphics_api.C - -David 21 Oct 2004 - - fix to get_file_transfers RPC (from Sebastian Masch) - - client/ - gui_rpc_server.C - -David 21 Oct 2004 - - fix for result_show_graphics RPC - - lib/ - gui_rpc_client.C - -Rom 21 Oct 2004 (boinc) - - Tag for 4.50 release, all platforms - boinc_core_release_4_50 - -David 21 Oct 2004 - - compile fixes - To initialize a char[256], use strcpy(x, ""), not x[0] = NULL. - - client/ - app_control.C - clientgui/ - ViewProjects.cpp - lib/ - gui_rpc_client.C - -David 21 Oct 2004 - - add "nbytes" (i.e., file size) to FILE_TRANSFER in GUI RPC - - lib/ - gui_rpc_client.C,h - -David 21 Oct 2004 - - graphics API (UNIX): - replace assert(x) by - if (!x) { - userclose = 1; - return; - } - the goal is to exit gracefully if there's a graphics problem, - rather than aborting (and interfering with the computation) - - get clientgui to compile on Solaris - - boincglut/ - bglut_event.c - bglutint.h (removed) - boinc_glut.h (new) - glut_cmap.c - glut_fullscrn.c - glut_gamemode.c - glut_win.c - clientgui/ - Makefile.old - -David 21 Oct 2004 - - boinc_receive_trickle_down(): reset have_trickle_down - if don't find any trickle-down messages. - This will make subsequence checks efficient (i.e. no disk check). - - boinc_catch_signal(): for SIGHUP and SIGPIPE, - return (i.e. ignore the signal) rather than exiting. - This affects both the core client and apps that use - boinc_init_diagnostics(). - - api/ - boinc_api.C - lib/ - diagnostics.C - -Jeff 22 Oct 2004 - - Fixed a validator bug that caused result overflow conditions not - to be detected and passed on to the assimilator. Overflow indicators - have not been passed to the master science db since 9/24/2004. - - DB_VALIDATOR_ITEM_SET::enumerate() - added stderr_out to the query - VALIDATOR_ITEM::parse() - added stderr_out to the parse logic - DB_VALIDATOR_ITEM_SET::update_result() - update the result.opaque field - - db/ - boinc_db.C - -David 22 Oct 2004 - - schedule_cpus(): assume that if a task ran for X seconds, - it got X seconds of CPU time. - This makes the schedule work correctly even when - apps don't report their CPU time. - - client/ - client_state.C - cs_apps.C - -David 25 Oct 2004 - - Use double instead of time_t to represent time; - use dtime() instead of time(0) to get time - - better error message on upload init failure - - add lib/result_state.h to VC project - - client/ - client_state.C - client_types.h - cs_prefs.C - cs_scheduler.C - net_xfer.h - pers_file_xfer.C,h - schedule_op.C,h - ss_logic.C,h - lib/ - util.C,h - win_build/ - boinc_gui.vcproj - -David 25 Oct 2004 - - fixed bug that caused app's reported CPU time to always stay at zero - This is a by-product of recent graphics changes: - boinc_init() was getting the current thread handle and assuming - it's the worker thread, which is not the case now. - Fix: use a single variable for worker thread handle; - if boinc_graphics_init() is called, it changes it - - api/ - boinc_api.C,h - graphics_api.C - -David 25 Oct 2004 - - fix compile errors. - I conditionally commented out stuff related to taskbar icon - in the BOINC GUI code, - since taskbar icon doesn't seem to exist on X11/GTK - - api/ - boinc_api.h - clientgui/ - BOINCGUIApp.cpp,h - Makefile.old - -David 25 Oct 2004 - - New features for forums: - - lets you rate messages (binary) - - lets you filter what messages you see, based on ratings - From Janus Kristensen - - NOTE: to use this, you need to update your DB to add some fields - to the forum_preferences table; see html/ops/db_update.php - - html/ - inc/ - forum.inc - ops/ - db_update.php - user/ - edit_forum_preferences_action.php - edit_forum_preferences_form.php - forum_rate.php - forum_thread.php - -David 25 Oct 2004 - - add and fields - to XML for active task (for GUI RPC) - - compile fixes for app graphics (from Bruce Allen and Reinhard Prix) - - boincglut/ - Makefile.am - include/ - Makefile.am (new) - client/ - app.C - lib/ - gui_rpc_client.C,h - -David 26 Oct 2004 - - Fixed the following problem with graphics apps on Unix: - - the worker timer handler (on_timer) was set up in boinc_init(); - this is called in the main thread, - which for graphics apps ends up being the graphics thread. - - the call to getrusage() in on_timer() was returning - the CPU time of the graphics thread, not the worker thread - - there doesn't seem to be a way for one thread to - get the CPU time of another thread - Solution: (unfortunately requires a change to the API): - apps that use graphics now call either - boinc_init_graphics() or - boinc_init_options_graphics() - and DON'T call boinc_init() - - api/ - boinc_api.C,h - graphics_api.C,h - -Rom 26 Oct 2004 (boinc) - - Tag for 4.52 release, all platforms - boinc_core_release_4_52 - - -David 26 Oct 2004 - - Further changes to graphics API - - api/ - boinc_api.C,h - graphics_api.C - -David 26 Oct 2004 - - forum updates (from Jans) - - NOTE: run the DB update to get the right default behavior - - html/ - inc/ - forum.inc - ops/ - db_update.php - user/ - edit_forum_preferences_form.php - forum_post.php - forum_rate.php - -David 26 Oct 2004 - - added "supports graphics" boolean to RESULT GUI RPC reply - - client/ - app.C - lib/ - gui_rpc_client.C,h - -David 28 Oct 2004 - - client GUI: makefile fix, compile fix - - removed debugging stuff from boinc_api.C - - api/ - boinc_api.C - clientgui/ - Makefile.old - lib/ - gui_rpc_client.C,h - -Eric 28 Oct 2004 - - added threading flags and libraries to compile lines. - - upload handler now checks for zero length - - Makefile.incl - aclocal.m4 - api/ - Makefile.am - apps/ - Makefile.am - client/ - Makefile.am - clientgui/ - Makefile.am - lib/ - Makefile.am - sched/ - Makefile.am - file_upload_handler.C - tools/ - Makefile.am - -David 29 Oct 2004 - - update_versions looks for .sig files for single-file applications - (from Eric Myers) - - api/ - graphics_api.h - tools/ - update_versions - -David 29 Oct 2004 - - show app version# in result page - - html/inc/ - result.inc - -David 31 Oct 2004 - - fix clientgui compile on Solaris - - Mac OS/X app graphics fixes - - NOTE: shared memory doesn't seem to work right on Mac OS 10.2. - I've battled this for 2 solid days and am giving up for now. - - api/ - Makefile.am - boinc_api.C - graphics_api.C - macc_app_opengl.C,h - client/ - app_start.C - clientgui/ - stdwx.h - lib/ - util.C - -David 1 Nov 2004 - - Fixed the display of top users/hosts/teams ordered by average credit. - This code wasn't taking into account how long ago - the average credit was computed. - The fix: add functions user_inactive_days() (host/team also) - If the user's expavg_time is older than a week, - call user_decay_credit() to decay the average credit. - - create a PHP function update_average(), - exactly the same as the C++ function. - - add a "Generated on" line at the bottom of cached pages - - html/ - inc/ - cache.inc - credit.inc (new) - host.inc - team.inc - user.inc - user/ - top_hosts.php - top_teams.php - top_users.php - lib/ - util.C - -David 1 Nov 2004 - - PHP caching: call clearstatcache() prior to filemtime(), - just in case the file doesn't exist anymore. - NOTE: this doesn't seem to work. - Sometimes it thinks a cached copy is there, but it's not. - - row4(): don't left/right align - - core client download page: - don't check for user login (this page is cached!!) - - html/ - inc/ - cache.inc - util.C - user/ - download.inc - -David 2 Nov 2004 - - update schema.sql with forum-related changes - - db/ - schema.sql - -David 2 Nov 2004 - - split Dhrystone source into 2 files (from Peter Smithson). - This supposedly prevents compiler optimizations on Win - that give inflated results (I don't see this). - - client/ - dhrystone.C - dhrystone.h (new) - dhrystone2.C (new) - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - -Karl 2004-11-02 - - added environment options INSTALL_DIR and TOP_SOURCE_DIR for upgrade - - tools/ - upgrade - py/Boinc/ - BOINC_path_config.py.in - -David 3 Nov 2004 - - change trivial validator to not require majority - (this apparently applies even to error results; should fix this) - - avoid crash if get ack for non-existent result - (from Volker Hatzenberger) - - client/ - cs_scheduler.C - sched/ - sample_trivial_validator.C - -David 4 Nov 2004 - - compile fixes - - configure.ac - client - Makefile.am - -David 5 Nov 2004 - - get clientgui to compile on Solaris. - - include - - add NOCLIPBOARD flag in Makefile, - since Solaris WxWidgets doesn't seem to know about clipboard - NOTE: it compiles but crashes - - don't include boinc_api.h in util.C: ??? - - clientgui/ - Makefile.old - ViewMessages.cpp,h - stdwx.h - lib/ - util.C - -David 5 Nov 2004 - - move declaration of boinc_calling_thread_cpu_time() - from boinc_api.h to util.h - - api/ - boinc_api.h - client/ - dhrystone.C - whetstone.C - lib/ - util.h - -Rom 5 Nov 2004 - - Fixed a crashing bug on Solaris since the Window events show up in a drastically - different order than on other platforms. - - Fixed a bug that kept the GUI from closing down during a logoff or shutdown event - - GUI has reached feature partity with the previous GUI. - - clientgui/ - MainDocument.cpp - taskbarex.cpp, .h - BOINCTaskBar.cpp, .h - -Rom 5 Nov 2004 (boinc) - - Tag for 4.54 release, all platforms - boinc_core_release_4_54 - -David 6 Nov 2004 - - include credit.inc where needed - - html/inc - team.inc - host.inc - -Rom 7 Nov 2004 - - Modify the main build environment for Windows to include the new GUI, and remove - the old build environment. - - win_build/ - boinc.sln - boincgui.vcproj - -Karl 2004-11-07 - - add _autosetup steps to nightly-tarball and 'make dist', so that - autogenerated files don't have to be checked into the repository. - - Makefile.am - nightly-tarball - -Bruce Allen 2004-11-07 - - added include credit.inc - - html/user/ - top_teams.php - -David 9 Nov 2004 - - typo in graphics_api.C - - credit.inc is already included in team.inc - - api/ - graphics_api.C - html/user - top_teams.php - -David 9 Nov 2004 - - GUI RPC changes: - - enclose requests and replies in - or tags (make them more legit XML). - - add element to both requests and replies - - add /003 to end of requests messages - NOTE: neither end currently checks for or uses these elements. - - add CLIENT_STATE::version() (returns version #) - - moved win_config.h from client/win to top level, - since version number is needed by components - other than client - - win_config.h (new) - client/ - app_start.C - client_state.C,h - gui_rpc_server.C - win/ - win_config.h (removed) - lib/ - gui_rpc_client,.C - win_build/ - BOINCGUI.vcproj - boinc_cli.vcproj - boinc_dll.vcproj - boinc_gui.vcproj - boinc_guirpc_test.vcproj - boinc_ss.vcproj - upper_case.vcproj - -Rom 9 Nov 2004 - - Add needed files by the new installer - - Convert the Windows binaries from static linking to dynamic linking and - get the installer to include the 7.1 run-times - - client/win/ - dbghelp.dll (removed) - win_build/ - license.txt (removed) - readme.txt (removed) - splash.bmp (removed) - *.vcproj - *.sln - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/ - setup.ico - setup.bmp - win_build/installerv2/redist/0409/ - eula.rtf - readme.txt - win_build/installerv2/redist/Windows/x86/ - dbghelp.dll - -David 10 Nov 2004 - - put brackets around hostname in "can't resolve" error msg - - handle "next N" correctly in forum text search - (from Volker Hatzenberger) - - add RNG code for Windows (in case we ever need to - generate true random bits there) - - client/ - net_xfer.C - html/user/ - forum_text_search_action.php - lib/ - crypt_prog.C - -Rom 10 Nov 2004 - - Remove the old VC 6.0 build files - - Include the boinc_gui project within the boinc solution again to ease - debugging - - Update the new installer to shutdown and uninstall the BOINC - service during uninstall. - - win_build/ - *.dsp (Removed) - *.dsw (Removed) - boinc_gui.vcproj - BOINCGUI.vcproj - boinc.sln - -Rom 10 Nov 2004 - - Create a custom action to copy account files from a specific location - when the ACCOUNTS_LOCATION public property is defined. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/Windows - Accounts_CopyFiles.vbs - -David 11 Nov 2004 - - error out compile if no file lock mechanism - - client/ - file_names.C - lib/ - filesys.C - -David 11 Nov 2004 - - compile fixes and cleanup for Mac - - api/ - boinc_gl.h - graphics_api.C - gutil.C - mac_app_opengl.C,h (removed) - mac_carbon_gl.C,h (removed) - reduce.C - boincglut/lib/glut/ - glutint.h - clientgui/ - MainDocument.cpp - Makefile.old - -Rom 12 Nov 2004 - - New Installer: Set screensaver to the BOINC screensaver - - New Installer: Detect the presence of the old BOINC installer and warn the - user to uninstall the old BOINC. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/Windows/ - BOINC.vbs - -Rom 12 Nov 2004 - - On Windows, BOINC should not prompt for a project if non exist. - - On Windows, remove the -install and -uninstall from the commandline - since the installer now takes care of it. - - client/ - main.C - cd_cmdline.C - client/win/ - win_service.cpp - -David 12 Nov 2004 - - bug fixes for admin web interface (from Bruce Allen) - - change GUI RPC port number from 31416 to 1043 - - remove Mac files from Makefile - - api/ - Makefile.am - client/ - gui_rpc_server.C,h - html/ - inc/ - db_ops.inc - ops/ - db_action.php - lib/ - gui_rpc_client.h - -David 12 Nov 2004 - - booleans in config.xml are represented as 1 - ( still supported for now) - - html/ - inc/ - host.inc - util.inc - user/ - create_account_action.php - create_account_form.php - results.php - sched/ - sched_config.C - -David 12 Nov 2004 - - clear need_validate in all cases - - sched/ - validator.C - -Rom 12 Nov 2004 - - Fixed a bug that kept people from being able to attach to a new project - because of a control ID change. - - Fix the reference to gui_rpc_client.h in the project file. - - clientgui/ - ViewProjects.cpp - win_build/ - BOINCGUI.vcproj - -Rom 12 Nov 2004 - - Bring the screensaver up to date by adding diagnostics support, exception support, - and stackwalker support. - - Include the ability for the screensaver to make GUI RPC's. - - Convert the MFC style trace statements to BOINCTRACE statements. - - Give the ability for the screensaver to log to logfiles. - - Give the ability for the screensaver to track memory allocations and dump leaks - to the log file. - - client/win/ - win_screensaver.cpp - lib/ - diagnostics.h - win_build/ - boinc_ss.vcproj - -Rom 13 Nov 2004 (boinc) - - Tag for 4.55 release, all platforms - boinc_core_release_4_55 - -Bruce Allen 13 Nov 2004 - - Fixed, modified, tested script to remove workunits. - Linked to main ops page. - - Fixed links at bottom of workunits page, showing outcomes of results. - - Added tabular description of tables to the database form page, - longer clause box - - Added fix (commented out) to get pictures for systems without - TrueColor support (GD v 2) - - Fix to db_action.inc so it works under PHP<4.3.0 - - html/ops/ - cancel_wu.php (removed) - cancel_wu_form.php - cancel_wu_action.php - index.php - db_form.php - html/inc/ - db_ops.inc - profile.inc - db_action.inc - -Rom 14 Nov 2004 - - Updated the core screensaver code to use the GUI RPC's instead of passing - Window messages. - - Added two new GUI RPC's, set_screensaver_mode, and get_screensaver_mode. - - Added ID tags to the top of several files. - - Cleanup screensaver code - - api/ - windows_opengl.C - client/ - gui_rpc_server.C - main.C - ss_logic.C - client/win/ - boinc_ss.rc - win_screensaver.cpp, .h - win_util.cpp, .h - lib/ - gui_rpc_client.C, .h - -David 14 Nov 2004 - - remove hardwired font sizes from web code - - html/ - inc/ - forum.inc - forum_show.inc - ops/ - cancel_wu_action.php - -David 14 Nov 2004 - - improve account-creation email msg - - login_action.php allows authenticator to be passed as GET arg - - html/ - inc/ - util.inc - user/ - login_action.php - -David 14 Nov 2004 - - Fix for a validator bug pointed out by Bruce Allen: - After a call to check_set(), - update results whose outcome was changed to VALIDATE_ERROR - or whose validate_state was set to VALID or INVALID, - whether or not a canonical result was found. - - Add stack-trace code to Unix signal handler - - lib/ - diagnostics.C - sched/ - validator.C - -David 14 Nov 2004 - - changed default download page link to point to BOINC site - - html/user/ - intro.php - sample_index.php - -Rom 14 Nov 2004 - - Update screensaver so that it'll pass target Window Station and - Desktop to the graphics app via the CC, the CC code still needs - to be written. - - When the shared memory segment for the graphics channel is updated - to include the Window Station and Desktop the apps will now be able - to traverse the Window Station/Desktop boundry on Windows NT based - platforms. I still need to run this on a 9x platform and see if - I need to change the API calls into LoadLibrary/GetProcAddress calls. - - Update the diagnostics header so it can co-exist with the wxWidget - library. - - api/ - windows_opengl.C - client/ - gui_rpc_server.C - client/win/ - win_screensaver.cpp - lib/ - diagnostics.h - gui_rpc_client.C, .h - win_build/ - boinc_guirpc_test.vcproj - boinc_ss.vcproj - -Bruce 15 Nov 2004 - - Work on documentation for config.xml file. - Add explanation, missing material. More work needed. - - Added time zone to 'last modified' date. - - doc/ - configuration.php - docutil.php - -David 15 Nov 2004 - - some times were being read/written as ints instead of double - (from Sebastian Masch) - This fixes a bug of giving up on uploads too soon - - NOTE: the time returned by dtime() is NOT THE SAME AS UNIX TIME. - YOU CAN'T MIX AND MATCH. REMEMBER THIS!!!! - - client/ - client_types.C - pers_file_xfer.C - win/ - wingui_mainwindow.cpp - lib/ - gui_rpc_client.C,h - -David 15 Nov 2004 - - get rid of time(0) as much as possible - - client/ - app_control.C - client_types.C - cs_data.C - net_xfer.h - -David 15 Nov 2004 - - assimilator: after each enumeration of WUs, do a COMMIT. - This will hopefully fix a bug where a WU would appear - in an two enumerations in succession - (this happens when the enumerations are short, - i.e. when the assimilator is nearly caught up). - - sched/ - assimilator.C - -Rom 15 Nov 2004 - - Update screensaver logic in the core client to pass back the error - code to the screensaver instead of trying to also be a screensaver - - Remove the screensaver code from the old GUI - - Update the new setup to include the symbol files by default - - Update the diagnostics header so that BOINCTRACE is __noop in cases - where files are part of the STL or MS CRT when being compiled as part - of a wxwidget application like the boincmgr application. - - client/ - gui_rpc_server.C - ss_logic.C, .h - client/win/ - win_screensaver.cpp - win_mainwindow.cpp, .h - lib/ - diagnostics.h - win_build/ - boinc_gui.vcproj - win_build/installerv2/ - BOINC.ism - -David 16 Nov 2004 - - Validator bug: look for file name in xml_doc_out, not xml_doc_in - - sched/ - validate_util.C - -Bruce 16 Nov 2004 - - Fix bug in ops pages displaying counts of zero if 'additional - clauses' includes string names such as name='first_workunit' - - - Result summary pages corrected for boundary condition errors in - arrays and to cover additional result.outcome==6 case. Result - summaries now sum correctly over outcomes! - - Add validate state to result tables, color code for validate - state information - html/inc/ - db_ops.inc - util_ops.inc - - html/ops - db_action.php - -David 16 Nov 2004 - - compile fixes for Linux, Solaris - - lib/ - diagnostics.C - gui_rpc_client.C - -Rom 17 Nov 2004 - - Update screensaver so that it'll work across - Window Station and Desktop boundries. - Note: The screensaver will now work with the password checkbox - enabled on NT machines. - - Update screensaver so that it reports all error conditions - that the old GUI used to report. - - Update screensaver so that if BOINC isn't running - and graphics capable apps - it'll display the result name and percent completed. - NOTE: this hasn't been tested yet. - - Updated BOINC Manager with some const changes. - - Updated BOINC Manager so that it can detect which Window Station - and Desktop it is currently executing in, - and pass that info off to BOINC when needed. - - Updated the CC so that it doesn't try to act like a screensaver anymore, - so now we can have a unified screensaver experience. - - Updated the CC to pass the Window Station and Desktop information - to the science application so it can transition into the screensaver - desktop when the user - has the password checkbox checked on NT based platforms. - - Updated the shared memory structures for passing the extra information - that is now needed. - - Updated the GUI RPC's to require Window Station and Desktop information - when needed. - - NOTE: A lot of this stuff hasn't been tested on Win9x yet. - - api/ - windows_opengl.C - client/ - app.h - app_control.C - app_graphics.C - gui_rpc_sever.C - ss_logic.C, .h - client/win/ - boinc_ss.h - boinc_ss.rc - win_screensaver.cpp, .h - win_mainwindow.cpp - clientgui/ - BOINCGUIApp.cpp, .h - BOINCTaskbar.cpp - MainDocument.cpp, .h - WorkView.cpp - lib/ - app_ipc.C, .h - gui_rpc_client.C, .h - gui_test.C - -Bruce 17 Nov 2004 - - Fixed RESULT form on ops page so that it now covers correctly - all possible states (including ones with value 0) and - eliminated the 'Unknown' values that previously appeared on the form. - These were in error. This is a clean fix, by defining (for example) - outcome='CHOOSE_ALL', eg a non-numerical value, for the 'select - ALL' case. - - Added a select menu for validate_state to the RESULT form. - - In forms for outcome, validate_state, client_state and - server_state, indicate numeric values (helpful if using - additional clauses for more sophisticated queries) - html/inc/ - db_ops.inc - html/ops/ - db_form.php - -David 17 Nov 2004 - - Slight repackaging of Rom's last checkin: - - Define a structure GRAPHICS_MSG that includes - mode, window_station and desktop. - Pass around references to this struct - instead of the items separately. - - Revert to a single array "xml_graphics_modes" - - comment out BOINCTRACE calls. These don't work on Linux - - api/ - windows_opengl.C - x_opengl.C - client/ - app.h - app_control.C - app_graphics.C - client_state.C - gui_rpc_server.C - ss_logic.C,h - lib/ - app_ipc.C,h - gui_rpc_client.C - -Rom 17 Nov 2004 - - Bug Fix: The screensaver wouldn't shutdown when just the application - window was dismissed by moving the mouse two or three pixels. - There is a new graphics message called MODE_QUIT which is treated - like MODE_HIDE_GRAPHICS by the app, - but the CC sees the message and tells the screensaver to stop. - - api/ - windows_opengl.C - client/ - app_graphics.C - ss_logic.C - lib/ - app_ipc.C, .h - -David 17 Nov 2004 - - UNIX applications graphics: - Use atexit(), setjmp() and longjmp() to pop the stack - and resume within xwin_graphics_event_loop() - when exit() is called in the graphics thread. - - This means that we can use the standard GLUT library, - not our modified version. - - Thanks to Bruce Allen for suggesting this!!!! - - [Note inserted by Bruce the next day. ANSI-C 4.6.2.1 says: "The - longjmp function ... The longjmp function should not be called in - an exit handler (i.e., a function registered with the atexit - function (see §4.10.4.2)), since it might jump to some code which - is no longer in scope." This should be OK on OSes that delay image - teardown until after calling the handler functions, provided that - the routine calling exit() has cleaned up its memory. An - alternative might be to use dlopen() or the loader to replace the - calls to exit() with a BOINC routine.] - - api/ - gutil.C - x_opengl.C - client/ - app_control.C - lib/ - gui_rpc_client.C - gui_test.C - makefile.gui_test - -David 17 Nov 2004 - - call atexit() in restart(), - since this entry has been popped off the atexit "stack" - - api/ - x_opengl.C - -David 17 Nov 2004 - - compile fixes for Mac OS X - Applications graphics (at least for SETI@home) work on Mac now. - The close button is disabled when launch from cmdline (why??) - - remove references to boincglut/ - - GUI RPC client: don't try to send RPC request if not connected - - api/ - Makefile.am - boinc_gl.h - graphics_api.C - x_opengl.C - client/ - app_graphics.C - clientgui/ - BOINCGUIApp.cpp - MainDocument.cpp,h - Makefile.old - ViewWork.cpp - lib/ - gui_rpc_client.C,h - -Rom 17 Nov 2004 - - Bug Fix: When BOINC is running as a service, make sure that we can display - some simple status messages about the progress of the projects. - - Bug Fix: Allow the apps to detect if they can support graphics, because - of the Window Station and Desktop change, if not report back to the - CC that graphics are not supported. - - Bug Fix: Configure the screensaver so that is can reestablish a connection - to the CC in case the core client is shutdown in the background, and - restarted. - - Bug Fix: Use the project name in the system status message instead of the - result name. - - Bug Fix: Screensaver now works even when BOINC is running as a service. - NOTE: This currently only works if the account is LocalSystem and - Interact with Desktop is checked. - - Bug Fix: When the service account is switched to an account that cannot - support interact with desktop make sure the screensaver can display - the project status. - - Bug Fix: If we have to report back that graphics are not supported in - the current configuration, don't create the window, it only makes - the system jittery. I suspect it has something to do with the - possibility of garbage UI events being sent to the application. - - Remove remain screensaver logic from the old GUI. - - api/ - windows_opengl.C - client/ - ss_logic.C, .h - client/win/ - win_screensaver.cpp - wingui_mainwindow.cpp - lib/ - gui_rpc_client.h - -Bruce 18 Nov 2004 - - Bug fixes (thanks to Jens Seidler): set cross project id (CPID) - to random value when creating user account from Administrator form, - and lower_case email address before inserting into database. - Added script make_emails_lowercase.php which - goes through user database and changes email addresses to lowercase, - and sets CPID to a random string if it is currently 0 (empty). - It should be safe to run this script any number of times, - on a damanged or undamaged user database, with no side effects. - - 'Fixed' py/Boinc/add_util.py so that it takes cross_project_id - value out of XML file. Current default value is '0'. - Karl, could you fix this to make it a random string? - - validator.c sets global variable int boinc_validator_debuglevel - for use by check_set and check_match functions. - - html/ops/ - create_account_action.php - make_emails_lowercase.php - - py/Boinc/ - add_util.py - - sched/ - validator.C - -David 18 Nov 2004 - - Changed PHP code so that the "generated on" text - produced for cached pages appears inside the tag - for HTML pages, and doesn't appear at all for XML output. - - Cached pages must now call page_tail(true) rather than page_tail(). - This function, not end_cache(), prints the "generated on" text. - - - split some stuff out from util.inc into new .inc files - - html/ - inc/ - cache.inc - email.inc (new) - image.inc (new) - team.inc - util.inc - user/ - account_created.php - confirm_email_change.php - create_account_action.php - edit_email_action.php - edit_form_preferences_action.php - hosts_user.php - login_action.php - mail_passwd.php - sample_index.php - sample_status.php - show_user.php - team_display.php - team_email_lsit.php - top_*.php - -David 18 Nov 2004 - - UNIX app graphics: only call glutInit() once (avoid error msg) - - UNIX: if app exits with external signal, restart it - - check_suspend_activities(), check_suspend_network(): - don't do anything more than once every 5 seconds - - call do_something() every 0.1 second, - to improve response time to GUI RPCs - - api/ - x_opengl.C - client/ - app_control.C - app_graphics.C - client_state.C,h - cs_prefs.C - main.C - -Bruce 19 Nov 2004 UTC - - Clean fix automake/autoconf to build graphical core client. - David, I don't have a Mac OSX box handy to test this on. - I followed your hints in Makefile.old. - If you need to modify the Mac build flags, - it is trivial, just search for ${host} in configure.ac and you'll see. - - Removed obsolete aclocal.m4 file from CVS: - it is build by the ./_autosetup script - - Added some more files to .cvsignore - - .cvsignore - aclocal.m4 - configure.ac - clientgui/ - Makefile.am - -Rom 19 Nov 2004 - - Cleanup several warnings in the clientgui when all warnings are turned on in gcc. - - Added a /s parameter to the clientgui which will hide the main window on startup - for those OS's that support a system tray in there GUI. - - Added a new GUI RPC called which requests BOINC to quit nicely. - - client/ - gui_rpc_server.C - clientgui/ - BOINCBaseView.cpp - BOINCGUIApp.cpp, .h - BOINCListCtrl.cpp, .h - BOINCTaskCtrl.cpp, .h - MainDocument.cpp - MainFrame.cpp - ViewMessages.cpp - ViewProjects.cpp - ViewResources.cpp - ViewTransfers.cpp - ViewWork.cpp - lib/ - gui_rpc_client.C - -Bruce 19 Nov 2004 UTC - - - Added nice macro (wxWidgets.m4) to CVS for detection of wxWidgets. - Now switch off clientgui build (with nice warning) if wxWidgets is - not found. (thanks Reinhard Prix) - - Use outcome of pthread tests and corresponding flags to set pthreads - CFLAGS correctly. - - New user database email-lowercasing script more efficient, handles case - where user.id is not contiguous. - - configure.ac - Makefile.am - m4/ - wxWidgets.m4 - html/ops/ - make_emails_lowercase.php - -Bruce 20 Nov 2004 UTC - - - Added static volatile const char *BOINCrcsid="$Id:..."; string to - the top of all .C files. This means that 'string' or 'ident' - run on an executable will tell you the exact file versions used - in building it, since CVS replaces $Id:... with a complete version ID - string. Declaration is volatile so that the compiler won't remove - it even under agressive optimizations. - - - Fixed initialization bug where calling boinc_init_graphics() - would not initialize options correctly, creating - lockfile/finished havoc in graphics APP. Thanks Reinhard! - David, please bless this. - - ALL files of form *.C affected. - api/ - boinc_api.C - -Rom 20 Nov 2004 - - Added VM size detection for NT platforms to the BOINC API set. - - Changed the STARTUPINFO structure in the CC CreateProcess call to hide - the console window created for the science applications. - - api/ - boinc_api.C - client/ - app_start.C - -David 20 Nov 2004 - - web fix - - html/user/edit_email_form.php - -Rom 20 Nov 2004 - - Bug Fix: Undue the change made this morning relating to the STARTUPINFO structure, - specifying the startup parameters causes the first call to ShowWindow to be - ignored, which means we would have to make a second call. This however, isn't - the bug E@H ran into. - - Bug Fix: With older clients that didn't specify the window station and desktop in - the share memory buffer, we ended up calling both OpenWindowStation and OpenDesktop - with their lpszWindowStation and lpszDesktop parameters being an empty string, which - is an undefined behavior. Apparently Windows returns a valid handle instead of NULL - and sends the application into another window station and desktop. - - api/ - windows_opengl.C - client/ - app_start.C - -David 20 Nov 2004 - - Fix check_suspend_activity() logic when benchmarks running - - Old Win GUI: restore "Show Graphics" code - - client/ - client_state.C,h - cs_prefs.C - win/ - wingui_mainwindow.cpp - -David 21 Nov 2004 - - Change team-related PHP code so that it recomputes - "nusers" by doing a select count(*) when a user - quits or joins a team. - Also cleaned up skanky PHP code. - - html/ - inc/ - team.inc - util.inc - user/ - team*.php - -Rom 21 Nov 2004 - - Bug Fix: I think this fixes the "Could not find item xxx in list view" - error messages for all tabs. - After detecting a disconnected state, - resrt the cache to and cache from variables - since the listview control does not reissue a cache request - when all the items have been deleted. - - clientgui/ - BOINCBaseView.cpp - -David 22 Nov 2004 - - print error msg if app_info.xml has unparsed text - - support notion of "batch" in work creation - - shorten messages in BOINC manager - - api/ - boinc_api.C - boinc_gl.h - client/ - cs_statefile.C - clientgui/ - BOINCTaskBar.cpp - MainDocument.cpp - MainFrame.cpp - Makefile.old - ValidateAccountKey.cpp - ValidateURL.cpp - ViewMessages.cpp - ViewProjects.cpp - ViewTransfers.cpp - ViewWork.cpp - db/ - boinc_db.h - tools/ - backend_lib.C - create_work.C - -Karl 2004-11-22 - - changed parsing for to accept - or 1 - - client/ - scheduler_op.C - -Rom 22 Nov 2004 - - Fix a warning with the scheduler_op file - - Bug Fix: Context menu should now work on Win9x machines - - Bug Fix: Tooltip should now work of Win9x machines - - Bug Fix: BOINC Manager should now startup when the core client is not detected - - Bug Fix: Service setup has been temporarily disabled - - client/ - scheduler_op.C - clientgui/ - BOINCGUIApp.cpp, .h - BOINCTaskBar.cpp, .h - MainDocument.cpp, .h - stdwx.h - clientgui/msw/ - taskbarex.cpp, .h - lib/ - gui_rpc_client.C, .h - win_build/installerv2/ - BOINC.ism - -Bruce 23 Nov 2004 UTC - - Build boinc zip compression library as part of normal - ./configure && make process - - make install now installs libboinc_zip.a and boinc_zip.h - as part of normal make install - - Unix boinc client and boinc gui had the same name, - eg boinc_4.56_i686-pc-linux-gnu - I have changed this so that it is now - boinc_client_4.56_i686-pc-linux-gnu and - boinc_gui_4.56_i686-pc-linux-gnu. - If the change from boinc_ to boinc_client_ causes any pain, - please just modify CLIENT_BIN_FILENAME in configure.ac - - Removed -O3 as required compilation flag in building client gui. - Only needed for client (to optimize benchmarking routines). - - Removed un-necessary zip/configure.ac and zip/Makefile and zip/config.h - and config.h.in - - Added .cvsignore file for zip/ directory. - - Modified api/boinc_gl.h to use config.h to get correct include path - for glut.h - - Added double-inclusion protection for config.h - to avoid some warning messages - - Run autoheader BEFORE automake and autoconf in _autosetup - - Removed huge number of extraneous Makefile.in's - - Changed production of config.h from AM_ to AC_ macro - - _autosetup - configure.ac - Makefile.am - config.h - config.h.in (removed) - clientgui/ - Makefile.am - zip/ - Makefile.am - configure.ac (removed) - Makefile (removed) - .cvsignore (added) - config.h (shouldn't be here anyway) - config.h.in (shouldn't be here anyway) - api/ - boinc_gl.h - -Rom 23 Nov 2004 - - Bug Fix: Fix a crashing condition for both the screensaver and core client on - Win9x machines due to the Window Station and Desktop code. - - Bug Fix: Setup the core client to redirect stderr and stdout even though it is - running as a console. It's useful to do this in the case of where the core - client is launched from the boincmgr and so stderr and stdout cannot be - redirected. - - client/ - main.C - client/win/ - win_screensaver.cpp - clientgui/ - BOINCGUIApp.cpp - -Rom 23 Nov 2004 (boinc) - - Tag for 4.56 release, all platforms - boinc_core_release_4_56 - -David 23 Nov 2004 - - boinc_init_graphics_options() can be called with a NULL - worker_main argument. - This can be used by a separate graphics app. - - api/ - graphics_api.C - client/ - net_stats.C - -David 23 Nov 2004 - - Remove the dependencies of a project on a source or build tree. - This involves: - - Don't copy boinc_path_config.py to project/bin - - Copy a bunch of files from source/py/Boinc to project/bin: - add_util.py, boinc_db.py, boinc_project_path.py, etc. etc. - - put keys in home/projects/PROJECT/keys, not in home/keys - - socket.gethostname() seems to return the full domain name on Linux. - Strip off the domain part for log_HOST etc. - - On project creation, symlink bin/stop and status to start, - rather than copying the file - - py/Boinc/ - database.py - setup_project.py - tools.py - sched/ - start - tools/ - make_project - -Bruce 24 Nov 2004 UTC - - Added const char RCSID string to all *.c files, - so that 'ident' and 'strings' can identify file version numbers. - -David 24 Nov 2004 - - Fix the "upgrade" script. - You now run it in the source directory, not the project dir. - It now takes the project name (and optional root path) as arg - - Don't run "start" at the conclusion of upgrade - - make_project: don't copy upgrade to project/bin - - feeder: if restart enum in the middle of a scan, - return and sleep; don't keep trying 100 times - - feeder: make enum limit a #define - (should be a cmdline arg too) - - py/Boinc/ - setup_project.py - sched/ - feeder.C - tools/ - upgrade - -David 24 Nov 2004 - - don't run benchmarks if activities suspended (from Ian Hay) - - avoid buffer overrun in GUI RPC server - - client/ - cs_benchmark.C - gui_rpc_server.C - -David 24 Nov 2004 - - bug fix in graphics API (from Reinhard) - "first" should be init to true - - api/ - x_opengl.C - -Karl 2004-11-25 - - For add_util, when cross_project_id is default or 0, generate a random - UUID. - - Py/Boinc/ - tools.py (added make_uuid) - add_util.py - -Bruce and Reinhard 2004-11-26 - - - Fixed autoconf/automake build process so that it works correctly - under Mac OSX. Also make dist now works (make distcheck still - broken). Karl, since you were the last - person to fix up this mess, how about taking a look?? - - Added placeholders in sched/ for user: assimilator_placeholder.C - and validator_placeholder.C. - These are built by the build system, but can be replaced by user - code as desired. - - Makefile.am - configure.ac - api/ - Makefile.am - client/ - Makefile.am - clientgui/ - Makefile.am - db/ - Makefile.am - m4/ - Makefile.am - acx_pthread.m4 - ax_check_gl.m4 - ax_check_glu.m4 - ax_check_glut.m4 - ax_lang_compiler_ms.m4 - kc_mysql.m4 - sah_header_stdcxx.m4 - test/ - Makefile.am - zip/ - Makefile.am - zip/unzip/ - Makefile.am - zip/zip/ - Makefile.am - test/ - boinc_db.inc [removed: this file is autogenerated] - -Bruce 2004-11-27 - - - Added a -dont_update_db command-line option to assimilator.C - which prevents it from updating the database, and so is useful - for testing. - - sched/ - assimilator.C - -Karl 2004-11-27 - - Fixed db_base.py to work with Python-MySQLdb 1.x - - py/Boinc/ - db_base.py - -Bruce 2004-11-28 - - Sanity check args to parse_str(doc, tag, ...) and return false - if !doc, !tag, or !strlen(tag) - lib/ - parse.C - -Bruce 2004-11-29 - - Added command-line options -preserve_wu_files and -preserve_result_files - to the file deleter. This are useful to implement - for all input or output files respectively. - - Documented file tag. - - file_deleter logs strerror(errno) if unable to remove a result file. - - Admin database ops page: show all three file delete states, add additional - sort options to results page, better internal bug checking on state lists, - move result summary to top of WU detail page, show WU delay bound in - human-readable form, show cross_project_ID in user table. - sched/ - file_deleter.C - doc/ - files.php - html/inc - db_ops.inc - util.inc - -David 29 Nov 2004 - - scheduler: use safe_strncpy instead of strncpy for copying - stderr_out and xml_doc_out. - - client/ - test_http.C - test_net_xfer.C - doc/ - various - sched/ - assimilator.C - handle_request.C - -Jeff 29 Nov 2004 - - Log the number of WUs assimlated at the end of each WU enumeration. - - sched/ - assimilator.C - -Jeff 29 Nov 2004 - - Added back the "-noinsert" option, which had somehow disappeared. - - sched/ - assimilator.C - -Bruce 30 Nov 2004 - - Fixed errors in db_purge. If -max argument >= 1000, then it didn't - work because purged_workunits was reset to zero in do_pass(). Also, - max_number_workunits_to_purge was un-initialized if no -max argument - was given. David, please double-check these changes. - - Show all possible validate states on ops result summary page - html/inc - db_ops.inc - sched/ - db_purge.C - -David 30 Nov 2004 - - fixed a bug in DB_VALIDATOR_ITEM_SET::update_result(): the lines - "server_state=%d, outcome=%d, opaque=%lf" - "where id=%d", - produce a bad SQL query (e.g. opaque=0.0000where id=4) - - fixed a bug in the transitioner: - TRANSITIONER_ITEM::enumerate() and query() - weren't reading "need_validate". - In some (rare) cases this would cause the flag - to get incorrectly cleared by the transitioner - - NOTES: - - ALL VALIDATORS SHOULD BE RECOMPILED - - RECOMPILE THE TRANSITIONER - - db/ - boinc_db.C - client/ - cs_account.C - main.C - -David 30 Nov 2004 - - Fixed a major bug in the whole damn system (thanks to Rattledagger) - If we have target_results successful results for a WU, - and there's no consensus, we need more results!! - There was no mechanism to produce them. - Fix: in the validator, if we call check_set() and there's - no consensus, and #success results == target_nresults, - increment target_nresults - - Also had to add code to VALIDATOR_ITEM::enumerate() and parse() - to get target_nresults from the DB - - db/ - boinc_db.C - sched/ - validator.C - -David 1 Dec 2004 - - Use exclusively UNIX time (1970-origin) on Windows. - Previously we were using times in both this format - and in Windows 1601-based format. - This is a bug waiting to happen (in fact, it had already happened). - - convert a few remaining absolute times from int to double - - Add a function validate_time(). - This sees if its arg is in Windows format - (greater than now + 1000 days) - and if so converts it to UNIX format. - - Call validate_time() after parsing all absolute times - - in old GUI, show %done of file uploads correctly - - NOTE: the time-checking code can be removed in the next major version - - client/ - client_types.C,h - pers_file_xfer.C,h - win/ - wingui_mainwindow.cpp - lib/ - util.C,h - -David 1 Dec 2004 - - UOTD screening: only show active users - - fix log grep pages - - html/ - ops/ - profile_ops.php - show_log.php - user/ - html.php - sched/ - validator.C - -Bruce 2 Dec 2004 - - For unreturned results, show reporting deadline on user page. - - Add additional state possibilities. - - Explain validate error state. - - html/ - inc/ - resuls.inc - user/ - explain_state.php - -Rom 2 Dec 2004 - - Bug Fix: Each view now contains a display cache; the display cache - is synchronized during the regularly scheduled list render event. - The control grabs the necessary information from the cache instead - of cycling down to the document. Due to the way listviews were - implemented on some platforms I believe this will fix some refresh - problems where the data wasn’t being updated in a timely manor. - This also had the added benefit of increasing performance on displaying - updates. - - Fill in the missing piece for the memory leak detection to proplerly - display the file and line number information per allocation for the - GUI on Windows - - Rename the CC and GUI on all platforms to match that of Windows. - - / - configure.ac - clientgui/ - BOINCBaseView.cpp, .h - BOINCGUIApp.cpp - MainFrame.cpp, .h - stdwx.h - ViewMessages.cpp, .h - ViewProjects.cpp, .h - ViewResources.cpp, .h - ViewTransfers.cpp, .h - ViewWork.cpp, .h - clientgui/msw/ - taskbarex.h - -Bruce 2 Dec 2004 - - Added emacs mode statement to the top of this file to eliminate tabs - in favor of spaces! - - Fixed boinc_zip.h so that it works correctly under both C++ and - C under both Unix and Win32. - - Modified admin ops pages so that workunit displays transition time, - and target_nresults. Results pages displays deadline not received time - for results that are still in progress or were never received. - - Fixed glut detection bug in configure script - - Made php script function correctly under both php4 and php5. - - checkin-notes - configure.ac - zip/ - boinc_zip.h - html/ - inc/ - db_ops.inc - util_ops.inc - -Rom 2 Dec 2004 - - Add in the rcsid tag to all the boincmgr source files and the screensaver - for windows. - - Bug Fix: Fix a messages bug where the client would not attempt to - get the latest message state after a connection failure until a new - message was logged. - - Cleanup some of the statusbar update code, wxWidgets already had a function - to do that work. - - Bug Fix: Fix the socks proxy enable button, it was referencing the HTTP proxy - control instead of the socks proxy control. ( I thought I had fixed this - awhile ago ) - - client/win/ - win_screensaver.cpp - clientgui/ - BOINCBaseView.cpp - BOINCGUIApp.cpp - BOINCListCtrl.cpp - BOINCTaskCtrl.cpp - DlgAbout.cpp - DlgAttachProject.cpp - DlgConnection.cpp - DlgOptions.cpp - MainDocument.cpp - MainFrame.cpp - stdwx.cpp - ValidateAccountKey.cpp - ValidateURL.cpp - ViewMessages.cpp - ViewProjects.cpp - ViewResources.cpp - ViewTransfers.cpp - ViewWork.cpp - clientgui/msw/ - taskbarex.cpp - lib/ - stackwalker_win.cpp - -David 2 Dec 2004 - - added script for fixing the problem where some workunits - have target_nresults successful results and no consensus. - The script finds WUs in this state and sets their need_validate flag; - the validator (MAKE SURE YOU'VE RECOMPILED WITH CURRENT SOURCE) - will increment target_nresults and trigger the transitioner, - which will create a new result. - - - html/ops/ - repair_validator_problem.php - -Bruce 2 Dec 2004 - - Added logging of remaining result.outcome==OVER states to logging - output of transitioner. - - Fixed nasty bug in ops pages where top two WU error mask bits were - not being shown in WU summary/detail pages. - - Display some useful Unix times on db query page (helpful in formulating - queries. - - sched/ - transitioner.C - html/ - inc/ - db_ops.inc - ops/ - db_form.inc - -Rom 2 Dec 2004 - - Bug Fix: On certain versions of Windows it might be necessary for the - screensaver to force the foreground window depending on the state in - which the screensaver was launched. This is the slightly less - aggressive way to do this. Ideally the active process is the screensaver - and so therefore can promote another process into the foreground. - - client/win/ - win_screensaver.cpp - lib/ - gui_rpc_client.h - -Rom 2 Dec 2004 - - Fix a setup issue where the screensaver and manager files were not being - removed on uninstall. - - win_build/installerv2/ - BOINC.ism - -Bruce 3 Dec 2004 - - Fixed a nasty bug in the scheduler. Under a number of possible - error conditions, handle_request.C would read only some fields of - and existing request into memory, and then write more of those fields, - some of which were null, back into memory. This had the effect of nulling - out outcome, client_state, exit_status, cpu_time, xml_doc_out, stderr_out, - validate_state, claimed_credit and client_version. The point is that - DB_SCHED_RESULT_ITEM_SET::enumerate() followed by - DB_SCHED_RESULT_ITEM_SET::update_result - did not preserve an 'existing result'. It wiped out the fields above. - - db/ - boinc_db.C - -Rom 3 Dec 2004 - - Add back in trace statements to boincmgr's main frame, so we can begin to - track down the Mac OS X problem. - - Change the screensaver so that it only checks for BOINC's configuration - once. - - client/win/ - win_screensaver.cpp, .h - clientgui/ - MainFrame.cpp - -Rom 3 Dec 2004 - - Change which wxLogTrace prototype we are using in MainFrame.cpp and - enable that trace mask in BOINCGUIApp.cpp - - clientgui/ - BOINCGUIApp.cpp - MainFrame.cpp - -Eric 3 Dec 2004 - - Altered the configure script to generate a config.h that includes - "win-config.h" on WIN32 systems - - Added a file "version.h[.in]" that contains platform independent version - info. - - Made a default "config.h" that tells the user to run configure on - non-windows systems. Includes "win-config.h" on windows systems. - - config.h - version.h - version.h.in - configure.ac - win_config.h - -Bruce 3 Dec 2004 - - - Enabled automatic emailing of CVS diffs to the boinc_cvs email - list. This is done by adding a 'syncmail' script in the CVSROOT/ - directory and adding an extra line at the end of CVSROOT/loginfo. - -Rom 3 Dec 2004 - - Add an additional header for the additional logging prototypes under - wxWidgets - - clientgui/ - BOINCGUIApp.cpp - MainFrame.cpp - stdwx.h - -Bruce 3 Dec 2004 (Thanks Reinhard!!) - - C extern statements so that 'API' header files can be included in C - programs as well as C++. - - Make install now only installs the header files needed for building - the external APIs. - - api/ - Makefile.am - boinc_api.h - graphics_api.h - lib/ - Makefile.am - diagnostics.h - filesys.h - -Rom 3 Dec 2004 - - Fix build break on Windows where VC didn't like a C prototyped function - possibly throwing a C++ exception. - - lib/ - diagnostics.C, .h - -Janus 5 Dec 2004 - - Added forum navigation bar on bottom of threads (users dont need - to scroll up anymore to get back. - - Also made forum_threads.php output HTML 4.01 transitional valid - - html/user/ - forum_threads.php - -Bruce 5 Dec 2004 - - - Redid 'fix' to scheduler bug from 3 December 2004. In fact the - fix was incomplete. In order for it to work as intended, I would - have also had to modify SCHED_RESULT_ITEM::parse to copy the - additional needed fields into the in-memory structure. But this - is fragile. The next time some additional fields are added to the - result table, they would have to be incorporated here as well, to - ensure that SET followed by UPDATE is the identity operation. So - I did a more graceful and robust fix. Simply set result.id=0 for - those results that have already been received or which for other - reasons should not be modified in the database, then skip these - when updating. - - db/ - boinc_db.C [reverted to 1.96 + comments] - sched/ - handle_result.C - - -David 5 Dec 2004 - - show message (DEBUG level) if > 1 result/user/WU situation occurs - - FreeBSD compile fixes (from J.R. Oldroyd) - - client/ - gui_rpc_server.C - net_xfer.C - sched/ - sched_send.C - - -David 5 Dec 2004 - - Improve app CPU time reporting on Win9x (which lacks real calls). - Old: return elapsed time-of-day - New: return elapsed time-of-day during which app was not suspended - - remove working-set arg from get_cpu_time() functions - (we're not returning anything anyway) - - api/ - boinc_api.C - graphics_api.C - client/ - dhrystone.C - whetstone.C - db/ - boinc_db.h - lib/ - util.C,h - -Bruce 6 Dec 2004 [thanks to Bernd Machenschalk!] - - - Fixed 'time to checkpoint' problem under Win32 with pure C code. - It turns out that MS VC++ up to version 4.2 defines bool as INT. - But more recent VC++ defines bool as CHAR. This broke - boinc_time_to_checkpoint() under Win32, when used within pure ANSI - C code, if you treated the return value as a bool. So this patch - defines bool as char if using C under recent MS compilers. - - David, a better solution for API functions that should be - callable from C is to make them return 'int' not 'bool'. - Probably ditto for Fortran. Sigh. - - api/ - boinc_api.h - graphics_api.h - - lib/ - filesys.h - -David 6 Dec 2004 - - removed references to win_config.h from VC++ project files - - removed stuff from Makefiles that generates client/win/win_config.h - (this file isn't used anymore) - - set-version - client/ - Makefile.am - win_build/ - boinc_gui.vcproj - boinc_guirpc_test.vcproj - upper_case.vcproj - -David 6 Dec 2004 - - Added priority field to workunit and result tables. - Can be used to prioritize work dispatch - (implemented; run feeder with -priority_order option) - and to give higher priority to retries (not implemented) - - Added mod_time field to workunit and result tables. - This is stored in a MySQL format (12-char ASCII representation) - Need to add an index for this. - - add "batch" and "priority" args to create_work - - renamed host.workseq_next to host.hr_class - - added "avg_turnaround" field to host table. - Use this to keep track of average result latency. - Use this for "performance homogeneous scheduling" - (neither of these implemented yet) - - add new DB fields to db_dump.C, db_purge.C - - changed "account ID" to "account key" everywhere - - Python code: all Python is now copied to project/bin. - Eliminate the "Boinc" module. - boinc_path_config.py is no longer used by anything - in the project side, and it doesn't exist in project/bin. - - At conclusion of account creation, - send user to the BOINC site to download the core client. - We no longer expect projects to store the core client - in their DB or download directory. - - The email telling users their account key now takes into - account whether this is a new account, - whether it needs to be validated, - whether the user clicked "remind me of my key", etc. - - Web: improved and reorganized the display of general prefs - - client: don't redirect stderr/out on platforms other than Win - - when add project, check for empty URL or authenticator - - removed code (already commented out) that tells the server - what other projects the host is attached to. - This could be viewed as an invasion of privacy. - - create_work: error-check that enough input files are listed - - remove limit of 10 output files - (small change to process_result_template()) - - default uldl_dir_fanout (for new projects) is 1024 - - NOTE: this checkin requires that you update your database. - See html/ops/db_update.php - - TODO: if you type instead of - in a result template it screws things up. - Should use better syntax, and error-check. - - client/ - cs_scheduler.C - main.C - db/ - boinc_db.C,h - constraints.sql - schema.sql - html/ - inc/ - db_ops.inc - email.inc - host.inc - prefs.inc - util.inc - ops/ - create_account_action.php - db_update.php - user/ - account_created.php - account_setup_first.php - account_setup_first_download.php - create_account_action.php - get_passwd.php - mail_passwd.php - py/Boinc/ - add_util.py - database.py - projectxml.py - setup_project.py - tools.py - sched/ - db_dump.C - db_purge.C - feeder.C - file_upload_handler.C - handle_request.C - main.C - sched_send.C - sched_util.C,h - server_types.C,h - transitioner.C - tools/ - backend_lib.C,h - create_work.C - make_project - process_result_template.C - update_versions - xadd - -Rom 6 Dec 2004 - - Like so many other things in life, breaking out the MFC references - into there own include file proved that things are never as easy - as they first appear. As of right now the old GUI will not work - without a major investment in time and energy. I'm not going to - worry about it unless somebody really, really, really needs it. - - boinc_win.h now doesn't do anything with MFC. And undefined min - and max from the Windows header files. - - Diagnostics functions should no longer use exception handling for - error conditions. - - client/ - net_xfer.C - client/win/ - wingui.cpp - wingui_dialog.cpp - wingui_listctrl.cpp - wingui_mainwindow.cpp - wingui_piectrl.cpp - wingui_proxydlg.cpp - stdafx.cpp, .h (added) - lib/ - boinc_win.h - diagnostics.C, .h - win_build/ - boinc.sln - boinc_gui.vcproj - -Rom 6 Dec 2004 - - Force include StdAfx.h for all files in boinc_gui.vcproj fixes the - linker problems. - - win_build/ - boinc.sln - boinc_gui.vcproj - -Bruce 7 Dec 2004 - - Missing close bracket - - Use HAVE_STD_MIN and HAVE_STD_MAX to detect if std::min and std::max are needed. - Ron, please check and correct if needed -- build was broken under Linux. - html/ - ops/ - db_update.php - api/ - reduce.C - -Rom 7 Dec 2004 - - Include the STL header that deals with min and max for STL, and then include - std_fixes.h just in case it needs fixing. - - api/ - reduce.C - -David 7 Dec 2004 - - Win compile fix - don't include std_fixes (???) - - api/ - reduce.C - -Rom 7 Dec 2004 - - Fix a bug exposed by mikey2345 configuration that would create a bunch of - host records, basically if the state file cannot be written to, BOINC should - not run. - - client/ - client_state.C - -Bruce 7 Dec 2004 - - Added additional options -gzip, -zip, -max_wu_per_file to db_purge. The - compression options are 'efficient' in that they do not write an uncompressed - file then compress -- they go straight to compressed. SIGHUP and lockfile - shutdown signals are properly caught and close compressed files and DB cleanly. - - Typo killed feeder with bad MySQL syntax - - sched/ - db_purge.C - feeder.C - -Rom 7 Dec 2004 - - Checkin changes suggested by Bruce Allen and Bernd Machenschalk related to - compiling in pure ANSI C environments. - - lib/ - boinc_win.h - diagnostics.h - filesys.h - -David 7 Dec 2004 - - fix update_versions to allow signature files (.sig) - for files other than the main program - - make_project: create forum_index.php, rss_main.php, status.php - for new projects (from sample files) - - make_project: fill in reasonable values in config.xml for - min_sendwork_interval, max_wus_to_send, daily_result_quota, - disable_account_creation, and show_result - py/Boinc/ - setup_project.py - tools.py - tools/ - update_versions - -Bruce 7 Dec 2004 - - Moved RCSID tags to END of all .c .C and .cpp files, as per - David's request. - - Added additional normal and debug log output to db_purge - - sched/ - db_purge.C - -David 7 Dec 2004 - - fixed PHP bug: account key missing from emails - - html/inc/ - email.inc - -David 8 Dec 2004 - - change makefiles so that libboinc, libboinc_api and libboinc_api_graphics - have disjoint contents - - change client makefile so it uses libboinc instead of separate .o files - - added my .vimrc - - .vimrc - api/ - Makefile.am - apps/ - Makefile.am - client/ - Makefile.am - lib/ - Makefile.am - -David 8 Dec 2004 - - web site: added Team leaderboards broken down by type (see team.php) - - html/ - inc/ - team.inc - util.inc - user/ - sample_index.php - team.php - top_teams.php - -Rom 8 Dec 2004 - - While looking for something else about wxListCtrl in the source I found - references to Freeze()/Thaw() which should reduce flicker on platforms - other than Windows. I'm going to try and implement the same thing with - Windows in a roundabout fashion. - - clientgui/ - BOINCBaseView.cpp - -David 8 Dec 2004 - - moved bmplib and tgalib from seti_boinc to boinc/api - - api/ - Makefile.am - bmplib.C,h (new) - tgalib.C,h (new) - -David 8 Dec 2004 - - added boinc_report_app_status() function to API - (lets controllers report CPU time etc.) - - api/ - boinc_api.C,h - client/ - Makefile.am - -Bruce 9 Dec 2004 - - Fixed broken build (and removed non-functional broken fix). API - subdirs must be built first. - - Removed bmplib.C tgalib.C from api/Makefile.am as workaround - for missing header files + code. Note: header files must also - be listed among source files! - - Makefile.am - client/ - Makefile.am - api/ - Makefile.am - -David 9 Dec 2004 - - put user name in confirmation email correctly - - html/user/ - account_setup_nonfirst_done.php - create_account_action.php - -David 9 Dec 2004 - - Fix error in HTTP logic used in file uploading: - When we've received the HTTP header for a file upload reply, - don't set io_done to true; - otherwise we'll immediately try to read the reply body, - and it might not be there yet. - - api/ - Makefile.am - client/ - http.C,h - net_xfer.C,h - -David 9 Dec 2004 - - Really fixed the above problem. - The HTTP code was looking at the wrong flag - (io_done, should have been io_ready) - in the POST2 case waiting for reply body - - api/ - boinc_api.C - client/ - http.C,h - -David 10 Dec 2004 - - added a function get_file_dir() (in lib/filesys.C) - that searches the directories in the PATH env var, - looking for an executable file with a given name - (this is so boincmgr can find boinc on Unix) - - client/ - http.C - lib/ - filesys.C,h - util.C,h - - -Rom 10 Dec 2004 - - Bug Fix: Under the previous arrangement there was a timer event that would - fire off once a second to check for the possiblility that the item in the - list view had been deselected. We weren't receiving a deselection event - for single selection controls. So I've ripped out the timer code and - trapped the controls click event, and check the controls state. - - If we are a single selection control and the current selection is different - from the row that has focus, then manually send the deselection event. - - If we are a multi selection control, check to see if anything is selected, - if not, then manually send the deselection event. - - This has the added bonus of making our UI seem faster. - - NOTE: I know this wasn't on the list to fix this release, but it was driving - me nuts. - - clientgui/ - BOINCBaseView.cpp, .h - BOINCGUIApp.cpp - BOINCListCtrl.cpp, .h - MainFrame.cpp, .h - - -David 10 Dec 2004 - - Refactored the app graphics code so that it can be used in 2 ways: - 1) Linked with the main program. - This works OK on Windows, but on UNIX there's the problem - that the app won't run unless the required libraries - (openGL, X11) are present. - 2) Graphics code in a separate shared library. - The main program calls a new function boinc_init_graphics_lib(), - giving it the name of the shared library. - This function tries to open the library. - If this fails (e.g. because X11 libs aren't there) - it runs the application without graphics. - Otherwise it calls the graphics initialization routine - in the library, which creates the graphics thread. - - This case is tricky because the library's initialization routine - can't directly call boinc_init() (from boinc_api.C). - Doing so requires boinc_api.o to be linked with the library, - which gives it separate copies of all the static variables. - This produces a situation where, e.g., there are two copies of - "fraction_done"; the one in the main program gets updated, - the one in the library remains zero and - gets reported to the core client. - - To solve this problem, the library's initialization routine - takes a pointer to boinc_init() as an argument, - and calls it via that pointer. - boinc_api.o must NOT be linked with the shared library. - - Bruce Allen thought up the idea of doing graphics - in a separate library. - - TODO: graphics_lib.C isn't finished. Bruce? - - api/ - graphics_api.C - (link this with monolithic apps) - graphics_impl.C,h (new) - (link this with monolithic apps, - and with the shared library in the non-monolithic case) - graphics_lib.C,h (new) - (link this with the main program in the non-monolithic case) - -David 10 Dec 2004 - - Fixed a bug in the validator that could cause WUs to - get stuck in a state where they have no canonical result, - no results in progress, and no transition scheduled. - - 1) After calling check_set(), count the number "nsuccess_results" - of results that still have outcome == SUCCESS - (this may have changed, since check_set() can change - the outcome to VALIDATE_ERROR). - - 2) If check_set() fails to find a canonical result, - always schedule an immediate transition. - - 3) If nsuccess_results >= target_nresults, - set target_nresults to nsuccess_results+1. - This ensures that the transitioner will make a new result, - even in pathological cases (e.g. nsuccess_results > target_nresults) - - sched/ - validator.C - -Bruce 10 Dec 2004 - - David, here's a rough pass, I haven't even tried to compile - it. Please read comments in-line. I think the major - shortcoming is - that most (all?) apps will want to use 'handle' to resolve their - own functions to communicate data from worker to app graphics. - Perhaps we should provide an additional argument to - boinc_init_graphics_lib() for that purpose? At the right point, - after sucessful dlopen(), boinc_init_graphics_lib() will call - that user-supplied function (if not NULL) passing it handle. - On return boinc_init_graphics_lib() will then carry on and start - graphics. - It's fun working on a file that's not in Makefile. No guilt! - - api/ - graphics_lib.C - -David 10 Dec 2004 - - Spiffed up Bruce's code a little and got it compile. - The DLL handle is now available as a global variable - (graphics_lib_handle) - - change BOINC_OPTIONS::defaults() to a regular function, - options_defaults(BOINC_OPTIONS&). - More of the API (e.g. boinc_init_options()) is now "pure C" - - api/ - boinc_api.C,h - grpahics_impl.C - graphics_lib.C,h - -David 10 Dec 2004 - - Added clientgui/Makefile.mac - Currently, to use this you have to: - - install Wxwidgets 2.5.3 at the same level as boinc/ - - create clientgui/ in the wxwidgets samples directory - - copy the contents of boinc/clientgui there - - make -f Makefile.mac - - clientgui/ - Makefile.mac (new) - stdwx.h - -David 11 Dec 2004 - - Fixed Makefile.am for building graphics libs - - api/ - Makefile.am - -Bruce 12 Dec 2004 - Added extern C declarations to a couple of header files: - - In graphics_lib.h, this is for compatibility with pure C - applications. - - In graphics_impl.h, this would be needed EVEN if we were - never building app or library with anything other than C++. - It's because dlsym() can only work if you pass it a non-name - mangled symbol. Please see: - http://www.isotton.com/howtos/C++-dlopen-mini-HOWTO/C++-dlopen-mini-HOWTO.html - for futher edetail. - - Comments added to graphics_lib.C, better error message. - - api/ - graphics_lib.C - graphics_lib.h - graphics_impl.h - -David 12 Dec 2004 - - spruced up graphics lib stuff, removed a "*" that may have caused crash. - - api/ - boinc_api.h - graphics_api.h - graphics_impl.C,h - graphics_lib.C,h - -David 13 Dec 2004 - - bug fixes for graphics lib stuff. - Code in the app's graphics shared library (including x_opengl.C) - must not directly reference variables in the main program - (e.g. app_client_shm) because it will have "shadow" copies of them. - - Changed the graphics_impl interface so that the shared library - function gets passed a pointer to a structure (BOINC_MAIN_STATE) - containing everything it will need to access. - - This is a first pass. May need to add more to BOINC_MAIN_STATE. - And should clean up .h file structure so that compiler will - enforce constraints. - - api/ - graphics_api.C,h - graphics_impl.C,h - graphics_lib.C - x_opengl.C - -Karl 2004-12-13 - - Fixed testbase to work with Python 2.4. - - test/ - testbase.py - -David 13 Dec 2004 - - Fix a bug where a result could potentially bounce back - and forth between the transitioner and the validator. - This could happen if there are min_quorum success results, - and there's no consensus. - The fix: - - added new value for result.validate_state: - VALIDATE_STATE_INCONCLUSIVE means that check_set() - was called for the result and it didn't find a canonical result. - - The transitioner sets workunit.need_validate - if there are min_quorum success results, - and at least one is VALIDATE_STATE_INIT - (no change - this is how it currently is) - - validator: - consider results that are both INIT and INCONCLUSIVE - If check_set() doesn't find a quorum, - set all result states to INCONCLUSIVE - - Thanks to Kjell Nedrelid (Rattledagger) for finding this. - - added logic to admin HTML to show INCONCLUSIVE state - - Took boinc_real_escape_string() stuff out of HTML ops code. - If prevented SQL queries from working on isaac - - db/ - boinc_db.h - html/ - inc/ - db_ops.inc - result.inc - user.inc - ops/ - db_action.php - sched/ - assimilator.C - transitioner.C - validator.C - -Rom 13 Dec 2004 - - Bug Fix: BOINC Manager needs to initialize the System Idle Tracker - in order for BOINC to detect if the system is idle. - - BOINC Setup for Windows - The UI is now complete for the Single, - Shared, and Service install types. - - clientgui/ - BOINCGUIApp.cpp, .h - win_build/installerv2/ - BOINC.ism - -Janus 13 Dec 2004 - - Added a text-box that displays how many more chars the user can - write in the signature on forum prefs page - (Thanks goes to Christian) - - Also made changes to make this file HTML 4.01 transitional valid - - html/user/ - edit_forum_preferences_form.php - -David 14 Dec 2004 - - Win compile fix - - api/ - windows_opengl.C - -David 14 Dec 2004 - - moved mem_usage() from api/boinc_api.C to lib/mem_usage.C (new) - and changed its return value from (int) KBytes to (double) bytes. - POLICY: BOINC INTERNALS NEVER USE UNITS LIKE KBYTES. - USE THE NATIVE UNIT (E.G. BYTES), AND STORE IT IN A DOUBLE. - - changed the XML tags used in - - API messages - - GUI RPCs - - client_state.xml - for storing VM sizes. - This doesn't justify a major-version change since we - don't use these for anything critical. - - api/ - boinc_api.C - graphics_impl.h - graphics_lib.C - client/ - app.C,h - app_control.C - cs_apps.C - lib/ - Makefile.am - mem_usage.C,h (new) - gui_rpc_client.C,h - -David 14 Dec 2004 - - win compile fix - - lib/ - mem_usage.C - win_build/ - upper_case.vcproj - -David 14 Dec 2004 - - Added code to validator to maintain host.avg_turnaround - - sched/ - validator.C - -David 14 Dec 2004 - - Added a version of boinc_get_init_data() to graphics_impl.C - - api/ - graphics_impl.C - -Reinhard Prix 2004-12-15 - - Make sure that when --enable-maintainer-mode is used, automatic - re-configuration will find the proper macro-definitions in m4. - - Makefile.am - -David 14 Dec 2004 - - Moved boinc_get_init_data() from graphics_impl.C - to a new file, graphics_impl_lib.C - (included in libboinc_graphics_impl.a, but not in libboinc_graphics.a) - to resolve a duplicate-name problem - - api/ - Makefile.am - graphics_impl.C - graphics_impl_lib.C (new) - -Rom 15 Dec 2004 - - Setup should now be able to handle both the Single and Shared installation - types. - - win_build/installerv2/ - boinc.ism - -David 15 Dec 2004 - - transitioner: - if WU has error, set unvalidated results to VALIDATE_STATE_NO_CHECK - - Web: - - show WU error flags to users - - show link to canonical result on WU page - - clearer heading for deadline colors - - html/ - inc/ - result.inc - util.inc - user/ - workunit.php - sched/ - transitioner.C - -Rom 16 Dec 2004 - - Bug Fix: Apparently you cannot use the default constants that are normally - a part of the environment for a vbs script, - then in turn kept all the functions from returning the proper values. - - Bug Fix: Use the Session.Message functionality to report errors - to both the log file and the UI so we can actually see something - useful from dialog boxes and log files. - - Bug Fix: Prepopulate the service username field with the current user info - for the service install type - - Bug Fix: Remove the user domain field from the service config screen - to make room for the local system checkbox at some point - in time in the future. - - Bug Fix: Prevent an administrator from selecting an invalid - SETUPTYPE and ALLUSERS property combination. - I spent the better part of the day trying to figure out - how I might change the execution sequence so that changing the - ALLUSERS property based on the SETUPTYPE field would yield the right - redirection of the default folders - but it seems that the folder properties are handled via the - MSI engine itself and without a bit more knowledge I'm not - sure how to do it. But this only affects - those installing via the commandline or via some mass deployment - scenario and so just throwing an error is okay. - The errors describe the problem and how to fix it. - - The UI handles this automatically, - so the average install scenario won't have to worry about this. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - -David 16 Dec 2004 - - User web: put a cap of 10 days on network connect period - - User web: organize prefs page layout so that venues - are grouped more clearly. - Still needs some work. - - html/ - inc/ - prefs.inc - util.inc - user/ - prefs_edit_form.php - white.css - -David 16 Dec 2004 - - User web: let the founder of a team change the founder to - any other member (from Django Fett) - - html/ - inc/ - db_ops.inc - user/ - team_change_founder_action.php (new) - team_change_founder_form.php (new) - team_manage.php - -David 16 Dec 2004 - - transitioner: if a result times out, update the hosts' - avg_turnaround (charge it with the full delay bound) - - scheduler: print work_req_seconds as a double, not int - - db/ - boinc_db.C,h - sched/ - sched_send.C - transitioner.C - -Rom 16 Dec 2004 - - Rework the CPU and Model Identification code on Windows so that - the specific CPU model is reported in the p_model field instead - of the p_vendor field. This fixes a bug in the predictor project - where new processors not already known to the OS were being flagged - as unknown and causing homogeneous redundancy to fail. - - The vendor ID was being detected, it just wasn't being included - in the p_vendor field if a processor identifier was being detected. - The OS aparently throws in an 'Unknown CPU typ' string in the cases - where it cannot determine the proper string to put in the registry. - - client/win/ - hostinfo_win.cpp - -Rom 16 Dec 2004 - - Bug Fix: Make sure that BOINC Manager can be started after setup completes - - Bug Fix: Make sure the read me can be displayed after setup completes - - Bug Fix: Do not display the options for launching the BOINC Manager or - the readme during an uninstall operation - - Bug Fix: Make sure permissions are updated during install based on - the selected install type - - Bug Fix: Only create the startup shortcut when the ENABLELAUNHCATLOGON - property is set. - - Bug Fix: Only enable the screensaver when the ENABLESCREENSAVER property - is set. - - Note: The screensaver and shortcut properties had been implemented awhile - ago, but the MSI package was doing something goofy with them. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - -David 16 Dec 2004 - - bug fix: resident-set size on Linux was wrong - - lib/ - mem_usage.C - -Rom 17 Dec 2004 - - Bug Fix: Windows Scripting host needs to be installed before our setup - can work, so install it. - - Bug Fix: If the SETUPTYPE is Service or ServiceGUI perform validation - on the service account username and password - - Bug Fix: If the service useraccount doesn't already have the - 'Logon As A Service' right grant it. - - Bug Fix: If the SETUPTYPE is Service, install it as a Windows service - under the specified user account - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - - < Added a bunch of files required for various setup things > - -David 17 Dec 2004 - - VALIDATOR_ITEM: need to read receive_time so can update - host.avg_turnaround - - db/ - boinc_db.C - sched/ - transitioner.C - -Rom 17 Dec 2004 - - Bug Fix: Should prereq the grant.exe tool for rights management - - Bug Fix: Redirect the grant rights vbscript to point to grant.exe - new location - - Now we can install the service via the commandline, need to hookup - the rights change confirmation dialog box - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - - < Added a bunch of files required for various setup things > - -David 17 Dec 2004 - - Graphics lib tweaks: changed "bmsp" to "g_bmsp". - This eliminates a case (in boinc_init_graphics_impl()) - where an arg shadowed a global var. - - Added boinc_is_standalone() (hook version) to graphics_impl_lib.C - - api/ - graphics_impl.C,h - grpahics_impl_lib.C - x_opengl.C - -Rom 17 Dec 2004 - - Bug Fix: Prompt the user for the permission to grant the selected account - the right to logon as a service - - Bug Fix: Fix an ACL problem when installing as a service, and the account - is not part of the administrators group - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - -David 17 Dec 2004 - - User web: refer to boinc.berkeley.edu for client download in all cases - - html/user/ - account_setup_first_action.php - -Rom 17 Dec 2004 - - Bug Fix: Remove customer information screen - - Bug Fix: Change splash screen - - Bug Fix: Only prompt for permission to change user rights if the install - type is a service install type - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - -David 17 Dec 2004 - - feeder: if a result's WU refers to nonexistent app, - print error message and exit - - core client: if can't create/bind/listen GUI RPC socket, - print error message and exit - - client/ - client_state.C - sched/ - feeder.C - -Rom 17 Dec 2004 - - Bug Fix: Use an MSI DLL instead of grant.exe to grant the 'Logon As a Service' - right. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - - < Added a bunch of files required for various setup things > - -Janus 18 Dec 2004 - - Added description of the new colored column "Time reported or deadline". - - Added "Done" to the possible client states in "client state" - descriptions. - - New way of displaying the threadlist: Will use icons to tell if threads - are new/unread, important or filtered. - - Usual HTML corrections - - html/inc - forum.inc - foum_show.inc - result.php - html/user - explain_state.php - results.php - filtered_post.png [new] - -Rom 18 Dec 2004 - - Make the idle detection code work again on the Windows platform. - - Thanks to Eric Toungdale for pointing out what needed to be done to - fix it. - - I claened up the orginal implementation a bit, reenabled some of the - debugging code that was remarked out. - - client/ - main.C - client/win/ - hostinfo_win.cpp - win_idle_tracker.cpp - lib/ - hostinfo.h - -Rom 18 Dec 2004 - - Add another layer of checks for Windows 2000 or better machines to get - try and get graphics to appear. - - api/ - windows_opengl.C - client/win/ - win_screensaver.cpp - -David 18 Dec 2004 - - BOINC_MAIN_STATE.app_client_shm was being copied - from the variable app_client_shm before the variable was initialized. - Fix this by changing BOINC_MAIN_STATE to point to the variable - rather than having a copy of it. - - api/ - graphics_api.C - graphics_impl.h - graphics_lib.C - x_opengl.C - -David 19 Dec 2004 - - fix compile of old Win GUI - - update BOINC manager messages a little - - client/win/ - wingui_mainwindow.cpp - clientgui/ - ViewMessages.cpp - ViewProjects.cpp - ViewResources.cpp - ViewTransfers.cpp - -David 20 Dec 2004 - - User web: - don't call db_init() in profile.inc. - This should be done by top-level files, not .inc files - - Admin web: - replaced brain-damaged "screen profiles" page. - The old one did 2 sequential scans of the profile table - for each screened profile. - The new one does 1 sequential scan for 20 screened profiles. - - html/ - inc/ - host.inc - profile.inc - ops/ - index.php - profile_ops.php (removed) - profile_screen_action.php (new) - profile_screen_form.php (new) - user/ - create_profile.php - delete_profile.php - edit_forum_preferences_action.php - profile_menu.php - view_profile.php - -David 20 Dec 2004 - - have assimilate_handler return an error code. - If nonzero, assimilator exits - (don't want to mark WUs as assimilated if temporary NFS failure, e.g.) - - improve docs on file management, added doc on file_deleter - - added doc on backend utility funcs - - improve docs on assimilate_handler() - - core client: if an output file is too big, print info on size, limit - - client/ - cs_apps.C - doc/ - various - backend_util.php (new) - benchmark.php (new) - file_deleter.php (new) - sched/ - assimilate_handler.h - assimilator.C - assimilator_placeholder.C - file_deleter.C - sample_dummy_assimilator.C - sched_util.C - validate_util.C - -David 20 Dec 2004 - - modify scheduler to handle bad host IDs gracefully. - E.g.: it a project accidentally deletes its host table, - things will eventually return to normal without - users having to detach/reattach - - Old logic: - look up host based on request.hostid - look up user based on host.userid - if user.authenticator != request.authenticator - send error message and delay request - - New logic: - look up host based on request.hostid - If not found, create new host record and return its ID - look up user based on request.authenticator - if no such user - send error message and delay request - if host.userid != user.id - create new host record and return its ID - - sched/ - handle_request.C - -David 20 Dec 2004 - - app graphics: on Mac, reinit GLUT on each restart - Bruce: please test - - api/ - x_opengl.C - -Rom 21 Dec 2004 - - Circumvent identity spoofing on the boards by displaying the - user id of the poster. - - html/inc - forum.inc - -Bruce 22 Dec 2004 - - Spent several hours tracking down a problem that turned - out to be the fact that sizeof(bool) is not consistent - even across gcc. It's 4 bytes on gcc 2.95, 1 byte on - gcc 3.0, 1 bytes on gcc 3.3 on x86 and 4 bytes on gcc 3.3 - on OSX. Botton line: one MUST eliminate bool from any - library object that's meant to be used in the public - API available from C. I started fixing this across more - of the API but got nervous that this would break the E@h - builds and cause even more delay. So did a minimal fix - for now: changed boinc_time_to_checkpoint() to return int. - - api/ - boinc_api.C - boinc_api.h - apps/ - upper_case.C - doc/ - api.php - client_app.php - -Rom 22 Dec 2004 - - Fix globalization/localization bugs related to the fact that we - only lookup the information once, and it needs to be after - the wxLocale object is created. - - Add the ability for the task control to have a horizonal rule - - Create a CreateTask API that doesn't require a reference to a bitmap - - Remove icons from the various tasks until we can get some better - visuals - - Fix a flicker bug when no item is selected on the project tab - and you hover over the 'attach to new project' or 'BOINC' links - - Remove the ability to expand or collapse the various headers - - Per comunity feedback, reorder the project tasks and put a - horizonal rule between the three groups of actions. - - clientgui/ - BOINCBaseView.cpp, .h - BOINCTaskCtrl.cpp, .h - ViewMessages.cpp, .h - ViewProjects.cpp, .h - ViewResources.cpp, .h - ViewTransfers.cpp, .h - ViewWork.cpp, .h - -Rom 22 Dec 2004 (boinc) - - Tag for 4.57 release, all platforms - boinc_core_release_4_57 - -David 22 Dec 2004 - - shuffle logic in xwin_graphics_event_loop() to deal with - situation where glutInit() calls exit() - - api/ - x_opengl.C - -Karl 2004-12-25 - - Link to http://bioinformatics.pzr.uni-rostock.de/~moeller/debian/boinc/ - (Stephen Möller's Debian packages) - - Clarify centiversions - - doc/ - anonymous_platform.php - -David 25 Dec 2004 - - core client: change WORKUNIT::command_line from char[256] to std::string. - This increases the limit on cmdline length from 256 to 8192 - (there's still a fixed-size buffer in the Unix startup code). - - It turns out there were no limitations on the server side. - - Also, change the representation in the core state file from - blah - to - - blah - - to accommodate long command lines (can be many lines). - Each line is limited to 4096 chars - - process_wu_template(): replace a 64KB buffer with a std::string. - There's still a 64KB length limit, - but this way overruns are caught and reported - instead of create_work crashing. - - client/ - app_start.C - client_types.C,h - tools/ - backend_lib.C - -David 25 Dec 2004 - - bug fix (from Nikolay Saharov): if user minimized app graphics window, - then closed it, then did "show graphics" again, - the result would be a nonexistent window, - impossible to manipulate. - Fix this by using original window size if window - is minimized or maximized - - compile fixes for SETI@home on Windows - removed extern "C" on jpeglib.h include (why did I need this - in the first place??) - api/ - gutil.c - gutil.C - windows_opengl.C - win_build/ - config.h (new) - win-config.h (new) - -David 26 Dec 2004 - - User web: define a function process_user_text() that - should be applied to any user-supplied text used in a SQL query. - It does trim(), stripslashes(), and boinc_real_escape_string() - - Update the account-creation and account-editing pages - to use the above; needs to be added a few other places too - - Remove the db_init() from forum.inc - and add db_init() as needed to .php files - (.inc files should NOT do db initialization) - - html/ - inc/ - db.inc - forum.inc - util_ops.inc - user/ - create_account_action.php - edit_user_info_action.php - forum*.php - -David 26 Dec 2004 - - If a project is suspended via GUI, - don't to any scheduler RPCs or master URL fetches for it - - client/ - cs_scheduler.C - -David 26 Dec 2004 - - Code cleanup in db_purge.C - - sched/ - db_purge.C - -David 27 Dec 2004 - - Add a -min_age_days N option to db_purge. - It will only purge WUs whose mod_time is at least N days ago. - - Change an index on workunit to make this efficient - - have setup_project.py copy db_purge - - Note: if you use this version of db_purge you should modify - the index workunit.wu_filedel. - You can do this manually or using html/ops/db_update.php - - db/ - constraints.sql - html/ops/ - db_update.php - lib/ - util.C,h - py/Boinc/ - setup_project.py - sched/ - db_purge.C - -David 27 Dec 2004 - - small fixes - - html/inc/ - uotd.inc - sched/ - db_purge.C - -David 27 Dec 2004 - - user web: apply process_user_text() to login text - - upgrade --help now works - - html/ - inc/ - util_ops.inc - ops/ - profile_screen_action.php - profile_screen_form.php - user/ - login_action.php - tools/ - upgrade - -David 27 Dec 2004 - - UNIX app graphics: if glutInit() fails, keep retrying periodically - (in case user runs X server, e.g.) - - scheduler: scan the work array from a random point, - instead of always from the start. - This prevents a result from getting stuck at the end - of the array, and possibly never getting sent. - (from Ben Herndon) - - api/ - x_opengl.C - lib/ - util.h - sched/ - main.C - sched_send.C - -David 27 Dec 2004 - - web fixes from Eric Myers - - html/inc - cache.inc - forum.inc - -Bruce 28 Dec 2004 - - fixes from Reinhard Prix to disable building of boincglut under - Darwin/Unix. It's only needed under Windows. Also warn user if - GLUT libraries missing, and then build only non-graphical client - side code. - - Makefile.am - configure.ac - api/ - Makefile.am - -Bruce 29 Dec 2004 - - make X/Unix graphics not fail if GLUT calls abort(3). This - generated a SIGARBT. We now catch this signal. In the - graphics thread, this just restarts the graphics init process - (with some sleep(2)ing if needed to prevent a busy fail loop). - If the signal is caught in the main thread, we restore the old - signal handler then raise(SIGABRT). - - David, note that when run standalone, killing the graphics - window does NOT kill the process. I think this is fine, but - it doesn't correspond to what the documentation says. - - Added hyperlink to WUs on ops pages (Hyperlink to WUs. Thanks - to Christian (DjangoFett@gmx.net). - - api/ - x_opengl.C - html/ - inc/ - db_ops.inc - -David 29 Dec 2004 - - (from James Drews) Add a "don't request more work" request for projects. - Inhibits requesting more work, - but allows completion and reporting of work to continue. - Added a GUI RPC to do this, - and also a menu command in the old Win GUI. - Implemented using a boolean in PROJECT - (saved/restored in client_state.xml) - - Removed win_config.h and win-config.h. - Put all "#ifdef HAVE_*" constructs inside #ifndef _WIN32 - Include version.h to get BOINC_MAJOR_VERSION etc. - - Now - what exactly are the roles of client/cpp.h and boinc_win.h??? - - win_config.h (removed) - api/ - boinc_api.C - client/ - client_types.C,h - cpp.h - cs_scheduler.C - gui_rpc_server.C - win/ - boinc_cli.rc - boinc_dll.rc - boinc_gui.h,rc - boinc_ss.rc - wingui_mainwindow.cpp,h - lib/ - gui_rpc_client.C,h - gui_test.C - mem_usage.C - win_build/ - config.h - win-config.h (removed) - -David 29 Dec 2004 - - (from Reinhard Prix) - X app graphics: check that a window actually has been opened - prior to calling glutMainLoop() - (just waiting for a message is not enough - - the message might be REREAD_PREFS) - - api/ - x_opengl.C - -Bruce 30 Dec 2004 - - - When creating large numbers of WU which have large input files, - the cost of computing the md5 sums becomes expensive. Inserted - a simple caching mechanism into the utility function - process_wu_template(). For a given filename FILENAME, this looks - for a file called FILENAME.md5, which contains the md5sum and - length. If the file exists, these values are used. If not, such - a file is created. Since (I think) David is planning to have a - database for files, this mechanism will eventually be obsolete. - Right now it disabled by default. Use -DBOINC_CACHE_MD5 to - enable it. - - tools/ - backend_lib.C - -Bruce 31 Dec 2004 - - - Some improvements on the md5-info caching. If the 'data' file is - more recent than the 'md5info', then ignore md5info. If md5info - has *exactly* the right format (no extra or missing characters) then - remove it in this case (only). Don't write an md5info file if - another file is found with the same name. Thus if someone has two - data files called X and X.md5, unless X.md5 has the exact correct - syntax for an md5-info cache file, it won't be removed or used. - Still disabled by default. Use -DBOINC_CACHE_MD5 to enable it. - - - Improvements to ops/ pages, from Christian Beer. Show all fields of - WU. Display status summaries based on mod-times. - - - Make 'grep logs' function assume default of *.log for filenames, unless - specified. - - tools/ - backend_lib.C - html/ - inc/ - db_ops.inc - util.inc - ops/ - show_log.php - - David 1 Jan 2005 - Deprecated the bad hash function used for the upload/download directory hierarchies. diff --git a/checkin_notes_2002 b/checkin_notes_2002 new file mode 100644 index 0000000000..3a5778ffe7 --- /dev/null +++ b/checkin_notes_2002 @@ -0,0 +1,2814 @@ +;; -*- mode: text; tab-width: 4; indent-tabs-mode: nil; -*- + +David A. April 10 2002 + Initial checkin of all files. + The system is fairly feature-complete and + runs a number of test cases correctly. + Currently runs only on Linux. + +David A. April 11 2002 + - Got things to compile on Solaris. + - Pass in platform name, version number from Makefile + (platform name comes from configure) + +David A. May 15 2002 + - Allow applications to have multiple files + (e.g. scripts, libraries, pre- and post-processing programs). + The app_version table now has an xml_doc field, + which contains a list of and elements. + Note: the utility for adding applications (tools/add.C) + still handles only single-file applications. + - Changed IO_FILE_DESC to FILE_REF since it now represents + an association of a file to workunit, result or application + + client + app.C + client_state.C,h + cs_apps.C + cs_scheduler.C + main.C + message.h (new) + parse.C,h + scheduler_reply.C,h + types.C,h + Makefile.in + db + db.h + db_mysql.C + schema.sql + doc + app.html (new) + files.html + index.html + intro.html + project.gif + project.html + project.png + protocol.html + result.html (new) + work.html + html_user + db.inc + sched + handle_request.C + server_types.C,h + test + test_uc.php + init.inc + tools + add.C + +David A. May 23 2002 + - Change the scheduling server to reduce database accesses. + There's now a shared-memory segment that contains + 1) the platform, app, and app_version tables in their entirety; + 2) a fixed-size set of results ready to be sent, + and their corresponding workunit. + This segment is initialized and maintained by a new program + called the "feeder" (sched/feeder.C) that should run + whenever the scheduling server is up. + Note: the scheduler still needs to be converted to fast CGI + - Added handy interfaces for dealing with shared memory and semaphores. + - Changed to utilities and scripts used for testing so that all + server-specific names (paths and URLs) come from environment + variables instead of being hardwired in the code. + You'll want to add these to your .tcshrc or whatever. + See the doc/install.html for details. + + Files: + TODO + apps/ + Makefile.in + client/ + app.C + db/ + db.h + doc/ + index.html + install.html + intro.html + tools.html (removed) + tools_other.html + tools_work.html + work.html + lib/ + Makefile.in + md5_file.C + shmem.C,h (new) + shmem_test.C (new) + synch.C,h (new) + synch_test.C (new) + sched/ + feeder.C (new) + Makefile.in + handle_request.C,h + main.C + sched_shmem.C,h (new) + server_types.C,h + test/ + account.xml (deleted) + account1.xml + init.inc + test_uc.php + tools/ + add.C + create_work.C + +Hiram C. Fri May 24 23:34:59 PDT 2002 + files db/dependencies and client/config.status and client/config.log + removed. These are build time files and should not belong + in the source tree. They confuse subsequent builds. + files updated: configure configure.in api/Makefile.in + apps/Makefile.in client/Makefile.in db/Makefile.in + db/mysql.h lib/Makefile.in sched/Makefile.in + tools/Makefile.in + + These Makefile.in changes will allow the build to be performed + outside the source tree. This is convenient for several + reasons. The number one reason is that this allows the source + tree to remain untouched by the build and therefore clean. + This will prevent garbage build files from being checked in + during a 'cvs commit' + + To run a build outside the source tree, simply make an object + directory anywhere else that you would like to work, then just + execute the configure script in the top-level boinc directory. + $ mkdir boincobj + $ cd boincobj + $ <... path to source tree ...>/boinc/configure + $ make > make.out 2>&1 & + + Note the examples in apps/Makefile.in and sched/Makefile.in + of how to use the top_srcdir variable to locate include files + in the source tree outside of the current directory. Local + references to other object files and libraries produced by + the build remain as local .. references. + + The change to configure.in, (and thus configure) and db/mysql.h + allow a proper identification of where the mysql .h files live. + The SSL location of /usr/local/mysql/include is a bit non-standard. + Most systems will have these in /usr/local/include/mysql + +Hiram C. Sat May 25 09:20:25 PDT 2002 + Continue updating: + Makefile.in config.guess configure configure.in api/Makefile.in + apps/Makefile.in client/Makefile.in client/config.guess + client/configure client/configure.in sched/Makefile.in + tools/Makefile.in + + I have almost clean builds now on Solaris, Mac OS X, + and UnixWare. There appears to be a missing sched_shmem.h + file from the source tree. + + There is still cruft in this configure system. I will continue + to work on it to clean it up. + +David A. May 29, 2002 + - Mostly implemented support for editing preferences, + including project-specific preferences. + Simplified the preferences scheme. + Abandoned the idea of multiple preference sets per user; + each user now has a single set of preferences. + Got rid of the "prefs" database table; + prefs are now just an XML and mod_time field in the user table. + Haven't tested much yet. + + NOTE: these new features use the XML parsing features of PHP. + This means that, on the BOINC web server, + you must configure PHP with the --with-xml option, + and you must make and install Apache. + Also, you probably need to use a recent version of PHP; + XML parsing was broken in PHP 4.0.4, but it works in 4.2.1. + + client/ + Makefile.in + speed_stats.C (fixed code formatting a bit; doesn't compile on linux) + db/ + Makefile.in + db.h + db_mysql.C + schema.sql + doc/ + prefs.html + html_user/ + db.inc + prefs.inc + prefs.php + prefs_action.php (removed) + prefs_add_project_action.php (new) + prefs_add_project_form.php (new) + prefs_delete_project.php (new) + prefs_delete_project_confirm.php (new) + prefs_edit.php (removed) + prefs_edit_disk_action.php (new) + prefs_edit_disk_form.php (new) + prefs_edit_project_action.php (new) + prefs_edit_project_form.php (new) + prefs_edit_projects.php (new) + prefs_edit_work_action.php (new) + prefs_edit_work_form.php (new) + test.php (removed) + sched/ + handle_request.C + server_types.C,h + test/ + init.inc + test_1sec.php + test_concat.php + test_dynamic.php + test_prefs.php + test_projects.php + test_stderr.php + test_uc.php + test_uc_slow.php + tools/ + add.C + +David A. May 29, 2002 + - forgot to add a couple of files + sched/ + feeder.C + sched_shmem.C,h + +Hiram C. Thu May 30 01:28:47 PDT 2002 + updating: client/configure client/configure.in + client/net_xfer.C sched/Makefile.in sched/feeder.C + + This now builds just fine on Solaris, Linux and OpenUnix8. + And only two tiny errors remain for a Mac OS X build. + That being the specification of g++ in the sched/Makefile + and statvfs() is not available on the Mac for + the client/hostinfo_unix.C compile. Need a substitute for + that function on the Mac. + +Eric H. May 30, 2002 + Added safeguard to avoid removing root directory when + BOINC_DOWNLOAD_DIR and BOINC_UPLOAD_ DIR environment + variables aren't declared. + test/ + init.inc + +David A. June 1, 2002 + - Ensure that preferences propagate from the server + where they are updated to all hosts, + Eliminated concept of "home project". + Not tested yet. + Also to do: replace the "accounts.xml" file with + a file containing preferences. + - Changed the way the client handles preferences. + It now saves saves the exact XML it gets from the server, + regardless of whether it can parse it all. + - Fixed client parsing code to reflect new names for preferences + - Changed the way the scheduling server handles prefs in + a client/server interaction. + If it gets newer prefs, it updates its own DB. + If its DB has newer prefs, it sends them to client. + - Fixed the test scripts so that they start/stop the feeder also. + This required adding a "ready" flag to the shared-mem structure + so that the scheduling server can find out if the feeder hasn't + finished initializing the structure. + Also required adding a "-synch" cmdline option to feeder. + - added utility program (sched/show_shmem.C) for looking at + scheduler shared memory + - renamed "types.*" to "client_types.*" to avoid name conflict + with system include files + + /Makefile (removed - this is derived from Makefile.in) + client/ + Makefile.in + accounts.C,h + app.C + client_state.C,h + client_types.C,h (new) + cs_files.C + cs_scheduler.C + file_names.h + file_xfer.h + hostinfo_unix.C + net_xfer.C + prefs.C,h + scheduler_reply.C,h + speed_stats.C + types.C,h (removed) + db/ + constraints.sql + doc/ + protocol.html + html_user + prefs.inc + sched/ + feeder.C + handle_request.C + main.C + sched_shmem.h + server_types.C,h + show_shmem.C (new) + ss_reply_file (removed) + ss_req_file (removed) + test/ + account1.xml + init.inc + sched_reply.xml (removed) + sched_request.xml (removed) + test_uc.php + tools/ + add.C + +Eric Heien June 03, 2002 + - Consolidated XML parsing functions into lib + - Fixed compile bug on Solaris in shmem.C + + client/ + parse.C (moved to lib) + parse.h (moved to lib) + Makefile.in + lib/ + parse.C (moved from client) + parse.h (moved from client) + shmem.C + sched/ + parse.C (removed, uses lib version now) + parse.h (removed, uses lib version now) + Makefile.in + +Michael Gary June 04, 2002 + - Added server side water level functionality, now sends as many work units + as necessary to fill the time requested. + + sched/ + handle_request.C + +Eric Heien June 06, 2002 + - Changes and additions made to begin porting to Windows. + - This code will compile on Windows, but is not quite fully functional. + + client/ + hostinfo_unix.C + hostinfo_win.C (added) + http.C + main.C + net_xfer.C + prefs.C + speed_stats.C + test_file_xfer.C + test_http.C + test_net_xfer.C + util.C + util.h + windows_cpp.h (added) + win_main.C (added) + lib/ + md5.c + parse.C + +Michael Gary June 06, 2002 + - Added client side water level functionality. + - Added rsc_fpops and rsc_iops to the client WORKUNIT struct, bun not yet + functional since not initialized. + - Test scripts to check water level functionality, including minima and + maxima. Test scripts are based on test_prefs.php. + + client/ + client_state.h + cs_scheduler.C + client_types.h + test/ + max_water_prefs.xml (new) + min_water_prefs.xml (new) + normal_water_prefs.xml (new) + test_max_water_prefs.php (new) + test_min_water_prefs.php (new) + test_normal_water_prefs.php (new) + +Michael Gary June 07, 2002 + - Converted scheduling server to allow for Fast CGI. Fast CGI will only be + used if Makefile.in is replaced by Makefile.fcgi.in. Makefile.nofcgi.in + is a copy of the current Makefile.in. + + sched/ + feeder.C + handle_request.C + main.C + sched_shmem.C + main.C + sched_shmem.C + server_types.C + show_shmem.C + Makefile.nofcgi.in (new) + Makefile.fcgi.in (new) + lib/ + parse.C + +Eric Heien June 07, 2002 + - Added initial functionality for passing graphics preferences between core and app + + client/ + Makefile.in + app.C + lib/ + gfx_interface.C + gfx_interface.h + +Michael Gary June 08, 2002 + - Moved fast cgi Makefile.in to boinc/sched_fcgi + - make now makes fcgi in boinc/sched_fcgi + - Added links to existing code where necessary for making fast cgi + scheduling server. + + configure + Makefile.in + sched/ + Makefile.nofcgi.in (removed) + Makefile.fcgi.in (removed) + Makefile.in + parse.C (added) + parse.h (added) + sched_fcgi/ (added) + Makefile.in (added) + feeder.C (added) + handle_request.C (added) + handle_request.h (added) + main.C (added) + parse.C (added) + parse.h (added) + sched_shmem.C (added) + sched_shmem.h (added) + server_types.C (added) + server_types.h (added) + show_shmem.C (added) + +David A June 9 2002 + - added support for multiple URLs in a FILE_INFO + (e.g. multiple servers from which the file can be downloaded) + - started work on "persistent file transfer": a layer on top of + FILE_XFER that manages restarting from failed connections, + and that implements a give-up policy + - added offset arguments to GET and PUT HTTP operations. + NOTE: this will work fine for downloading files (GET) + but we'll have to use something else for upload, + since the standard PUT handler doesn't do offsets, + and we need security functionality in any case. + - added preliminary version of application API for + communicating with core client. + - use tags instead of and + (makes things simpler) + + TODO + notes + api/ + api.C,h + client/ + configure.in + client_state.C + client_types.C,h + cs_files.C + error_numbers.h + file_xfer.h + http.C,h + pers_file_xfer.C,h + test_http.C + html_ops/ + db.php + html_user/ + db.inc + test/ + 1sec_result + account2.xml + *_result + *_wu + init.inc + laptop_prefs.xml + test_*.php + tools/ + add.C + +David A June 13 2002 + - added the RSAEuro library to the project, + and some interface routines for it. + + RSAEuro/ (new) + source/* + demo/* + lib/ + crypt.C,h (new) + crypt_prog.C + Makefile.in + sched/ + file_upload_handler.C + +Eric H June 19, 2002 + - Removed redundant files + + sched/ + parse.C (removed) + parse.h (removed) + +Eric H June 20, 2002 + - added soft link support via XML tags + - fixed Windows ASCII/binary bug + - Added Windows networking support + - Fixed some bad indenting + + api/ + api.C + api.h + lib/ + md5_file.C + client/ + client_state.C + cs_scheduler.C + net_xfer.C + win_net.cpp (added) + win_net.h (added) + win_main.C (changed to win_main.cpp) + win_main.cpp (changed from win_main.C) + windows_cpp.h + +David A June 20 2002 + - Replaced the "accounts.xml" file with the user preferences ("prefs.xml"). + All non-host-specific project info is stored in this file; + all host-specific project info is in client_state.xml. + The PROJECT class is a union of the two. + The logic for dealing with inconsistencies between + prefs.xml and client_state.xml, and with updating in-memory + and on-disk project lists in response to an update from a server, + are a little tricky and are described in the code. + - The prefs file can be overwritten by in a scheduling + server reply. To prevent buggy servers from zeroing out + users' project lists, the client makes sure there's at least + one project, and backs up the old prefs.xml into a timestamped file. + - The command-line client, if prefs.xml is absent, + prompts the user for a project URL and authenticator, + and creates an initial prefs.xml. + - Each project now has a "master URL", with is its home page + and also contains elements giving the URLs of + its scheduling servers. + - Added a class SCHEDULER_OP which encapsulates fetching and + parsing a project's master page (if necessary), + then making an RPC to one of its scheduling servers. + TODO: add retry and failure logic. + - A project can have more than one scheduling server. + TODO: use all of them. + - Project directories are stored in URL-encoded form. + This allows project master URLs to have slashes, which is a necessity. + + client/ + Makefile.in + accounts.C,h (deleted) + app.C,h + client_state.C,h + client_types.C,h + cs_apps.C + cs_scheduler.C + file_names.C,h + main.C + prefs.C,h + scheduler_op.C,h (new) + scheduler_reply.C,h (deleted) + doc/ + project.html + lib/ + parse.C,h + sched/ + server_types.C + test/ + account1.xml, account2.xml (deleted) + init.inc + prefs1.xml, prefs2.xml (new) + test_*.php + +David A June 21 2002 + - top-level Makefile now compiles RSAEuro/, + and doesn't refer to sched_fcgi + - Added element to html_user/index.html, + making it the "master file" for test project. + This file must be placed in the directory referred to by + http://localhost/ + + Makefile.in + html_user/ + index.html + +Michael Gary June 21 2002 + - added install to the make system to put executables + in /usr/local/boinc + - simplified make system for fast cgi scheduling server + - completed implementation of high/low water system and + testing of host. + - checkpoints and timekeeping now implemented in api + - timekeeping through api done in client state + + Makefile.in + configure + api/ + Makefile.in + api.C + api.h + api_test.C + apps/ + Makefile.in + client/ + Makefile.in + client_state.C + client_state.h + client_types.C + client_types.h + cs_scheduler.C + hostinfo.C + hostinfo.h + app.h + app.C + db/ + db.h + lib/ + Makefile.in + sched/ + Makefile.in + feeder.C + handle_request.C + main.C + parse.C (removed) + parse.h (removed) + sched_shmem.C + server_types.C + show_shmem.C + test/ + log_flags.php + sched_fcgi/ (removed) + +Micahel Gary 6/23/2002 + - Checkpoint timer initialized in boinc_init. + - Test script added for api. + + api/ + api.C + test_api.C + test/ + init.inc + test_api.php (new) + ta_correct_atc (new) + ta_correct_f (new) + core_to_app.xml.in (new) + +Michael Gary 6/25/2002 + - Maggie is now the master url for boinc. + + test/ + prefs1.html + doc/ + test.html + +Michael Gary 6/27/2002 + - Fixed a bug in add_work and added water level testing to test_uc.php + + test/ + test_uc.php + tools/ + add_work.C + +Michael Gary 6/28/2002 + - Added an explicit test for water level + - Added a -no_time_test argument to the boinc client to stop the time tests + from running. + + client/ + main.C + client_state.h + client_state.C + test/ + test_water.php (new) + +Eric Heien 7/01/2002 + - Added S@H test scripts, added other testing functionality. + - Added random WU generation. + - Added concat_slow application. + - Altered functionality of API checkpoint_completed. + + api/ + api.C + api.h + api_test.C + apps/ + concat_slow.C (added) + Makefile.in + uc_slow.C + upper_case.C + test/ + sah_result (added) + sah_wu (added) + sah_test.php (added) + init.inc + test_uc_slow.php + tools/ + create_work.C + +Michael Gary 7/01/2002 + - Fixed fast cgi scheduling server + - If low water mark is higher than high water mark, water marks are + switched + - Updated documentation + + doc/ + flow.html + protocol.html + client/ + client_state.C + cs_scheduler.C + sched/ + main.C + test/ + prefs1.xml + +Michael Gary 7/03/2002 + - api test is now more thorough, tests time accounting and restarting + - added app_completed function to api + - api_test.C was moved to api_app.C + - removed #ifdef solaris and #ifdef unix from all files + + api/ + Makefile.in + api.C + api.h + api_test.C + api_app.C (new) + test/ + init.inc + ta_correct_f + test_api.php + client/ + app.C + hostinfo_unix.C + configure + configure.in + filesys.C + doc/ + api.html + configure + configure.in + +David Anderson July 4, 2002 + - Added support for upload authentication. + This prevents bad guys from filling up data servers with trash. + In this scheme, each element sent from + server to client includes a field limiting + the size of the file, and includes a digital signature + based on the project's "upload authentication" key pair. + File uploads, instead of being done by PUT, are now done by POST + to a CGI program, "file_upload_handler". + The request header includes the signed , + and the CGI program verifies the signature and enforces the size limit. + + The affected pieces of code: + - Added a function create_keys() in PHP test scripts + to create encryption keys. Call it from all script. + - Added environment var BOINC_KEY_DIR saying where keys are kept. + - The client must maintain an exact copy of each XML, + and of the signature, so that it can send to upload server. + - Added a new variant of HTTP operation, HTTP_OP_POST2. + The existing variants all use single files for request and reply. + The new variant (used for file upload) has a request + consisting of a memory block followed by (part of) a file; + the reply is in memory. + This avoid copying possibly huge upload files. + - FILE_XFER objects now take a FILE_INFO as initialization argument; + needed to convey authentication info. + The upload variant creates and sends the authentication header. + - Result templates now include a in each + element, and the URLs refer to the + file_upload_handler (with no filename) + - process_result_template() works differently, since it must + generate a digital signature at the end of each + - create_work expects the name of a private key file. + - Added crypt/md5 functions to sign/verify in memory, + encode/decode ASCII data in memory, checksum in memory + - Change "gmake" to "make" in top-level makefile. + (alias make to gmake if this is a problem) + + boinc/ + Makefile.in + TODO + RSAEuro/source/ + rsaeuro.h + client/ + Makefile.in + client_state.C + client_types.C,h + cs_files.C + file_names.C + file_xfer.C,h + http.C,h + main.C + scheduler_op.C + test_file_xfer.C + db/ + mysql_util.C + doc/ + index.html + intro.html + master_url.html (new) + project_startup.html (new) + tools_security.html (new) + html_user/ + index.html + lib/ + Makefile.in + crypt.C,h + crypt_prog.C + md5_file.C,h + parse.C,h + sched/ + Makefile.in + file_upload_handler.C + server_types.C + test/ + 1sec_result + concat_result + init.inc + master.html (new) + sah_result + test_1sec.php + test_concat.php + test_dynamic.php + test_max_water_prefs.php + test_min_water_prefs.php + test_normal_water_prefs.php + test_prefs.php + test_projects.php + test_stderr.php + test_uc.php + test_uc_slow.php + uc_result + ucs_result + tools/ + Makefile.in + add.C + backend_lib.C,h + create_work.C + process_result_template.C + +David July 4, 2002 + - fixed compile problems on linux. + use kill() instead of sigsend() + + client/app.C + sched/file_upload_handler.C + +Michael Gary July 5, 2002 + - fixed fast cgi crypto + use fgets and sscanf instead of fscanf, which + is not implemented in fcgi_stdio.h + + sched/Makefile.in + lib/crypt.C + +David A. July 7, 2002 + - Added code signing. All files associated with an app version + (i.e. all executable files) must now be signed + with the project's "code sign key". The components include: + - PROJECT has new field "code_sign_key", keep track of project's + public code-signing key. + Send this on each scheduler RPC. + - The scheduling server stores the public code-signing key in memory. + Send it to any client who doesn't have it. + If the client has an old key, + send them the new key signed with the old key. + NOTE: this uses a scheme in which signatures are kept + in files on the server, to avoid keeping private keys + in online machines. This should be documented. + - The utility to add new app versions (add.C) adds a signature + to the FILE_INFO element. + NOTE: eventually the signing should be done offline. + - FILE_INFO has a new boolean field "signature_required"; + set for all files associated with an app version + - FILE_INFO has a new char* field "file_signature", + which is the digital signature. + Renamed upload authenticator from "signature" to "xml_signature" + to avoid confusion. + - Add function verify_downloaded_file(), called after every download; + does MD5 or signature checking as needed. + - Added some new functions for signature checking etc. + - the client is now linked with the crypt library + - Server-side errors should always include the name of the + CGI program generating the error (scheduler or file upload handler) + + client/ + Makefile.in + client_state.C + client_types.C,h + cs_files.C + cs_scheduler.C + file_xfer.C + scheduler_op.C,h + test_file_xfer.C + doc/ + index.html + project_startup.html (new) + security.html + lib/ + crypt.C,h + parse.C,h + sched/ + file_upload_handler.C + handle_request.C,h + main.C + server_types.C,h + test/ + init.inc + prefs1.xml + test_uc.php + tools/ + add.C + process_result_template.C + +David A. July 8, 2002 + - fix compile errors + - fix bugs in FCGI version of scan_hex_data stuff + + client/ + client_types.C + lib/ + crypt.C + crypt_prog.C + sched/ + file_upload_handler.C + tools/ + Makefile.in + add.C + process_result_template.C + +Michael Gary July 10, 2002 + - Added asserts to the server side + - Added error checks on function parameters + - Made the api update result with time information at + checkpoints and when an application exits + - Removed unused tests + - Fixed bug in crypto sscan + - Moved client/error_numbers.h to lib/error_numbers.h + + api/ + Makefile.in + api.C + app.C + client/ + app.h + client_state.C + client_types.C + cs_apps.C + cs_files.C + cs_scheduler.C + file_names.C + file_xfer.C + filesys.C + hostinfo.C + hostinfo_unix.C + http.C + log_flags.C + main.C + net_stats.C + scheduler_op.C + speed_stats.C + time_stats.C + util.C + error_numbers.h (removed) + db/ + db_mysql.C + mysql_util.C + lib/ + crypt.C + md5_file.C + parse.C + shmem.C + error_numbers.h (added) + sched/ + Makefile.in + feeder.C + file_upload_handler.C + handle_request.C + main.C + sched_shmem.C + sched_shmem.h + server_types.C + test/ + max_water_prefs.xml (removed) + min_water_prefs.xml (removed) + normal_water_prefs.xml (removed) + test_max_water_prefs.php (removed) + test_min_water_prefs.php (removed) + test_normal_water_prefs.php (removed) + tools/ + add.C + backend_lib.C + process_result_template.C + +Barry Luong July 11, 2002 + - added changes to allow for multiple servers on one machine + - database names are from environment variables + - download and upload directories are from environment variables + - download and upload url's are from environment variables + - boinc_key (for shared memory) is from environment variables + - new directory tree: + + ~barry/ + / \ + / \ + / \ + boinc_cvs/ boinc_server/ + / / / \ \ + / / / \ \ + / / / \ \ + boinc/ cgi/ keys/ upload/ download/ + / \ \ + / \ \ + / \ \ + client/ sched/ ... + + - sched cgi, fcgi, file_upload_handler are copied into + ~barry/boinc_server/cgi/ + - in httpd.conf set up cgi permissions for appropriate files and + directories + - must define new environment variables: + BOINC_DOWNLOAD_DIR ~/barry/boinc_server/download + BOINC_UPLOAD_DIR ~/barry/boinc_server/upload + BOINC_DB_NAME boinc_barry + BOINC_UPLOAD_URL http://localhost/barry/boinc_server/cgi/fileupload_handler + BOINC_DOWNLOAD_URL http://localhost/barry/boinc_server/cgi/download + BOINC_KEY 0xdabacafe + BOINC_USER barry + BOINC_PUBLIC_KEY_PATH ~/barry/boinc_server/keys/upload_public + BOINC_KEY_DIR ~barry/boinc_server/keys + + db/ + init_db + drop.sql + schema.sql + constraints.sql + + sched/ + main.C + feeder.C + Makefile.in + file_upload_handler.C + sched_shmem.h + + tools/ + backend_lib.C + process_result_template.C + add.C + create_work.C + + html_user/ + db.inc + +Barry Luong July 12, 2002 + - Changed error messages in main.C so user names are printed out also + - took out a debugging variable I accidentally left in feeder.C + - removed an assert in file_upload_handler.C + - changed so BOINC_UPLOAD_DIR and BOINC_KEY_DIR are defined at compile time + + sched/ + main.C + Makefile.in + feeder.C + file_upload_handler.C + +Michael Gary July 12, 2002 + - Added a test to make sure the scheduling server does not send unfeasible + work units + - Removed some debug output + + lib/ + shmem.C + sched/ + file_upload_handler.C + handle_request.C + test/ + prefs3.xml + test_rsc.php + +David A July 14 2002 + - Added reasonable policies for making scheduler RPCs. Summary: + - results now have a "report deadline". + This may be useful for various purposes; for now, + we use it to trigger scheduler RPCs to report results + - The client now tries all a project's scheduler URLs in turn. + - Projects have a "min_rpc_time", the earliest time to + attempt another RPC (replaces next_request_time) + - We maintain an RPC failure count for each project. + If RPCs to all its URLs fail, we increment the count + and set its min_rpc_time according to an exponential backoff + - If a project is getting repeated RPC failures, + reread and parse its master URL file every so often, + in case the set of scheduler URLs has changed + - When the client has a completed result past its deadline, + it attempts to report it to that project. + - When the client's estimated work falls below low water, + it ranks projects according to their "resource deficit", + then attempts RPCs to project in that order + until the estimated work is above high water. + NOTE: only the simplest case has been tested. + We need to write test scripts for many other cases. + NOTE: currently a result's report deadline is now+1000. + We need to add a mechanism for setting it. + - The CLIENT_STATE is now kept in a global variable instead of + a local var of main(). + This is because SCHEDULER_OP needs to get at it. + + client/ + client_state.C,h + client_types.C,h + cs_scheduler.C + main.C + scheduler_op.C,h + db/ + db.h + db_mysql.h + schema.sql + doc/ + file_xfer_policy.html (new) + index.html + result.html + rpc_policy.html (new) + html_user/ + db.inc + tools/ + backend_lib.C + create_work.C + +David A July 15, 2002 + - added env var BOINC_MASTER_URL. + Each / in the master URL must be preceded by four \s + e.g. setenv BOINC_MASTER_URL http:\\\\/\\\\/localhost\\\\/index.html + - team name must be non-null to be unique + - TODO (Barry): make the master page per-project; + make database access from PHP/Web per-project + db/ + schema.sql + html_user/ + db.inc + test/ + init.inc + master.html + prefs1.xml + tools/ + Makefile.in + +Michael Gary July 15, 2002 + - Fixed compile bug + - Updated documentation + - Fixed test script bug + - Added comments to some .h files + - Fixed timing bug + doc/ + api.html + client_debug.html + flow.html + index.html + protocol.html + sched_debug.html + sched_policy.html + test.html + tools/ + Makefile.in + test/ + test_uc.php + test_rsc.php + init.inc + client/ + client_types.h + hostinfo.h + api/ + api.C + api.h + +Michael Gary July 16, 2002 + -Fixed test script bug + test/ + concat_result + test_concat.php + +Eric Heien July 17, 2002 + - Removed assembly optimized routines from RSAEuro, since we + want to be platform independent and RSAEuro isn't a highly speed + critical piece of code. This had the side benefit of making the + RSAEuro Makefile operate cleanly with make. + - Fixed compiler warnings in RSAEuro demo programs. Do we really + need to keep these demo programs around? + - Turned off the "secure" versions of memcpy, memset and memcmp. + If needed, we can turn them back on. + RSAEuro/ + source/ + makefile (moved to Makefile) + Makefile (renamed from makefile) + des386.s (removed) + rsa386.s (removed) + rsa68k.s (removed) + rsasparc.s (removed) + demo/ + mdemo.c + randemo.c + redemo.c + +Michael Gary 7/17/2002 + - Fixed more test scripts + - Added a comprehensive test + - Added make tar_client to toplevel makefile + - Added installation notes for the server and the client + Makefile.in + INSTALL (added) + INSTALL_CLIENT (added) + test/ + test_1sec.php + test_dynamic.php + test_prefs.php + test_projects.php + test_stderr.php + test_uc_slow.php + test_suite.php (added) + + +Michael Gary 7/18/2002 + - Configure now checks to make sure that apache, mysql, and php are + installed. If they are not installed, it prints out a warning and + continues configuration + - Added uninstall target, made Makefiles more compliant with GNU standards + INSTALL + INSTALL_CLIENT + aclocal.m4 (added) + configure + configure.in + Makefile.in + sched/ + Makefile.in + lib/ + Makefile.in + api/ + Makefile.in + client/ + Makefile.in + +Eric Heien 7/18/2002 + - Fixed RSAEuro makefile so that it doesn't require gcc. This was + causing problems when porting. + + RSAEuro/source/ + Makefile (removed) + Makefile.in (added) + configure + configure.in + +Michael Gary 7/23/2002 + - Added a test for sticky files. Required updating escape_url to support + RRC1738 (-_. no longer escaped out). + client/ + file_names.C + test/ + test_sticky.php (added) + uc_wu_sticky (added) + uc_result_sticky (added) + +Michael Gary 7/24/2002 + - Added a test for the time reporting system. + test/ + test_time.php (added) + init.inc + apps/ + uc_slow.C + uc_cpu.C (added) + Makefile.in + +David July 28 2002 + - Changed the "add" utility so that, when adding an app version, + you can give it the signature files (computed offline, presumably) + - Changed the "add" utility so that an app version can consist + of multiple files + - Removed the notion of alpha/beta/production versions of an app. + The same effect can be achieved by making separate projects + for alpha and beta testing. + - Apps now have a "minimum version number" on the server side - + Don't send a WU unless there's an app version of that number or greater. + Send the latest available version for the platform. + - Clarified app version semantics: + - Workunits don't have a version# on the server + - When a client gets a workunit, it associates it with + the most recent version of the application that it knows about + (possibly one it received in the same reply message). + It continues to use this version for this WU, + even if it receives a later version while the WU is in progress. + - On the client, no version #s are associated with apps + + PROGRAMMERS NOTE: + - Removed checking of args in client_state.C + This gunks up the code too much. Let's do checking at higher level. + - Comments should be in the imperative mood. + "Write the state file", not "Writes the state file" + - Comments should not be vague, e.g. + // See if the application (name) associated with project p is + // around here + ... what does "around here" mean? + - Leave a space between "if" and "(" + - When asserting that a pointer is non-NULL, just say "assert(p)". + Saying "assert(p!=NULL)" is like saying if (flag==true) + - Linux doesn't have -lsocket and -lnsl. + Don't put them in Makefile.in. + + TODO + client/ + client_state.C,h + client_types.C,h + cs_scheduler.C + main.C + db/ + db.h + db_mysql.C + schema.sql + doc/ + app.html + index.html + intro.html + project.html + tools_other.html + html_user/ + db.inc + sched/ + handle_request.C + sched_shmem.C + server_types.C + test/ + init.inc + master.html + tools/ + Makefile.in + add.C + backend_lib.C + + +Eric Heien July 29 2002 + - Added code to determine the amount of disk space being + used by BOINC, by recursively descending through the + root directory. Still needs to be ported to Windows. + + client/ + filesys.C + filesys.h + +David A. July 30 2002 + - Revised API doc + - made some API implementation functions static + (this breaks the test program, need to discuss) + - removed CPU spin from uc_slow (why?) + + api/ + api.C,h + apps/ + uc_slow.C + doc/ + api.html + graphics.html + index.html + +David A. July 30, 2002 + - Revised API and graphics docs + - removed error checks from parse.C + + doc/ + api.html + graphics.html + index.html + lib/ + parse.C + +Eric Heien August 2, 2002 + - Implemented HTTP 301 and 302 redirect commands. + - These still need to be fully tested. + + TODO + client/ + http.C + http.h + net_xfer.C + net_xfer.h + +David A. August 4 2002 + Various changes to API: + - Added user, team names, credit info to APP_INIT_DATA + - separate call for getting init data + - separate call for returning fraction done + - separated out fraction_done_update_period + - moved graphics API to separate file + - moved MFILE implementation to separate file + - API timer is now 0.1 sec; use counters for various uses + (checkpoint, fraction done, graphics) + - changed name of API files to boinc_api.C,h + + - clarify distinction between + "current CPU time" + "CPU time at last checkpoint" + "CPU time at start of current run" + These are all kept in ACTIVE_TASK. + RESULT now only has "final CPU time". + + - fixed bug in dir scanning (ahem...) + + - Coding style notes: + - every fopen() MUST have a matching fclose() in same function + - every malloc() MUST have a matching free() in same function + - don't do a rewind() right after fopen() + - write function calls as + func(arg1, arg2); + NOTE: there's a space after every comma, everywhere + - write "if" statements as + if (condition) { + ... + } + - no explicit argument checking. do this at higher level + - functions in foo.C should be declared (as extern) in foo.h, + AND NOWHERE ELSE. + + api/ + Makefile.in + api.C,h (removed) + boinc_api.C,h (new) + graphics_api.C,h (new) + mfile.C (new) + apps/ + Makefile.in + *.C + client/ + Makefile.in + app.C,h + client_state.C,h + client_types.C,h + cs_apps.C + cs_scheduler.C + file_names.C + filesys.C,h + doc/ + api.html + + +Barry Luong August 6, 2002 + + - Added team pages in html_user/ + - pages to display team page, join team, quit team, edit team, disband + team, and remove inactive members + - Added database access per project via the web + - a new file in html_user/ called db_name containing only the name of + that project's database + + html_user/ + db.inc + team.inc + team.php + team_create_action.php + team_create_form.php + team_disband_action.php + team_disband_form.php + team_display.php + team_edit_action.php + team_edit_form.php + team_join_action.php + team_join_form.php + team_lookup.php + team_quit_action.php + team_quit_form.php + team_remove_inactive_action.php + team_remove_inactive_form.php + + +Eric Heien August 7, 2002 + - Added PERS_FILE_XFER (persistent file transfer) + functionality. This includes the notions of retrying + when unable to connect, exponential backoff, and giving + up after a period of time. Giving up is currently + not fully implemented. Includes initial work for + supporting upload/download resumption. All features + still need to be thoroughly tested. + - Added initial functionality to calculate allowable disk + usage. + + client/ + Makefile.in + client_state.C + client_state.h + client_types.C + client_types.h + cs_files.C + cs_scheduler.C + file_xfer.C + hostinfo_unix.C + http.C + http.h + pers_file_xfer.C + pers_file_xfer.h + scheduler_op.C + test_file_xfer.C + test_http.C + util.C + util.h + sched/ + file_upload_handler.C + +Eric Heien August 9, 2002 + - Moved windows files to client/win directory, added win_build.zip + for building Windows GUI and CLI clients. + - Fixed compile bugs in graphics_api.C and graphics_api.h + - Updated TODO and INSTALL docs + - Added Mac init, event loop, and cleanup functionality in main.C + - Added user requestable quit to main loop for use in GUI interfaces. + - Fixed Windows specific compile bugs in filesys and pers_file_xfer. + + TODO + INSTALL + INSTALL_CLIENT + win_build.zip + api/ + boinc_api.C + graphics_api.C + graphics_api.h + client/ + app.C + filesys.C + filesys.h + hostinfo_win.C (removed) + main.C + pers_file_xfer.C + util.C + util.h + win_main.cpp (removed) + win_net.cpp (removed) + win_net.h (removed) + windows_cpp.h (removed) + win/ + hostinfo_win.cpp (added) + win_main.cpp (added) + win_net.cpp (added) + win_net.h (added) + windows_cpp.h (added) + +David A. August 10 2002 + - Changed Winmain() to get argc/argv correctly + - fixed bugs in CLIENT_STATE::allowed_disk_usage + NOTE: keep track of whether units are bytes or GB. + Not interchangeable! + NOTE: above bugs caused compiler warnings. + - Got rid of all compiler warnings in Windows + + api/ + boinc_api.h + client/ + app.C + client_state.C + hostinfo_unix.C (??? should remove this from Windows project) + pers_file_xfer.C,h + client/win/ + Resource.h (new) + win_main.cpp + wingui.cpp,h (new) + +Barry August 12, 2002 + - Changed front page to a php page so we can check for cookies + Added explanatory text to front page and to team pages + + html_user/ + index.php + +Eric Heien August 12, 2002 + - Added concept of result state. This replaces the old boolean + flags and represents what phase of the computation pipeline + each result is currently at (downloading, computing, uploading, + etc). + - Added file upload/download resumption. For downloads, this + involves checking how big the local file is, then asking + the server for the remainder of it. For uploads, this + involves asking the file_upload_handler how much of a certain + file it already has, then sending the remainder of it. + Both ul and dl resumption need to be thoroughly tested. + + client/ + client_state.C + client_state.h + client_types.C + client_types.h + cs_apps.C + cs_files.C + cs_scheduler.C + file_xfer.C + http.C + net_xfer.C + pers_file_xfer.C + scheduler_op.C + sched/ + file_upload_handler.C + +David August 12 2002 + - Cleaned up initialization code: + main.C is now used ONLY for CLI versions + (remove this file from GUI projects) + Factored out initialization code that is common to + both GUI and CLI versions. + + client/ + client_state.C,h + log_flags.C,h + main.C + prefs.h + +Eric Heien August 13, 2002 + - Implemented correct handling of RSA or MD5 failures. The + result associated with the file will be flagged and the + failure will be passed back to the scheduling server. + + client/ + client_state.C + client_types.C + client_types.h + cs_files.C + pers_file_xfer.C + lib/ + error_numbers.h + +Eric Heien August 21, 2002 + - Finished persistent file transfer implementation, including + file upload/download resumption, exponential backoff + + client/ + client_state.C + client_state.h + client_types.C + client_types.h + cs_files.C + file_xfer.C + file_xfer.h + http.h + main.C + pers_file_xfer.C + pers_file_xfer.h + mac/ + mac_main.cpp + mac_main.h + lib/ + error_numbers.h + +David August 24, 2002 + - fixed bugs in the Windows variant of app.C + Notes on Windows: + - Some places (e.g. current dir arg of CreateProcess()) + require a full path + - Some places require \ instead of / in paths. + Added the constant PATH_SEPARATOR for this purpose. + - To redirect stdin/stdout, you need to use freopen(); + it's not enough to dup2 the underlying descriptor + + api/ + boinc_api.C + apps/ + upper_case.C + client/ + app.C,h + file_names.C + filesys.C,h + lib/ + error_numbers.h + +David August 25, 2002 + - Implemented project name (as shown in GUI). + It's stored in the DB (in a single-row "project" table) + and sent in scheduler RPC + - Changed env var BOINC_KEY to BOINC_SHMEM_KEY + (avoid confusion w/ encryption keys) + + Makefile.in + client/ + cs_scheduler.C + filesys.C + scheduler_op.C,h + win/ + windows_cpp.h + wingui.cpp + db/ + db.h + db_mysql.C + schema.sql + sched/ + Makefile.in + feeder.C + main.C + server_types.C + show_shmem.C + test/ + init.inc + test_uc.php + test_uc_win.php + tools/ + add.C + +Eric August 26, 2002 + - Finished multi-slot functionality. The client now requests an + open slot from the ACTIVE_TASK_SET which will be the slot + for the new process. + + client/ + app.C + app.h + cs_apps.C + +David August 26, 2002 + - adding missing clause to SCHEDULER_OP::poll(); was failing to + return state to IDLE, caused reply to get processed twice + - return user name, total credit, avg credit in scheduler RPC reply + - save/restore these in client state file + - client was trying to delete "checkpoint CPU file" in wrong directory + - change CLIENT_STATE field from "version" to "core_client_version" + - got rid of CLIENT_STATE::update_net_stats(), insert_file_xfer() + (made some stuff public) + - disable host performance measurement (temp! turn back on later) + - removed comments of the form + read_config_file(); // read config file + - in HTTP op of type POST2, it's not an error if htp->file is zero + - replaced hardwired HTTP_STATUS constants + - made separate db.inc, util.inc in html_ops + - key creation prints message before delay, not after + - file upload handler prints user name in error log lines + - scheduling server: make USER, HOST part of SCHEDULER_REPLY + so don't have to pass around as separate args + - in test/init.inc, don't use the init_db() from html_user/. + define it separately here. + - in test/init.inc, split up clear_data_dirs() into + client, server parts + - change test_uc.php to not create keys by default + + client/ + app.C + client_state.C,h + cs_scheduler.C + file_xfer.C + http.C,h + pers_file_xfer.C + scheduler_op.C,h + db/ + db.h + html_ops/ + db.inc (new) + util.inc (new) + lib/ + crypt_prog.C + sched/ + file_upload_handler.C + handle_request.C + server_types.C,h + test/ + init.inc + master.html + test_uc.php + +David August 28, 2002 + - added DB fields to keep track of credit for hosts and result + - added utility program "grant_credit" to grant credit for a result + - removed some extraneous printfs + - file upload handler error messages have user name + - added a "poll_debug" flag; turn this on in case of infinite + poll loop, to see what's causing the problem + - added a "libboinc.a" target to lib/ Makefile. + We might want to consider using a random library + instead of referring to explicit .o files everywhere + + api/ + boinc_api.h + client/ + Makefile.in + app.C + client_state.C + cs_apps.C + cs_files.C + cs_scheduler.C + file_xfer.C + log_flags.C,h + net_xfer.C + pers_file_xfer.C + db/ + db.h + db_mysql.C + schema.sql + html_ops/ + db.inc + db.php + html_user/ + index.html + lib/ + Makefile.in + sched/ + feeder.C + file_upload_handler.C + handle_request.C + test/ + master.html + test_uc.php + tools/ + Makefile.in + backend_lib.C,h + grant_credit.C (new) + +David August 30 2002 + - improved Win GUI + - print error if file validate failure + - fix lib Makefile.in + + client/ + client_state.C + cs_files.C + pers_file_xfer.C + client/win/ + wingui.cpp,h + lib/ + Makefile.in + countries.C + crypt.C + error_numbers.h + filesys.C + md5_file.C + +Eric September 4, 2002 + - condensed uc_slow, uc_cpu into upper_case, concat_slow into concat, using command line arguments + - changed test_uc to use files rather than stdin/stdout + + apps/ + uc_slow.C (removed) + concat_slow.C (removed) + uc_cpu.C (removed) + upper_case.C + concat.C + Makefile.in + lib/ + error_numbers.h + test/ + test_uc_slow.php + test_concat.php + uc_result + uc_wu + ucs_wu + +Eric September 18, 2002 + - Windows OpenGL based graphics added, graphics API updated + - Beginning of Mac Carbon based graphics added + - Uppercase application updated to use GL, GLUT graphics + + apps/ + upper_case.C + api/ + boinc_api.C + boinc_api.h + graphics_api.C + graphics_api.h + windows_opengl.cpp + +David Sept 22, 2002 + - Various changes to prevent buffer overrun in servers; + parse_str and parse_attr now take a buffer length arg + + api/ + boinc_api.C,h + apps/ + concat.C + upper_case.C + client/ + app.C + client_types.C + file_xfer.C + hostinfo.C + scheduler_op.C + doc/ + account.html + lib/ + parse.C,h + sched/ + file_upload_handler.C + handle_request.C + server_types.C,h + +David Sept 25 2002 + - Progress on validation and credit-granting + - added DB fields to support the above + + client/ + cs_scheduler.C + db/ + db.h + db_mysql.C + schema.sql + sched/ + Makefile.in + validate.C + validate_test.C (new) + +David Sept 25 2002 + - Move account into (master URL, authenticator, per-project prefs) + from the prefs.xml file into separate files, one per project + (with names of the form account_XXX.xml, XXX = master URL). + Adding new projects is now done using the core client + (via GUI or command line) or by copying an existing account file, + but NOT via web site; this was a major security weakness + since bad guys could guess your web password, + then register you for a bogus project. + + This change also involved the html_user files (not finished). + + - Further work on credit-granting. + On each RPC, the scheduler computes a "credit per CPU second" + for the host (linear combo of FP/int/mem speeds). + For each result received, the scheduler computes a "claimed credit", + the claimed CPU time times the credit per CPU second. + It also sets the "need validate" flag of the WU. + + api/ + boinc_api.C + apps/ + upper_case.C + client/ + Makefile.in + account.C,h (new) + client_state.C,h + client_types.C,h + cs_scheduler.C + file_names.C,h + file_xfer.C + main.C + prefs.C,h + db/ + db.h + doc/ + account.html + boinc_dev.html + client_files.html + client_logic.html + prefs.html + startup.html + validation.html + html_user/ + prefs.inc + prefs.php + prefs_edit_project_form.php + sched/ + handle_request.C + validate.C + test/ + account1.xml (new) + init.inc + master.html + prefs1.xml + test_uc.php + tools/ + backend_lib.C + +David Sept 26 2002 + - added todo list + - added license comment to various files + + tools/ + grant_credit.C (removed) + +David Sept 26 2002 + - continue with separation of global vs. project preferences. + Added separate DB field for project prefs. + Revised PHP files for editing separately + + client/ + prefs.C + db/ + db.h + db_mysql.C + schema.sql + doc/ + prefs.html + html_user/ + removed prefs_add*, prefs_delete*, prefs_edit_disk*, prefs_edit_work* + removed prefs_edit_projects.php + added prefs_edit_global* + prefs_edit_project_action.php + prefs.inc + prefs.php + util.inc + sched/ + server_types.C + test/ + init.inc + test_uc.php + tools/ + add.C + +David Sept 28 2002 + - Clarified the way that preferences (global and project) + are stored in the database and in the core client, + and the protocol (part of scheduler RPC) for maintaining them. + See doc/prefs_impl.html + - Implemented the above: lots of small changes to client, server + - Changed names from "prefs" to "global_prefs" where relevant + + client/ + client_state.C,h + client_types.C,h + cs_scheduler.C + file_names.C,h + prefs.C,h + scheduler_op.C,h + db/ + db.h + db_mysql.C + schema.sql + doc/ + boinc_dev.html + prefs_impl.html (new) + prefs_mod.html (removed) + html_user/ + prefs.inc + sched/ + handle_request.C + server_types.C,h + tools/ + add.C + +David Oct 3 2002 + - Changed the PHP framework for testing to facilitate + multi-project, multi-host tests (all on one machine). + See doc/test.html for details. + - NOTE: the BOINC-related environment variables have changed. + There are no longer any project-specific variables + (e.g. database name, shmem key) + - NOTE: the server programs now expect a configuration file + in their directory. + - TODO: enhance the testing framework to allow projects with + multiple scheduling servers or data servers + - TODO: enhance the testing framework to allow specification + of failure and recovery of servers + + - changed things so a NULL in the DB won't crash db_mysql.C + - parse_int() can now handle hex + - "add" now takes args for DB name/passwd + - "create_work" now takes args for DB name/passwd, + upload/download URL, download dir + + db/ + db_mysql.C + mysql_util.C + doc/ + data_server_setup.html + sched_server_setup.html + test.html + web_site.html + html_user/ + index.html + lib/ + md5_file.C + parse.C + sched/ + Makefile.in + config.C,h (new) + feeder.C + file_upload_handler.C + main.C + validate.C + validate_test.C + test/ + test.inc (new) + test_uc.php + tools/ + add.C + backend_lib.C,h + create_work.C + process_result_template.C + +David Oct 3 2002 + - updated test scripts to use new framework + - got rid of some obsolete scripts + +David Oct 8 2002 + - progress getting "make_work" (dummy work generator) to work. + Removed the element from workunit XML, + and the and elements from result XML; + instead, the scheduler server inserts these as it sends them. + + This simplifies things a little in work generation, + and removes some redundancy. + + Everything seems to work now except that the file upload signature + ends up being wrong, which is expected, + and it shows that the security mechanism works. + - added test_loop.php, which simulates a system that is complete + except for the validation process. + + client/ + http.C + db/ + db.h + db_mysql.C + html_ops/ + index.html + sched/ + Makefile.in + feeder.C + file_upload_handler.C + handle_request.C + main.C + make_work.C (new) + test/ + *_result + *_wu + *.php + test_loop.php (new) + tools/ + backend_lib.C,h + process_result_template.C + +Eric October 13, 2002 + - Now uses alternate means (statfs, sysctl) to get host information + on non-Linux platforms + - Fixed compile warnings + + client/ + client_state.C + hostinfo.h + hostinfo_unix.C + file_names.C + scheduler_op.C + +Eric October 14, 2002 + - Added initial support for Mac OpenGL graphics, still needs to + be polished and tested (particularly multithreaded aspect) + + api/ + mac_app_opengl.c,h + mac_carbon_dsp.c,h + mac_carbon_gl.c,h + mac_build/ + boinc.pbproj/ + project.pbxproj + +David Oct 14 2002 + - Change make_work so that it generates results with + valid file upload signatures. + Instead of directly creating new DB.result records, + it now calls create_result() to do the work. + - Changed create_result() to take a name suffix + - Factored key parsing into a function + - Removed random-WU-name feature from create_work; + names should be generated at a higher level + - added a key-generation function to test.inc + + lib/ + parse.C + sched/ + Makefile.in + config.C,h + make_work.C + test/ + test.inc + test_loop.php + tools/ + add.C + backend_lib.C,h + create_work.C + process_result_template.C + +David Oct 15 2002 + - remove the idea of "dynamic result" generation + (remove some DB fields and code relating to it) + - remove the nresults_* fields from the workunit table. + These are redundant, and they weren't being used. + Furthermore, they were being updated in a way that + overwrote other updates. + - change html_ops table displays to 2 columns + + db/ + db.h + db_mysql.C + mysql_util.C,h + schema.sql + doc/ + test.html + html_ops/ + db.inc + sched/ + handle_request.C + tools/ + backend_lib.C + create_work.C + +David Oct 18, 2002 + - make_work now adds new WUs as well as results + + sched/ + feeder.C + make_work.C + +David Oct 20, 2002 + - Pin down exactly what credit is, both in the docs and the code + - Show credit in admin PHP pages. + - NOTE: multi-word titles (e.g. in admin pages) should + have only the first letter capitalized + + todo + client/ + client_state.C + speed_stats.C + doc/ + credit.html (new) + participation.html + validation.html + html_ops/ + db.inc + db.php + index.html + util.inc + sched/ + handle_request.C + validate.C + +David Oct 21, 2002 + - floating-point values are passed to/from MySQL using sprintf and atof. + The "%f" format, by default, uses 6 decimal places of precision. + This is inadequate for small values, e.g. 1e-7. + So db_mysql.C should use %.12e instead of %f. + - changed all floats to doubles in DB schema + - Credit half-life is one week + + db/ + db_mysql.C + schema.sql + doc/ + credit.html + html_ops/ + util.inc + sched/ + validate.C + test/ + test_loop.php + +Eric October 28, 2002 + - added signal handling to API + - removed win_build.zip + + api/ + boinc_api.C,h + apps/ + upper_case.C + concat.C + lib/ + error_numbers.h + win_build.zip (removed) + +Eric October 29, 2002 + - Mac graphics completed (except for screensaver mode) + + api/ + boinc_api.C + graphics_api.C + mac_app_opengl.c,h + mac_carbon_dsp.c,h + mac_carbon_gl.c,h + +David Nov 5 2002 + - Continued work on result retry mechanism: + - new fields "retry_check_time" and "state" in workunit table + - logic for creating new output filenames + - needs a bit more work + db/ + db.h + db_mysql.C + schema.sql + sched/ + Makefile.in + make_work.C + result_retry.C + +David Nov 7 2002 + - Finished and did basic testing of result retry mechanism. + It now correctly generates new results with unique names, + unique filenames, and upload signatures. + TODO: make a test script + - added DB field workunit.delay_bound: + determines deadlines of result, determines retry check period + Mandatory argument to create_work. + - Added DB indices for all enumeration functions + + client/ + client_types.C + db/ + constraints.sql + db.h + db_mysql.C + schema.sql + doc/ + result.html + tools_work.html + work.html + html_ops/ + db.inc + sched/ + Makefile.in + feeder.C + handle_request.C + result_retry.C + test/ + 1sec_wu + concat_wu + sah_result + sah_wu + test.inc + test_uc.php + uc_wu + ucs_wu + tools/ + backend_lib.Ch + create_work.C + process_result_template.C + +David Nov 9 2002 + - fixed bug that caused file upload authentication failure + - The user web site now correctly provides download of the core client, + as long as you add a core client app version in your test script + (see test_uc.php for an example) + - version numbers now come from env vars BOINC_MAJOR_VERSION + and BOINC_MINOR_VERSION. You must set these in your .cshrc + - Web server config file must have + DefaultType application/octet-stream + so that core client is saved as file, not displayed + - replaced "db_name" file in html_user, html_ops directories with + "config.xml", which contains download URL as well as DB name/passwd + - got rid of "install" target in main Makefile + + Makefile.in + client/ + Makefile.in + doc/ + data_server_setup.html + single_host_server.html + html_ops/ + util.inc + html_user/ + db.inc + download.php + index.php + login.inc + login_action.php + util.inc + sched/ + file_upload_handler.C + handle_request.C + test/ + test.inc + test_uc.php + tools/ + process_result_template.C + +David Nov 9 2002 + - Simplified account creation. + Only screen name, email address required; country, zip optional. + Only account ID required to log in + Removed web password from form; + projects can add this if they want. + - Change "authenticator" to "account ID" everywhere + - made country list appear on account creation form + + todo + db/ + constraints.sql + db.h + doc/ + account.html + app.html + create_project.html + participate.html + startup.html + html_user/ + renamed create_account.php to create_account_form.php + renamed login.php to login_form.php + download.php + index.php + login_action.php + util.inc + test/ + test_uc.php + +Eric Nov 12, 2002 + - X11 graphics support added + - upper_case_x11 target added + - configure now checks for pthread, gl libraries + + configure + configure.in + api/ + boinc_api.C + graphics_api.C + x_opengl.C,h (added) + apps/ + upper_case.C + Makefile.in + +Eric Nov 14, 2002 + - windows screensaver module + + api/ + boinc_api.C + graphics_api.C + windows_opengl.cpp + client/ + win/ + win_screensaver.cpp (added) + win_build/ + boinc.dsw + boinc_ss/ (added) + boinc_ss.dsp (added) + +Seth/Eric Nov 18, 2002 + - windows idle detection + - Communication to app for suspend/resume/quit + + api/ + boinc_api.C,h + windows_opengl.cpp + client/ + app.C + client_state.C,h + prefs.C,h + win/ + win_screensaver.cpp + wingui.cpp,h + win_idle_tracker.cpp,h,def (added) + win_build/ + boinc.dsw + boinc_dll/ (added) + boinc_dll.dsp (added) + boinc_gui/ + boinc_gui.dsp + +David Nov 30 2002 + - use the major/minor version from env vars to identify the core client + (rather than the single version in Makefile) + + client/ + Makefile.in + client_state.C,h + cs_scheduler.C + +David Nov 30 200 + - first part of work sequence implementation + + db/ + schema.sql + db.h + db_mysql.C +David Dec 1 2002 + - If request to scheduling server is from client with wrong version, + return an error + - Change the file upload handler protocol a little: + 1) add core client version to request + 2) add enclosing element + - The file upload handler returns an error if client has wrong version + - Split up long function in file_upload_handler.C + - Changed name of feeder trigger file so that it works + (when did this get broken??) + + client/ + file_xfer.C,h + doc/ + protocol.html + upload.html + sched/ + Makefile.in + feeder.C + file_upload_handler.C + handle_request.C + server_types.C,h + test/ + test.inc + +David Dec 3 2002 + - change scheduling server so that by default it doesn't + store request and reply messages in files; + add "-use_files" option to do this + - added validation step to test_uc.php; + this computes and grants credit + - added "-one_pass" option to validate + - split scheduler trigger files into two: + stop_server: used for all server components; + NOT deleted after reading + reread_db: used to tell feeder to reread DB + deleted after reading + - added license text to some files + + sched/ + config.C,h + feeder.C + handle_request.C + main.C,h + make_work.C + result_retry.C + sched_shmem.h + show_shmem.C + validate.C + test/ + test.inc + test_uc.php + +David Dec 5 2002 + - added initial support for aborting runaway applications: + check for exceeding maximum CPU time or disk usage + - create_work now takes max_cobblestones and max_disk_usage + - split ACTIVE_TASK::suspend into separate suspend, resume functions + + A bunch of coding style notes: + - changed ACTIVE_TASK::request_exit() so that it doesn't sleep. + ==> The core client should never sleep <== + This would cause a period of non-response in the GUI client + - changed file_delete() so that it doesn't sleep or retry. + Should eventually add garbage-collection mechanism + - Most functions NEED to be implemented in the client. + So e.g. instead of + #if HAVE_SIGNAL_H + unix code + #endif + #ifdef _WIN32 + win code + #endif + we should have + #ifdef _WIN32 + win code + #else + unix code + #endif + Any compilation that doesn't match anything should cause a + compile-time error + - change file_size(), dir_size(), CLIENT_STATE::total_disk_usage() etc. + so that: + 1) they report file size in double, not int + 2) they return an error code, not a size overloaded with error code; + size is return in reference param + - All fopen()s should check for zero pointer and return ERR_FOPEN + - Omit "this->" wherever it appears + + client/ + app.C,h + client_state.C,h + client_types.C,h + file_xfer.C + http.C + pers_file_xfer.C + lib/ + filesys.C,h + test/ + test.inc + tools/ + backend_lib.C,h + create_work.C + +David Dec 6 2002 + - fix bugs in get_local_ip_addr() + (need to figure out why they were happening) + +Eric Dec 8, 2002 + - added and tested HTTP proxy support (no SOCKS support yet) + - proxy server is specified through environment variable HTTP_PROXY + + client/ + client_state.C,h + http.C,h + net_xfer.C + pers_file_xfer.C + scheduler_op.C + +Hamid Dec 9,2002 + - added field client_state to result + + - added some more functionality to repor_project_error() + It now adds the following info to stderr_out of the result: + + message if any passed + %d + %d + %d + if download had failures + "\ + " %s + " %d\n" + " \n" + + + if upload had failures + same as above + + if coudln't start active task for result (in which err_num should be set) + "%d\n" + + + - The error mechanism right now is such that any failures + regarding file_infos (download, upload or whatever) + are recorded in the status of the file_infos and then garbage collect + called report_project_error. + However errors regarding starting and ending active tasks + are reported from app.C and cs_apps.C. + +Seth Dec 9, 2002 + - time tests run in their own thread when needed, if they are global state + won't do anything until they are done; threads communicate by a file + - windows host info complete except for cache + + client/ + client_stat.C,h + file_names.h + hostinfo.C,h + client/win/ + hostinfo_win.cpp + +David Dec 11 2002 + - Have process_wu_template() fill in the file size as well as the MD5. + This necessitated changing the format of WU templates, + and the way they are processed. + + NOTE: this breaks the multiple-data-server test. + Need to figure out another way to do that. + + tools/ + backend_lib.C + doc/ + tools_work.html + test/ + *wu + +David Dec 13 2002 + - use lock file mechanism to prevent multiple instances of + core client from running in same directory + + configure + configure.in + client/ + file_names.h + main.C + lib/ + util.C,y + +David Dec. 17 2002 + - Added new state fields to workunit and result to support + file deletion and assimilation backend phases + - Added sample assimilator program + - Added file_deleter program (AKA garbage collector) + + client/ + main.C + db/ + db.h + db_mysql.C + schema.sql + sched/ + Makefile.in + assimilator.C (new) + config.C,h + result_retry.C + validate.C + test/ + test.inc + tools/ + backend_lib.C + +David Dec 17 2002 + - The assimilator takes a -app argument + - Added execution of file_delete and assimilator to test_uc.php + this should delete all input and output files + TODO: check that it actually does + - fixed bugs in file_deleter + + todo + db/ + db.h + db_mysql.C + doc/ + backend.gif (new) + backend.html + backend.png (new) + work_states.html + html_ops/ + db.inc + html_user/ + user.inc + sched/ + assimilator.C + file_deleter.C + handle_request.C + test/ + test.inc + test_uc.php + +Seth Dec 18 2002 + - net_xfers in windows will get permission before connecting if needed + - added global pref for whether or not to hang up the modem if BOINC dialed + - client state saves global prefs confirm_before_connecting + and hangup_if_dialed locally for now + - wingui split into different files, bug fixes + + client/ + net_xfer.C,h + prefs.C,h + client_state.C + client/win + win_net.cpp,h + wingui.cpp,h + wingui_mainwindow.cpp,h (new) + wingui_dialog.cpp,h (new) + wingui_listctrl.cpp,h (new) + wingui_pictrl.cpp,h (new) + +David Dec 18 2002 + - Have account create action redirect to a different page + so you don't get "Repost form data" if you go back to it + - Added full support for project-specific preferences. + Logic is encapsulated in project_specific_prefs.inc. + The example lets you choose color scheme + (Tahiti Sunset, Desert Sands) + + html_user/ + account_created.php (new) + project_specific_prefs.inc (new) + create_account_action.php + prefs.inc + prefs.php + prefs_edit_global_form.php + prefs_edit_project_action.php + prefs_edit_project_form.php + util.inc + lib/ + countries.C,h + +David Dec 19 2002 + - The Edit Account form now shows current values + directly in input fields. + - Country select popup shows current value + - Improve new account email + + html_user/ + account_created.php + change_pass_action.php + create_account_action.php + edit.inc + edit_action.php + edit_user_info.php + util.inc + tools/ + country_select.C + +Hamid Dec 19 2002 + + -Edited make_work.C, now when a new work_unit is created, + it's input files are copied along with it, + with some random numbers added to the end, + so for each new work_unit there are a set of associated new input files + + -fixed a little bug in file_deleter + + -note: strtok() changes the original string passed to it, kind of dangerous to use + + -from parse.h : replace_element() is now in use ( I used it for make_work.C) + +David Dec 19 2002 + - added -add_new_project option to command line version + changed func name from get_initial_project() to add_new_project() + + client/ + account.C,h + client_state.C,h + main.C + scheduler_op.h + win/ + wingui.cpp,h + +David Dec 23 2002 + - Made stripcharts work with BOINC test framework + The script "test_loop.php" now generates a data file of + CPU load that can be graphed using stripchart. + TODO: add other data sources + - added "country" field to team + - expanded team description from 256 chars to blob + - turned off debug output from file upload handler, scheduler + - removed "time" args from various Project member functions + in test.inc. Use sleep(). + + db/ + db.h + db_mysql.C + schema.sql + html_user/ + db.inc + team_create_form.php + sched/ + file_upload_handler.C + handle_request.C + result_retry.C + stripchart/ + stripchart.cgi + stripchart.cnf + samples/ + datafiles + test/ + test.inc + test_download_backoff.php + test_loop.php + test_masterurl_failure.php + test_sched_failure.php + diff --git a/checkin_notes_2003 b/checkin_notes_2003 new file mode 100644 index 0000000000..9129191b25 --- /dev/null +++ b/checkin_notes_2003 @@ -0,0 +1,6053 @@ +David Jan 2 2003 + - Back off on a project if we make a scheduler RPC asking for work + and don't get any + - fixed "http_proxy_name" XML parsing problem in client + - added drand() function. + NOTE: always make repeated code blocks into functions + - make_work was using uninitialized seqno, caused negative + numbers in filenames + + client/ + client_state.C,h + cs_scheduler.C + scheduler_op.C + doc/ + credit.html + lib/ + util.C,h + sched/ + make_work.C + validate.C + +David Jan 3 2003 + - added some indices to DB. + + NOTE: there must be an index for each field or combination of fields + that we do a "select" on!! + +David Jan 6 2003 + - change all server programs to do logging the same way: + - all log entries written to stderr + - write date/time at start of log entries + - don't include program or user name in log entries + - client: when get no work from project, + don't back off if we're in exit_when_idle mode + - added ob_end_flush() call in test.inc so that PHP test scripts + have unbuffered output + - added other backend phases (validate, file_delete) to test_loop.php + - PROGRAMMER NOTES: + - don't use tab chars in files + - split long comments into separate lines + - "extern" should never appear in a .C file + - Don't use member function names that conflict with global functions + (e.g. CLIENT_STATE::exit(); use cleanup_and_exit() instead) + + client/ + client_state.C,h + client_types.h + cs_apps.C + http.h + main.C + scheduler_op.C + html_ops/ + db.inc + db.php + sched/ + assimilator.C + feeder.C + file_deleter.C + file_upload_handler.C + handle_request.C + main.C,h + make_work.C + result_retry.C + server_types.C + validate.C + stripchart/ + stripchart.cnf + test/ + test.inc + test_loop.php + +David Jan 7 2003 + - extend client "print state summary" function to give more + detailed information about state, e.g. names and states + of everything, and active file xfers and tasks + - fixed bug where feeder inserted same result twice in shmem + + client/ + client_state.C,h + cs_apps.C + cs_scheduler.C + sched/ + assimilator.C + feeder.C + test/ + log_flags.xml + +David Jan 8 2003 + - changed the DB code so that you can use the mySQL utility functions + to access different databases from a single program. + There's now a MYSQL_DB class that you can subclass. + See db_mysql.C for an example. + + db/ + db.h + db_mysql.C + mysql_util.C,h + sched/ + assimilator.C + feeder.C + file_deleter.C + handle_request.C + main.C + make_work.C + result_retry.C + validate.C + tools/ + add.C + backend_lib.C + create_work.C + +Seth Jan 8 2003 + - Set up Windows client to read captions from a file + + client/win/ + Resource.h + resource.rc + wingui_dialog.cpp,h + wingui_mainwindow.cpp,h + +David Jan 13 2003 + - With -no_time_test flag, client now uses default values for + various speeds, rather than zero + - Restored commented-out timezone code. + May need to get working on Solaris + - Added stripchart scripts for getting DB info + (need to macro-substitute DB name) + + Net result: test_loop.php now works correctly and generates + stripcharts that show an ever-growing set of results + + client/ + client_state.C,h + hostinfo_unix.C + html_ops/ + db.inc + stripchart/samples + count_users + count_results (new) + datafiles + get_load + looper + test/ + test.inc + test_loop.php + +David Jan 14 2003 + - Removed INSTALL_CLIENT and gutted INSTALL + + NOTE: all docs should be in HTML + NOTE: spell-check all new documents + + INSTALL + INSTALL_CLIENT (removed) + doc/ + boinc_dev.html + road_map.html + single_host_server.html + test.html + +David Jan 14 2003 + - Added log writes to sched server in some error cases + - Removed -use_files flag to sched server. Use compile-time flag instead. + + sched/ + handle_request.C + main.C + +David Jan 15 2003 + - create_work() makes a copy of result, WU templates since + they get modified (fixed bug when create >1 WU) + - scheduler reports errors in WU/result XML docs + + sched/ + handle_request.C + test/ + test.inc + tools/ + backend_lib.C + +David Jan 22 2003 + - Changed some of the state fields of workunit and result, + to accommodate new policies about when to delete files + See doc/backend_* for details + - Split off dummy assimilation function from the main program. + - Added new stripchart scripts for logging DB counts + and directory sizes + + NOTE: it looks like shared memory segment is at same address + in feeder and cgi. So it's OK to use pointers in it. + + db/ + db.h + db_mysql.C + schema.sql + doc/ + backend.html (removed) + backend_functions.html (new) + backend_programs.html (new) + backend_state.html (new) + backend_work_sequence.html (new) + create_project.html + garbage.html (removed) + retry.html (removed) + work.html + work_states.html (removed) + html_ops/ + db.inc + db.php + sched/ + Makefile.in + assimilate_handler.C,h (new) + assimilator.C + handle_request.C + result_retry.C + validate.C + strichart/samples/ + datafiles + db_count (new) + db_looper (new) + dir_size (new) + test/ + test.inc + test_loop.php + tools/ + backend_lib.C + create_work.C + +David Jan 29 2003 + - updated country-name list according to CIA site + - added program to generate XML stats files + - added classes to assist double-buffered graphics info for applications + + api/ + graphics_data.C,h (new) + Makefile.in + lib/ + countries.C + sched/ + db_dump.C (new) + Makefile.in + +David Jan 30 2003 + - continued work on db_dump + - added doc for db_dump + - added create_time field to team table + + db/ + db.h + db_mysql.C + mysql_util.C,h + doc/ + db_dump.html (new) + stripchart.html (new) + stripchart_data.html (new) + html_user/ + team_create_action.php + lib/ + util.C,h + sched/ + Makefile.in + db_dump.C + +David Jan 30 2003 + - got db_dump working + - scheduler: change max WUs from 2 to 10 + + NOTE: for any DB field that could conceivable contain a ', + you must escape and unescape it in struct_to_str() + + db/ + constraints.sql + db_mysql.C + mysql_util.C + sched/ + db_dump.C + handle_request.C + +Eric Feb 04, 2003 + - Cleaned up formatting of client_state.xml + - Added retry message to transfers tab of Windows client + - Added error catching for network transfer failures + + client/ + client_state.C + client_types.C + cs_files.C + http.C + pers_file_xfer.C,h + win/ + wingui.h + wingui_mainwindow.cpp,h + +David Feb 4 2003 + - removed graphics logic from boinc_ready_to_checkpoint(). + Rendering logic is now entirely in the GUI thread. + It's up to the application to synchronize computation and rendering. + - added REDUCED_ARRAY::draw_part() + - bug fixes in db_dump + + api/ + boinc_api.C + graphics_data.C,h + reduce.cpp,h + windows_opengl.cpp + db/ + db_mysql.C + doc/ + db_dump.html (new) + index.html + participate.html + sched/ + db_dump.C + +David Feb 7 2003 + - Changed account creation features quite a bit. + It now bifurcates according to whether this is first project. + Asks for preferences and offers download accordingly. + + html_user/ + account_setup* (new) + +David Feb 8 2003 + - Work on account creation a bit more. + Removed project graphics prefs. + Added email prefs. + + html_user/ + various + +David Feb 10 2003 + - fix memory leaks + + client/ + client_types.C + net_xfer.C + +David Feb 10 2003 + - attempt to fix bugs by eliminating dynamic allocation + + client/ + client_state.C + client_types.C,h + cs_scheduler.C + scheduler_op.C + test_file_xfer.C + lib/ + parse.C,h + +David Feb 12 2003 + - Added mechanism for starting or restarting all back-end processes + for a project. A list of the programs are now in config.xml. + All programs now use lock files to prevent duplicate execution. + A new program "start_servers" reads config.xml and starts servers. + - Added "user-friendly name" field to platform, so that users + see e.g. "Windows 95/98/XP" instead of "windows_intelx86" + NOTE: this requires patching existing databases + + db/ + db.h + db_mysql.C + schema.sql + html_ops/ + db.inc + html_user/ + download.inc + download.php + index.php + sched/ + Makefile.in + config.C,h + start_servers.C + test/ + make_project.php + test.inc + tools/ + add.C + +David Feb 12 2003 + - changed "exit_after" to "exit_after_app_started_secs" + and changed its null value from -1 to 0. + - don't ask a scheduler for work if in exit_when_idle mode + and we've already contacted scheduler + - remove exit_when_idle clause from backoff after no work available + + client/ + client_state.C,h + cs_apps.C + cs_scheduler.C + scheduler_op.C + test/ + test_time.php + +David Feb 12 2003 + - changed server startup mechanism so that config.xml contains + actual commands (so you can include cmdline args etc.) + + sched/ + config.C,h + start_servers.C + test/ + test.inc + +David Feb 12 2003 + - changed user HTML so that all project-specific stuff + (intro, banner, etc.) is in a separate file. + Can specify this file in test scripts. + - added test scripts to make dummy SETI@home and Astropulse projects, + and made project-specific HTML files for them + + html_user/ + index.php + project.inc (new) + project_ap.inc (new) + project_sah.inc (new) + sched/ + start_servers.C + test/ + make_project.php + make_project_ap.php (new) + make_project_sah.php (new) + test.inc + +David Feb 14 2003 + - Added "long_name" field to project table (display this in GUI) + Can have spaces, special chars etc. + - fixed bugs in prefs updating + + db/ + db.h + db_mysql.C + schema.sql + html_user/ + prefs.inc + sched/ + server_types.C + test/ + make_project_ap.php + make_project_sah.php + test.inc + +David Feb 17 2003 + - restored some of the changes for faster network throughput + + client/ + client_state.C,h + main.C + next_xfer.C,h + +David Feb 18 2003 + - fixed formatting; changed vector remove to use iterator + + client/ + app.C + cs_files.C + app.C + +David Feb 18 2003 + - added "opaque" fields to result and workunit tables. + (allows projects to cross-reference to their science DB) + - added "venue" field to host (home/school/work) + This has two goals: + 1) provides a basis for multiple preference sets + (one each for home/school/work) + 2) provides another account breakdown for stats + - added "venue" field to user + This is the default venue, for newly created hosts + - simplified preferences: + For account setup, all preferences are now on one form + (different forms for new/return users) + For preference editing, preferences are now in two groups + - project preferences, including resource share, + venue, and per-project prefs + - global prefs (called "BOINC prefs" in user interface) + - fixed bug where user/host credits in client state file were giant numbers + + todo + client/ + scheduler_op.C + db/ + db.h + db_mysql.C + schema.sql + html_ops/ + db.inc + html_user/ + account_setup_first.php + account_setup_first_email.php (removed) + account_setup_first_project.php (removed) + account_setup_first_action.php (new) + account_setup_nonfirst.php + account_setup_nonfirst_email.php (removed) + account_setup_nonfirst_project.php (removed) + account_setup_nonfirst_action.php (new) + create_account_action.php + prefs.inc + prefs_edit_global_* + prefs_edit_email_* (removed) + prefs_edit_project_* + prefs_edit_resource_* (removed) + project_specific_prefs.php + sched/ + handle_request.C + server_types.C + test/ + test.inc + +David Feb 19 2003 + - Added scheme for verified user update of email address + When user updates email address, their email address in the DB + is set to a "munged" form that includes a random string, + and an email is sent to the new address that includes a + URL that they must visit to verify the change. + - The same mechanism is used on account creation; + the email DB field is initially set to a munged form. + This prevents hackers from adding entries to the DB + with other peoples' email addresses. + - Separate logic for update email address from update other user info; + remove combinatorial logic (?) for update other user info + + configure (removed; generated from configure.in by autoconf) + db/ + db.h + html_user/ + create_account_action.php + create_account_form.php + edit_action.php (removed) + edit_email_action.php (new) + edit_email_form.php (new) + edit_user_info.php (removed) + edit_user_info_form.php (new) + login_action.php + user.inc + util.inc + +David Feb 20 2003 + - project preferences are now handled correctly, + written/read to account file + - fix bugs in web pages for editing prefs + - change dont_run_on_batteries to run_on_batteries etc. + - fix bug in test scripts where account file had wrong name + + apps/ + upper_case.C + client/ + account.C,h + client_state.C + client_types.C + cs_scheduler.C + prefs.C,h + doc/ + client_files.html + html_user/ + confirm_email_change.php + edit_user_info_action.php + prefs.inc + prefs_edit_project_action.php + prefs_edit_project_form.php + test/ + test.inc + test_uc.php + +David Feb 22 + - API now passes both host and user credit to apps + - API now passes team name to apps (scheduler RPC now returns it) + - don't use malloc in get_free_slot + - added fancier project-specific prefs for astropulse + - fixed bugs in account creation + - imported code to remove dangerous HTML tags from user-supplied text + + api/ + boinc_api.C,h + client/ + app.C + client_state.C + client_types.C,h + cs_scheduler.C + hostinfo.C,h + hostinfo_unix.C + time_stats.C + html_user/ + account_setup.php + account_setup_first_action.php + download.inc + htmlfilter.inc + logout.php (new) + prefs.inc + project.inc + project_specific_prefs_ap.inc (new) + sanitize_html.inc + team.inc + team_edit_action.php + util.inc + sched/ + handle_request.C + server_types.C,h + test/ + make_project_ap.php + test.inc + +Seth Feb 24 + - changed windows graphics handling. + client now has a child window in which all graphics are displayed. + when an app is running, this window sends a message to the app telling + it to draw on the window. + + api/ + windows_opengl.cpp + client/win/ + wingui.C,h + wingui_mainwindow.C,h + wingui_sswindow.C,h (new) + +David Feb 25 2003 + - Implemented network throughput limits, part of global prefs. + There are separate limits for upload and download. + Implementation: the NET_XFER_SET objects now has fields for + 1) the max # bytes/sec up and down (from global prefs) + 2) the limit on bytes that can be xferred this second + Can go negative. If it's negative, don't include + sockets in select(). + Replenish every second. + This replaces an implementation that didn't work + - Reimplemented the way network throughput is measured. + The old way measured throughput for each file xfer, and kept an average. + This doesn't work with multiple simultaneous xfers. + The new way uses a NET_STATS::poll() function. + If there has been an active file xfer during the last poll period + (new logic in NET_XFER_SET lets you find this out) + then you add the duration of the polling period, + and the number of bytes transferred. + The reported throughput is averaged with throughput + from previous sessions of the core client. + - Increased file xfer blocksize from 4KB to 16KB + - Got rid of dynamic buffer allocation in NET_XFER + - Renamed "water days" to "work buf days" everywhere + NOTE: + clock() measure calling process CPU time, not time of day. + Use time(0) if you want time of day. + + client/ + client_state.C,h + cs_scheduler.C + file_xfer.C + http.C + main.C + net_stats.C,h + net_xfer.C,h + pers_file_xfer.C + prefs.C,h + scheduler_op.C + test_file_xfer.C + test_http.C + test_net_xfer.C + test/ + test.inc + test_uc.php + +Eric Feb 25, 2003 + - Added net transfer progress. Tracks number of bytes transferred + for file uploads and downloads. + - Fixed Windows battery status bug. + - Net transfer speed measurement in bytes/sec. The measurement decays by + 1/2 every 3 seconds. + - Added PHP function to password protect project admin pages via .htaccess. + - Altered show_message function to specify the project a message is + associated with. + + client/ + client_state.C + cs_scheduler.C + file_xfer.C + net_xfer.C,h + pers_file_xfer.C + mac/ + mac_main.cpp + main.C + message.h + scheduler_op.C + win/ + wingui_mainwindow.cpp + wingui.cpp + hostinfo_win.cpp + test/ + test.inc + +Eric Feb 26, 2003 + - Added ability to automatically zip/gzip stats files. + + sched/ + db_dump.C + +David Feb 27 2003 + - fix bug in prefs display + - use $_GET["foo"] to access form variables in PHP scripts + (this makes it clear what the form variables are) + - use trim() to get rid of white space and start/end of authenticator. + Should do this for most user-supplied data + - use row2() to generate all two-item rows. + Right-align the first part and embolden the second. + Get rid of row() and row2a() + - change "water days" terminology to "work buf" + + html_user/ + account_created.php + bug_report_action.php + confirm_email_change.php + login_action.php + login_form.php + prefs.inc + prefs_edit_global_action.php + prefs_edit_project_action.php + prefs_edit_project_form.php + project_specific_prefs.inc + project_specific_prefs_ap.inc + show_host_detail.php + team.inc + user.inc + util.inc + +Eric Feb 28, 2003 + - Fixed screensaver to open client/go to full screen mode correctly. + - Implemented "Go to blank screen after x minutes" functionality. + + api/ + graphics_api.h + client/ + client_state.C,h + win/ + wingui_mainwindow.cpp,h + win_util.h + win_screensaver.cpp + wingui_sswindow.cpp,h + +David Feb 28 2003 + - after master URL fetch done, write client state file + (so that we don't fetch it again) + - scheduler: don't check for WU feasibility if the client reports + zero disk or zero memory; + improved reporting of infeasibility + - added a "watchdog" script (wd.php) that checks log files for error msgs + and sends an email if any. Also added a sample watchdog that + makes sure #results changes + + client/ + client_types.C + cs_scheduler.C + scheduler_op.C + sched/ + handle_request.C + wd.php + wd_nresults_changing.php + +David Feb 28 2003 + - add some fields to copy_state_fields(). + (fixed bug where client always fetches master URL) + + client/ + client_types.C,h + +David Mar 2 2003 + - added code to garbage-collect APP_VERSIONs: + delete any APP_VERSION that's not referenced and for which + there's a later version of the same app. + Also garbage-collect executable files + (previously, they were never deleted). + - fixed minor bug (file offset on redirected POST2 HTTP op) + - added network bandwidth limits to global prefs web interface + + todo + client/ + client_state.C,h + cs_files.C + hostinfo_unix.C + http.C,h + html_user/ + prefs.inc + sched/ + handle_request.C + +David Mar 2 2003 + - escape single quotes on result.stderr_out and result.xml_doc_out + (since client could return something with single quotes) + - when get a DB error, write mysql's error string to log + + db/ + db.h + db_mysql.C + mysql_util.C,h + sched/ + handle_request.C + +David Mar 3 2003 + - run_on_batteries defaults to true + (else can't run test_uc.php on batteries) + - show correct time diffs in client out + - In user_html, use row2() uniformly, and added shading + - laid some groundwork for multiple prefs sets + + client/ + client_state.C + main.C + prefs.C + html_user/ + prefs.inc + prefs_edit_global_form.php + project_specific_prefs.inc + show_hosts.php + user.inc + util.inc + test/ + test_uc.php + +David Mar 4 2003 + - added PHP code for creating/editing/deleting multiple pref sets + See "prefs.inc" for a description of the XML format. + Prefs are divided into two subsets (global and project). + For each subset there is a mandatory "primary" version + and optional versions for home, school, and work. + The prefs display/editing code has been consolidated + and parameterized (subset = global or project, + venue = none, home, school, work). + This actually simplifies things a little. + + html_user/ + account_setup_first_action.php + account_setup_nonfirst_action.php + add_venue_action.php (new) + add_venue_form.php (new) + prefs.inc + prefs.php + prefs_edit_action.php (new) + prefs_edit_form.php (new) + prefs_edit_global* (removed) + prefs_edit_project* (removed) + user.inc + util.inc + +David Mar 4 2003 + - debugged prefs editing code + + html_user/ + account_setup_first_action.php + add_venue_action.php + add_venue_form.php + prefs.inc + prefs_edit_action.php + project_specific_prefs.inc + +David Mar 5 2003 + - use venue-specific prefs on client side: + - schedule server passes element in scheduler reply + (but only when it passes back new global prefs) + - when parsing global prefs, if find a matching + element, parse its contents and ignore all else + - when passing project-specific prefs to app, + look for matching element + - changed XML syntax of venue-specific prefs: instead of + ..., e.g., use + ... + - added safe_strncpy(): always adds zero byte at end. + Use this instead of strncpy(). + + client/ + app.C + client_state.C,h + cs_scheduler.C + hostinfo.C + prefs.C,h + scheduler_op.C,h + html_users/ + add_venue_action.php + prefs.inc + show_host_detail.php + user.inc + lib/ + parse.C,h + util.C,h + sched/ + Makefile.in + server_types.C + +David Mar 6 2003 + - new show_message() conventions (not fully implemented): + - all error conditions should call show_message() with MSG_ERROR + - all log writes should use show_message() with MSG_INFO + TODO: change Win implementation of show_message() to + write to window AND to file (stderr.txt or stdout.txt) + - messages are now timestamped and show project name + - use start_table() and row2() more uniformly in user HTML + - user HTML: show message if can't connect to DB + - standardize terminology in user HTML: "general prefs", + "default computer location", etc. + + client/ + client_state.C + cs_scheduler.C + main.C + message.h + scheduler_op.C + doc/ + prefs.html + html_user/ + add_venue_form.php + bug_report_form.php + create_account*.php + db.inc + edit_email_form.php + edit_user_info_form.php + index.php + login*.php + prefs.inc + prefs_edit_form.php + show_user.php + team_create_form.php + top_hosts.php + user.inc + util.inc + lib/ + util.C,h + sched/ + *.C + +Eric March 7, 2003 + - Moved common functions (write_log, check_trigger, update_average) + into sched_util.C + - Added stop_server checking to more server programs + - Added update_stats program to periodically update exponential average + credit for users and hosts, and to update team credit by summing member credit + - Added db_sum, db_query_double to retrieve sums of columns (used by update_stats) + - Added db_user_sum_team_expavg_credit, db_user_sum_team_total_credit, + db_user_count_team for updating team statistics + - Confirmed that current exponential average algorithm is correct + + db/ + mysql_util.C,h + db_mysql.C + db.h + html_user/ + top_teams.php + sched/ + Makefile.in + *.C + sched_util.C,h (added) + update_stats.C (added) + +Seth March 10, 2003 + - changed windows graphics handling again. client/app messaging + now mainly consists of the client polling the app windows, + with apps messaging the client when they change modes. + moved most of this into the client's child screensaver window. + + api/ + windows_opengl.cpp + client/win/ + wingui_sswindow.cpp,h + wingui_mainwindow.cpp,h + +Eric March 11, 2003 + - changed client exit to send a quit request to the apps, wait 1 + second for them to quit, then kill them if they're still open. + This allows applications to do a final checkpoint before + quitting, rather than lose their recent work + - changed boinc_sleep to accept fractional sleep values + + apps/ + concat.C + upper_case.C + client/ + app.C,h + client_state.C + cs_apps.C + test_*.C + lib/ + util.C,h + +Eric March 12, 2003 + - Quit requests are now sent via the SIGQUIT signal (on UNIX) + or a named Event (on Windows), rather than via an XML file + + api/ + boinc_api.C,h + client/ + app.C,h + +Eric March 13, 2003 + - Added System V message queue functions to library + + lib/ + msg_queue.C,h + msg_test.C + +David Mar 15 2003 + - added some state diagrams to docs + - changed var name from "giveup_after" to "file_xfer_giveup_period" + PLEASE USE MEANINGFUL NAMES, especially for global vars + + todo + api/ + boinc_api.h + client/ + app.C + client_state.C,h + pers_file_xfer.C,h + doc/ + various + sched/ + feeder.C + +Eric March 17, 2003 + - Changed app->client communication to use shared memory rather + than files. The client sets up a shared memory segment when + starting the app. The app attaches to it and writes XML tags + into a 4K text buffer every second. + - The shared memory communication has been tested by hand under + Windows and UNIX (Mac OS X). We should write test scripts for + it to make sure. + + configure.in + api/ + boinc_api.C,h + apps/ + Makefile.in + client/ + app.C,h + cs_apps.C + lib/ + shmem.C,h + +David Mar 18 2003 + - Don't write signed_xml and xml_signature tags in the state file + if they're empty strings + (this eliminates malformed XML in state file) + - Replace safe_strncpy(foo, "", sizeof(foo)) with strcpy(foo, ""). + Reduce noise. + + client/ + app.C + client_state.C + client_types.C + file_xfer.C + hostinfo.C + http.C + scheduler_op.C + +Eric March 19, 2003 + - Moved OpenGL context creation/destruction outside of drawing + loop. This seems to improve speed on Windows 98. + - Added memory deallocation routine for client_state vectors. + This clears up several dozen unnecessary memory leak reports. + + api/ + windows_opengl.cpp + client/ + app.C,h + client_state.C,h + cs_apps.C + win/ + wingui_mainwindow.cpp + +David Mar 19 2003 + - general cleanup of user web + + html_user/ + * + show_hosts.php (removed) + +David Mar 19 2003 + - added global pref for max CPUs + - added global pref for min interval between disk writes + (applies to checkpoint writes only) + - added URL field to user table + - moved "send_email" field from XML to DB + - added "show_hosts" field to user table + + show_host_public.php (removed) + client/ + app.C + client_state.C,h + cs_apps.C + prefs.C,h + db/ + db.h + db_mysql.C + schema.sql + doc/ + index.html + html_user/ + edit_user_info* + host.inc + prefs.inc + prefs_edit_* + show_host_detail.php + user.inc + util.inc + sched/ + db_dump.C + test/ + test.inc + tools/ + add.C + +Eric March 20, 2003 + - Changed speed tests to use a realtime timer rather than + estimating the number of iterations. + - Changed floating point test to use more accurate code. + - Fixed memory bandwidth test reporting. + + client/ + app.C + client_state.C,h + speed_stats.C,h + +David Mar 20 2003 + - added web interface for "merging" hosts + - cleaned up team-related PHP code + + html_user/ + edit_host_action.php + edit_host_form.php + +David Mar 21 2003 + - fixed bugs in host merge + - (Eric) fix secs-per-day problem in credit + +David Mar 24 2003 + - added preference for time-of-day restrictions + (run only between hours X and Y) + + client/ + client_state.C + prefs.C,h + html_user/ + create_account_action.php + create_account_form.php + prefs.inc + +David Mar 25 2003 + - account creation is now turned off by putting + "" in html_user/config.xml + - change name of config file to .htconfig.xml + (so can't read via HTTP) + + html_user/ + create_account* + util.inc + +David Mar 31 2003 + - add "-exit_before_upload" cmdline option + + client/ + client_state.C,h + pers_file_xfer.C + html_user/ + team_create_action.php + test/ + test_uc.php + +David Mar 31 2003 + - added random field to result. + Results are sent in random order, making it hard for hackers + to get multiple results for the same WU + - user-visible messages about files give names, not URLs + - Changed all occurrences of "time test" and "speed test" + to "CPU benchmark". + Please use accurate, consistent terminology in the code. + - changed command-line options: + -skip_cpu_benchmarks instead of -no_time_tests + -run_cpu_benchmarks instead of -run_speed_test + + client/ + client_state.C,h + file_names.h + hostinfo.C,h + net_xfer.C + pers_file_xfer.C + speed_stats.h + db/ + constraints.sql + db.h + db_mysql.C + schema.sql + html_user/ + prefs.inc + user.inc + sched/ + make_work.C + test/ + test_1sec.php + test_backend.php + test_uc.php + tools/ + backend_lib.C + +David Apr 3 2003 + - added macro "safe_strcpy(x, y)" + ** USE THIS INSTEAD OF safe_strncpy(x, y, sizeof(x)) + - added macro "safe_strcat(x, y)" + ** USE THIS INSTEAD OF strcat() + - changed dynamically-allocated fields of SCHEDULER_REQUEST, + SCHEDULER_REPLY to static + + That combination of the above fixes a bug where a long + stderr_out could overwrite other fields of RESULT + + client/ + app.C + client_state.C + client_types.C + cs_scheduler.C + hostinfo_unix.C + http.C + net_xfer.C + pers_file_xfer.C + scheduler_op.C + doc/ + index.html + lib/ + filesys.C + util.C,h + sched/ + file_deleter.C + file_upload_handler.C + handle_request.C + server_types.C,h + +David Apr 7 2003 + - changed names of DB interface routines to get rid of conflict + with SETI@home DB interface + - changed name of "db.h" to "boinc_db.h" to remove conflict w/ SETI@home + + db/ + db.h (removed) + boinc_db.h (new) + db_mysql.C + sched/ + *.C + tools/ + *.C + +Erik May 6 2003 + - Added a notion of "transient" and "permanent" errors on file uploads. + A permanent error is returned by the file upload handler if + - the request is malformed + - filename includes ".." + - the signature is bad + - the file size is larger than allowed + PERS_FILE_XFER checks for this return from FILE_XFER + and gives up immediately. + - FILE_XFER now always parses the server response (not just for file size) + - Added some missing error checks to FILE_XFER + - Punted on the timezone-related ifdefs: + added hardwired ifdefs for linux and unix. + Need to revisit this + - in PHP test library, add a provision for multiple files per application + + client/ + file_xfer.C + hostinfo_unix.C + pers_file_xfer.C,h + doc/ + client.html + index.html + old_news.html (new) + result.fig + setiathome.jpg + upload.html + lib/ + error_numbers.h + sched/ + file_upload_handler.C + test/ + test.inc + +Erik May 8 2003 + - Added a new class SS_LOGIC that encapsulates the core client's + screensaver-related logic. + It tries to get graphics-capable apps to provide graphics, + and if necessary it draws logo-based graphics or blanks the screen. + - Changed ACTIVE_TASK.app_client_shm from a pointer to an object. + NOTE: AVOID DYNAMIC ALLOCATION WHENEVER POSSIBLE + - got rid of free_mem() stuff + + client/ + Makefile.in + app.C,h + cs_apps.C + ss_logic.C,h (new) + lib/ + Makefile.in + app_ipc.C,h + +Erik May 13 2003 + - Added a notion of "tentative" project. + This means that the (URL, account ID) pair hasn't been verified, + i.e. we haven't fetched the master page, found a scheduler, + and done a scheduler op that verified the account ID. + If anything fails for a tentative project, call project_add_failed(). + in the cmdline version this prints an error message, + deletes all evidence of the project, and exits. + TODO: implement for GUI + - Make write_account_file() into a member function of PROJECT. + - Got rid of CLIENT_STATE::change_project(). + The user must detach and attach. + - CLIENT_STATE::quit_project() now takes a PROJECT*, not an int. + Need to change the GUI code. + - got rid of separate WIN_32 implementations of + make_project_dir(), remove_project_dir(), make_slot_dir(). + THIS IS THE WRONG LEVEL FOR PLATFORM-DEPENDENT CODE! + Instead, added boinc_mkdir() and boinc_rmdir() + - added implementation docs for screensaver logic + - test_uc.php: wait for a second before running client. + On fast computers the client runs before feeder has seeded shmem. + + client/ + account.C,h + client_state.C,h + client_types.C,h + cs_scheduler.C + file_names.C + main.C + scheduler_op.C,h + ss_logic.C + win/ + wingui.cpp + wingui_mainwindow.cpp + doc/ + client_app.html + client_app_graphic.html + lib/ + filesys.C,y + test/ + test_uc.php + +Erik May 14 2003 + - added function to "reset" project (stop all current activities + and delete everything except sticky files) + - added function to "detach" from project (the above, plus + deleting all files, the account file, and the project) + + client/ + account.C + client_state.C,h + main.C + pers_file_xfer.C + lib/ + util.C + test/ + test_uc.php + +Erik May 15 2003 + - added cmdline options for show/detach/reset project + - -update_prefs command now takes a URL + - added license text to some files + + client/ + account.C + client_state.C,h + lib/ + util.C + doc/ + client.html + +Erik May 15 2003 + - change NET_XFER::net_sleep() so that it does up to about .5 sec of I/O, + rather than just one block per socket + + client/ + net_xfer.C + +Erik May 16 2003 + - set FILE_INFO::upload_offset to -1 before restarting file upload. + This forces file size check, so that upload can resume + with nonzero offset. + NOTE: THE USE OF "SPECIAL VALUES" (LIKE -1) IS DISCOURAGED + - don't set RESULT::state to NEW after parse. + This caused completed results to start over. + - PERS_FILE_XFER::start_xfer() is int, not bool + - better messages on file transfer failure and project backoff + - better message from scheduler if wrong major version + - file upload handler logging is on by default + + client/ + scheduler_op.C + pers_file_xfer.C,h + client_state.C + file_xfer.C + lib/ + error_numbers.h + sched/ + file_upload_handler.C + handle_request.C + +Eric May 16, 2003 + - changed do_select to keep calling do_xfer for uploads until either + a) the send buffers are full or b) 1 second has passed + - changed variable name in Windows GUI code for clarity + + client/ + net_xfer.C + win/ + wingui_mainwindow.cpp + +Erik May 19 2003 + - added support for user-selected files to be included + as part of an app_version. + If there is an element of the form + + X + Y + + in a user's project preferences, + then for every APP_VERSION that is sent to the user, + elements of the form + + X' + X + + ... and in the element + + X' + Y + + are added to the app version's XML description, + where X' is an escaped version of X. + This can be used (for example) to allow applications to + have user-specified images in their graphics + - Handle it correctly if the "insert" part of a file transfer fails + - The "main program" of an app version is the one labeled + (not necessarily the first one) + - Only files labeled are required to be signed + - added copyright notice to some files + - added sgets() for parsing a string that is made up of multiple lines + - write MD5 checksum elements only if checksum is present + - created escape_url_readable + + TODO: app_versions are currently treated as immutable by client. + Need to change this. + + todo + api/ + graphics_data.C,h + util.cpp,h + client/ + app.C + client_state.C + client_types.C + cs_files.C + file_names.C + pers_file_xfer.C,h + doc/ + api.html + boinc_dev.html + client_app.html + client_app_graphics.html + graphics.html + lib/ + parse.C,h + util.C,h + sched/ + handle_request.C + server_types.C,h + +Eric May 20, 2003 + - When you create a team you automatically join it + + html_user/ + team.inc + team_create_action.php + team_join_action.php + +Erik May 21 2003 + - in application w/ graphics, make sure worker thread is lower + priority than GUI thread + - show error msg if attach to existing project + - trim CR from end of message strings + - consider it a failure if tentative project master page + downloads OK but has no scheduler URLs + - clean up formatting of download page + + api/ + graphics_api.C + client/ + account.C + main.C + scheduler_op.C + win/ + wingui.cpp + html_user/ + download.inc + lib/ + error_numbers.h + +Erik May 21 2003 + - various changes to support abort of apps if use too much disk or CPU + - send workunit rsc_* fields in scheduler reply; store on client + - scheduler doesn't send estimated CPU time; instead, + client calculates it + - CPU time bound is estimated time * 2 + - disk bound is rsc_disk + TODO: finish implementing this + - When an app finishes, see if any of the output files is larger + than its max_nbytes. + If so set its status to ERR_FILE_TOO_BIG. + This will prevent the client from trying to upload it. + TODO: make sure result is flagged as erroneous + - Change API_IGNORE_CLIENT to API_STANDALONE + - Apps start in MODE_WINDOW if standalone + + api/ + boinc_api.C,h + windows_opengl.cpp + client/ + app.C,h + client_state.C,h + client_types.C,h + cs_apps.C + cs_scheduler.C + db/ + boinc_db.h + lib/ + error_numbers.h + sched/ + handle_request.C + +Erik May 22 2003 + - abort applications that exceed max disk usage + Do this check at most global_prefs.disk_interval seconds + - moved code that detaches core/app shared memory from + CLIENT_STATE::handle_finished_apps() to + ACTIVE_TASK::check_app_exited() + NOTE: ACTIVE_TASK IS SUPPOSED TO ENCAPSULATE TASK IMPLEMENTATION + - CLIENT_STATE::handle_finished_apps(): don't view an app as finished + if it's in PROCESS_ABORT_PENDING state + - got rid of ACTIVE_TASK_SET::poll_time(); + moved its functionality to ACTIVE_TASK_SET::poll() + - broke up ACTIVE_TASK_SET::poll() into subfunctions: + get_cpu_times(), check_app_exited(), + check_max_cpu_exceeded(), check_max_disk_exceeded() + - change function names: + get_cpu_time() -> get_cpu_time_via_os() + check_app_state() -> get_cpu_time_via_shmem() + handle_running_aps() -> handle_finished_apps() + - exit_tasks() is a member function of ACTIVE_TASK_SET, not CLIENT_STATE + + client/ + app.C,h + client_state.C,h + cs_apps.C + +Eric May 29, 2003 + - added foreign language support functions + - fixed allowed space calculation (standardized on 1 GB=2^30 bytes, not 10^9) + + client/ + client_state.C + lib/ + language.C,h + +Eric May 30, 2003 + - nslots will now be updated correctly + if user changes preferences on web site + + client/ + client_state.C,h + cs_scheduler.C + +David June 2 2003 + In client API, standalone mode uses init files if they're there + + api/ + boinc_api.C + +Karl 2003/06/02 + - fixed some spelling and grammar + + doc/ + api.html + boinc_version.html + road_map.html + sequence.html + single_host_server.html + +Eric June 3, 2002 + - Added msg_printf function. + Use this function rather than show_message, since it + doesn't require a locally allocated buffer for formatted strings. + + client/ + account.C + app.C + client_state.C,h + cs_apps.C + cs_scheduler.C + file_xfer.C + net_xfer.C + pers_file_xfer.C + scheduler_op.C + +Tim June 3, 2003 + - Windows GUI enhancement + graphics window opens on top + simplified disk chart labels + message window scrolls to the bottom with new messages + reduce flicker in projects, results, and transfers + + api/ + windows_opengl.cpp + client/ + gui_titles.c + wingui_mainwindow.cpp + +David June 4 2003 + - Checked in Eric Korpela's rewrite of the DB interface code. + No more db_xxx functions; instead, use derived classes + with insert(), update() etc. functions + + db/ + Makefile.in + boinc_db.C,h (.C new) + mysql_util.C,h (removed) + db_mysql.C (removed) + sched/ + Makefile.in + assimilator.C + db_dump.C + feeder.C + file_deleter.C + handle_request.C + main.C,h + make_work.C + sched_shmem.C + timeout_check.C + update_stats.C + validate.C + tools/ + Makefile.in + add.C + backend_lib.C,h + create_work.C + +Eric June 4, 2003 + - Added signal handlers for keyboard suspend/resume on UNIX + + client/ + main.C + +Tim June 4, 2003 + - Windows GUI enhancement + added "show" and "hide" to system tray icon context menu + added line between menu and tabs (not perfect; currently reside in updateGUI) + results now reads "downloading" and "uploading" during file transfer + removed history (i.e. completed results, old messages from last session) + + client/ + client_state.c + client_types.h + wingui_mainwindow.cpp + resource.rc + +David June 5 2003 + - use a separate DB table for core versions + + db/ + boinc_db.C,h + schema.sql + html_user/ + download.inc + test/ + test.inc + test_uc.php + tools/ + add.C + +Tim June 5, 2003 + - bug fix + fixed "uploading" "downloading" problem + fixed minor problem with updateGUI + fixed "time of day" suspension check (was parsing XML incorrectly) + fixed "website" problem (missing "http://") + fixed "write to disk frequency" (was not implemented) + + client/ + client_state.c + client_state.h + prefs.c + wingui_mainwindow.cpp + +Karl 2003/06/06 + Rewrote build system using automake and modern autoconf. + + Added: + + RSAEuro/Makefile.am + RSAEuro/source/Makefile.am + api/Makefile.am + apps/Makefile.am + client/Makefile.am + db/Makefile.am + lib/Makefile.am + sched/Makefile.am + sched_fcgi/Makefile.am + tools/Makefile.am + configure.ac + + (helper files:) + Makefile.incl + _autosetup + aclocal.m4 + compile + depcomp + install-sh + missing + mkinstalldirs + config.h.in + test/version.inc.in + + Modified: + test/test.inc + + Removed: + RSAEuro/source/targets.mak + configure.in + + These files are now built automatically: + + RSAEuro/Makefile.in + RSAEuro/source/Makefile.in + api/Makefile.in + apps/Makefile.in + client/Makefile.in + db/Makefile.in + lib/Makefile.in + sched/Makefile.in + sched_fcgi/Makefile.in + tools/Makefile.in + +Eric June 6, 2003 + - Removed old extraneous functions from wingui + (EnumWindowsProc, GetWndFromProcId) + - Moved GetByteString to util.C, made platform independent, + added "x/y KB" option + - Changed est_time_to_completion to use a recent exponential + average of change in percent done. This is more accurate + than the old method. + - Bug fixes involving result state changes + + client/ + app.C,h + client_types.h + client_state.C + win/ + wingui.cpp, h + wingui_mainwindow.cpp + wingui_piectrl.cpp + lib/ + util.C,h + +Karl 2003/06/06 + + - updated version number, email address, copyright date + - documented automake system and updated build notes (there's only 1 step + now instead of 5) + + configure.ac + LICENSE + doc/ + boinc_dev.html + build.txt + build_system.html (added) + +Karl 2003/06/07 + + - removed "client" distribution + - started "make check" targets + - "make distcheck" now works + - documentation + + Makefile.am + Makefile.incl + configure.ac + doc/ + build.txt + build_system.html + road_map.html + test/ + Makefile.am (added) + +Tim June 9, 2003 + - Windows GUI Enhancement + disk usage now displayed in two separate pie charts + improved the separation line between menu and tabs + - Preference + prompt user when downloading executable (commented out) + + client/ + file_xfer.c + gui_titles.c + pers_file_xfer.c + wingui_mainwindow.h + wingui_mainwindow.cpp + +Karl 2003/06/09 + - refactored exponential backoff to util.h + + client/ + pers_file_xfer.C + scheduler_op.C + lib/ + util.h + util.C + +Karl 2003/06/09 + - enabled automake maintainer mode - less rebuilding of Makefiles + - updated doc + + configure.ac + doc/ + build_system.html + +Karl 2003/06/11 + - fixed skip_cpu_benchmarks bug + + client/ + client_state.C + +Tim June 11, 2003 + - Windows GUI Enhancement + modified flicker-reducing checks + - Preference + fixed prompt user when downloading executable (commented out) + + client/ + file_xfer.c + pers_file_xfer.c + wingui_mainwindow.cpp + +Tim June 11, 2003 + - Preference + improved executable confirmation message (commented out) + added max_memory_mbytes, process_priority, cpu_affinity + + client/ + pers_file_xfer.c + prefs.c + prefs.h + +Karl 2003/06/11 + - test suite overhaul + + _autosetup + configure.ac + test/ + Makefile.am + db_def_to_php + boinc_db.inc + version.inc.in + test.inc + test_1sec.php + test_backend.php + test_concat.php + test_download_backoff.php + test_limit.php + test_masterurl_failure.php + test_mdownload_backoff.php + test_pers.php + test_rsc.php + test_sched_failure.php + test_sticky.php + test_time.php + test_uc.php + test_upload_backoff.php + +Eric K. 2003/06/16 + Attempted to make the XML parser more robust by adding + extract_xml_record() to parse.C + Added const modifier to constant parameters to increase class + compatibility. + + parse.C + parse.h + +Karl 2003/06/16 + Removed bzip2 rule; add 'foreign' option to automake through + configure.ac so you don't need to specify when invoking automake + manually + + _autosetup + configure.ac + +Karl 2003/06/16 + Testing upload and connection failures (work in progress) + + test.inc + test_uc.inc + test_uc.php + test_masterurl_failure.php + test_upload_resume.php + test_upload_backoff.php + testproxy + +Tim June 16, 2003 + - Preference + removed executable confirmation + implemented max_memory_mbyte + + client/ + pers_file_xfer.c + app.c + +Tim June 17, 2003 + - application graphics file + added timestamp to astropulse appfile + modified APP_FILE struct to include timestamp handling + scheduler sends "openname_timestamp" as name + open_name (if available) is used when creating a slot directory + - Windows GUI + finished items in results and transfers are now immediately removed + + client/ + app.c + wingui_mainwindow.cpp + html_user/ + project_specific_prefs_ap.inc + sched/ + handle_request.c + server_types.c + server_types.h + +David June 17 2003 + - If connect() fails, mark the HTTP_OP as done and in error. + Previously it just hung forever. + - Added DB fields for BOINC disk usage: total, project, and max + TODO: compute these on client and send in sched RPC + - Scheduler RPC request now includes a list of projects + and resource shares for the host. + Stored in the DB. + This lets the web site show other projects + that people participate in. + Also might be used in scheduling estimates. + - added a "Rules and policies" page to the web interface. + Users read this before creating account + - commented out check_max_mem_exceeded() (not ready) + + todo + client/ + app.C + cs_scheduler.C + http.C + db/ + boinc_db.C,h + schema.sql + doc/ + index.html + html_user/ + create_account_form.php + index.php + info.php + +Karl 2003/06/17 + Fixed miscellaneous bugs, some very dangerous, from compiler warnings + + lib/ + parse.C + crypt.C + tools/ + backend_lib.C + create_work.C + +Karl 2003/06/17 + Converting test scripts to Python + + configure.ac + test/ + Makefile.am + boinc.py + boinc_db.py + db_def_to_py + testproxy + test.inc + test_upload_backoff.php + test_uc.py + test_concat.py + test_1sec.py + test_backend.py + version.py.in + +Tim June 18, 2003 + - Windows GUI + updated icons + - project preference + implemented account mirroring + + client/win/res/ + icon.ico + iconhigh.ico + iconsmall.ico + html_user/ + create_account_action.php + create_account_form.php + +David June 18 2003 + - export user country and create_time in db_dump + - move functions involving BOINC "soft links" to app_ipc.C + (they don't belong in filesys.C) + - move functions to get filesystem total/free to filesys.C + - add doc page for watchdogs + + api/ + boinc_api.C + client/ + hostinfo.h + hostinfo_unix.C + db/ + boinc_db.h + doc/ + create_project.html + db_dump.html + watchdog.html (new) + lib/ + app_ipc.C,h + filesys.C,h + sched/ + Makefile.am + db_dump.C + file_upload_handler.C + handle_request.C + server_types.C,h + +David June 18 2003 + - upload: if exceed size limit, read and discard rest of request + + sched/ + file_upload_handler.C + +David June 18 2003 + - added user web interface for seeing results for a host + + client/ + cs_scheduler.C + lib/ + result_state.h + html_user/ + host.inc + result.inc (new) + results_host.php (new) + +David June 19 2003 + - added admin web interface for looking at status of recent results + - set result.received_time whenever the server_state becomes DONE + (this makes it possible to enumerate all results that have + become done recently, including timeouts and other errors) + + html_ops/ + index.html (removed) + index.php + result_summary.php (new) + sched/ + handle_request.C + validate.C + timeout_check.C + +Karl 2003/06/19 + - make_work: make hard links instead of copies of workunit files + + sched/ + make_work.C + +Tim June 19, 2003 + - Astropulse Website + added description to project preferences + - Windows GUI + implemented message pane entry limit + new icons + + client/win/res/ + icon.ico + iconhigh.ico + iconsmall.ico + html_user/ + db.inc + host.inc + project_specific_prefs_ap.inc + +Karl 2003/06/19 + - scheduler daemons: write pid to a pidfile. trap SIGINTs and exit on + the next check_stop_trigger() (the 'stop_server' file still works) + - wrote a kill_server program that kills specified daemons by sending + SIGINT to processes + - use kill_server in test scripts + + sched/ + kill_server (added) + Makefile.am + assimilator.C + feeder.C + file_deleter.C + make_work.C + sched_util.C + sched_util.h + timeout_check.C + update_stats.C + validate.C + test/ + .cvsignore + Makefile.am + boinc.py + version.py.in + +David June 20 2003 + - use mysql_connect() instead of mysql_pconnect() in PHP. + The latter caused failures in mysql_select_db(), + with "commands out of sync" error. + + html_user/ + db.inc + html_ops/ + db.inc + +Karl 2003/06/20 + - make client build by default use static libraries + + client/ + Makefile.am + doc/ + build.txt + +Karl 2003/06/20 + - improve readability of shmem error message + + sched/ + main.C + lib/ + shmem.C + test/ + boinc.py + +Karl 2003/06/20 + - remove OpenGL(U) dependency on unix test apps + + apps/ + Makefile.am + upper_case.C + +Tim June 23, 2003 + - Project Preference + Added venue parsing (fixes stderr.txt PROJECT::parse_account() error), but commented out + - Windows GUI + UpdateGUI only refreshes active tab (reduces Windows CPU time by 85%) + Fixed m_MessageListCtrl scrolling issue + Changed pie chart labels + Temporarily fixed the afx assertion failure at line 157 + + client/ + client_types.c + gui_title.c + client/win/ + wingui_mainwindow.cpp + +John Brian 2003/06/23 + - Changed label text in "Disk" tab: + "BOINC" -> "BOINC core client" + "PROJECT:" prepending removed + + - Removed CProgressListCtrl::OnLButtonDown to allow + left mouse clicks to highlight list items. + + /client/win/ + gui_titles.C + wingui_listctrl.h + wingui_listctrl.cpp + +Karl 2003/06/23 + - changed uses of HOST to HOSTTYPE to simplify command line and fix + conflict with boinc_db.h's HOST + + configure.ac + Makefile.incl + client/ + client_state.C + db/ + boinc_db.h + +Karl 2003/06/23 + - Make sure the user can't add one project twice (by one having a trailing + slash). + Canonicalize master urls to have a trailing '/' and remove double + slashes. Ensure account filenames and directories do not have the + trailing '_'. For many users their account files already have + trailing '_'s so if such files are found, rename them and their + corresponding project directories on startup. Created C++ string + versions of some functions for easier/safer/more efficient string + manipulation. + + client/ + account.C + client_types.C + file_names.C + lib/ + filesys.C + filesys.h + util.C + util.h + +Karl 2003/06/23 + - removed stderr messages on detach_project() after user adds a URL that + doesn't work + + client/ + http.C + net_xfer.C + +John Brian 2003/06/24 + - Added context-menu support for copying items in the Messages tab to the + clipboard. + + client/ + wingui_mainwindow.cpp + wingui_mainwindow.h + resource.rc + resource.h + +Karl 2003/06/24 + - Got test_1sec working + + test/ + boinc.py + test.inc + test_backend.py + test_uc.py + sched/ + start_servers.C + +Karl 2003/06/25 + - if application exceeds disk space limit, output message "Exceeded size + limit" instead of "Couldn't upload files" + - test that an aborted result due to file limit causes client_state = + RESULT_OUTCOME_CLIENT_ERROR (currently this test FAILS!) + - test resource limits in python + + db/ + boinc_db.h + client/ + client_state.C + sched/ + handle_request.C + test/ + boinc.py + test_abort.py (new) + test_rsc.py (new) + test_backend.py + test_concat.py + test_uc.py + +Karl 2003/06/25 + - created a script to automatically run make all, check, distcheck from a + cronjob - complains if anything fails. + + ./testbase (new) + +Karl 2003/06/26 + - fixed bug that caused client state to transition to + RESULT_FILES_UPLOADING even when file info(s) had errors; now it stays + in RESULT_COMPUTE_DONE. [passes test_abort now] + + client/ + client_state.C + cs_apps.C + +Karl 2003/06/26 + - makefile should rebuild version.py and boinc_db.py if necessary + - test_sanity should make sure proxy setup works + - test_masterurl_failure + + test/ + Makefile.am + test_sanity.py + boinc.py + test_masterurl_failure.py (new) + +Karl 2003/06/26 + - working on master url fetch failure retry policy + - test_signal.py. currently FAILS! + - test_exit.py. currently FAILS! + There is another bug similar to the one found by test_abort where the + client goes into FILES_UPLOADED even the application exited with an error. + + client/ + client_state.C + scheduler_op.C + + lib/ + util.C + util.h + + test/ + boinc.py + test_masterurl_failure.py + test_uc.py + testproxy + test_exit.py (added) + test_signal.py (added) + +Karl 2003/06/30 + - added checks for OUTCOME for successful and (expected) unsuccessful + results, and CLIENT_STATE for successful results. Parse + lib/result_state.h. + + test/ + Makefile.am + boinc_db.py + BOINC_db.inc + test_uc.py + +John Brian 2003/06/30 + - Removed stray printf used in debugging background graphics code. + + astropulse/client/ + ap_graphics.C + + +Karl 2003/06/30 + - schedulers: improved logging facilities. + - Use a library for common object files. + - changed timestamp() to be numeric, similar to ISO 8601 + + lib/ + util.C + sched/ + Makefile.am + assimilate_handler.C + assimilator.C + db_dump.C + feeder.C + file_deleter.C + file_upload_handler.C + handle_request.C + main.C + make_work.C + sched_util.C + sched_util.h + server_types.C + start_servers.C + timeout_check.C + update_stats.C + validate.C + validate_test.C + +David June 30 2003 + - change the admin interface to the DB + + html_ops/ + db.inc + db_action.php (new) + db_form.php (new) + index.php + result_summary.php + util.inc + +David July 1 2003 + - further tweaks to web DB interface + + html_ops/ + db.inc + db_action.php + db_form.php + index.php + +Karl 2003/07/01-02 + - redesigned logging facilities for both scheduler servers and client + It is now easy to see the flow of events from looking at client.out + + client/ + Makefile.am + app.C + client_messages.C (added) + client_state.C + cs_apps.C + cs_files.C + cs_scheduler.C + file_xfer.C + http.C + main.C + message.h + net_xfer.C + pers_file_xfer.C + scheduler_op.C + + lib/ + messages.C (added) + util.h + + sched/ + Makefile.am + assimilate_handler.C + assimilator.C + db_dump.C + feeder.C + file_deleter.C + file_upload_handler.C + handle_request.C + main.C + make_work.C + sched_messages.C (added) + sched_util.C + sched_util.h + server_types.C + start_servers.C + timeout_check.C + update_stats.C + validate.C + validate_test.C + +Karl 2003/07/02 + - added grepping for WU/results in log files. Can also just view log + file(s). Spiffy colorization and hyperlinks. + + html_ops/ + db.inc + db_action.php + show_log.php (new) + sched/ + grep_logs (new) + test/ + boinc.py + test_backend.py + +Karl 2003/07/02 + - turn on static libraries only on Linux + + configure.ac + client/ + Makefile.am + +Karl 2003/07/02 + - changed when "deferring communication" messages are printed so that user + sees them on client startup and every hour. Also format the message as + "X hours, X minutes, X seconds", etc. + + lib/ + util.h + util.c + + client/ + client_types.C + client_types.h + cs_scheduler.C + scheduler_op.C + scheduler_op.h + +David July 2 2003 + - changed all "fprintf(stderr," in the client to msg_printf() + This will give better messages (timestamps, project names) + in the cmdline version, and more complete error messages + in the GUI version + - moved msg_printf() from client_state.C to message.C + + client/ + *.C + message.C (new) + +David July 3 2003 + - added "custom signup page" feature + + html_user/ + clone.php (new) + create_account_action.php + create_account_form.php + index.php + project_ap.inc + team.php + user.inc + util.inc + +Karl 2003/07/03-08 + - created python start/stop program to handle daemonish and cronish tasks. + See sched/start builtin help for info + + sched/ + boinc_config.py (new) + start (new) + Makefile.am + assimilator.C + config.C + feeder.C + file_deleter.C + make_work.C + timeout_check.C + update_stats.C + validate.C + test/ + boinc.py + +John Brian 2003/07/11 + - added profile functionality to BOINC. Users can now add, modify, and delete + personal profiles. Scripts to build picture galleries, and country summaries + are also available. Most of the functionality of the SETI@Home profiling system + is now available in BOINC. + + html_user/ + create_profile.php (new) + delete_profile.php (new) + gallery.inc (new) + generate_country_pages.php (new) + generate_picture_pages.php (new) + index.php + languages.txt (new) + profile.inc (new) + profile_menu.php (new) + project.inc + user.inc + util.inc + view_profile.php (new) + +David July 15 2003 + - use double for VM working set size + - finished replacing license text + + api/ + boinc_api.C,h + +David July 15 2003 + - project-specific files are now kept in separate repositories + + html_user/ + project_ap.inc (removed) + project_specific_prefs_ap.inc (removed) + +Karl 2003/07/18 + - created make_project script + - split test/boinc.py into test-specific and project-creation + - made everything work if build dir != src dir + + configure.ac + + py/ (added) + Makefile.am + boinc.py + version.py.in + + test/ + boinc.py (removed) + test_*.py + + tools/ + make_project (added) + +Karl 2003/07/22 + fixed 'debug assertion failure'. Release 1.05. + + Client/* + + updated database schema + db/*, test/*, py/* + +Karl 2003/07/24 + fixed dll problem. Added language.ini files from + http://www.boinc.dk/index.php?page=download_languages. + + Release 1.06. + +David July 24 2003 + - added code to check integrity of client data structures + + client/ + client_state.C,h + +Karl 2003/07/24 + fixed bugs with file_info->pers_file_info->file_info and stderr.txt + reading + + release 1.07. + + client/* + +Karl 2003/07/25 + added client_version_num (e.g. 105) field to RESULT table + + New tools/update_core_client_versions script that scans apps/ for client + versions and updates the database + + improved start/stop program + + added "run benchmarks now" File menu command, and display results. + + Fixed global preferences not being updated to/from client because of + parse bug. + + db/* + sched/* + py/* + tools/* + client/* + +Karl 2003/07/27 + fixed bug in timeout_check if WU has no results + sched/timeout_check.C + +Karl 2003/07/28 + - fixed "work between X:00 and Y:00" prefs/xml bug + - added idle_time_to_run and run_if_user_active checking + - changed country "none" to "none or international" + - show "Suspended" in GUI if suspended. Preliminary work to cleanup + files,transfers + - fixed "platform '%s' not found" not found \n bug + - show "preferences updated" for global and project prefs + + html_user/* + client/* + sched/* + +Karl 2003/07/29 + - GUI: right clicking sets list item focus + - added right click -> retry transfer now + + client/* + client/win/* + +David July 29 2003 + - allow scheduler RPCs while client is suspended + - when suspend client, stop all PERS_FILE_XFERs, + close the associated sockets and FILE*s + and delete the FILE_XFER objects + - cleaned up suspend/resume logic a bit; + check_suspend_activities() now just checks, + a separate function suspend_activities() does the suspending + - don't start new FILE_XFERS while suspended + - show message when restarting a result + + client/ + app.C + client_state.C,h + cs_apps.C + cs_files.C + file_xfer.h + http.C + net_xfer.C + pers_file_xfer.C,h + win/ + wingui_mainwindow.cpp + doc/ + index.html + old_news.html + +Karl 2003/07/30-31 + - translations: refactored translation functions; added dynamic project + menu item; added missing translations for dialogs and menu + items. Updated translation template and fixed '\r's. + - file & status bar menus: 'force run' / 'run based on preferences' / + 'pause' (as radio checks) + - file menu: 'Hide' + - show reason for Unrecoverable error in user output + + Client/* + client/win/* + client/translations/* + +Karl 2003/07/31 + - fixed screensaver "freezing" (on blanking) bug + + client/ss_logic.C, win/* + +Karl 2003/07/31 + - fixed astropulse memory leak + + astropulse/client/* + +Karl 2003/08/01 + - if a file to download exists already and signature and checksum match, + skip downloading it. + - when running benchmarks say pausing computation, and "run always / run + never" works correctly with benchmarks + + Client/* + +David August 1 2003 + - add "-suspend" cmdline option (start up in suspended mode) + - parse tag within element + - implement behavior for "optional" file references + (if file hasn't been downloaded by deadline, start app anyway) + + client/ + client_state.C + client_types.C,h + cs_apps.C + cs_scheduler.C + +David Aug 1 2003 + - global_prefs.disk_interval doesn't apply to writing the state file + (only to application checkpointing) + + client/ + client_state.C,h + +David Aug 1 2003 + - use _exit() instead of exit() on execv failure + - garbage_collect() and update_results() even if suspended + + client/ + app.C + client_state.C + +Karl 2003/08/01 + - increased MAX_APP_VERSIONS from 100 to 500 + sched/* + +Karl 2003/08/01 + - fixed \n s in client messages + client/* + +Karl 2003/08/01 + Release BOINC 1.09, Astropulse 1.09 + +Karl 2003/08/04 + Astropulse: Fixed windows \r\n translation bug + + release Astropulse 1.10. + +Karl 2003/08/04 + Show release date and "new" on download page. + Fixed date_str and changed format of timestamps to be sortable. + Remodelling html_ops view. + + Html_user/* + html_ops/* + +Karl 2003/08/05 + Fixed Astropulse checkpoint-resume crash bugs: save relevant state + variables. In the process got rid of single-letter variables and + refactored some code. + + Astropulse/client/* + + Release Astropulse 1.11. + +Karl 2003/08/06 + Fixed time stats calculation - changed integer division to FP division. + + Client/time_stats.C + +David Aug 7 2003 + - use "%e" instead of "%f" in database printfs; avoid roundoff errors + - let users browse info about their results, + e.g. to see other results for the same WU + + db/ + boinc_db.C + html_user/ + explain_state.php (new) + login_action.php + results_host.php + workunit.php (new) + +Karl 2003/08/07 + - client: Start tasks in order of earliest report_deadline. + - added next_result_to_start() + - client: don't report a result until 6 hours before report_deadline + (or other reason to contact scheduler) + - scheduler: Send report deadline + - client GUI: added 'report deadline' column. Rewrote column-order + profile code. + + client/ + client_state.h + cs_apps.C + cs_scheduler.C + win/* + + sched/ + handle_request.C + +Karl 2003/08/08 + - fixed bug with timeout_check not noticing old wu error_mask, generating + new result and then marking WU as FILE_DELETE_READY. + + Sched/timeout_check.C + +Karl 2003/08/08 + - changed team disbanding to happen automatically when user quits it (or + joins a different team). + - fixed various bugs and quirks in team + joining/quitting/switching/removing inactive users + + Html_user/* + +Karl 2003/08/08 + - client: take into account active_frac and n_cpus when requesting work. + - removed vestigial host_info variables {active,on,connected}_frac. + - server: take into account delay_bound, active_frac and n_cpus when + checking WU feasibility + + client/* + sched/* + +Karl 2003/08/10 + - client (unix): handle fork() failure + - client (unix): set application process priority to 19 + + configure.ac + config.h.in + client/ + app.C + +Karl 2003/08/10 + - client: show platform name on startup + client/ + client_state.C + +Karl 2003/08/10 + - timeout_check: change 'random' for new results (!) + - moved lrand48() and init code from create_result() to + result.insert() + + tools/ + backend_lib.C + + db/ + boinc_db.C + boinc_db.h + +Karl 2003/08/11 + - astropulse: change delay_bound from 2 days to 14 days + - astropulse: validator fixes + - allow broken results (file not found) instead of crashing + - misc fixes + + astropulse/result/* + +Karl 2003/08/12 + - client: take into account active_task's fraction_done when calculating + seconds of work needed + - client: completion time estimate fixes + + client/ + app.[Ch] + client_state.[Ch] + cs_scheduler.C + client/win/ + wingui_mainwindow.cpp + +Karl 2003/08/12 + - Astropulse: changed timeout_check_time to time(0)+delay_bound instead + of time(0)+1day + - Astropulse: rsc_fpops calculation: reduced fudge factor by 3 + + Astropulse/split/pulse_split.C + +Karl 2003/08/12 + - scheduler: if a result is received while already in + RESULT_SERVER_STATE_OVER, don't immediately mark it FILE_DELETE_READY. + we shouldn't delete the file yet because we could potentially still + check it against the canonical result (if its result hasn't been deleted + yet). + + sched/ + handle_request.C + +Chrisz 2003/8/13 + - if get either new global prefs OR new venue, + parse and install prefs + + client/ + cs_scheduler.C + +Karl 2003/08/13 + - validator: use SQL queries instead of 'if' statements + - validator: fixed bug where UNSENT results don't get marked DIDNT_NEED + + sched/ + validate.C + +Karl 2003/08/13 + - applied FreeBSD patch & misc fixes + + configure.ac + m4/ + acx_pthread.m4 + client/ + hostinfo_unix.C + lib/ + filesys.C + shmem.C + + _autosetup + aclocal.m4 + + + +Karl 2003/08/13 + - test script fixes: increase delay_bound to reasonable value since it's + now checked by handle_request + + test/ + testbase.py + test_uc.py + +Karl 2003/08/13 + - create validation routines which generalize what used to be + validate_test, but more efficiently and safer (from buffer overruns and + allows NULL character in files). Rewrote validate_test using this, and + created validate_trivial which grants credit to all results. + - more greppability + + Sched/ + Makefile.am + validate.C + validate_test.C + validate_trivial.C (new) + validate_trivial.h (new) + validate_util.C (new) + validate_util.h (new) + +Karl 2003/08/13 + - added '-return_results_immediately' flag to client to allow it to + ignore the report deadline when deciding when to report a result + (mainly for testing) + + client/ + cs_scheduler.C + client_state.C + client_state.h + +Karl 2003/08/14 + - Astropulse: created autoconf and automake files + - Astropulse: if output file doesn't exist yet when opening, write a + version number. + - scheduler: renamed config.h to sched_config.h to avoid conflict with + default autoconf config.h + - api: added MFILE::ftell() function + - cleaned up boinc configure/makefiles + + Astropulse/ + configure.ac, configure (added) + _autosetup, aclocal.m4, config.h.in (added) + depcomp, install-sh, missing, mkinstalldirs (added) + */Makefile.am, */Makefile.in (added) + */Makefile (removed) + client/ + ap_file_io.C + + sched/ + config.h ->renamed-> sched_config.h + *.C + api/ + boinc_api.h + mfile.C + + +Karl,Dave 2003/08/14 + + - rewriting scheduler + - tagged old code as SCHEDULER_V1 + + sched/ + +Karl 2003/08/15 + - sched: added explanatory messages to file_upload_handler errors + + sched/ + file_upload_handler.C + +Karl 2003/08/15 + - db_dump: added core_versions.xml; simplified + + sched/ + db_dump.C + +David Aug 15 2003 + - revised backend logic + This fixes some bugs and inefficiencies (I hope) + Redundancy parameters are now part of workunit DB records + - TODO: update test scripts to reflect these changes; debug + + db/ + boinc_db.C,h + constraints.sql + schema.sql + sched/ + assimilate_handler.C + assimilator.C + handle_request.C + main.h + timeout_check.C + validate.C + tools/ + backend_lib.C,h + create_work.C + +David Aug 15 2003 + - changed "timeout_check" to "transitioner" + +David Aug 15 2003 + - changed logic so that create_work doesn't create any results; + this is left to the transitioner, since it does this anyway. + This required adding a result_template field to the workunit table, + which is the original result template macro-substituted + with the upload URL + + db/ + boinc_db.C,h + schema.sql + sched/ + make_work.C + transitioner.C + tools/ + backend_lib.C,h + process_result_template.C + + +Chrisz 2003/8/15 + - first init preference then parse command line + + client/win/ + wingui_mainwindow.cpp + +Eric K 8/15/2003 + - Prefaced transform() with std:: to get util.C to compile under windows. + api/util.C + + +Karl 2003/08/18 + - scheduler bug fixes + - test system update + - astropulse: + - updated scheduler code + - rewrote validator + - created autoconf system to check host so that we can have separate + settings on kodos test project + + sched/ + transitioner.C + make_work.C + lib/ + backend_lib.C + + py/boinc.py + test/*.py + + astropulse/*/*.C + +Karl 2003/08/19 + - misc test case updates + +Karl 2003/08/20 + - changed 'active_frac' initial assumption to "on" instead of the current + state + + client/ + time_stats.C + +Chrisz 2003/08/20 + - make progress and size on GUI keep old values when suspend during downloading + + client/ + http.C + client/win + wingui_mainwindow.cpp + +Karl 2003/08/20 + - rewrote header parsing to be more robust: + - allow for header to not have to be a single TCP message + - parse line-by-line instead of full-header strstr for efficiency + - compare header names case insensitively + - test scripts: no longer need apache or any environment variables. + + client/ + http.C + http.h + account.C + lib/ + util.C + util.h + + test/ + cgiserver.py (added) + fake_php.py (added) + miniserv.pl (removed) + testbase.py + +Karl 2003/08/21 + - changed 'standalone' mode from a compile-time option to a run-time + option + - boinc_init() takes optional bool parameter which is true if + standalone (app has to parse this from argv or however it wants) + + api/ + boinc_api.C + boinc_api.h + windows_opengl.C + +David Aug 21 2003 + - added administrative function for adding accounts + (even if account creation is disabled in config) + - html_ops can now refer to project-specific stuff (e.g. PROJECT) + - removed include of db.inc in html_user/util.inc. + This lets you use util.inc from html_ops + + html_ops/ + create_account_form.php (new) + create_acction_action.php (new) + +Karl 2003/08/21 + - various website and documentation fixes and updates + - + + doc/* + tools/ + update_versions + +Karl,ChrisZ 2003/08/21 + - changed url_encode_readable from '%zz' to '_' + + lib/ + util.C + +Chrisz 2003/08/25 + - changed _url_to_filename from nonalnum to '_' + + py/ + boinc.py + +Karl 2003/08/28 + - rewrote all documentation related to software prerequisites and + build system, and compiling server and clients + + doc/ + boinc_dev.php + build_client.php (new) + build_client_mac.php (new) + build_client_unix.php (new) + build_client_win.php (new) + build_server.php + build_system.php + build.txt (removed) + create_project.php + single_host_server.php + software.php (new) + +David Aug 30 2003 + - split db_base.C off from boinc_db.C + (it's the class DB_BASE that supports MySQL access, + independent of the BOINC database) + + db/ + db_base.C,h (new) + +David Sept 1 2003 + - Client: keep error messages about failed file transfers + in the FILE_INFO object (and save them in client_state.xml), + so that they can be reported to server. + + client/ + client_state.C,h + client_types.C,h + file_xfer.C,h + net_xfer.C + pers_file_xfer.C + +David Sept 1 2003 + - Client: project reset wasn't working in cmdline version + if there was an active task + (because kill_task() blindly sends a KILL signal, + even though no process has been started yet so the PID is zero, + which just kills the core client) + - Correctly print command-line options + + client/ + app.C + client_state.C + doc/ + client.php + +David Sept 2 2003 + - changed tools (create_work, add) to use config.xml if it's present + (reduces number of command-line args) + - renamed config.h to sched_config.h + - renamed tools/add to add.py (to avoid confusion with binary) + + sched/ + Makefile.am + sched_config.h (renamed from config.h) + *.C + tools/ + Makefile.am + add.py (renamed from add) + add.C + create_work.C + +David Sept 2 2003 + - fix omissions in parsing of general prefs + - show which set of general prefs was actually used + + client/ + prefs.C,h + +Karl 2003/08/25 - 2003/09/02 + - created python database modules + - created sign_executable C program which factors out key signing from + add.C for python use + + tools/ + Makefile.am + add.py (added) + sign_executable.C (added) + backend_lib.C + backend_lib.h + lib/ + crypt.C + crypt.h + py/ + boinc_db.py (added) + db_mid.py (added) + database.py (added) + Makefile.am + + +Karl 2003/09/02 + - temporarily remove satellite test cases from 'make check' + - check MySQL setup in test_sanity + + test/ + Makefile.am + test_sanity.py + +Korpela 2003/09/02 + Added lib/std_fixes.h which is used to add missing functions/templates + to the standard namespace. Used in SETI@home, but probably has wider + application, so I moved it to BOINC. + +Korpela 2003/09/03 + - Added OpenGL header check to configure.ac + - Changed gutil.C to use OpenGL header paths found by configure. + + api/gutil.C + configure.ac + +David Sept 3 2003 + - Changed the way a WU's resources usage is described. + There are now separate estimates and bounds for FP ops. + Nothing about integer ops. + Disk and memory numbers are bounds. + + This changes the client/server RPC format and the DB format, + so it will require a major version number increment + + client/ + app.C + client_state.C + client_types.C,h + http.C + net_xfer.C + db/ + boinc_db.C,h + schema.sql + lib/ + crypt.C,h + sched/ + handle_request.C + test/ + test_rsc.py + testbase.py + tools/ + create_work.C + +quarl 2003/09/03 + - overhauled python scripts + - reorganized directory structure. Now 'modules' are under + boinc/py/Boinc (so you can do "from Boinc import *"). + + - all python scripts can run from anywhere + + - start and add.py know where config.xml and run_state.xml are + (customizable too) + + - finished database.py and add.py + + - configure runs test/test_sanity.py + + - wrote extensive documentation for python framework and tools; revised + other documentation + + py/Boinc/ (added entire tree) + Makefile.am + __init__.py + boinc_db.py + boinc_path_config.py.in + configxml.py + database.py + db_def_to_py + db_mid.py + setup_project.py (this used to be py/boinc.py) + util.py + version.py.in + test/ + testbase.py + tools/ + add.py + sched/ + start + */Makefile.am + configure.ac + + doc/ + python.php (added) + software.php + test.php + tools.php (added) + tool_add.php (added) + tool_start.php (added) + tool_update_versions.php (added) + tools_other.php + single_host_server.php + create_project.php + +David Sept 4 2003 + - fix bug in scheduler: the buffer in insert_wu_tags() wasn't large enough. + This is a powerful argument in favor of using "string" everywhere! + NOTE: in spite of fix, test_uc.py isn't working. Problem w/ proxy? + - HTTP_OP_SET::poll(): if header read_reply() returns nonzero, + set htp->io_ready to false (to avoid lots and lots of spurious recv()s) + - in test scripts: if TEST_STOP_BEFORE_RUN is set, + go into sleep loop rather than exiting + (to avoid deleting the test setup) + - factor out get_socket_error() + + client/ + client_state.C + cs_scheduler.C + http.C + main.C + net_xfer.C,h + scheduler_op.C + sched/ + handle_request.C + main.C + test/ + testbase.py + +David Sept 5 2003 + - changed DB interface to make it possible for an application + to use different MySQL databases at the same time. + A new class DB_CONN represents a connection to a database. + Old functions like boinc_db_open() etc. are members of this class. + The connection to the BOINC database is represented by + by a global object "boinc_db" of this class. + You're free to have others + (e.g. "app_db" in the work gen or assimilator for an app) + + db/ + boinc_db.C,h + db_base.C,h + html_ops/ + db_ops.php + sched/ + *.C + +Karl 2003/09/05 + - restructured application add system; rewrote update_versions: + - applications now go in /APPLICATION/ + - update_versions checks for all versions of core client and all + applications, regardless of package version + + py/Boinc/ + configxml.py + database.py + db_mid.py + tools.py (new) + + tools/ + add.py + update_versions + + - renamed add.C output to old_add and renamed add.py to add + + tools/ + Makefile.am + add.py -> add (renamed) + + + - astropulse: use a protocol version number separate of the astropulse + client version + + astropulse/client/ + *.C + + - misc. Win32 fixes + api/ + boinc_api.C + guitl.C + +Karl 2003/09/05 + - created COBBLESTONE_FACTOR variable and changed it from 1/3 to 100. + - fixed superfluous authenticator in cgi.log + + Sched/ + handle_request.C + +David Sept 6 2003 + - fixed bug where do_select wasn't sleeping + when there are no fds (doh!!) + + client/ + net_xfer.C,h + lib/ + util.C + +Karl 2003/09/07 + - working on python code: + - database back end: + - database objects are now weakly hashed, with a cached list of + size 1024. + - new count() methods with arbitrary arguments like find() + - misc. bug fixes + + - make_project and setup_project modify database directly instead of + calling old_add + + - make_project doesn't add platform, app, or app_version + +Karl 2003/09/07 + - changed all user-visible cobblestone numbers to use a new + format_credit() function which does sprintf %.3f + + - allow sorting top_{team,user,host}s.php by either expavg_credit or + total_credit (default expavg_credit) + + html_user/*.php, *.inc + + - changed "Results uploaded" to "Outputs uploaded" + + client/ + gui_titles.C + + - use rsc_fpops_bound instead of rsc_fpops_est*2 + + client/ + app.C + client_types.C + +Karl 2003/09/10 + - fixed transitioner bug where canonical result output files got deleted. + - changed all forms of "DB_RESULT result = results[I]" to "DB_RESULTS& + result = results[I]" + + Sched/ + transitioner.C + +David Sept 11 2003 + - transitioner: set file delete state to READY only if it's currently INIT + This should make file_deleter more efficient, + because each WU/result is file-deleted only once. + Also means that unlink()s should always succeed + - file deleter: print retval of unlink() (should always be zero) + + sched/ + file_deleter.C + transitioner.C + +Karl 2003/09/15 + - fixed transitioner bug where usage of `unsigned int' instead of signed + int caused 400k results to be generated. + + Sched/ + transitioner.C + +Eric K. 16-Sep-2003 + - added "const" qualifiers to prototype for create_work and some others + where appropriate. I didn't fix all the API routines where parameters + should be const. Using C++ makes it important to get these right. + + tools/backend_lib.[Ch] + tools/create_work.C + tools/process_result_template.C + +Jeff 2003/09/17 + No code changes. This is the branch point for the seti beta. The tag is: + + setiathome-4.xx_all_platforms_beta + + for both seti_boinc and boinc. They both make on solaris without serious + error and the resulting seti client links without error with the resulting + boinc libs. + +Karl,Eric Heien 2003/09/18 + - fixed some pre-ANSI C + sched/ + transitioner.C + tools/ + create_work.C + +David Sept 21 2003 + - Added mechanism for marking results as COULDNT_SEND: + When the scheduler finds that a result is infeasible + for a host, it increments the "infeasible_count" in the work array. + When the feeder finds that too many results in the array + have nonzero infeasible_count, it marks some of them + as COULDNT_SEND and removes them from the array + + db/ + boinc_db.h + sched/ + feeder.C + handle_request.C + sched_shmem.h + +David Sept 21 2003 + - Partly debugged the above changes: + - The feeder's result enumeration should have no limit; + otherwise it may enumerate the same results over and over + - If the infeasible_count of a result a threshold (MAX_INFEASIBLE_COUNT) + the feeder marks it as couldnt_send. + This prevents a situation where results sit in the work array + forever, their infeasible_count approaching infinity + - Added show_shmem to sched/ Makefile, and fleshed it out a bit + - Show hostID correctly when get RPC from wrong major version + + NOTE: still haven't exercised the case where a result is marked COULDNT_SEND + + sched/ + Makefile.am + feeder.C + handle_request.C + show_shmem.C + +Eric K 9/22/03 + + Modified DB_CONN::open() to support "db_name@host" syntax for remote + database connections. + + db/db_base.C + +David Sept 23 2003 + - Don't reference-count WUs for results that are ready to report + (since don't need their input files anymore) + NOTE: this means that RESULT.wup may be zero. + Much check before dereferencing. + - Changed "ready_to_ack" to "ready_to_report" + (Ack is server->client, not client->server) + - Changed "server_ack" to "got_server_ack" + - Moved CLIENT_STATE integrity-check code to a new file (check_state.C) + In general it would be nice to move stuff out of client_state.C; + It's a hodge-podge currently + + client/ + Makefile.am + client_state.h + client_types.C,h + cs_scheduler.C + check_state.C (new) + +Eric K 9/24/03 + - Create an XML entity encoder/decoder for single byte entities. In new + files lib/xml_util.[Ch]. Encoder will make the following translations. + '>' => ">" + '<' => "<" + '&' => "&" + "'" => "'" + '"' => """ + other unprintable -> "&#nnnd;" + The decoder recognizes a larger number of translations for single byte + entities found in XML/HTML. + - Added check for header to configure scripts. + (Used by xml_util.[Ch] if found). + + lib/xml_util.[Ch] + lib/Makefile.am + configure.ac + +David Sept 27 2003 + - add app_name to APP_INIT_DATA structure + (so that an app can know its own name, + and in particular so that we can use it to title its window) + + api/ + boinc_api.h + windows_opengl.C + client/ + app.C + lib/ + app_ipc.C,h + +David Sept 27 2003 + - added a program "wu_check" that sees whether input files + of unsent or in-progress results are actually on disk + + sched/ + Makefile.am + wu_check.C (new) + +Eric K Sept 29 2003 + - Fixed bug that cause a encoded null to be appended to strings in + xml_encode() + + lib/xml_util.C + +Karl 2003/09/28 + - python work + + py/Boinc/ + database.py + setup_project.py + tools/ + dbcheck_files_exist + +David Sept 30 2003 + - Core client: if get 404 error (not found) when downloading file, + treat it as permanent error. + (not tested) + + api/ + boinc_api.C,h + client/ + file_xfer.C,h + http.C,h + pers_file_xfer.C + lib/ + error_numbers.h + + +David Sept 30 2003 + - Move graphics-related code from boinc_api.C to graphics_api.C + - Don't use the preprocessor symbol BOINC_APP_GRAPHICS in api/ + + api/ + boinc_api.C + graphics_api.C,h + windows_opengl.C + x_opengl.h + apps/ + upper_case.C + +David Sept 30 2003 + - Undid checkin of 9/23. Reference count all WUs, + and can assume that result->wup is always valid. + I can't remember why we did this, but it creates too many problems. + - in Windows GUI, if a result had an error in download or upload, + display status as "Download failed" instead of "Download" etc. + + client/ + client_state.C + cs_scheduler.C + win/wingui_mainwindow.cpp + + +Eric Oct 1 2003 11:15 am + - Fixed compile problems on solaris. + - redid graphics_api.h entirely. C'mon people we use automake for a + reason. Use the macros in config.h! + - Moved OpenGL and header and library finding to a macro file + sah_grx.m4 (an identical macro file exists in seti_boinc) + - Will verify it works on windows in the next hour or so + + Makefile.in + aclocal.m4 + config.h.in + configure + configure.ac + graphics_api.C + graphics_api.h + m4/sah_grx.m4 + +David Oct 2 2003 + - Added code to limit frame rate in either or both of two ways: + 1) max frames per second + 2) upper bound on rendering CPU time as a fraction or real time + NOTE: currently these limits are hardware in the code. + Need to put them in preferences. + + api/ + graphics_api.C,h + windows_opengl.C + +Eric Oct 2 2003 + + -moved xml_indent() from seti_boinc/db/sqlrow.[cpp,h] to i + boinc/lib/xml_util.[C,h] + -fixed problems with graphics_api.h + + api/graphics_api.h + lib/xml_util.[Ch] + +Karl 2003/10/02 + - rewrote make_project and related; a lot of restructuring: + + - make_project only creates the project and database but doesn't add + platform, app, app_version, or core_version. Use `add' for these. + - database actions are through MySQLdb, removing need for mysql client + binary. + + tools/ + make_project + add + update_versions + upgrade (new) + py/Boinc/ + configxml.py + database.py + setup_project.py + tools.py + test/ + testbase.py + test_uc.py + sched/ + boinc_config.py (removed) + db/ + constraints.sql + doc/ + single_host_server.php + +Karl 2003/10/02 + - made C parsing of config.xml more flexible (allow multiple tags per + line or tags on multiple lines) + - made config.xml and run_state.xml pretty + + sched/ + sched_config.C + sched_config.h + lib/ + parse.C + parse.h + + py/ + configxml.py + +David Oct 4 2003 + - throttled_app_render() returns true iff it rendered anything. + This lets the caller do swapbuffers only if needed + - app_render() now returns void + - added functions that read graphics files (JPEG, PPM, BMP, TGA) + and create textures (moved from SETI@home) + + api/ + graphics_api.C,h + gutil.C,h + windows_opengl.C + lib/ + xml_util.C + +David Oct 6 2003 + - Created class MOVING_TEXT_PANEL (in boinc/api/gutil.h) + to do Astropulse-type text display + - Created class TEXTURE_DESC (same place) + to represent an OpenGL texture (including its ID and size). + - Modify draw_texture() to not change the aspect ratio of the picture; + it shrinks the image in one dimension or the other, and centers + it in the allotted space + - Add a GRAPH_DRAW_STYLE field to REDUCED_ARRAY + - Eliminate methods of REDUCED_ARRAY that take a style argument + + api/ + graphics_api.C + gutil.C,h + reduce.C,h + +Karl 2003/10/06 + - client release 2.04 + +Karl 2003/10/06 + - transitioner: log every state transition, and check return value for + every update() + + sched/ + transitioner.C + +David Oct 6 2003 + - Don't send two results from the same WU in a single RPC + Note: this is a weak but possibly sufficient step towards not sending + multiple results from the same WU to one user. + - Scheduler: before updating a result, reread it from the database. + What's in shared memory may be way out of date. + E.g. it may no longer be in server state UNSENT. + Hopefully this fixes the missing-input-file bug!! + + sched/ + handle_request.C + +David Oct 6 2003 + - added "repair" option to wu_check + + sched/ + wu_check.C + +David Oct 8 2003 + - added "present" flag to TEXTURE_DESC + - fixed function names: + double_to_ydhms() -> ndays_to_string() + get_byte_string -> nbytes_to_string() + + api/ + boinc_api.C + gutil.C,h + client/ + win/ + wingui_mainwindow.cpp + wingui_piecectrl.cpp + lib/ + util.C,h + +David Oct 8 2003 + - add low-detail option to WU display + + html_ops/ + db_action.php + db_form.php + db_ops.php + +Oliver Oct 8 2003 + - fixed reduced graph display + - fixed opengl resize bug + /api/ + recuce.c + gutil.c + windows_opengl.c + +David Oct 8 2003 + - made draw, CreateTextureJPG etc. into member functions of TEXTURE_DESC + - added xalign, yalign args to TEXTURE_DESC::draw() + - attempted to turn off rendering when window is hidden (don't think I succeeded) + + api/ + gutil.C,h + windows_opengl.C + +Oliver Oct 9 2003 + - fixed error handling when jpeglib fails + api/ + gutil.C + +Karl 2003/10/08 + - tests: fixed bug re user global prefs + - tests: fixed checking of result outputs + - tests: fixed min_quorum=2 bug + + py/ + setup_project.py + test/ + testbase.py + test_uc.py + + - transitioner: fixed bug in sscan_hex_data() with \r or other whitespace + - transitioner: log more + - file_upload_handler: log more + + lib/ + crypt.C + sched/ + file_upload_handler.C + transitioner.C + +David Oct 10 2003 + - made STARFIELD CLASS + - implement tickmarks for RIBBON_GRAPH + + api/ + gutil.C,h + +David Oct 10 2003 + - various web stuff + - "-repair" option for wu_check + + html_ops/ + db_action.php + db_form.ph + db_ops.inc + html_user/ + white.css, black.css (new) + +Oliver Oct 10 2003 + - fixed surface drawing bug + - fixed jpeg loading bug + - updated primitives (progress bar. etc.) to have public pos field + + api/ + gutil.c,h + graphics_api.c + reduce.c + windows_opengl.c + +Karl 2003/10/11 + - Astropulse: output in index by samples, rather than bytes + fft bin; + - indicate that output is finished; also make it valid XML + - fixed BOINC graphics api header problems with autoconf + + Astropulse/client/ + ap_client_main.C + ap_fileio.C + ap_params.h + Astropulse/m4/ + sah_grx.m4 + + - BOINC: fixed make distcheck problem + + sched/ + Makefile.am + +David Oct 12 2003 + - add "Confirm before accept executable" flag to global prefs + - Implement said flag in cmdline client: + - add "approval_pending" flag to FILE_INFO + - don't count a file as present if it has approval pending + - set approval pending flag on new exec files if + "confirm_executable" is set in global prefs + + TODO: implement in Win GUI; IMPORTANT!! + + client/ + client_state.C,h + client_types.C,h + cs_apps.C + cs_files.C + main.C + prefs_file_xfer.C + html_user/ + prefs.inc + white.css + +Karl 2003-10-13 + - removed some graphics stuff from non-graphics files. Split graphics + source files into separate library libboinc_graphics_api.a + + api/ + boinc_api.C + lib/ + Makefile.am + api/ + Makefile.am + +Oliver Oct 13 2003 + - stars now draw in visible pyramid + + api/ + gutil.C,h + + +David Oct 14 2003 + - don't call boinc_finish_opengl() in boinc_finish()!! + - max frame rate and max graphics CPU are accessible to app + (via global variables boinc_max_fps and boinc_max_gfx_cpu_frac) + - in windows_opengl.C, moved InitGL() and app_init_gl() calls + from SetMode() to start of win_graphics_event_loop() + (just want to call these once, right?) + - in windows_opengl.C: if in standalone mode and get WM_CLOSE event, + actually exit (makes debugging easier). + + api/ + boinc_api.C + graphics_api.C,h + gutil.C + windows_opengl.C + +Oliver Oct 14 2003 + - stars now draw in visible pyramid with original coordinate system + - axis draws vertices in correct CCW order + - added font width function + + api/ + gutil.C,h + reduce.c + windows_opengl.C + +David Oct 14 2003 + - extended MOVING_TEXT_PANEL interface to let you draw text on + particular line numbers, + and get the coords the start of a line number + + api/ + gutil.C,h + +Karl 2003-10-14 + - makefiles: + - fixed some issues when building outside of source tree + - fixed some missing 'make dist' files + - fixed "ln -s start stop" bug + + */Makefile.am + +Karl 2003-10-14 + - replaced C country_select program with a php function + - replaced "None or International" with "None" and "International" + + lib/ + countries.C (removed) + Makefile.am + + tools/ + country_select.C (removed) + Makefile.am + + html_user/ + countries.inc (added) + util.inc + +Karl 2003-10-14 + - added Rank column to top users; made presentation consistent for top + teams/users/hosts + + - show number of results valid, successful, total (instead of just total) + + html_user/ + top_teams.php + top_users.php + top_hosts.php + team.inc + user.inc + host.inc + +David 15 Oct 2003 + - if user rejects executable, mark result as failed (not tested) + + client/ + cs_apps.C + main.C + doc/ + graphics.php + lib/ + error_numbers.h + +David 16 Oct 2003 + - add "userid" to result table + - send at most one result per WU per user + NOTE: since this change breaks test_uc.py and other tests, + it's enabled by a tag in the config file; + make sure this is present in production projects + + db/ + boinc_db.C,h + schema.sql + constraints.sql + sched/ + handle_request.C + +David 16 Oct 2003 + - moved client/win/windows_cpp.h to client/cpp.h, + since it's included (and needed) in UNIX as well as Windows + +Oliver 16 Oct 2003 + - Implemented scaling factor to center objects + - Fixed starfields + - Right justified text + + api/ + graphics_api.C + gutil.C,h + windows_opengl.C + +Karl 2003-10-16 + - updated python database API with new workunit.userid field + + - refactored database.py into db_base.py and merged in changes from + CourseSurvey system + - improved object caching and implemented lazy lookup of relational + objects; database-heavy python programs should now be much faster + + - added to + config.XML in make_project (but not testbase) + + py/Boinc/ + db_base.py (new) + database.py + setup_project.py + test/ + testbase.py + +David 17 Oct 2003 + - db_base::lookup() returns an error if >1 rows satisfy the query + - return #defined error numbers in db_base.C + - add more info to CGI log entries + + db/ + db_base.C + lib/ + error_numbers.h + sched/ + handle_request.C + +Oliver 17 Oct 2003 + - small label coord tweak + api/ + reduce.c + +David 18 Oct 2003 + - factored some code out of client_state.C into new files + + client/ + client_state.C,h + cs_account.C,h (renamed from account.C,h) + cs_benchmark.C (new) + cs_prefs.C (new) + cs_statefile.C (new) + main.C + maybe_gui.h (removed) + +David 18 Oct 2003 + - When reset (or detach from) a process, wait for running applications to exit + before doing other things (e.g., deleting files, + which will fail if processes have them open) + Implementation: exit_tasks() etc. now take a PROJECT* arg + - When a master file fetch fails on a tentative project (e.g. bad URL) + avoid a situation where we remove the HTTP_OP, + then detach_project() tries to remove it a second time + - print messages when reset/detach + + client/ + app.C,h + client_state.C,h + prefs.C + scheduler_op.C + win/ + wingui.h + +David 19 Oct 2003 + - fixed file names + + client/ + speed_stats.C,h (old) + cpu_benchmark.C,h (new) + +Karl 2003-10-19 + - maybe fixed "screensaver blanks immediately" bug due to uninitialized + variable + - if blank time is <=0 or unset: don't blank (instead of blanking + immediately). + + client/win/ + wingui_mainwindow.cpp + +David 20 Oct 2003 + - fixed bug that prevented screensaver from launching core client + + win_screensaver.cpp + +Karl 2003-10-20 + - BOINC client release 2.05 + - added glut32.dll to BOINC distribution + +David 20 Oct 2003 + - replace return -1's with error codes + + client/ + app.C + cs_benchmark.C + hostinfo.C + net_xfer.C + lib/ + app_ipc.C + crypt.C + error_numbers.h + filesys.C + md5_file.C + parse.C + shmem.C + util.C + sched/ + handle_request.C + sched_shmem.C + validate_util.C + wu_check.C + + +David 20 Oct 2003 + - changed CPU benchmark code to store all times as doubles. + This might fix the "negative fpops/sec" bug + + client/ + cpu_benchmark.C + cs_benchmark.C + +David 20 Oct 2003 + - changed overflowing integer calculation in CPU checkpoint code. + This definitely will fix the negative fpops problem + + client/ + cpu_benchmark.C,h + +Karl 2003-10-21 + - BOINC client release 2.06 + + - Astropulse client release 2.06 + + +David 22 Oct 2003 + - trunc_stderr_stdout() had a typo: it never truncated stdout.txt + + client/ + cs_files.C + +David 22 Oct 2003 + - fixed bug that caused project disk usage to be reported as zero + - Added debugging printfs (enabled by #define DEBUG) + to wingui_mainwindow.cpp. These write to C:/temp/core.txt. + - In CMyApp::InitInstance(), changed 2nd arg of CreateMutex + from false to true. This matches "1 instance" code samples from web. + Thought it might fix startup bug - no. + - Added debugging printfs (enabled by #define DEBUG) into screensaver; + causes it to write info to C:/temp/boinc_scr.txt + - Removed CREATE_NO_WINDOW and IDLE_PRIORITY flags from + CreateProcess() call in screensaver. + These aren't listed in the MSDN man page; are they needed? + - slight change to startup logic in screensaver: + - send it a BOINC_SS_START message only if it's already running + (not needed if start it ourselves, since we give it -saver arg) + - don't wait for 3 seconds after starting it + - In the cmdline passed to the core client from screensaver, + make argv[0] the real path of the executable. + Thought this might fix startup bug - no. + - Change "start_saver" to "started_by_screensaver". Truth in advertising. + + client/ + client_state.C,h + cs_cmdline.C + win/ + win_screensaver.cpp + wingui_mainwindow.cpp + lib/ + filesys.C + +David 24 Oct 2003 + - complete Bob's addition of SETI@home "grandfather" fields to DB + + db/ + boinc_db.C,h + constraints.sql + schema.sql + sched/ + handle_request.C + +Oliver 24 Oct 2003 + - updated reduced array class to contain the name of the labels. they are set when the reduced array + is created + + api/ + reduce.h,C + +David 24 Oct 2003 + - db_dump generates valid XML + - fixed bugs in boinc_db.C (team parse) + + db/ + boinc_db.C + sched/ + db_dump.C + + +Karl 2003-10-24 + - fixed missing comma typos + db/ + constraints.sql + +Karl 2003-10-25 + - client GUI: fixed context menu bug + + client/win/ + wingui_mainwindow.cpp + + +David 25 Oct 2003 + - removed code that caps backoff count at one + TODO: we still need to reexamine the backoff policy, + so that multiple file failures don't lead to huge backoffs + - moved OpenGL init calls from the start of the event loop + back to SetMode, undoing an earlier change. + Turns out the need to be in SetMode because it creates a new + window every time. + This should fix the bug that cause Astropulse to show no graphics. + TODO: make sure that when an application window is hidden, + no rendering work gets done. + + api/ + windows_opengl.C + client/ + scheduler_op.C + +Karl 2003-10-25 + - updated_versions: don't be so verbose unless "-v" verbose command-line + option is given + - if a directory contains an executable, add the first executable found, + and bundle all other files as non-executables. + - process_executable_file(): added mechanisms for adding non-executable files + + tools/ + update_versions + + py/Boinc/ + tools.py + +David 27 Oct 2003 + - Parse project-specific prefs correctly (i.e. based on venue) + These prefs are read from account files. + Account files are read before the client state file is parsed. + This presented a problem because the host venue, + which is needed to decide which project prefs to use, + is kept in the client state file. + So I added a new function, parse_venue(), that gets the + host venue from the state file; this is done before parsing account files. + - Also added element to account file so that we can + display that correctly in message about project prefs + + api/ + windows_opengl.C + client/ + client_state.C,h + client_types.C + cs_statefile.C + pers_file_xfer.h + prefs.C + +Oliver 27 Oct 2003 + - Fixed efficiency bugs in starfield + api/ + gutil.C,h + +Eric K 27 Oct 2003 + - xml_indent() is now limited to a max of 40 spaces. + + lib/ + xml_util.h + +David 27 Oct 2003 + - let users see list of all their results + - added db_dump to list of programs updated by update_project + + html_user/ + host.inc + results.php (new) + results_host.php (deleted) + user.inc + py/Boinc/ + setup_project.py + +Karl 2003-10-27 + - installshield: add "BOINC_gui -min" to startup folder + + win_build/ + boinc_installshield.zip + + - process_app_version: write tags; open_name is parsed from + disk filename 'open_name=url_filename' (url_filename is the basename of + file as copied to download/) + - print objects as they are committed (for database ID) + + tools/ + update_versions + py/Boinc/ + tools.py + + - upgrade: restart BOINC scheduler daemons automatically + + tools/ + upgrade + + - BOINC 2.07 release + - Astropulse 2.07 release (...) + - SETI@Home 2.01 release + +Karl 2003-10-27 + - fixed bug in assuming client_state.XML always exists (it doesn't, on a + clean install) + + - BOINC 2.08 release + +David 28 Oct 2003 + - login form: keyboard focus is on auth input field + html_user/ + util.inc + +Eric K 28 Oct 2003 + - for machines with sysinfo, host.p_vendor and host.p_model are now + meaningful. + + client/hostinfo_unix.C + +Karl 2003-10-28 + - added "const" to API function calls + - created "string" (as opposed to char[]) version of API function calls + + M api/boinc_api.h + M api/mfile.C + M lib/app_ipc.C + M lib/app_ipc.h + +Oliver 29 Oct 2003 + + - fixed improperly scaled logos + + api/ + gutil.C,h + + +David 28 Oct 2003 + - app library: don't access shared memory if it's not there + (should keep non-standalone version from crashing + when run in isolation) + + api/ + windows_opengl.C + +Karl 2003-10-29 + - removed test_sanity check from configure + - updated distribution file lists + - updated installation program to get rid of country_select + configure.ac + */Makefile.am + tools/ + make_project + +David 30 Oct 2003 + - On call to CreateEvent() to make "event" object for + core client to ask app to quit (Windows) + changed ManualReset argument to false. + This fixes a bug where, after resetting a project, + all apps get quit signal immediately + - Change CLIENT_STATE::report_result_error() so that it + takes a format string and varargs + + client/ + app.C + client_state.C,h + pers_file_xfer.C + +David 30 Oct 2003 + - API writes to stderr if get quit request + - Include signal numbers, error codes in messages about process exit + + api/ + boinc_api.C + client/ + app.C + client_state.C + cs_apps.C + cs_scheduler.C + +David 30 Oct 2003 + - When get new project preferences, notify (via shared-memory msg) + all running apps of that project. + New graphics prefs will take effect immediately. + + lib/ + app_ipc.C,h + client/ + app.C + +David 31 Oct 2003 + - clarified types of seti_* fields + (cpu time is double, last result time is int) + - fixed bug in project prefs that caused unbounded extraneous CRs + + db/ + boinc_db.C,h + schema.sql + html_user/ + index.php + prefs.inc + prefs.php + prefs_edit_action.php + stats.php (new) + +David 31 Oct 2003 + - Added a mechanism allowing applications to change their graphics + "on the fly" in response to new project preferences: + - Added a new message type to the + core->app graphics segment + - When the graphics framework (windows_opengl.C) gets this message, + it calls an application function app_graphics_reread_prefs(). + This function can call boinc_parse_init_data_file() (see below) + to get the new prefs + - Core client: when get new project preferences, + write new init_data.xml files for all running apps, + and send them messages. + New functions: + ACTIVE_TASK::write_app_init_file() + ACTIVE_TASK::request_reread_prefs() + ACTIVE_TASK_SET::request_reread_prefs(PROJECT*) + - name changes: + old new + boinc_init_opengl boinc_init_graphics + boinc_finish_opengl boinc_finish_graphics + app_init_gl app_graphics_init + app_render app_graphics_render + app_resize app_graphics_resize + REDUCED_ARRAY::init init_data + REDUCED_ARRAY::init_draw init_display:$ + - changed graphics objects (PROGRESS, PROGRESS2D, RIBBON_GRAPH) + to use init() functions instead of constructor for setup; + changed STARFIELD::build_stars() so that it can be called repeatedly + - factored code to read init_data.xml into a new function + boinc_parse_init_data_file() + - moved tImageJPG out of the .h file - it's not interface + + api/ + boinc_api.C,h + graphics_api.C,h + gutil.C,h + reduce.C,h + windows_opengl.C + client/ + app.C,h + cs_scheduler.C + doc/ + graphics.sxd (new) + graphics.png (new) + lib/ + app_ipc.C + parse.C,h + +David 31 Oct 2003 + - boinc_resolve_filename() (string version) + physical name defaults to virtual name + + lib/ + app_ipc.C + +David 1 Nov 2003 + - core client: when get new project prefs, + use PROJECT::parse_account_file() to extract the correct + venue-specific variant + + client/ + client_types.C,h + cs_scheduler.C + +David 2 Nov 2003 + - Changed the way that user-supplied files (e.g. logos and images) work. + OLD WAY: (see checkin by "Erik", May 19 2003) + the scheduling server scans the user's project prefs + and inserts and elements + into the element, + making it look like the user-supplied files are associated + with the app. + This necessitated the slightly kludgy "optional" + attribute of FILE_INFO, so that slow-downloading + user-supplied files wouldn't defer work indefinitely. + NEW WAY: + The scheduling server is not involved. + PROJECT now has list "user_files" of FILE_REFS + FILE_INFO now has an attribute "is_user"file" + - When parse project prefs from account file, + or when get new project preferences from server, + convert elements to entries in project.user_files + - new function ACTIVE_TASK::link_user_files() makes links + from slot dir to all user files that are present + - when the download of a user file completes, + tell running apps to reread prefs + (they'll find the user file now) + - garbage collection reference-counts user files + - got rid of "optional" mechanism + With this change, user-supplied images in graphics are updated + dynamically when the user edits prefs on web, + then does "Get Preferences" in core client + - Handling of completed file transfers moved from + PERS_FILE_XFER::poll() to CLIENT_STATE::handle_pers_file_xfers(). + (this job of PERS_FILE_XFER is to transfer the file, + not deal with its contents) + - changed benchmarks defaults from 1GFLOPs to 10MFLOPs; + prevents slow computers from being inundated with work + + api/ + gutil.C (fixed code formatting) + client/ + app.C,h + client_state.C,h + client_types.C,h + cs_account.C + cs_apps.C + cs_benchmark.C + cs_files.C + cs_scheduler.C + cs_statefile.C + pers_file_xfer.C + +David 2 Nov 2003 + - removed code in scheduling server for parsing project prefs + and inserting elements into elements + + lib/ + parse.C + sched/ + handle_request.C + server_types.C,h + +Karl 2003-11-02 + - changed GUI titles: + - "computation done" is now "computation error" + - "results uploaded" is now "ready to report" + + client/ + gui_titles.C + + - BOINC core client release 2.09 + +Karl 2003-11-03 + + - installer: ask whether BOINC should run at system startup (default yes) + + - Moved installation files from win_build/boinc_installer.zip to + win_build/installer/ + + - automate changing version numbers + + win_build/ + boinc_installer.zip (removed) + + win_build/installer/* + added (115 files) + +Karl 2003-11-04 + - trivial validator: check for a minimum CPU time + + sched/ + validate_trivial.C + +David 4 Nov 2003 + - scheduler now respects disk usage limits. + Scheduler request message now includes BOINC disk usage, + both total and for this project. + The scheduler parses user's global preferences + to get disk-related prefs, + and computes the max storage that can be used. + It will send only as many results as fit within this limit. + NOTE: this is still deficient in several ways: + - it assumes that all results will use all their storage + simultaneously. It doesn't take into account that + some results may use large storage while running, + but not before or after. + - it doesn't take into account storage that has been + committed (to this or other projects) but not yet in use. + - there's no mechanism for enforcing resource shares for storage, + or for dynamic adjustment + - print exit codes in both dec and hex + + client/ + app.C + client_state.h + cs_prefs.C + cs_scheduler.C + pers_file_xfer.C + win/ + wingui_mainwindow.cpp + sched/ + handle_request.C + server_types.C,h + +David 4 Nov 2003 + - change project file to get cmdline version to compile + (didn't test it) + + client/ + client_state.C + win/ + win_net.cpp + win_build/ + boinc_cli.dsp + boinc_gui.dsp + +David 5 Nov 2003 + - The following changes fix core client crashes that occur when + reset a project, then quickly detach from the project + while downloads are occurring. + In once instance, this produced a state file that caused + the client to crash each time it started up. + - when parse an ACTIVE_TASK in state file, + verify that the corresponding result is in the right state + (RESULT_FILES_DOWNLOADED, with got_server_ack and ready_to_report false) + - when parse a RESULT in state file, + make sure it's consistent: in particular, + if got_server_ack or ready_to_report is true, + the state must be RESULT_FILES_UPLOADED + - CLIENT_STATE::detach_project(): delete all the project's FILE_INFOs + (reset_project() doesn't do this) + + client/ + app.C + client_state.C + client_types.C + lib/ + error_numbers.h + +David 5 Nov 2003 + - improve clarity of messages about prefs + (e.g. say "your defaults" instead of just "defaults") + + client/ + client_state.C + client_types.C + prefs.C + +David 6 Nov 2003 + - cleaned up CPU time chaos + OLD: + An app measures and reports its CPU time when it calls + boinc_time_to_checkpoint(), which may be infrequent. + The reported CPU time is for the whole process + (including graphics thread: wrong) + If the core client doesn't get a message within 5 seconds, + it measures app CPU time externally, + with ACTIVE_TASK::get_cpu_time_via_os() + (this can cause reported CPU time to jump up and down). + Ambiguous function boinc_cpu_time(): does it return time for + calling thread only? time since WU start? + NEW: + An app measures and reports its CPU time every 1 sec, + from the timer interrupt. + The reported CPU time is only for the worker thread. + Replace boinc_cpu_time() with: + boinc_thread_cpu_time(): CPU time of calling thread + (also used by graphics_cpi.C to measure rendering time) + boinc_wu_cpu_time(): CPU time of WU so far (for graphics thread) + Notes: + - The app no longer needs to call boinc_time_to_checkpoint() + with any regularity + - the timer interrupt handler runs on a different thread, + so we record the worker thread handle. + - use double rather than time_t in calculation of estimated completion + - Code cleanup: + removed some declarations from boinc_api.h + (Don't declare internal functions in a .h file!) + removed using_opengl, write_frac_done + made things static that should be static + removed "externs" from .C files (SHOULD NEVER EXIST) + + api/ + boinc_api.C,h + graphics.C,h + windows_opengl.C + client/ + app.C,h + +David 6 Nov 2003 + - default value for disk_min_free_gb is now 0.1 (100 MB) + - scheduler writes detailed msg when get insufficient disk condition; + also writes explanatory msg to user + - Admin interfaces: order WUs/results by descending ID in general + + html_ops/ + db_action.php + db_form.php + db_ops.inc + index.php + html_user/ + prefs.inc + sched/ + handle_request.C + +Eric 7 Nov 2003 + - Fixed UNIX (Mac) compile problems + + api/boinc_api.C + apps/upper_case.C + +David 6 Nov 2003 (note: Eric's on the other side of the Int. Date Line) + - Fixed bug that cause CPU time to jump whenever Get Preferences. + It's because the app is getting a new aid.wu_cpu_time + as part of reread_prefs; + this is incorrectly added to the thread's CPU time. + Solution: make a copy of aid.wu_cpu_time at startup and use the copy. + + api/ + boinc_api.C + +David 7 Nov 2003 + - Added "remember authenticator" checkbox to user login + (sends cookie with 1 year expiration) + - General preferences use defined symbols so field descriptions + are same in both display and edit versions + - In admin web interface, make SQL clauses feature work + + html_ops/ + db_ops.inc + html_user/ + index.php + login_action.php + prefs.inc + util.inc + logout.php + +David 7 Nov 2003 + - Were using the wrong block size in disk size calculation + (off by a factor of 16 on Solaris) + + api/ + boinc_api.C + client/ + app.C + lib/ + filesys.C + +David 7 Nov 2003 + - In make_work, need to initialize many fields of the WU being created. + For example, if assimilate_state is not INIT, + the transitioner will not create any results for the new WU! + + html_ops/ + db_form.php + sched/ + make_work.C + +David 7 Nov 2003 + - Added const to some char* args (so can use strings) + - Removed cruft from upper_case.C + + apps/ + upper_case.C + lib/ + filesys.C,h + +Karl 2003-11-07 + - changed { 'Get preferences' , 'Retry now' } to { 'Update', 'Update + (retry now)' } + + client/win + wingui_mainwindow.cpp + +David 9 Nov 2003 + - change upper_case app so that -cpu_time actually uses + significant CPU time (36 secs on my laptop) + - core state file writes sometimes fail if another app (e.g. text editor) + has the file open. Show error code. + - don't start a scheduler RPC if we're suspended + - don't show parse error messages for empty lines in scheduler reply + - if reset a project during a scheduler RPC, set the scheduler_op state + to IDLE (else will never do another RPC) + + api/ + graphics_api.C + apps/ + upper_case.C + client/ + client_state.C + cs_scheduler.C + scheduler_op.C + lib/ + filesys.C + +Eric 10 Nov 2003 + - readded statfs support for systems that don't have statvfs (i.e. Mac) + + lib/filesys.C + +David 9 Nov 2003 + - boinc_init(): initialize last_checkpoint_cpu_time. + This is why reported CPU time would sometimes go to zero + - Upper case app: report fraction done like you're supposed to + - Write checkpoint CPU time in %.15e format. + SHOULD ALWAYS USE THIS FOR FLOATING PT NUMBERS + - released version 2.06 of upper_case in the client test project. + Also changed est FP ops in that DB so that clients get few results + + api/ + boinc_api.C + apps/ + upper_case.C + win_builc/ + upper_case.dsp + +David 10 Nov 2003 + - released versions of Astropulse (2.10) and SETI@home (2.08) for Windows. + +Karl 2003-11-11 + - compile fixes + lib/ + xml_util.C + +David 11 Nov 2003 + - added "appid" field to result (redundant copy of WU's appid) + - added index on result (appid, received_time desc) + - changed admin web interface to show recent results + broken down by application + - sched_shmem: omit app versions with wrong major version + + db/ + boinc_db.C,h + constraints.sql + schema.sql + html_ops/ + db_action.php + db_form.php + db_ops.php + index.php + html_user/ + util.inc + sched/ + sched_shmem.C + tools/ + backend_lib.C + +David 11 Nov 2003 + - modify the scheduler so that if a client requests work, + and there are unsent results, but none can be sent, + then the client gets an explanatory message: either + - no app version available + - insufficient disk + - insufficient memory + - host is too slow + This involved creating a WORK_REQ structure that gets passed + around, to avoid huge numbers of arguments + - modify the scheduler so that if either + 1) the shared-mem segment is absent or + 2) the DB can't be opened + then it writes a "project temporarily down for maintenance" + message instead of just exiting + + sched/ + handle_request.C + main.C + +David 11 Nov 2003 + - if get MD5 error, print expected and computed checksum + + client/ + cs_files.C + +David 12 Nov 2003 + - commented, cleanup up and fixed SqlQueryString (db_ops.inc) + It now correctly passes clauses in URLs, etc. + + client/ + cs_files.C + html_ops/ + db_action.php + db_ops.inc + +Karl 2003-11-17 + - BOINC release 2.10 for windows, Linux, solaris2.7, solaris2.8 + + +Karl 2003-11-20 + - updated translation files + + client/translation/ + language.ini.fr + langauge.ini.nl + +Karl 2003-11-21 + client/translation/ + langauge.ini.de + +Karl 2003-11-21 + - fixed recursive boinc_thread_cpu_time typo bug that resulted in loss of + client app functionality (bug noticed by Nuno Ferreira + ) + + api/ + boinc_api.C + + +Karl 2003-11-22 + - made change to get_filesystem_info() that reportedly is all that's + needed to get BOINC working on NT4. (fix by ) + + lib/ + filesys.C + + - accept command-line options with two dashes or one dash (instead of + only with one dash) + - if arguments are incorrect, exit after showing help + + client/ + cs_cmdline.C + + - chmod 600 the account file. + + client/ + client_types.C + +Karl 2003-11-24 + - fixed bug in boinc_db.C which causes SQL lookups to seg fault if any of + the 'seti_*' grandfather fields are NULL (how does the current beta test + run at all?!) + + db/ + boinc_db.C + + - testbase tweaks + + test/ + testbase.py + cgiserver.py + +David 25 Nov 2003 + - added host.rpc_time to DB dump + - made seti_* fields "not null" in schema + + client/ + hostinfo_unix.C + db/ + schema.sql + doc/ + db_dump.php + index.html + software.php + sched/ + db_dump.C + +David 25 Nov 2003 + - Changes to a running app's checkpoint_cpu_time + (as conveyed in shared-memory msgs) + were not triggering state file writes. + As a result the CPU time of a result was, in general, + returning to zero after a reboot. + - ACTIVE_TASK_SET::poll(): if any task's checkpoint_cpu_time has changed, + trigger a client state file write + - renamed ACTIVE_TASK_SET::get_cpu_times() -> get_status_msgs() + Also, this function now returns boolean: + whether any checkpoint_cpu_time has changed + - renamed ACTIVE_TASK::get_cpu_time_via_shmem() -> get_status_msg() + (since the message includes more than just CPU time) + - removed ACTIVE_TASK.last_status_msg_time (not used) + - factored out logic to compute frac_rate_of_change + and put it in a separate function + (ACTIVE_TASK::estimate_frac_rate_of_change()) + - print app version for results in GUI + + client/ + app.C,h + client_types.C,h + win/ + wingui_mainwindow.cpp + +Karl 2003-11-25 + - wrote release notes + doc/ + ssl_client_release_instructions.txt + +David 25 Nov 2003 + - Fixed bug that could cause a workunit to be sent to a client + without any corresponding result. + I'm not sure what happens then but it can't be good. + + Here's the deal: + OLD: + retval = add_wu_to_reply() // returns error if no app version + if (retval) continue + reread result from DB + if result.state != UNSENT continue + // if this happens, we'll send the WU but not the result + NEW: + found = find_app_version() + if (!found) continue; + reread result from DB + if result.state != UNSENT continue + add_wu_to_reply() + + sched/ + handle_request.C + +David 25 Nov 2003 + - Changed db_dump to generate valid XML. + Escape text fields as follows + & -> & + ' -> ' + " -> " + < -> < + > -> > + + sched/ + db_dump.C + +Gary 25 Nov 2003 + - BOINC release 2.11 for windows, Linux, solaris2.7, solaris2.8 + +Gary 26 Nov 2003 + - BOINC release 2.12 for windows, Linux, solaris2.7, solaris2.8 + fixes problem with windows release 2.11 installer + no change to Solaris/Linux clients + +Gary 26 Nov 2003 + - Changed Network Bandwith limits display & entry units to be + expressed in terms of Kbytes instead of bytes. Values are + still stored in db as bytes. + + html_user/ + prefs.inc + +David 27 Nov 2003 + - put missing tags around + project-specific prefs when write account files + - removed uniqueness constraint on user.seti_id + (this will generally be zero) + + client/ + client_types.C,h + db/ + constraints.sql + +David 28 Nov 2003 + - Fixed various problems with project preferences. + (overrides yesterday's non-fix) + PROJECT now has separate fields for + project_prefs (entire prefs, include venue variants) + project_specific_prefs (only project specific, + and only for current venue). + These had been confused before. + The account_*.xml file has the project_prefs, + enclosed in a element + - updated document about account files + - Changed project prefs from char[MAX_BLOB_LEN] to string, + and added variant of copy_element_contents() for string. + + client/ + app.C + client_types.C,h + cs_scheduler.C + scheduler_ops.C + doc/ + client_files.php + lib/ + parse.C,h + +Karl 2003-11-28 + - fixed unix help for -update_prefs + + client/ + cs_cmdline.C + +David 2003-11-28 + - changed date/time display in Windows to yyyy-mm-dd hh:mm:ss + + client/win/ + wingui_mainwindow.cpp + +David 28 Nov 2003 + - added "signature" field to user table; + when making forum postings, + users have the option of appending signature + + db/ + boinc_db.C,h + schema.sql + html_user/ + edit_user_info_action.php + edit_user_info_form.php + index.php + util.inc + +Karl 2003-11-28 + - fixed problems in testbase.py: + - changed workunit fpops due to change in client default benchmark + - changed app_version major version to come from version.MAJOR_VERSION + - added new columns to python database interface + - test_uc.py (and thus 'make check') pass now. + + test/ + testbase.py + py/Boinc/ + database.py + + - client: close write socket when done writing (but still reading) by + using shutdown(2). This allows the 'use_file' mechanism in + sched/main.C to work. + + client/ + http.C + +David 28 Nov 2003 + - print "expected X, got Y" msg only if md5 computation succeeded + + client/ + cs_files.C + +Karl 2003-11-28 + - new base64_encode() and base64_decode() functions. + - small fixes to Makefiles + + lib/ + parse.h + base64.C (new) + Makefile.am + api/ + Makefile.am + +David 29 Nov 2003 + - top hosts shows 10 hosts, lets you page forward/back + - Various stuff related to message boards (formerly known as Forum) + - don't show blue links on blue background + - terminology in message-board interface + "message boards" describes the message system + "questions/problems" describes the FAQ system + - got rid of hard-wired field widths + - removed "activity" stuff (wasn't being used) + - cleaned up names in the beta-test database + - Yahoo-type hierarchical page titles + - made "sort by" work when step through pages + - added category, forum tables to schema.sql + - added comments on PHP-only tables to schema.sql + + db/ + schema.sql + html_user/ + edit_user_info_action.php + index.php + top_hosts.php + user.inc + util.inc + white.css + forum/ + forum.inc + forum.php + help_desk.php + index.php + post.php + reply.php + thread.php + +Karl 2003-12-02 + - created export-tarball program for nightly-tarball + + nightly-tarball + +David 2 Dec 2003 + - changed indices on result table + changed res_hostid to include id desc + removed res_wuid + added app_received_time + - removed "last result for host" info from web pages; + this required an index with no other function + - added comments to constraints.sql explaining why each index is needed + - add "subscriptions" table to schema.sql + + db/ + constraints.sql + schema.sql + html_user/ + host.inc + totals.php + util.inc + forum/ + post.php + subscribe.inc + +David 2 Dec 2003 + - Don't start more than 2 simultaneous file transfers per project + + client/ + client_state.h + cs_cmdline.C + cs_files.C + cs_scheduler.C + hostinfo.C + pers_file_xfer.C + +Karl 2003-12-02 + - committed Robi Buecheler's translation updates. + + client/translation/ + language.ini.bg + language.ini.ca + language.ini.cs + language.ini.da + language.ini.de + language.ini.es + language.ini.et + language.ini.fi + language.ini.fr + language.ini.gl + language.ini.hr + language.ini.it + language.ini.ja-euc (added) + language.ini.ja-sjis (added) + language.ini.ko + language.ini.nl + language.ini.pl + language.ini.pt + language.ini.ru + language.ini.sk + language.ini.sv + language.ini.template + language.ini.zh-big5 (added) + language.ini.zh-gb2312 (added) + +David 3 Dec 2003 + - Added "Pending credit" row to user page + - Added new elements to XML stats dump (tables.xml) to show + - applications + - # results unsent/in progress/over for each app + + html_user/ + user.inc + sched/ + db_dump.C + +David 3 Dec 2003 + - express message board times as "X days Y hours Z minutes ago" + instead of absolute time + - on FAQ entries, display #times asked and time of last answer + + html_user + /forum/ + forum.inc + forum.php + help_desk.php + time.inc (new) + sched/ + db_dump.C + +Gary 04 Dec 2003 + - fixed a bug in app.C which caused the checkpoint_cpu_time to + nearly double in certain cases. This was most obvious in the + windows core client. + [in ACTIVE_TASK::write_app_init_file()] + old: + aid.wu_cpu_time = checkpoint_cpu_time; + new: + aid.wu_cpu_time = starting_cpu_time; + + client/ + app.C + +Gary 04 Dec 2003 + - BOINC release 2.13 for windows, Linux, solaris2.7, solaris2.8 + +David 4 Dec 2003 + - Use a different PHP HTML filter; the old one was buggy. + - Add HTML filtering of user-supplied text + (user profiles, message boards, etc.) + NOTE: should be explicit about what things + cannot contain ANY html tags + (user names, team names) + what about team descriptions? user URLs etc. + NOTE: someone should figure out exactly where we should + be using stripslashes() and addslashes(). + + html_user/ + htmlfilter.inc (removed) + profile.inc + sanitize_html.inc + team.inc + time.inc + kses.php (new) + forum/ + edit.php + forum.inc + forum.php + index.php + reply.php + +Gary 05 Dec 2003 + - in check_app_exited() look for most recent checkpoint_cpu_time + and use it to calculate final_cpu_time for result. + + client/ + app.C + +David 5 Dec 2003 + - On Windows, removed the shutdown() in http.C; + this caused a problem with Norton Firewall + - Removed counts of done/validated results for host from user web; + no efficient way to get this + - in cgi.log, show when send an app_version + - make_work: maintain cushion based on unsent results for this app + (not total) + - transitioner: check trigger file every WU, not every pass + + client/ + app.C + http.C + html_user/ + host.inc + profile.inc + sched/ + handle_reqest.C + make_work.C + transitioner.C + +David 6 Dec 2003 + - Extend the "start" script to handle remote tasks. Summary: + - config.xml has a mandatory config.host element + (for the project's main server) + and optional task.host elements (default is main host) + - Host X has its own run state file, run_state_X.xml + - Host X has its own pid directory, pid_dir_X/ + - Host X has its own log directory, log_X/ + - Host X has its own lock file for "start", start.lock.X + - run_daemons() etc. run tasks only for the current host + - When run on the main host, start builds a list of other hosts + and runs itself (with same cmdline, using ssh) + on each of the other hosts. + + Notes: + 1) I didn't add * capability; + it's not clear that we need this + 2) Output formatting could be improved + + - Changed the scheduler to log to ../log_X/cgi.log (X=hostname) + + sched/ + main.C + start + +David 7 Dec 2003 + - Fixed bugs involving buffer overflow of BLOB fields. + These can be up to 65536 bytes in MySQL. + MAX_BLOB_SIZE was defined as 4K. + strcpy2() didn't do any buffer size checking. + A team description was over 8K long. + This caused db_dump to crash. + Solution: + - strcpy2() now defined as a macro that uses the sizeof() + its destination, and doesn't overwrite it. + - MAX_BLOB_SIZE replaced with 2 symbols: + MEDIUM_BLOB_SIZE for fields used by BOINC + defined as 4K so as to not increase shmem usage + LARGE_BLOB_SIZE for fields with user-supplied text + defined as 64K + + db/ + boinc_db.h + db_base.C,h + html_user/ + result.inc + white.css + sched/ + assimilator.C + db_dump.C + file_deleter.C + handle_request.C + make_work.C + server_types.C + transitioner.C + tools/ + add.C + backend_lib.C + create_work.C + process_result_template.C + +David 7 Dec 2003 + - Changed db_dump so that it doesn't chdir() into the output directory + (it it does, and it crashes, that makes its core file + visible to the world, and that may contain private info) + + sched/ + db_dump.C + +David 7 Dec 2003 + - add sort options for FAQ questions, answers + - added create_time field to "thread" table + (so can sort questions by time asked) + - increase href limit in HMTL sanitizer to 150 chars + - simply time difference display + + db/ + schema.sql + html_user/ + sanitize_html.inc + time.inc + forum/ + forum.inc + forum.php + help_desk.php + thread.php + +Jeff 8 Dec 2003 + - Fixed the ifdef's surrounding the typedef of socklen_t. Removed the + "#ifdef socklen_t" because it does nothing and added the + "#elif defined (__APPLE__)". + + client/ + net_xfer.C + +David 8 Dec 2003 + - added full-text keyword search of message bodies and thread titles + + html_user/forum/ + forum.inc + forum.php + help_desk.php + index.php + text_search_action.php (new) + text_search_form.php (new) + +Jeff 09 Dec 2003 + - We have the same gcc version problem with solaris that we do with + linux whereby if the version number of libstdc++.so on the run + machine is different than that on the build machine, the loader + fails. However, on solaris you cannot just say gcc -static as there + are dynamic only versions of some needed libs, namely libdl and + libaio. I tried to use the -Xlinker gcc option which theoretically + should allow us to specify the link (collect2) line in precise + detail. But -lstdc++ kept showing up twice with one occurrence + being outside my -Xlinker -B -Xlinker static directive. So I + hand crafted a collect2 line and placed it in a file - collect2_line. + Sourcing this file produces an executable that will load and run + across gcc versions (and solaris versions for that matter). I + don't like it but it works. + + IMPORTANT NOTE. After sourcing collect2_line you have to + re-"hard link" the executable boinc_client to a proper + name with the correct version. + + client/ + collect2_line (new file) + +Gary 09 Dec 2003 + - BOINC release 2.14 for windows, Linux, solaris2.7, solaris2.8 + +Gary 09 Dec 2003 + - fixed typo in Network Bandwidth limits display (was missing /s) + + html_user/ + prefs.inc + + +Karl 2003-12-09 + - don't run the scheduler cgi if stop_server trigger exists. + + sched/ + main.C + +David 9 Dec 2003 + - scheduler returns message if "../stop_servers" exists + NOTE SPELLING; "stop_server" was error + - web site main page checks for "stop_servers" file, + shows "project down" message if so + TODO: have all DB-driven pages do this + - don't show link to main page on main page + - turned off "rate message" control (wasn't being used) + + html_user/ + index.php + time.inc + util.inc + forum/ + forum.inc + post.php + text_search_action.php + thread.php + sched/ + main.C + sched_util.C,h + +Eric K. 12/11/2003 + + Added check for strlcpy() to configure.ac and definition of + strlcpy() to std_fixes.h. + Added C++ header and namespace checks to m4 and config.h + Added include of "std_fixes.h" to boinc_db.C + + aclocal.m4 + configure.ac + configure + config.h.in + lib/std_fixes.h + m4/sah_namespace.m4 + m4/sah_header_stdcxx.m4 + +David 11 Dec 2003 + - Add element to config file and SCHED_CONFIG. + Add db_host argument to DB_CONN::open() + All server programs can now be run on different machine from MySQL + - Add "deprecated" field to app table + Deprecated apps are treated as non-existent + - Add "deprecated", "user_friendly_name" to platform table + Deprecated platforms are treated as non-existent + - Add new value for validate_state: VALIDATE_STATE_NO_CHECK + This indicates the the result's WU had an error, + and the result will never be validated. + Such results are not counted towards pending credit. + Transitioner: when set a WU error flag, + change its results VALIDATE_STATE_INIT -> NO_CHECK + - Add "Applications" page to web site: + shows platforms, latest version for each app + + db/ + boinc_db.C,h + db_base.C,h + schema.sql + html_ops/ + db_ops.inc + html_user/ + download.inc + host.inc + index.php + stats.php + util.inc + apps.php (new) + intro.php (new) + py/Boinc + database.py + sched/ + assimilator.C + db_dump.C + feeder.C + file_deleter.C + main.C + make_work.C + sched_config.C,h + sched_shmem.C + transitioner.C + update_stats.C + validate.C + wu_check.C + +Gary 11 Dec 2003 + - changed the way tab windows are hidden/shown in windows gui, + to fix intermittent window repainting bug. + old: + + + + The trouble with this technique is that it does not + activate the window, so it will only work if the + window becomes active *before* the redraw takes place. + new: + + + + + client/win/ + wingui_mainwindow.cpp + +David 12 Dec 2003 + - changed "opaque" fields from int to double + - Unix core client: if execv() fails, exit with errno rather than -1 + - show link to user on non-private host page + - fix bug in update_stats: don't crash if team has zero members + - add "update_stats" to install_boinc_files() + + client/ + app.C + doc/ + client_files.php + db_dump.php + index.html + old_news.php + prefs.php + db/ + boinc_db.C,h + schema.sql + html_user/ + db.inc + host.inc + index.php + workunit.php + py/Boinc/ + setup_project.py + sched/ + update_stats.C + +David 12 Dec 2003 + - Core client: print host ID (per project) in startup messages + - calculate file transfer speeds correctly + (e.g. use doubles for time, not int) + Show latest transfer speed in message when transfer finishes + + client/ + client_state.C + net_xfer.C,h + pers_file_xfer.C + +Gary 12 Dec 2003 + - fixed bug that caused 'Progress' and 'To completion' columns to reset to + 0.00% and init completion time at end of WU. + + client/win/ + wingui_mainwindow.cpp + +David 12 Dec 2003 + - fixed bug that caused est. time to completion to not update + + client/ + app.C + +David 14 Dec 2003 + - added "has_profile" flag to user table; + whenever a user has a profile, + display a "profile icon" linking to it. + Also write it to XML files + - Change file_upload_handler to put its log file + in the right directory + + db/ + boinc_db.C,h + scheme.sql + html_user/ + host.inc + host_user.php + index.php + profile.inc + team.inc + top_hosts.php + user.inc + util.inc + py/Boinc/ + database.py + sched/ + db_dump.C + file_upload_handler.C + +David 15 Dec 2003 + - fixed bug in database API: "return p && atoi(p)" + In C (unlike Python) this does not generally return atoi(p); + it returns 1. Fortunately the only effect of this was that user.posts + kept getting set to 1 for all users + - increased max query length in DB API, + in case prefs become really really long + + db/ + boinc_db.C + db_base.C + html_user/ + download.php + util.inc + forum/ + forum.inc + forum.php + reply.php + +Gary 15 Dec 2003 + - fixed bug in installer script which would not clean up previous + Boinc client autostart settings, when a new version was installed + without uninstalling the previous version first. + + win_build/installer/Script Files/ + setup.rul + +Gary 16 Dec 2003 + - fixed bug in windows Boinc_gui core client, which caused the + horizontal scroll bar on the Messages tab to be moved to the + extreme right whenever new messages were written. + + client/win/ + wingui_mainwindow.cpp + +Eric K. 17 Dec 2003 + - Added include of unistd.h to get definition of gethostname() on + Solaris 7 + + sched/ + file_upload_handler.C + +Gary 17 Dec 2003 + - BOINC release 2.15 for windows, Linux, solaris, mac os x + +David 17 Dec 2003 + - fixed bug where remote invocation of "start" is not verbose when it should be + + lib/ + error_numbers.h + sched/ + feeder.C + start + +Karl 2003-12-18 + - fixed CRLF bug in *.dsw, *.dsp + + Makefile.am + win_build/ + *.dsp + *.dsw + +Jeff 18 Dec 2003 + - Surrounded the base64 prototypes in parse.h with an #ifndef _WIN32. Windows + compiles were failing on it. + + lib/ + parse.h + +David 19 Dec 2003 + - new system tray icons, for "new message" and "new error message" situations, + contributed by Rom Walton. + NOTE: these are not actually used; + we need to add flags for when they should be displayed + + client/win/ + resource.h + resource.rc + wingui_mainwindow.cpp,h + res/ + iconerror.ico (new) + iconinfo.ico (new) + +Karl 2003-12-19 + - undid #ifndef for base64. Renamed to r_base64. + + lib/ + parse.h + base64.C + +David 20 Dec 2003 + - Changes by Rom Walton to flash system tray icon when new message + + client/win/ + wingui_mainwindow.cpp,h + +David 20 Dec 2003 + - compute recent average credit correctly + - compute "activity" for questions in a reasonable way: + the number of times per day this question has been asked + - default sort order for questions is by descending activity + - added fulltext indices on profile.response1 and profile.response2 + - added text search of profiles to web interface + - link to list of a user's posts from their user page + - generate UOD page even if already there + - clean up some PHP code: + use $foo->bar, not $foo['bar'] + indent by 4 spaces + + db/ + constraints.sql + schema.sql + html_ops/ + gallery.inc + update_forum_activities.php + html_user/ + profile_menu.php + user.inc + util.inc + profile_search_action.php (new) + forum/ + forum.inc + forum.php + text_search_action.php + user_posts.php (new) + sched/ + sched_util.C + +David 21 Dec 2003 + - moved "search for user name" feature out of profile code + - add link to profile from user page + - fix bug in get_passwd + + html_user/ + get_passwd.php + profile.inc + profile_menu.php + profile_search_action.php + user.inc + user_search_action.php (new) + +David 23 Dec 2003 + - add mechanism to prevent server spamming + (i.e. frequence requests for work from a single host). + The mechanism: if the last RPC was within 15 minutes, + don't send any work. + - add result.exit_status field to DB + Currently this is populated by the server, + if there's a element in the reply's stderr_out. + There may be a better way to do this. + TODO: display this field in the web GUI + - use SIGHUP instead of SIGINT to stop daemon processes + + db/ + boinc_db.C,h + schema.sql + sched/ + handle_request.C + start + +David 23 Dec 2003 + - improved error messages in stderr_out + + client/ + app.C + client_state.C + +David 23 Dec 2003 + - added boinc_fopen() function. + This should be used in lieu of fopen(), in both core client and apps, + whenever opening a file for writing. + This is because on Windows a utility program like FileFind + might have the file open at that exact moment, + and your fopen() will fail. + boinc_fopen() deals with this by sleeping for 3 seconds and trying again. + NOTE: in SETI@home there's a much fancier function + that does exponential backoff up to one hour. + Can't do that here, in part because the GUI requires + the core client to be nonblocking. + api/ + boinc_api.C + graphics_api.C + gutil.C + mfile.C + client/ + app.C + client_types.C + cs_benchmark.C + cs_scheduler.C + cs_statefile.C + http.C + doc/ + (various) + lib/ + filesys.C,h + +David 24 Dec 2003 + - Fixed errors in deciding whether more work was needed, + and if so how much. + This caused a situation where hosts would repeatedly + ask the server for more work + (which, because of recent anti-spam mechanism, would return no work) + The error involved the confusion of two quantities: + 1) work buffer + This is an estimate of the time (measured in days) + until this host will finish all current work. + It reflects the host's "active_frac" and the # of CPUs. + 2) CPU time + This is an estimate of the CPU time a WU will take on this host. + It does not reflect active_frac or # of CPUs + Example error: current_work_buf_days() didn't reflect active_frac and ncpus. + So we underestimated the work buffer, and requested work inappropriately. + + NOTE: the field in a request message + is in units of CPU time, NOT work buffer + + - Fixed errors in estimating the wallclock duration of a WU + (used in feasibility test in scheduler): + Should divide, not multiply, by active_frac; + should not multiply by # cpus + - add a "deprecated" flag to app_version. + If you decide that a particulate app_version has problems, + you can deprecate it. + The scheduler advertises the latest non-deprecated version. + NOTE: this only is effective if core clients have the following: + - Changed the policy assigning an app_version to a WU + Use the version included in the scheduler reply, + and if there is none, use the latest version. + This means that if a project deprecates an app_version, + clients won't use it. + client/ + client_state.h + cs_apps.C + cs_scheduler.C + scheduler_op.C + db/ + schema.sql + boinc_db.C,h + lib/ + filesys.h + result_state.h + py/Boinc/ + database.py + sched/ + handle_request.C + sched_shmem.C + +David 23 Dec 2003 (supplied by Rom Walton) + - new message class: warnings and network (with corresponding icons) + + client/ + message.h + win/ + resource.h + resource.rc + wingui_mainwindow.cpp,h + res/ + iconnetwork.ico (new) + iconwarning.ico (new) + win_build/ + boinc_gui.dsp + +David 23 Dec 2003 + - change string-escape function in DB code to handle \ as well as ' + (otherwise updates/inserts can fail) + + db/ + boinc_db.C + db_base.C,h + sched/ + update_stats.C + +Gary 25 Dec 2003 + - BOINC release 2.16 for windows, Linux, solaris, mac os x 10.3 + (os x 10.2 compatability will come soon) + +Jeff 30 Dec 2003 + - Check for buffer reallocation errors in MFILE functions and return values + that mimic the normal system versions of these functions. + + Functions that were changed: * indicates a change. + function successful return failure return + -------------- ------------------ -------------- + MFILE::printf() num bytes output -1 * + MFILE::write() num bytes output -1 * + MFILE::putchar(c) c EOF * + MFILE::puts(s) strlen(s) * EOF * + + MFILE::puts() used to return 0 on success. I greped both astropulse + and seti_boinc code and found no current use of this function. + + api/ + mfile.C + +David 30 Dec 2003 + - added optional 1 flag to daemons and tasks + in config.xml. (would prefer "", but couldn't + figure out how to get the minidom parser to recognize) + + sched/ + start + +David 30 Dec 2003 + - added element to in RPC request message + + client/ + client_types.C,h + +David 31 Dec 2003 + - Made the basic test script (test_uc.py) work again: + - fixed syntax errors in SQL files + - initial config.xml file includes element + - back-end processes handle SIGHUP, not SIGINT + (we changed in "start"; need to change here too) + - "MIN_SENDWORK_INTERVAL" is read from config.xml (default 0) + - added 12-second sleep in run_check_all() + (based on 10-sec sleep in assimilator; should reduce) + - The user and admin web interfaces now work in the basic test case + (i.e. you can use html_ops to look at DB contents) + + db/ + constraints.sql + schema.sql + html_ops/ + db_ops.inc + html_user/ + project.inc.sample + util.inc + py/Boinc/ + setup_project.py + sched/ + assimilator.C + feeder.C + file_deleter.C + handle_request.C + make_work.C + sched_config.C,h + sched_util.C,h + transitioner.C + validate.C + test/ + testbase.py + +David 31 Dec 2003 + - Added Python assimilator, courtesy of Stephen Pellicer + All the back-end programs could be implemented in Python; + CPU usage is a non-factor. + Some people might prefer this to C++. + No reason not to have both, as long as the logic stays in synch. + + py/Boinc/ + sched_messages.py + sched/ + assimilator.py + +Gary 31 Dec 2003 + - Fixed error in windows client initial startup after a clean + install. Default wait time before initial server request was + too long (3 minutes). + - Fixed initial screensaver blank time setting. Test for existence + of registry entries before writing values to dialog box. + + client/ + Prefs.C + client/win + win_screensaver.cpp + diff --git a/checkin_notes_2004 b/checkin_notes_2004 new file mode 100644 index 0000000000..12fa4e1710 --- /dev/null +++ b/checkin_notes_2004 @@ -0,0 +1,13174 @@ +David 3 Jan 2004 + - prelimary checkin of "trickle" mechanism + - added trickle table to DB + - add boinc_trickle() to API; implement + - logic in client to find/rename trickle files + - got rid of strlcpy() (not portable) + - commented out WORKSEQ code (probably will never finish) + - factored out project directory name function + - error checking of malloc()s in MFILE + + api/ + boinc_api.C,h + mfile.C + client/ + app.C,h + client_state.C + client_types.C + cs_benchmark.C + file_names.C,h + db/ + boinc_db.C,h + constraints.sql + db_base.h + schema.sql + doc/ + api.php + create_project.php + language.php (new) + trickle.php (new) + lib/ + filesys.C,h + tools/ + backend_lib.C,h + +Gary 4 Jan 2004 + - Added missing sys header declaration needed to build libboinc + on OSX jaguar + + api/ + boinc_api.C + +David 5 Jan 2004 + - patch up hole in hosts_user.php that shows hosts + even when user doesn't want + - All pages check for project up before opening DB + + html_user/ + apps.php + db.inc + download.php + hosts_user.php + util.inc + +Gary 5 Jan 2004 + - changed file_delete() function calls to boinc_delete_file() + as a result of the 2004-01-03 change to filesys.C,h + client/win + wingui_mainwindow.cpp + +Gary 5 Jan 2004 + - BOINC release 2.17 for windows, linux, solaris, mac os x + (os x version supports both 10.2 and 10.3 ) + +David 6 Jan 2004 + - When showing a user's posts, break into groups of 10 + - Don't show pending credit directly in user page. + Give a link to a separate page that shows pending results + and their claimed credit + - When show list of results, add linked ID column allowing user + to see details of result (e.g. stderr_out) + - removed "private" arg for show_host_detail.php. + If the host belongs to logged-in user, show private info + - removed alternative sorting options for host lists + (there was a bug where a user host list + linked to top_hosts.php) + - added a couple of "repair" scripts + + html_user/ + db.inc + host.inc + host_edit_action.php + host_venue_action.php + pending.php (new) + repair.php (new) + result.inc + result.php + results.php + show_host_detail.php + user.inc + util.inc + workunit.php + forum/ + repair.php (new) + user_posts.php + +David 7 Jan 2004 + - don't show #results in 1-line host summary (too slow) + - totally redid "host merge" mechanism. + - show all hosts that are compatible with this one + (not just older ones) + - show checkboxes with "select all" button + so you can easily merge large #s of hosts + - merge logic merges into newest host + - let anyone look at any result and any host + (may want to change this later, + but for now it helps with debuggin) + - write log message when scheduler creates new host + because of bad RPC seqno + + html_user/ + host.inc + host_edit_action.php + host_edit_form.php + repair.php + result.php + results.php + show_host_detail.php + user.inc + workunit.php + sched/ + handle_request.C + +David 7 Jan 2004 + - more trickle support: + - server parses elements from RPC request, + creates trickle records, + sends if it did any + - client scans project for trickle files, + adds them to RPC requests + - if get in RPC reply, delete trickle files + - parse in RPC reply + - use safe_strncpy for shared-mem graphics messages + + client/ + client_state.h + cs_scheduler.C + scheduler_op.C,h + db/ + boinc_db.h + doc/ + boinc_dev.php + host_id.php (new) + host_measure.php + participate.php + lib/ + app_ipc.C,h + filesys.h + sched/ + handle_request.C + server_types.C,h + +David 7 Jan 2004 + - scheduling server: if get invalid hostid, + look up user before creating new host + (otherwise will create a host record with userid 0) + - if get a result that's already been received, ignore it + + sched/ + handle_request.C + +David 7 Jan 2004 + - added "host delete" function (if host has zero results) + + html_user/ + host_delete.php (new) + +David 8 Jan 2004 + - Fixed bugs that caused WUs to be mistakenly marked COULDNT_SEND: + - the feeder marks WUs as COULDNT_SEND whenever + at least 50% of the results have infeasible_count > 20 + (it used to be > 0, i.e. a WU could be marked as COULDNT_SEND + when it was infeasible for even a single host) + - Some hosts (Macs) report their memory size (host.m_nbytes) + as a large negative number. + Change this so that the min memory size is 64 MB + + html_user/ + host.inc + host_delete.php (new) + sched/ + feeder.C + handle_request.C + sched_shmem.h + +Gary 8 Jan 2004 + - Fixed problem in windows client where user prefs were + being ignored at startup as a side-effect of the previous + initial startup fix. Now initial startup works and user + prefs are honored at startup. + + client/ + Prefs.C + client/win + wingui_mainwindow.cpp,h + +David 9 Jan 2004 + - on download page, don't tell people to create an account + if they already are logged in (and hence have an account) + - print message in CGI log if can't find user + - don't hyperlink 0 results etc. + + html_user/ + download.inc + download.php + host.inc + repair.php + forum/ + help_desk.php + thread.php + user_posts.php + sched/ + handle_request.C + +David 9 Jan 2004 + - added project files for VC++ 7.0, and fixed a few compile warnings + + client/ + app.C + cs_benchmark.C + cs_scheduler.C + net_xfer.C + win/ + stackwalker.h + win_build/ + boinc.sln + *.vcproj + +Karl 2004-01-12 + + - BOINC how has a project.xml file (by default in the same location as + config.xml) that can contain database information: + - projects + - platforms + - core versions + - apps + - app versions + - this information used to be added one at a time using the `add' + command-line tool; now there is a new tool `xadd' available, which + parses project.xml and adds anything necessary. + + - refactored configxml.py into boincxml.py and configxml.py: + - boincxml.py contains generic XML utility code + - configxml.py contains code specific to config.xml and run_state.XML + - external interface to configxml.py unchanged + + - new projectxml.py that parses and writes project.xml + + - refactored tools/add into tools/add and py/Boinc/add_util.py + + - added new addable fields + + py/Boinc/ + boinc_project_path.py + configxml.py + boincxml.py (new) + projectxml.py (new) + add_util.py (new) + db_base.py + Makefile.am + tools/ + xadd (new) + add + Makefile.am + doc/ + tool_xadd.php (new) + tool_add.php + make_project.php + tools.php + +Karl 2004-01-12 + - source release 2.18 (no client-visible changes) + +David Jan 12 2004 + - change team account so that team gets (and keeps) credit + for results of users while they belong to team: + - add team_id field to result + - add expavg_time field to team + - validator increments team credit + - scheduler fills in result.teamid + - don't delete empty teams + - rename result.client_version_num to result.app_version_num + populate this field based on field of stderr_out + - change update_stats so that it doesn't compute team credit fields, + and so that it updates expavg fields only if the entity + has been idle for 4 days or more + - add DB_BASE::update_field() (to update one or more fields, + not whole record) + - add lookup_team() to db.inc + SHOULD ALWAYS USE FUNCTIONS LIKE THIS INSTEAD OF AD-HOC QUERIES + - factor out mysql_query() into DB_BASE::do_query() + + db/ + db_boinc.C,h + db_base.C,h + schema.sql + html_user/ + db.inc + team.inc + team_join_action.php + team_quit_action.php + sched/ + handle_request.C + update_stats.C + validate.C + +David Jan 14 2004 + - typo in boincxml.py + (caused "start" script to always set enabled=0 + in run_state file, with various bad consequences) + - two indentation problems in "start": + line 499 + line 516 + + py/Boinc/ + boincxml.py + sched/ + start + +David Jan 14 2004 + - add element to + of results when send to server + + client/ + client_types.C + +David Jan 14 2004 + - don't blink sys tray icon more than 10 sec (from Rom Walton) + + client/win/ + wingui_mainwindow.cpp,h + +David Jan 14 2004 + - windows console version works again (from Rom Walton) + + client/ + main.C + net_xfer.C + win_build/ + boinc_cli.vcproj + +David Jan 15 2004 + - factored base64 declarations + + lib/ + base64.h (new) + +David Jan 15 2004 + - changed file_upload_handler so that it returns success + if offset >= nbytes. + That this happens at all indicates an error in the client, + but we'll get to that later. + - Scheduler: if last RPC too recent, show the interval + + html_user/ + db.inc + info.php + team_join_action.php + team_quit_action.php + sched/ + file_upload_handler.C + handle_request.C + +Karl 2004-01-15 + - fixed database schema for new 'teamid' field + - misc. fixes + + db/ + schema.sql + py/Boinc/ + Makefile.am + database.py + lib/ + Makefile.am + base64.C + base64.h + +Karl 2004-01-15 + - renamed user_name to db_user + + - applied changes by Daniel Sumers Myers + - setup script creates log_ + - add support for field in config.XML in C, python, php + - missing default project.inc.sample fields + + db/ + db_base.C + db_base.h + html_ops/ + db_ops.inc + db.inc + project.inc.sample + py/Boinc/ + setup_project.py + sched/ + assimilator.C + db_dump.C + feeder.C + file_deleter.C + main.C + make_work.C + transitioner.C + update_stats.C + validate.C + wu_check.C + +David Jan 16 2004 + - released core client 2.18 for Windows + +David Jan 17 2004 + - change logic in windows_opengl.C so that an app has no window + when it doesn't need one. + In particular, it has no window when it initially runs, + so it won't wake up screensaver when an app starts. + This requires using a window-less timer + to poll for messages from core client. + + api/ + windows_opengl.C + +David Jan 17 2004 + - remove win_main.cpp + - if result exceeds disk, show both usage and limit + - change title of Attach to Project dialog + - change debugging symbol from DEBUG to SS_DEBUG + (since VC7.0 equates _DEBUG and DEBUG) + + client/ + app.C + win_main.cpp (removed) + win/ + resource.rc + win_build/ + boinc_gui.vcproj + +David Jan 17 2004 + - new screensaver (from Rom Walton) + works correctly on multiple monitors; + handles password protection correctly + - fix compile warnings + - removed redundant definition of BOINC_SS_END + + client/ + cs_benchmark.C + net_xfer.C + win/ + Scricon3.ico (removed) + boinc_ss.h (new) + boinc_ss.rc + win_main.cpp (removed) + win_screensaver.cpp + win_screensaver.h (new) + win_util.h + wingui_listcrl.cpp + wingui_mainwindow.cpp + wingui_piectrl.cpp + res/ + Scricon3.ico (new) + lib/ + app_ipc.h + win_build/ + boinc.vcproj + boinc_cli.vcproj + boinc_ss.vcproj + +David Jan 17 2004 + - use TRACE() instead of fprintfs for debugging output + + client/win/ + wingui_mainwindow.cpp + +David Jan 18 2004 + - fix possible memory leak in screensaver on Win9x (from Rom Walton) + + client/win/ + win_screensaver.cpp,h + +David Jan 18 2004 + - add a function HOST::fix_nans(), called before updating or inserting + a host record; replaces NaNs with zeros. Otherwise DB barfs + - on any failed DB query, write the query to stderr + - store sorting order for message boards in a cookie + + db/ + boinc_db.C,h + db_base.C + html_user/forum/ + forum.php + thread.php + sched/ + file_upload_handler.C + handle_request.C + +David Jan 19 2004 + - use STOP_SS_MSG symbol instead of END_SS_MSG + (these redundantly refered to the same string) + - fixed buggy error-handling code for Win CreateProcess() + + api/ + windows_opengl.C + client/ + app.C + win/ + win_util.h + lib/util.C + +David Jan 19 2004 (from Rom Walton) + - Win screensaver: check to see if BOINC is configured for + automatic startup and if not make a suggestion to the user to do so. + + client/win/ + boinc_ss.h + boinc_ss.rc + win_screensaver.cpp,h + win_util.cpp,h + +David Jan 19 2004 (from Rom Walton) + - handle BOINC core client as service + + client/ + client_state.C,h + cs_cmdline.C + main.C + win/ + win_net.cpp + win_service.cpp,h (new) + win_build/ + boinc_cli.vcproj + boinc_ss.vcproj + +David Jan 19 2004 + - modify logic of file_upload_handler so that it always + returns an HTML header, regardless of whether + request message is missing or malformed + - hyperlink results on pending credit page + - fix bug in parsing of exit status in result stderr_out + - include "validate_trivial" in install_boinc_files() + + html_user/ + index.php + pending.php + py/Boinc/ + setup_project.py + sched/ + file_upload_handler.C + handle_request.C + +David Jan 20 2004 + - added basic support for GUI RPCs in the core client. + This allows GUIs to be implemented in a separate process. + There can be multiple GUIs looking at the same core client. + New classes: + GUI_RPC_CONN: represents a connection to a GUI program + GUI_RPC_CONN_SET: represents the set of all such connections + has the usual poll() function. + This is currently implemented only for UNIX, using UNIX domain sockets. + Should be straightforward to do in Win using named pipes. + - The isspace() macro crashes if called with a non-ASCII arg, + so use it only after isascii() + - reimplement strip_whitespace() to do the above, + have it trim at both start and end, + and make a version for string + NOTE: the real problem is that user-supplied text is being + kept in XML elements in the state file. + Should escape it. + + client/ + Makefile.am,in + client_state.C,h + gui_rpc_client.C,h (new) + gui_rpc_server.C,h (new) + gui_test.C + + lib/ + parse.C + util.C,h + +David Jan 21 2004 + - get new GUI RPC stuff to compile on Win + + client/ + gui_rpc_server.C + win_build/ + boinc.sln + boinc_cli.vcproj + boinc_gui.vcproj + +Eric Jan 21 2004 + - Modified match_tag to work with tags of the form "" and "tag" + - Added strlcat() to std_fixes.h + - Added check for strlcat() configure.ac + - fixed "#elif" without clause in main.C + + configure + configure.ac + config.h.in + client/ + main.C + lib/ + parse.C + std_fixes.h + +Karl 2004-01-21 + Client translations update from Robi Beucheler + + client/translation/ + language.ini.ca + language.ini.es + language.ini.et + language.ini.gl + language.ini.hr + language.ini.ko + language.ini.pl + language.ini.pt + language.ini.template + language.ini.th (new) + language.ini.tr (new) + +David Jan 21 2004 + - small changes to get console version to compile + + client/ + cs_cmdline.C + main.C + win_build/ + boinc_cli.vcproj + +David Jan 22 2004 + - match_tag() changes broke Win compile. + Moved new match_tag() to xml_match_tag() in xml_util.C, + put old match_tag() back. + + lib/ + util.C,h + xml_util.C,h + +David Jan 22 2004 + - change the GUI RPC protocol so that there's a single + request that returns the entire state + (same contents as the client state file) + - add fraction_done, current_cpu_time to output + - factored out CLIENT_STATE::write_state(FILE*) + (used for both state file write and GUI RPC) + - always copy team name from scheduler reply + (so that we'll learn if user quits team) + + client/ + app.C + client_state.h + cs_scheduler.C + cs_statefile.C + gui_rpc_client.C,h + gui_rpc_server.C + gui_test.C + +David Jan 23 2004 + - fix problem with DLL dependency (from Rom Walton) + + api/ + boinc_api.C + graphics_api.C + gutil.C + windows_opengl.C + lib/ + parse.C + util.C + +David Jan 23 2004 + - Fleshed out client-side support for GUI RPCs + The GUI_RPC class now parses the XML it gets back from + the request, and builds a data structure + that is more or less a clone of the state of the core client. + There are still a number of missing pieces, + e.g. active tasks and file transfers + + client/ + cs_apps.C + gui_rpc_client.C,h + gui_test.C + makefile.gui_test (new) + +David Jan 24 2004 + - add resource to let you control name of screensaver in + choose-screensaver popup (from Rom Walton) + + client/win/ + boinc_ss.h + boinc_ss.rc + +David Jan 26 2004 + - server-side support for anonymous platform mechanism + - struct CLIENT_APP_VERSION represents an app version + that an anonymous-platform client says it has + - SCHEDULER_REQUEST has a vector of CLIENT_APP_VERSIONs, + parsed from request message + - in scan_work_array(): if anonymous platform, + instead of checking for an app version in the DB, + check that the client has an app version with an + acceptable version# + + NOTE: for this to work you need to add an entry named "anonymous" + to the platform table + + html_user/ + index.php + team_join_form.php + team_quit_form.php + sched/ + handle_request.C + server_types.C,h + +David Jan 26 2004 + - client-side support for anonymous platform mechanism + - To use this mechanism, user puts a file "app_info.xml" in a project dir. + This file contains , , and elements + for app versions present in the project dir + (compiled or manually installed by the user). + - If this file is found, the project is marked as "anonymous_platform" + and app/app_version info in the state file is ignored. + - Scheduler RPCs for anonymous projects include a list of app_versions + - CLIENT_STATE::link_*(): fail if object is already in state + + client/ + client_state.C,h + client_types.C,h + cs_scheduler.C + cs_statefile.C + file_names.h + lib/ + error_numbers.h + +David Jan 30 2004 + - replaced a bunch of "return 1"s with meaningful codes + (mostly ERR_NOT_FOUND); fixed comments; added license text here and there + client/ + app.C + client_state.C + cs_apps.C + cs_cmdline.C + cs_files.C + cs_prefs.C + cs_scheduler.C + file_xfer.C + gui_rpc_server.C,h + http.C + message.C + net_stats.C + net_xfer.C + pers_file_xfer.C + doc/ + account.php + lib/ + app_ipc.C + error_numbers.h + +David Jan 30 2004 + - mark result as OUTCOME_SUCCESS only if exit status is zero (from Rom Walton) + + sched/ + handle_request.C + +David Jan 31 2004 + - GUI RPC: get_state RPC now returns active tasks and file xfers + - remove "hostname" field from HTTP_OP. + There was already a field of this name in NET_XFER, + a base class of HTTP_OP. + + client/ + client_types.C + gui_rpc_client.C,h + gui_rpc_server.C + http.h + net_xfer.C,h + pers_file_xfer.C + makefile.gui_test + +David Feb 2 2004 + - escape all user-supplied text in XML (messages and files) + e.g. user name, team name + - added functions xml_escape() and xml_unescape() + (very simple versions; just escape < and &) + - parse_str() does unescape + + client/ + client_types.C + lib/ + parse.C,h + sched/ + server_types.C + +David Feb 2 2004 + - changed directory structure of HTML stuff + +Rom Feb 2 2004 + - Added a diagnostics library for project clients + Currently only windows specific stuff has been implemented for the + BOINCASSERT and BOINCTRACE. + BOINCASSERT has been defined as an ASNI C assert + for all other platforms. + + boinc_trace(), boinc_diag_init(), and boinc_diag_cleanup() + need to be defined for all the other platforms. + - Moved stderr redirection into boinc_diag_init() for the Windows client. + + api/ + boincdiag.cpp,h (Added) + boinc_api.c + +Rom Feb 3 2004 + - Fixed warning while compiling with gcc. + + api/ + boincdiag.cpp,h + +David Feb 3 2004 + - removed pathMod arguments in PHP code (this was needed when we had + multi-level directory structure; not needed anymore) + - changed max_wus_to_send from a compile constant to a config.xml parameter + + html/ + forum/ + post.php + rate.php + reply.php + subscribe.php + inc/ + db.inc + subscribe.inc + util.inc + sched/ + handle_request.C + sched_config.C,h + +David 2004-02-03 + BOINC 2.23 release for Windows + +Karl 2004-02-03 + - updates for html directory structure change + + tools/ + make_project + + py/Boinc/ + setup_project.py + + html/ + project.sample/ (new directory) + project.inc (new) + project_specific_prefs.inc (new) + + html/ + user/ + project.inc.sample (removed) + project_specific_prefs.inc (removed) + +Rom Feb 4 2004 + - Fixed the windows_error_string routine so it'll report back windows system errors. + - Updated the CreateProcess part of app.c to report OS Errors based on the above funtion. + - Removed the seperate header blocks for both release and debug and made them the same. + clears up one customer bug on Windows NT 4.0 platforms + - Changed the 1400 version check in stackwalker.h to 1310 which is what the 7.1 compiler + version is really. + - Changed the service routines to use windows_error_string instead of GetSystemErrorText + + client/ + app.c + client + win/ + stackwalker.h + win_screensaver.h + win_service.cpp + lib/ + util.c,h + +Rom Feb 4 2004 + - Changed from using SHGetSpecialFolder to SHGetFolderPath which now uses COM and so will + will not throw a dynamic link error on startup for platforms that don't support it. + + client + win/ + win_screensaver.cpp + +David Feb 4 2004 + - BOINC API: if get a REREAD_PREFS message from core client, + only call the app's reread_prefs function if there's a window open + (the SETI@home reread_prefs function goes into an infinite loop + if there's not a window open) + - change copyright year to 2004 + + api/ + windows_opengl.C + client/win/ + resource.rc + +Karl 2004-02-03 + - more misc. make_project fixes + +David Feb 4 2004 + - define a destructor for ACTIVE_TASK. + Do all resource deallocation (close thread/proc/msg handles; + detach and/or destroy shmem) here. + This deallocation was being done piecemeal; + for example, it wasn't being done if the process was aborted. + Hence the "quit message" object was still there, + and when another process started in the same slot it would + immediately get the message (caused "reset project" problem) + - Eventually delete all ACTIVE_TASK objects. + The following removed them from the list but didn't deleting: + ACTIVE_TASK_SET::abort_project() + ACTIVE_TASK_SET::restart_tasks() (failure case) + - Don't ask for work if we have any unfinished work. + This is a temporary kludge to prevent repeated work requests; + it means that min work buffer is meaningless. + But maybe this is OK. + + client/ + app.h,C + cs_scheduler.C + +David Feb 4 2004 + - Cleaned up the project-reset logic a little: + - first garbage-collect, THEN unlink and delete the apps and app_versions + - When detach project, delete FILE_INFO*s. + + NOTE: there are lots of loose ends, e.g. files/sockets left open etc. + + client/ + client_state.C + +David Feb 4 2004 + - Released version 2.24 of core client + +Rom Feb 4 2004 + - When handled errors occur provide the translated error message as well as the + error code. + + client/ + app.c + +Rom Feb 4 2004 + - Update the debugging page with some more useful information about what we need + when a crash occurs + + html/user/ + debug.php + +Rom Feb 5 2004 + - Microsofts documentation on the matter of SHGetFolderPath seems to be wrong. + instead of relying on it, just do a dynamic link and call the function + if successful. + + client/win/ + win_screensaver.cpp + +David Feb 5 2004 + - db_dump: files ordered by ID now have a fixed-size ID range, + not a fixed # of elements + - Changed FEASIBLE_COUNT parameters to very large values, + so that results are never classified as COULDNT_SEND. + This mechanism is not needed for SETI@home (all results are the same) + and is occasionally screwing things up. + Can revisit this later. + - Make "host" web links consistent ("---" if ID is zero) + - In UOTD browse, show only profiles w/ pics + + html/ + inc/ + host.inc + result.inc + util.inc + ops/ + profile_ops.php + sched/ + db_dump.C + feeder.C + handle_request.C + sched_shmem.h + +David Feb 5 2004 + - My checkin of Jan 31 broke access via HTTP proxies. + Here's an attempt to fix it + + client/ + http.C,h + net_xfer.C,h + pers_file_xfer.C + +David Feb 5 2004 + - skip over elements while parsing + (they're there for the benefit of GUI RPC) + - removed old TRACEs from Win code + + client/ + client_types.C + win/ + wingui_mainwindow.cpp + +Rom Feb 5 2004 + - Moved the unhandled exception filter back into boinc_api.c where it was orginally. + - Moved stackwalker that is used by BOINC Client applications into api folder since + the unhandled exception filter depends on it. + - Removed the unhandled exception filter init code from boincdiag.cpp + + api/ + boinc_api.c + boincdiag.cpp + api/win/ + stackwalker.cpp,h (Added) + +Rom Feb 6 2004 + - Removed boincdiag.cpp,h from build and encorporated all its functionality into + boinc_api.c, h + - Improved unhandled exception filter to handle STACK_OVERFLOW exceptions, using + new stackwalker code base, STACK_OVERFLOWs would have caused a nested + exception issue that would have masked the real error. + - Improved unhandled exception filter to handle ACCESS_VIOLATIONs better, using + stackwalker code base, giving some of the same information for release builds + that is given in debug builds + - Created a new macro called BOINCERROR which will trip the management thread into + gracefully exiting the process with the correct exit code. This macro will work + across debug/release builds. Some more work has to go into the base function, + hopefully in tomorrow. + + api/ + boinc_api.c,h + boincdiag.cpp,h (deleted) + +David Feb 6 2004 + - changed default min/max work buffers from (1,3) to (.1, 1) + + html/incs/ + prefs.inc + +David Feb 6 2004 + - ask for more work when # of results in progress is less than # CPUs + - when get an APP_VERSION in a scheduler reply that's already in client state, + DON'T update the client state (it can't be any different anyway) + This fixes a garbage-collection crash + - Win client: added check_state.C to the project. + You can call check_all() to verify the integrity of client data. + This is commented out but useful for debugging. + - FILE_XFER_SET::insert() adds item to list, even if the underlying + HTTP_OP::insert() fails (because can't connect, e.g.) + This is necessary to make sure that the FILE_XFER remains in the + FILE_XFER_SET even in case of error, so that check_all() works. + + NOTE: the semantics of insert() should be reexamined through the whole + FSM stack. Does it initialize? Is it guaranteed to insert? + Need consistency. + + client/ + check_state.C + client_state.C,h + cs_scheduler.C + file_xfer.C + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + +David Feb 6 2004 + - Windows core client 2.25 release + +David Feb 6 2004 + - API: is we're not using shared memory, + then app_client_shm is NULL (not app_client_shm->shm) + - add constructor for APP_CLIENT_SHM + + api/ + boinc_api.C,h + lib/ + app_ipc.C,h + +Rom Feb 6 2004 + - When reporting exit codes of the project application to the DB, + use the exit code that was reported from the application + instead of the value from GetLastError() + + lib/ + util.c,h + client/ + app.c + +David Feb 8 2004 + - reorganized "Creating a BOINC project" and "Getting work done" + parts of docs + doc/ + anonymous_platforms.php + assimilate.php (new) + back_end.php (removed) + backend_functions.php (removed) + backend_logic.php (new) + backend_programs.php + boinc_dev.php + build_system.php + configuration.php (new) + create_project.php + database.php + docutil.php + make_project.php + platform.php + server_components.php + software.php + tool_start.php + tool_xadd.php + tools_work.php + validate.php + web_site.php (removed) + +David Feb 9 2004 + - Scheduler: when last work request was too recent, + send request_delay to tell client to wait (from Jens) + - code that generates user profile gallery pages (inc/gallery.inc) + has a nightmare of hardwired URL and path names. + I unraveled things enough to make them work again. + Should revisit at some point. + - page_tail() wasn't working when writing to files + + html/ + inc/ + gallery.inc + profile.inc + util.inc + ops/ + gallery.inc (removed) + project.sample/ + project.inc + user/ + debug.php + profile_menu.php + project.inc.sample + sched/ + handle_request.C + +David Feb 9 2004 + - ACTIVE_TASK_SET::poll(): set state file dirty flag whenever the + set of active tasks changes (e.g. app exited). + - rename ACTIVE_TASK::abort() to abort_task() (eliminate ambiguity) + - ACTIVE_TASK_SET::check_rsc_limits_exceeded(): + check only running tasks + - CLIENT_STATE::reset_project(): don't delete apps, app_versions + if project is anonymous-platform + - PROJECT::set_min_rpc_time(): don't change min_rpc_time + if it's already later than requested time (from Jens) + + client/ + app.C,h + client_state.C + cs_scheduler.C + +David Feb 11 2004 + - updated docs + - "request_delay" from server overrides exponential backoff + + client/ + cs_scheduler.C + +David Feb 15 2004 + - updated docs + - make_project: + use short hostname + shorten instructions at end + - add a sample project.xml + - scheduler: write log debug msg when set result.outcome + - setup_project.py and make_project: + add copy of "create_work" + make symbolic link of html/user_profile to itself + don't capitalize long name + - parse_attr(): don't modify const input string + - XML error in client: + + doc/ + (many files) + lib/ + parse.C + sched/ + handle_request.C + tools/ + create_work.C + project.xml (new) + make_project + py/Boinc/ + database.py + setup_project.py + +David Feb 16 2004 + - removed references to Workseq table from python code + - commented out shutdown()s in http.C. + These seemed to be causing problems. + - doc updates + + client/ + http.C + html/user/ + index.php + stats.php + doc/ + (various) + py/Boinc/ + database.py + db_mid.py + +David Feb 16 2004 + - enable the min_core_version attribute of app_version: + don't send a result to a host whose core version is too low. + (Note: this is a no-op unless you set min_core_version + to something nonzero). + If a host isn't sent any work because of this, + send a message suggesting upgrade + - Core client: put an element at the top level of , + not within + - Scheduler: parse from within + Also parse it within for backwards compat + - Client state file not parsed correctly when it contained a + (because of active file xfer). + - add uniqueness constraints for category and forum + - add a script to set up initial categories and forums + + client/ + client_state.C + client_types.C + db/ + constraints.sql + html/ops/ + create_forums.php (new) + sched/ + handle_request.C + sched_shmem.C + server_types.C + +Rom Feb 19 2004 + - Removed #ifdef around stackwalker dump so it'll dump release builds as well + + api/ + boinc_api.C + +David Feb 19 2004 + - FILE_XFER_SET::insert(): check for error BEFORE inserting in set. + - fix time zone display + + client/ + file_xfer.C + http.C + doc/ + (various) + html/inc/ + host.inc + +Jeff Feb 19 2004 + - CVS tagged as seti_boinc_app_release_2_25. + +Rom Feb 23 2004 + - Removed stackwalkers exception description so duplicate information is not logged. + + api/win/ + stackwalker.cpp + +Karl 2004-02-23 + - cookbook changes + + doc/ + project_cookbook.php + +Rom Feb 23 2004 + - New projects were failing to be able to make profiles. Added a bunch of defines + to project.inc that are now required. + - Updated the schema.sql file to include columns that are now required. + - Changed URL handling to include URL_BASE before quite a few relative links. + Basically PROFILE_PATH was being used for URL generation instead of URL_BASE + + IMAGE_URL|PROFILE_URL. + + db/ + schema.sql + html/inc/ + forum.inc + gallery.inc + html/project.sample/ + project.inc + user/ + profile_menu.php + +Jeff Feb 25 2004 + - CVS tagged as seti_boinc_app_release_2_26. This tag is a little late but + the sources should be little if any changed. + +David Feb 28 2004 + - change page_head() so that it doesn't try to find user + when being used for offline page generation + + html/inc/ + gallery.inc + host.inc + util.inc + +David Feb 28 2004 + - added some #includes for freeBSD compile + +David Feb 28 2004 + - made some stuff const + - added new GUI RPCs (for control) + - added GUI RPCs for Windows + NOTE: pipes don't work on Win. need to change to TCP + + client/ + client_state.C,h + cs_account.C + gui_rpc_server.C + doc/ + gui_rpc.php + +David Feb 28 2004 + - (from Rom) fixes a bug reported by Matze in the forums + where after an explorer crash the BOINC GUI doesn't re-register itself with + the new explorer. + + client/win/ + wingui_mainwindow.cpp,h + +Rom Feb 28 2004 + - Added boinc_diagnostics.c,.h, boinc_exceptions.c,.h. Not included in the build yet, + but needed to snapshot the source. + - Fixed a bug where on Windows we were not really waiting for three seconds before + a retry. This is done for both reads and writes since on Windows there is a notion + of exclusive reads which would make successive read requests fail as well. + + api/ + boinc_diagnostics.C, .h (added) + boinc_exception.C, .h (added) + lib/ + filesys.C + +David Feb 29 2004 + - check for "w", "a" in boinc_fopen() + + lib/ + filesys.C + +Rom Mar 1 2004 + - Retry on all boinc_fopen operations + - added boinc_file_exists() + + client/ + app.c + cs_scheduler.c + cs_statefile.c + log_flags.c + lib/ + filesys.C, .h + +David Mar 1 2004 + - compile errors + + client/ + gui_rpc_server.C + +Rom Mar 1 2004 + - Update project files so they'll build symbol files for release builds + - Remove the name collision between boinc.scr and boinc.dll as far as symbol + generation goes + - updated uppercase so it'll build again + + winbuild/ + boinc_cli.vsproj + boinc_dll.vsproj + boinc_gui.vsproj + boinc_ss.vsproj + upper_case.vsproj + +Rom Mar 2 2004 + - Get the complete version string for the Windows OS and include Service Pack + Information if any exist. An example is below: + Microsoft Windows 2003 Standard Server Edition (Build 3790) + - #ifdef out the GUI RPC stuff on Windows for right now, causes a crash on startup. + + client/ + client_state.C + client/win/ + hostinfo_win.cpp + +Rom Mar 2 2004 + - Update version Resouces to version 2.26 for the Windows release. + + client/win/ + boinc_ss.rc + resource.rc + win_config.h + +Rom Mar 2 2004 + - CVS tagged as boinc_app_release_2_26. + +David Mar 3 2004 + - added "using namespace std;" a couple places to fix bizarre + link problems on Windows + + client/ + parse.C + util.C + +David Mar 3 2004 + - "account key" -> "account ID" in the PHP code + + html/ + inc/ + util.inc + user/ + account_created.php + accountsetup_nonfirst_done.php + create_account_form.php + get-passwd.php + login_action.php + mail_passwd.php + +Rom Mar 3 2004 + - Some house keeping with the Windows sources + - All Windows binaries now have a version resource assigned to them. + - The Windows CLI should no longer need to have references to afxwin.h + - project file cleanup work to get rid of some warnings + + client/ + app.h + net_xfer.c + client/win/ + boinc_ss.rc, .h + boinc_cli.rc, .h (added) + boinc_dll.rc, .h (added) + boinc_gui.rc, .h (added) + resource.rc, .h (removed) + update-resource-version + win_idle_tracker.def + win_net.cpp + wingui.h + wingui_mainwindow.cpp, .h + winbuild/ + *.vcproj + boinc.vcproj (removed) + +Rom Mar 4 2004 + - Include file overhaul for the Windows platform + + Basically the linker was linking Windows GUI resources into it because of various + references to afxwin.h, these have now been banished from the source tree except in + one location. + + I added a header file called stdafx.h which contains all the includes for all the + system header files on Windows, each source file contains a pointer to stdafx.h. + + stdafx.h contains conditional logic to switch between afxwin.h and windows.h depending + on whether or not _CONSOLE is defined. + + Compiled Source Sizes: Debug Release + boinc_gui.exe (Before Changes) 1.732MB 328KB + boinc_cli.exe (Before Changes) 2.080MB Unknown + boinc.scr (Before Changes) 244KB 88KB + boinc.dll (Before Changes) 136KB 44KB + + boinc_gui.exe (After Changes) 1.716MB 428KB + boinc_cli.exe (After Changes) 1.508MB 412KB + boinc.scr (After Changes) 188KB 116KB + boinc.dll (After Changes) 140KB 58KB + + I pretty much touched all the source and header files. This checkin should not have any + effect on any platform other than Windows. + +Rom Mar 4 2004 (from John Keck) + + Edits to change when the client considers a result to be at its deadline + it was originally 6 hours as defined in _BASE + if I did this right it will use the connected fraction to modify that amount + a 100% connected client will use the base figure, a 0% connected client will + use the base figure times the multiplier in addition to the base figure. + The figures I have here will produce a maximum time before deadline of + 18 hours. 6*2=12+6=18 for debugging that may be too much but + it may not be enough for release. + + client/ + client_state.h + cs_scheduler.c + +Rom Mar 4 2004 + - More Windows header file cleanup. + + api/ + boinc_api.c + mfile.c + client/ +
+ lib/ + filesys.h + language.h + parse.h + util.h + +Rom Mar 5 2004 + - Include file overhaul for the Windows platform ( Part 2 ) + + Compiled Source Sizes: Debug Release + boinc_gui.exe (Before Changes) 1.732MB 328KB + boinc_cli.exe (Before Changes) 2.080MB Unknown + boinc.scr (Before Changes) 244KB 88KB + boinc.dll (Before Changes) 136KB 44KB + + boinc_gui.exe (After Changes) 1.716MB 332KB + boinc_cli.exe (After Changes) 624KB 324KB + boinc.scr (After Changes) 188KB 88KB + boinc.dll (After Changes) 140KB 35KB + + I pretty much touched all the source and header files. This checkin should not have any + effect on any platform other than Windows. + +Rom Mar 5 2004 (from John Keck) + - Adjust default values to download minimum work-unit load until the client can + collect preferences from the server. + + client/ + perfs.c + +Rom Mar 5 2004 + - Add the Alpha project test team members names to the Contact Us page. + + doc/ + contact.php + +Rom Mar 6 2004 + - I am backing out a change by John Keck until a server RPC overload problem is fixed. + + client/ + cs_scheduler.c + +Rom Mar 6 2004 + - Changed the namespace references back to the orginal references so that the clients + will build on Solaris and Linux. + + lib/ + util.c, .h + +Rom Mar 6 2004 + - Updated the version setting code so that it will include the new file resources for Windows + + / + set-verson + client/ + makefile.am + client/win/ + update-boinc-cli-version + update-boinc-dll-version + update-boinc-gui-version + update-boinc-ss-version + +Jeff Mar 9 2004 + - CVS tagged as boinc_app_release_2_27. + +Rom Mar 9 2004 + - Fix fatal error with the intro.php page because of missing function in project.inc + + html/project.sample/ + project.inc + html/user + info.php + +Rom Mar 9 2004 + - Windows Product SKU was being over-written if the person was running with Service Pack 6a. + + client/win/ + hostinfo_win.cpp + +Rom Mar 11 2004 + - Properly identify Windows Longhorn + + client/win/ + hostinfo_win.cpp + +Rom Mar 11 2004 (for Thomas Horsten) + - Here is a patch that fixes CPU detection for Linux (i386) and adds CPU detection for MIPS. + It is not perfect (it's really the proc interface's fault), but at least it is a lot better + than what is there now. + + + client/ + hostinfo_unix.cpp + +Jeff Mar 14 2004 + - Another static/dynamic linking problem fixed by an ugly collect2 + hack. It turns out that a statically linked linux client gets the + following warning at build time: + + hostinfo.C:230: warning: Using 'gethostbyname' in statically + linked applications requires at runtime the shared libraries + from the glibc version used for linking + + and sure enough, when such a client is run on a linux platform + with a incompatible glibc, we saw the following: + + 2004-03-12 11:07:57 [BOINC] Can't resolve hostname setiboinc + 2004-03-12 11:07:57 [BOINC] Can't resolve hostname setiboinc + 2004-03-12 11:07:57 [http://setiboinc/ap/] Couldn't read master + page for http://setiboinc/ap/: error -113 + 2004-03-12 11:07:57 [http://setiboinc/ap/] Couldn't read master + page for http://setiboinc/ap/: error -113 + 2004-03-12 11:07:57 [http://setiboinc/ap/] Detaching from project - + check for URL error + 2004-03-12 11:07:57 [http://setiboinc/ap/] Detaching from project - + check for URL error + + So we needed to link dynamically to libc but statically to libstdc++ + (for reasons described elsewhere in these notes). The only way found + so far to do this is via a hand crafted collect2 line. That, and + not linking the client statically in a global fashion. + + We should make the collect2 scripts adapt to the environment in + which they ar run. Or, better, figure out how to do this all + within configure/make. + + - bumped version to 2.28. + + configure.ac + configure + client + Makefile.am + Makefile.in + collect2_line_linux.csh new file + collect2_line_solaris.csh new file + collect2_line removed + +Jeff Mar 15 2004 + - CVS tagged boinc and seti_boinc as boinc_app_release_2_28. + +Karl 2004-04-15 + - fixed bug when files are copied to apps/ in different order + + tools/ + update_versions + +David Mar 16 2004 + - fleshed out trickle-message support a bit. + Separate notions of "trickle up" (client->server) + and "trickle down" (server->client) messages. + They're kept in different tables. + - added a program trickle_handler.C for handling trickle-up messages. + This is a framework program: you need to supply a handler function + - The scheduler sees if there are any trickle-down messages + for the host, and sends them + + STILL TO BE DONE: + - server-side API for creating trickle-down messages + - client logic for delivering trickle-down messages + + - fix bad mem size reporting on Mac w/ > 2GB mem + + client/ + hostinfo_unix.C + scheduler_op.C,h + db/ + boinc_db.C,h + constraints.sql + doc/ + contact.php + docutil.php + gui_rpc.php + software.php + trickle.php + validate.php + sched/ + handle_request.C + sched_config.C,h + server_types.C,h + trickle_handler.C (new) + validate_test.C + validate_trivial.C + +Rom Mar 16 2004 + - Add back in support for Thomas's multi-proc protection aginst strcat for + vendor and CPU information + - Included the same multi-proc stuff for the x86 + - Add JKecks change for changing when to report results based on the amount + of time the machine is connected onto the Internet. + - Added support for keeping a backup copy of stderr.txt and stdout.txt for + the previous session of BOINC in case it crashes. + + client/ + cs_scheduler.c + file_names.h + hostinfo_unix.c + client/win/ + wingui_mainwindow.cpp + +kevin 17 March 2004 + checked in signal handling code. Uses sigaction. If signal is + originally ignored, do not handle signals. + +David Mar 18 2004 + - Remove "confirm executables" preference. + This is replaced by the anonymous platform mechanism. + + client/ + client_state.h + client_types.C,h + cs_apps.C + cs_files.C + main.C + prefs.C,h + html/inc/ + prefs.inc + +kevin 18 March 2004 + - exit status of application set to nonzero value if there is an + uncaught signal. + client/ + app.C + +Rom Mar 18 2004 + - Fixed a bug causing build problems for a customer in Australia, basically + we were trying to do some ANSI<->Unicode conversions that were not needed. + - sighandle.h does not need to include its contents on the Win32 platform + + client/win/ + wingui_dialog.cpp + lib/ + sighandle.h + +Jeff Mar 19 2004 + BTW, here is how to buils the mac osx client/app in such a way that you + can specify the build name: + configure --build powerpc-apple-darwin + +David Mar 19 2004 + - small web-site fixes (e.g. you can now set your country to Cote d'Ivoire) + + html/ + inc/ + download.inc + prefs.inc + util.inc + user/ + host_edit_form.php + index.php + profile_menu.php + white.css + +kevin March 19 2004 + - Scheduler: don't handle partial requests + (i.e. missing tag) + lib/ + error_numbers.h + sched/ + server_types.C + handle_request.C + +David Mar 20 2004 + - Various changes to the way CPU benchmarking is done, + motivated by the need to make claimed credit constant across CPUs, + including "hyperthreaded" X86 CPUs + Old: + A single process runs the benchmark. + This gets 100% of the FPU on a HT CPU. + When 2 copies of an app are run, + they will each get 50% of the FPU, + so the claimed credit will be too high by a factor of 2. + New: + Run N copies of the benchmark in parallel, + where N is the number of CPUs reported by the OS + (e.g. twice the number of HT CPUs) + Average the results. + Revised interface: + start_cpu_benchmarks() starts up the N benchmark processes + cpu_benchmarks_poll() checks for completion + are_cpu_benchmarks_running() returns true iff running (doesn't poll) + abort_cpu_benchmarks() aborts processes + The set of running processes is maintained in an + array of BENCHMARK_DESC structures + Results are passed back in files in the Unix case, + where we use separate processes. + In the Windows case (where we use threads) + results are passed back in the BENCHMARK_DESC structure. + + api/boinc_api.C + client/ + Makefile.am + client_state.C,h + cs_apps.C + cs_benchmark.C + cs_prefs.C + file_names.h + gui_rpc_server.C + win/ + wingui_mainwindow.cpp + doc/ + various + lib/ + sighandle.C + +Rom Mar 22 2004 + - Setup project clients so they report back possible memory leaks on exit and + validate the heap after every 1024 allocations. + - Define constant for stdout.txt + + api/ + boinc_api.c + lib/ + app_ipc.h + +kevin Mon Mar 22 2004 + - ensure that is included in stderr_out, + even if stderr_out is too long. + client/ + app.C + +Rom Mar 22 2004 + - Attempt to force load glut32.dll in a specific location, + if it fails catch the SEH exception and just disable grapgics. + + api/ + graphics_api.c + +David Mar 22 2004 + - Web: Show mod time when display global prefs + - Client: when write global prefs to a file, + tag with source project and scheduler only if not already tagged + (otherwise get multiple tags) + - Client messages: show source project and mod time of global prefs + - Web: show all date/time strings in same format, use UTC + - Client messages: don't list "BOINC" as a project. + Indicate non-project-specific by "---" + + client/ + app.C + cs_scheduler.C + main.C + prefs.C,h + win/ + wingui.cpp + html/ + inc/ + prefs.inc + util.inc + user/ + prefs_edit_form.php + lib/ + util.C,h + +kevin Mar 22 2004 + - Scheduling server: we were failing to copy a result's exit_status + from the request message to the DB record. + So exit_status was always zero in the DB. Dooh! + + sched/ + handle_request.C + +David Mar 22 2004 + - Change the policy for propagating global preferences. + OLD: if a scheduler request message has newer prefs than + those in the DB, update the user record. + I.e. propagate prefs from hosts to projects + The problem with this: see bug #1164 + NEW: Use whichever is more recent of the prefs in the + request msg and the prefs in the DB. + Don't update the prefs in the DB + + sched/ + handle_request.C + server_types.C + +Jeff Mar 23 2004 + - At check_pair() time, if the validator sees that the canonical result + is deleted, a message is sent to the validator log. Canonical result + deletion should only happen when all results for a WU are received + or expired. + + sched/ + validate.C + +Rom Mar 23 2004 + - client applications don't really need to dump leak detection information + for public consumption. So remark it out for public release. + + api/ + boinc_api.c + +David Mar 23 2004 + - Initial global prefs (as defined in GLOBAL_PREFS::init()) should + impose minimal restrictions, so that the client can do its first + scheduler RPC and get global prefs from a server + - Fix bug where benchmarks always run on Win client startup + - Improve startup and prefs messages + + client/ + client_state.C + client_types.C + cs_benchmark.C + prefs.C + +David Mar 23 2004 + - Turned off the entire "infeasible result" mechanism for now. + The recent usage of min_core_version was causing + lots of results to (undeservedly) get tagged as infeasible. + - Don't bump infeasible_count (or print message!) + if min_core_version is not met + + sched/ + handle_request.C + feeder.C + +Rom Mar 24 2004 + - Unify all diagnostics functionality under the same banner, SETI_BOINC, + BOINC_CLI, BOINC_GUI, upper_case now all initialize the BOINC Diagnostics + Library which sets up stdout and stderr redirection, heap corruption + detection, stackwalker for Windows, and stackalker fo *nix can be pluged + in and be automatically used by all applications. + - Taskbase#1131 -- closed + - Taskbase#1132 -- closed + + api/ + boinc_diagnostics.c, .h (removed) + boinc_exeception.c, .h (removed) + boinc_api.c, .h + api/win/ + stackwalker.cpp, .h (removed) + apps/ + upper_case.c + client/ + file_names.h + main.c + stdafx.h + client/win/ + wingui_mainwindow.cpp + lib/ + diagnostics.c, .h (added) + exception.c, .h (added) + stackwalker_win.cpp, .h (added) + winbuild/ + boinc_cli.vcproj + boinc_gui.vcproj + boinc_ss.vcproj + upper_case.vcproj + +kevin Mar 24 2004 + - class boinc_base_exception: changed order of initialization + in constructor so that initialization matches declaration. + + lib/ + exception.h + +Rom Mar 24 2004 + - I was a little to agressive in cleaning up boinc_api.c and removed some + signal handling code, added that back in. + - The new exceptions use string's, so include in the exception header. + - gcc has stronger exception enforcement than mscl + + api/ + makefile.am + lib/ + diagnostics.c + exception.c, .h + +Rom Mar 24 2004 + - Taskbase#1029 - graphics API bugs + * App graphics window sometimes becomes invisible + Not Repro + * App graphics window doesn't restore to original size + if you maximize, close window, and show graphics again. + Fixed + - When window is in minimized state switch the visibility flag to false + + api/ + windows_opengl.C + +David Mar 24 2004 + - change priority of "no work" messages in scheduler reply + from low to high + - remove "hide_email" field from profile table and associated web pages + (BOINC should never show email addresses) + + html/inc/ + profile.inc + sched/ + handle_request.C + +David Mar 24 2004 + - check for the existence and correct size (but not checksum) + of a result's files (app_version and inputs) + before starting or restarting the app + If a file is deleted (e.g., manually by the user) + the core client should download it again before starting the app. + + New function: FILE_INFO::verify_existing_file() + - various changes to get Unix client and apps to compile + with new diagnostics code + - diagnostics.C subsumes sighandle.C + + NOTES: + - use int where possible + - all numeric error codes go in lib/error_numbers.h + - libboinc.a is to be used by applications only + (not client or server programs) + We can create a different lib for the latter, + but for now they use explicit .o's + + api/ + boinc_api.C + client/ + Makefile.am + app.C + client_state.h + client_types.C,h + cs_apps.C + cs_files.C + main.C + html/inc/ + util.inc + lib/ + Makefile.am + diagnostics.C,h + error_numbers.h + sighandle.C,h (removed) + +David Mar 24 2004 + - get the above stuff working on Windows + + client/ + app.C + cs_apps.C + lib/ + diagnostics.C,h + error_numbers.h + +David Mar 24 2004 + - add log flag to suppress file-size checking on app startup + + client/ + client_types.C + log_flags.C,h + +Rom Mar 25 2004 + - I have made SETI_BOINC Glut Free, Basically copied font code from glut + and put it into the glut folder. + - Removed Glut libraries + - Removed Delay Load technologies + + api/ + graphics_api.C + +David Mar 25 2004 + - Unix client: use semaphore instead of lockfile to prevent multiple copies + - rename boinc_init_diag() to boinc_init_diagnostics() + - rename boinc_execution_engine() to main_loop() + - add get_key() (to generate IPC key unique to a directory) + - replaced RETSIGTYPE with void + + apps/ + upper_case.C + client/ + Makefile.am + client_types.h + cs_apps.C + main.C + lib/ + diagnostics.C,h + error_numbers.h + synch.C,h + +Jeff Mar 26 2004 + - Release tags. Sources were tagged as seti_boinc_release_2_30 and then, + after some build problems were fixed, + were tagged as seti_boinc_release_2_30a. + The build from this latter tag was what was released + as app version 2.30. + +David Mar 26 2004 + - when show country select on web, + pre-populate based on client's IP (using GeoIP; from Janus) + - fix compile problem with semaphore code + + html/ + inc/ + GeoIP.dat (new) + geoip.inc (new) + team.inc + util.inc + lib/ + app_ipc.h + synch.C + user/ + create_account_form.php + edit_user_info_form.php + +David Mar 26 2004 + - Give the PHP session mechanism a "path" (last component of project URL) + to disambiguate multiple projects on same host, + so you can log into both at once w/ separate cookies + (suggested by Janus) + - Change "Most often asked" to "Most frequently asked" + + html/inc/ + forum.inc + util.inc + +Rom Mar 26 2004 + - Fix a minor bug where after the screen saver shutdown BOINC would fire-up + a new SAH Window + - Fix a few build breaks in the Windows CC + - Tag for a 2.31 release. + + api/ + boinc_api.c + windows_opengl.c + client/ + app.c + client/win/ + wingui_mainwindow.cpp + lib/ + app_ipc.c + +Rom Mar 26 2004 + - Update versions started to complain about PDB files, + so tell it to ignore them for determining platforms + + tools/ + update_versions + +David Mar 26 2004 + - combine RAC when merging hosts + + html/ + inc/ + forum.inc + user/ + host_edit_action.php + +Eric H Mar 27 2004 + - added support for SOCKS4 and SOCKS5 proxy servers + - added a new PROXY layer between HTTP_OP and NET_XFER. + This layer takes care of the state transitions + involved in negotiating with a SOCKS server. + Support for editing SOCKS proxy server + information still needs to be completed in the Windows GUI. + - Possible future projects: add IPv6 support, GSSAPI support, + test on SOCKS4 server + + client/ + Makefile.am + client_messages.C + client_state.C,h + cs_cmdline.C + cs_statefile.C + gui_rpc_server.C + http.C,h + log_flags.C,h + message.h + net_xfer.C,h + pers_file_xfer.C + proxy.C,h (added) + scheduler_op.C + lib/ + error_numbers.h + +Eric H Mar 27 2004 + - Catch error returns from CPU benchmark timer + + client/ + cpu_benchmark.C + lib/ + error_numbers.h + +Rom Mar 26 2004 + - Updated setup so it'll ask if you want it to be the defult screensaver + - Updated setup so that it'll remember where you installed it last and + select that folder by default. + + win_build/installer + BOINC.ipr + win_build/installer/Media/Default/ + default.mda + win_build/installer/Script Files/ + Setup.ino, .ins, .obs, .rul + +Rom Mar 28 2004 + - Prepare the environment and installation program for a language aware + system. All language files will be installed with every installation. + + This is the begining on bringing us into the Windows MUI effort. + + win_build/installer/ + + client/translation/ + + + +Rom Mar 28 2004 + - Issue fix that Janus gave for the parsing error. + + html/user/ + host_edit_action.php + +David Mar 28 2004 + - Fix compile/link errors I introduced on Friday (sorry!!) + + api/ + Makefile.in + boinc_api.C + client/ + Makefile.in + cpu_benchmark.C + +Rom Mar 29 2004 + - Fix BOINC_GUI so it'll build again. + + client/ + proxy.c + client/win/ + wingui_dialog.cpp + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + +David Mar 29 2004 + - Don't use semaphores for multiple-copy exclusion on Unix. + Semaphores don't work better than lockfile. + - Fix bugs in global preferences. + - GLOBAL_PREFS::parse() now sets all booleans to false + - removed confused should_request_global_prefs() from Win client. + + client/ + main.C + prefs.C + win/ + wingui_mainwindow.cpp,h + lib/ + filesys.C + tools/ + create_work.C + +David Mar 29 2004 + - rename main_loop() to boinc_main_loop() + + api/ + boinc_api.C + client/ + main.C + win/ + win_service.cpp + +Rom Mar 29 2004 + - Implement UI for SOCKS proxy server + - Fix setup bug in the making, only automatically startup BOINC if the user + has opted for the always start BOINC at startup. + + client/win + wingui_dialog.cpp, .h + wingui_mainwindow.cpp, .h + wingui_proxydlg.cpp, .h (Added) + win_build/ + boinc_gui.vcproj + win_build/installer/Script Files/ + setup.rul + +David Mar 30 2004 + - preparation for moving prefs.C from client/ to lib/ + (so can use in server): + - add bool found_venue return value from GLOBAL_PREFS::parse_file() + - add separate show_global_prefs_source() to print messages + - before sending signals to ACTIVE_TASKs, check their state + to avoid signaling non-existent processes + (this caused the Unix client to crash when reset) + - remove remaining semaphore-related code + + api/ + boinc_api.C + client/ + app.C + client_state.C,h + cs_prefs.C + cs_scheduler.C + prefs.C,h + +David Mar 30 2004 + - don't check file size (on app startup) if it's an anonymous + platform project, and it's an app version file + + client/ + cs_apps.C + +David Mar 30 2004 + - sched server: when parse preferences, take venue into account + + lib/ + parse.C,h + sched/ + Makefile.am + handle_request.C + server_types.C,h + +Rom Mar 30 2004 + - Asserts should be included in the output spew under the Windows IDE + - Make sure Semephore stuff is out of app_ipc.* stuff + - Include fix for Linux APM bug, the driver version info can contain + characters + + client/ + hostinfo_unix.c + lib/ + app_ipc.c, .h + diagnostics.c + +David Mar 31 2004 + - make host_info related functions into members of HOST_INFO + + client/ + client_state.C + cs_benchmarks.C + cs_prefs.C + hostinfo.C,h + hostinfo_unix.C + win/ + hostinfo_win.cpp + lib/ + app_ipc.C + +David Mar 31 2004 + - call set_nslots() whenever there are new global prefs, + in case max_cpus has changed. + E.g. on a multiproc machine, if max_cpus is increased from 1 to 2, + it should start a new app. + - Call report_result_error() immediately when abort a client + due to excess CPU/disk/mem usage, + to ensure that the result is marked as erroneous, + and to make the error message more specific. + (Currently this is called after process is reaped, + but this may never happen). + + client/ + app.C,h + cs_prefs.C + hostinfo_unix.C + prefs.C + lib/ + error_numbers.h + +Rom Mar 31 2004 + - Checkin prototype of universal gui based on wxWidgets. + + clientgui/proto/ + + +David Mar 31 2004 + - add support for mouse-event handling in apps + Apps that use graphics must now supply + boinc_app_mouse_move() and boinc_app_mouse_button functions + - check for file existence before opening for read, avoid 5-second delay + + api/ + boinc_api.C + graphics_api.C + windows_opengl.C + +David April 1 2004 + - Client: add a mechanism for suspending/resume network activity, + exactly parallel to the one existing mechanism for + suspending/resuming all (CPU+network) activity. + Initially this will be used to provide a GUI control. + Eventually we might have preference that control network + independently (time of day, only if idle, etc.) + - Client: save all messages in memory. + Implement GUI RPCs for getting ranges of messages. + + client/ + client_state.C,h + cs_prefs.C + gui_rpc_client.h + gui_rpc_server.C + main.C + message.C,h + lib/ + messages.C + util.C,h + + +Davaid April 1 2004 + - print message when resume network activity + - flesh out GUI RPC for messages + + client/ + cs_prefs.C + gui_rpc_client.C,h + gui_test.C + makefile.gui_test (new) + +Rom April 1 2004 + - Checkin UI for disabling/enabling network activity from the GUI + + client/win/ + boinc_gui.rc, .h + wingui_mainwindow.cpp, .h + +David April 1 2004 + - extend mouse interface to handle buttons better + + api/ + windows_opengl.C + +Rom April 1 2004 + - Found another place that should have been using boinc_file_exist. + NOTE: Still hasn't fixed the performance issue(s) on my machine though. + + api/ + boinc_api.c + +David April 2 2004 + - Client: fixed for disabling network activity + + cs_files.C + cs_scheduler.C + hostinfo_unix.C + main.C + +Jeff April 2 2004 + - tagged as seti_boinc_app_release_2_32 and released to alpha. + +David April 3 2004 + - added a mechanism to handle situations where an app + appears to have exited successfully, + but in fact didn't call boinc_finish() or exit(0). + This apparently can happen on various platforms, don't ask me how. + The new mechanism: + boinc_finish() writes a file "boinc_finish_called" + in the slot directory. + When an app appears to have exited successfully, + the core client checks for the existence of this file. + If it's not there, the result is placed "in limbo": + it takes up a slot, but the app isn't restarted. + If the core client is restarted, the app is restarted. + + NOTE: when we release a core client with this feature, + it's critical that all users reset the project, + and that updated versions of all apps are released. + Might be a good time for a major release increment. + + api/ + boinc_api.C + client/ + app.C,h + lib/ + app_ipc.h + +David April 3 2004 + - synchronize access to shared-mem work array by scheduler processes, + with the goal of NEVER sending the same result to different hosts. + - Instead of a single bool present flag, there are now 3 states + for an element in the array: absent, present, and + "checked out" (being considered for sending) + - There's now a semaphore that a scheduler process must acquire before + examining the state field of an array entry + (note: the feeder creates this semaphore, + but doesn't have to acquire it + because of the producer/consumer situation). + - split out the work-sending part of handle_request.C to a new file + (sched_send.C,h) because it was getting kinda big + + sched/ + Makefile.am + main.C,h + sched_send.C,h (new) + sched_shmem.h + show_shmem.C + +David April 3 2004 + - fix bugs in the above + + client/ + app.C + html/inc/ + result.inc + lib/ + filesys.C + synch.C + sched/ + feeder.C + main.C + sched_config.C,h + +David April 3 2004 + - added code (from Rob Ogilvie) to check for battery usage + on Linux ACPI hosts + + client/ + hostinfo_unix.C + +David April 3 2004 + - If a web page requires login (e.g., forum/post.php) + the resulting form will refer to a handler (login_action.php) + in the wrong directory. + Kludge solution: put a symbolic link in forum/login_action.php + Is there a better solution? Maybe, but I'm too tired to think of it. + - better download instructions for Unix + + html/ + forum/ + post.php + user/ + account_setup_first_download.php + py/Boinc/ + setup_project.py + +David April 4 2004 + - change the way file transfer speed is computed. + Instead of fancy exponential averaging, + just take the average every 3 seconds + + client/ + net_xfer.C,h + pers_file_xfer.h + +David April 4 2004 + - ACTIVE_TASK::request_exit() (win): kill the process immediately, + instead of sending it a quit request event, + waiting a few seconds, then killing it. + Currently the quit request event is checked only in + boinc_time_to_checkpoint(), + which (at least, in SETI@home) isn't called very often. + So it always takes 5 seconds to exit the core client. + + NOTE: when the new app management-thread stuff is done, + we can change this back + + client/ + app.C + +David April 6 2004 + - move update_average() from sched_util.C to util.C + (and give it a half-life arg) + - move Messages class declaration out of util.h into its own file + - move file_lock() from util.C to filesys.C + - client: rename get_percent_done() to get_fraction_done + (uh... percents are 0..100; fracs are 0..1) + + client/ + client_state.h + cs_apps.C + cs_benchmark.C + cs_cmdline.C + cs_prefs.C + cs_scheduler.C + gui_rpc_server.C + message.h + lib/ + filesys.C,h + messages.C + messages.h (new) + util.C,h + sched/ + Makefile.am + sched_send.C + sched_util.C,h + update_stats.C + validate.C + validate_test.C + +David April 7 2004 + - Client: replace the buggy update_avg_cpu() + with the tried-and-true update_average() + to estimate average CPU rate per project + + client/ + client_state.h + client_types.C,h + cs_apps.C + cs_scheduler.C + +David April 8 2004 + - Clarify distinction between log messages (debugging) + and user messages (shown to user) in the client + and put both in one place (client_msgs.C,h) + - rename ClientMessages to CLIENT_MSG_LOG + - rename SchedMessages to SCHED_MSG_LOG + - rename Messages to MSG_LOG + - rename ScopeMessages to SCOPE_MSG_LOG + + client/ + Makefile.am + *.C + client_messages.C (removed) + message.h (removed) + client_msgs.C,h (new) + lib/ + messages.C,h (removed) + msg_log.C,h (new) + sched/ + Makefile.am + *.C + sched_messages.C (removed) + sched_msgs.C,h (new) + +David April 8 2004 + - If an active task is in limbo, don't mark its result as done! + (from James Drews) + + client/ + cs_apps.C + +David April 8 2004 + - Fix a major error in back-end logic (found by Jeff): + The canonical result's output files (and WU input files) + were being deleted when all results had server_state = OVER. + But this doesn't mean they've been validated! + So the third result from every group of three + was failing validation about half the time + because the canonical result output files had been deleted. + + The fix: delete canonical result and WU files only when + all results are OVER *and* all results with outcome SUCCESS + have been validated. + + sched/ + transitioner.C + +David April 9 2004 + - Added zip/unzip code (from Carl Christensen). + This is basically the Info-ZIP code with unused files stripped out, + and some minor tweaks to return errors instead of exiting + + zip/ + * (new) + unzip/ + * (new) + +David April 9 2004 + - Fixed a nasty bug that caused back-end processes + to corrupt records in the "result" table, and potentially others. + The Bug: + - escape_string() replaces ' and \ by \' and \\ respectively; + this is done so that they can be used in SQL statements, e.g. + update foo set blah='abc\'def'; + - escape_string() (which can increase the length of a string) + didn't check the size of its output buffer + - The stderr_out field of results with stack traces + often are near their 4KB limit, + and have LOTS of \s (in file paths) + - escape_string() was writing beyond the end of the + stderr_out field, writing garbage into fields + like batch, claimed_credit, etc. + The Fix: + add a "len" argument to escape_string(), + and use safe_strncpy() to avoid writing off the end of the buffer. + + db/ + boinc_db.C + db_base.C,h + html/user/ + stats.php + +Rom April 10 2004 + - Initial Snapshot of the new BOINC Universal GUI, + this GUI will provide the native interface for all supported platforms. + NOTE: This is just a bare bones skeleton. + Header file stuff still needs + to be moved around to support all the platforms. + stdwx.h should include config.h or win_config.h + depending on platform, etc. + + clientgui/ + * (new) + +David April 10 2004 + - restore compilation on Linux + + lib/ + filesys.C + sched/ + sched_config.C + zip/ + Makefile + +David April 11 2004 + - scheduler RPC: return a result's app version number + in a field within , + not an field within + Change scheduler to look in both places for now. + + client/ + client_types.C + sched/ + handle_request.C + server_types.C + +Jeff April 12 2004 + - tagged with both: + boinc_core_release_3_00 + seti_boinc_app_release_3_00 + + +David April 13 2004 + - removed "result_template_file" arg (and several other args) + from make_work; these can just be copied from the WU + + sched/ + make_work.C + +David April 13 2004 + - Changes in the parsing of WU template files: + - Any unrecognized elements in a + are now just copied to the output. + So you can include attributes like + and they'll get propagated correctly. + - The following items can now be included in a WU template: + rsc_fpops_est + rsc_fpops_bound + rsc_memory_bound + rsc_disk_bound + delay_bound + min_quorum + target_nresults + max_error_results + max_total_results + max_success_results + + These are not copied to the output, + but are used to populate the WORKUNIT + (which is now passed in as an arg) + + The latter means that 'create_work' (the cmdline program) is simplified; + it can now take as few as 5 args + + tools + backend_lib.C + create_work.C + +David April 14 2004 + - Added code (from Janus Kristensen) to cache web pages. + Restored leader boards (users/teams/hosts) + and made them cached with a refresh time of 1 hour + + html/ + inc/ + cache.inc (new) + user/ + index.php + stats.php + top_hosts.php + top_teams.php + top_users.php + +David April 14 2004 + - added boinc_make_dirs() + (preliminary support for projects subdirs for CPDN) + - If is in config file, send it in sched replies + + lib/ + app_ipc.C + filesys.C,h + sched/ + sched_config.C,h + server_types.C + +David April 14 2004 + - moved MFILE declaration to a separate file + to facilitate a plain-C BOINC API + + api/ + mfile.h (new) + +David April 15 2004 + - change GUI RPC so that it uses TCP instead of UNIX-domain socket. + Core client accepts connections only from local host (127.0.0.1) + We currently use port 31416, since there's been no response + to my request for an official port. + - changed boinc_mkdir() so that it sees if the path already + exists and is a dir, and returns success if so + - main.C: print error message if CLIENT_STATE::init() fails + + client/ + client_state.C + file_names.C + gui_rpc_client.C,h + gui_rpc_server.C,h + main.C + lib/ + filesys.C + +David April 15 2004 + - CLIENT_STATE::computer_resource_debts(): + fix kludge that could result in seg fault + + client/ + cs_scheduler.C + +Rom April 15 2004 + - Increase benchmark timeout from 60 seconds to 120 seconds + + client/ + cpu_benchmark.h + +David April 18 2004 + - Added cross-project identification (scheme developed by Janus Kristensen) + + NOTE: this involves a database change (new field in user table). + You must update your database by adding the field and initializing it + (see html/ops/db_update.php) before using this code. + + client/ + client_types.C,h + cs_scheduler.C + db/ + boinc_db.C,h + schema.sql + html/ + user/ + create_account_action.php + ops/ + db_update.php (new) + py/Boinc/ + database.py + sched/ + db_dump.C + server_types.C + +David April 19 2004 + - Client: change the way network transfer speed is computed. + Instead of computing it every 3 seconds (which doesn't work + for short transfers) just computed it from start of transfer. + - when detach from a project, and global prefs are from that project, + delete the global prefs file and init() prefs in mem. + Otherwise you have prefs from unknown project. + - write element in only if writing to server + (avoid error parsing state file) + - some message end with multiple \n's. delete them all. + - change return type of boinc_file_exists() to bool + + client/ + client_state.C + client_types.C + net_xfer.C,h + prefs.C + win/ + wingui.cpp + wingui_proxydlg.cpp + lib/ + filesys.C,h + +Rom April 20 2004 + - Prevent a nested exception during a heap check by disabling the + heap check during a stack dump. + lib/ + diagnostics.C + + +David April 20 2004 + - The Windows CreateDirectory and RemoveDirectory return + nonzero on error (unlike rmdir and mkdir). + The code had it backwards, which led to various problems, + e.g. after attaching to a new project no RPC happened + - print error messages if fail to delete account file + or project dir on detach + + client/ + client_state.C + file_names.C + lib/ + filesys.C + +Jeff April 21 2004 + - tagged as seti_boinc_app_release_3_01 + +David April 21 2004 + - Web: page_head() no longer checks for logged-in user. + Pages that care about that must do it separately, + and can pass the user into page_head() if they want. + - added is_valid_country() function + - don't get logged-in user for pages that don't show sensitive info + (results, workunit, host). + This also makes these pages cacheable. + + html/ + forum/ + edit.php + inc/ + countries.php + util.inc + user/ + result.php + results.php + show_host_detail.php + +Rom April 22 2004 + - Integrate in Sebastian Masch's ACPI code that works with multiple + AC Adapter types + - Integrate back in the APM code that works with the Linux 2.6 kernels + + client/ + hostinfo_unix.c + +Jeff April 22 2004 + - tagged as boinc_core_release_3_01 + +David April 22 2004 + - boinc_fopen(): add a Unix-specific #ifdef case that, + in case of failure, sees if errno is EINTR and if so retries the fopen. + This fixes a problem in the SETI@home app, + where an initial fopen() gets interrupted by the timer (I think) + - add project_dir and wu_name elements to the APP_INIT_DATA structure; + add corresponding elements to the app_init_data.xml file; + populate these in the core client, and parse in the API + - rename boinc_trickle() to boinc_trickle_up() + - rename full_path() to relative_to_absolute() + + api/ + boinc_api.C + client/ + app.C + cs_statefile.C + lib/ + app_ipc.C,h + filesys.C,h + +David April 23 2004 + - added new items to APP_INIT_DATA (for Folding@home): + slot + boinc_dir + authenticator + - rename app_preferences to project_preferences in APP_INIT_DATA + + api/ + boinc_api.C + client/ + app.C + lib/ + app_ipc.C,h + +Rom April 26 2004 + - Fix a condition where we were leaking a file handle on Linux + - Fix a seg fault when the dirscanner attempts to scan a non + existent directory + + client/ + hostinfo_unix.c + lib/ + filesys.c + +Rom April 27 2004 + - Remove dependency on semaphore stuff so the Mac 10.2 client will build. + NOTE: The semaphore stuff should only be used in server components now. + + client/ + Makefile.am + lib/ + Makefile.am + +Rom April 28 2004 + - Fixup build system so it doesn't have to change the version number in the + Windows resource files for every version change. Make the resource files + include win_config.h which contain the nessassary information and then + reference it. + + / + set-version + client/ + Makefile.am + client/win/ + *.rc + update* (deleted) + +David April 28 2004 + - fix compile problem on Linux + + client/ + hostinfo_unix.C + +Rom April 28 2004 + - Fixup Windows service controls so that pause/resume/start/stop work as + expected, when running as a service log to the Windows event log. + - When attempting to change the service description use runtime dynamic + linking for the call to ChangeServiceConfig2 so that we will work even + on NT 4.0 systems. + - Some of these fixes were based on code from Mathias Walter + + client/ + cs_cmdline.C + main.C + client/win/ + win_service.cpp, .h + win_build/ + boinc_cli.vcproj + +David April 30 2004 + - scheduler: connect to DB after checking major version# + - scheduler: request 24-hour delay if bad major version# + - scheduler: request 1 hr delay if project is shut down + - scheduler: parse from client + - print expanded error in PHP when can't connect to DB + + html/ + inc/ + db.inc + user/ + create_account_action.php + sched/ + handle_request.C + main.C,h + server_types.C,h + +David April 30 2004 + - Add a 10 second delay in "start", after starting daemons + but before writing run_state.xml file. + This lets the feeder delete the shared-mem segment + (if there is one) before CGI programs are created + and create new attachments + - get Fast CGI to compile (but not link) + + sched/ + Makefile.am + handle_request.C + main.C + server_types.C + start + +David April 30 2004 + - Got the scheduling server to compile (but not link) under fastCGI + For some reason I had to modify fcgi_stdio.h to accomplish this. + Would be nice to figure out what the problem is. + - Eliminated the use of streambuf stuff in various places. + This seems to cause problems. + + db/ + db_base.C + lib/ + filesys.C + msg_log.C,h + parse.C + util.C,h + sched/ + Makefile.am,in + fcgi_stdio.h (new) + fcgsapp.h (new) + handle_request.C + main.C + sched_config.C,h + sched_util.C + server_types.C + + tools/ + backend_lib.C + process_results_template.C + +David May 2 2004 + - removed the "project" table from DB. + Its only role was to store the project name. + This is now in the config file instead. + + NOTE: if you upgrade to this code, you must add an entry + ... + to your config.xml file. + + db/ + boinc_db.C,h + schema.sql + py/Boinc/ + add_util.py + database.py + db_mid.py + setup_project.py + sched/ + main.C,h + sched_config.C,h + server_types.C + +David May 2 2004 + - finished the implementation of cross-project identification: + scheduler: if get cross_project ID in request message, + and it's different than in DB, update user record + - new global-prefs propagation policy: + global prefs are propagated to accounts with the same email address. + Implementation: + - RPC request message has + - scheduler: if get global prefs in request message, + and they're from an account w/ same email address, + and they're newer than in DB, + then update user record + + client/ + cs_scheduler.C + sched/ + handle_request.C + server_types.C,h + +David May 2 2004 + - client: fixed bug in general prefs parsing that caused + source project to be "unidentified" + + client/ + prefs.C + +David May 3 2004 + - server: instead of a single "stop" file, we now have two: + stop_daemons: tells daemon processes to stop + stop_sched: tells scheduler to return "down" message + + This allows us to have the following logic in "start": + remove stop_daemons + start daemon processes + wait 10 seconds + remove stop_sched + which is necessary to give the feeder a "head start" + on deleting and creating the shared memory segment. + + NOTE: there's still a problem when a sched process + hangs (e.g. while sending to hung client) while attached to shmem. + + sched/ + *.C + start + +David May 3 2004 + - core client, Unix: if app is killed by SIGKILL, + put it in limbo (same as if exited zero without writing finish file). + + client/ + app.C + +Rom May 3 2004 + - Try to cleanup a recursive failure during a dump to stderr by changing + the fprintf call in diagnostics.c + - Apparently exceptions don't walk up the inheritance tree when calling + virtual functions, so force the issue by locally scoping additional + variables that can be set by constructors which will allow base functions + to get the correct information. + + lib/ + diagnostics.c + exception.c, .h + +Rom May 3 2004 + - Add new report to OPs pages to show failures by platform + + html/ops/ + db_ops.inc + failure_result_summary_by_platform.php + index.php + +Rom May 3 2004 + - Fix a screensaver bug where if BOINC was suspended it would get stuck + trying to bring up graphics for a suspended application. + - Remove obselete db_ops.inc and util_ops.inc file from the ops directory. + + client/ + ss_logic.c + html/ops/ + db_ops.inc (remove) + util_ops.inc (remove) + +Rom May 3 2004 + - Fix a bug where the number of files deleted being returned on the result + summary report was actually the number of invalid records + + html/inc/ + db_ops.inc + +Rom May 4 2004 + - Fixup new report so it gives a quick roll-up of information, i.e. strips + Linux kernel version down to just major, minor, and revision and shortens + the Windows on_name down to just 'Windows' + + html/inc/ + db_ops.inc + +Rom May 4 2004 + - Use a more optimized query for the results summary page, + load times go from 8-10 seconds to 1-2 seconds + - Fix client_version_num bug after field was renamed to app_version_num + + html/inc/ + db_ops.inc + +Rom May 4 2004 + - Include a link on the failure page that'll bring up a report + with only those failures + + html/inc/ + db_ops.inc + +David May 4 2004 + - file upload handler: accept any major version + - scheduler: if wrong major version, don't set "nucleus only" flag + (this prevents acking of results) + - db_dump: put encoding=iso-8859-1 into header + + sched/ + db_dump.C + file_upload_handler.C + handle_request.C + +Rom May 4 2004 + - Touchup on the os_name and os_version fields in the host table. + This will cause some merging woes but should fix things + in the long run as version changes and service packs + won't block a host merger. + + client/win/ + hostinfo_win.C + +Rom May 4 2004 + - Tag for 3.03 release, all platforms + boinc_core_release_3_03 + seti_boinc_app_release_3_03 + +David May 5 2004 + - fixed bug where Unix client ignored QUIT signal + - rename CLIENT_STATE::cleanup_and_exit() + to CLIENT_STATE::quit_activities() + (this function does NOT exit!!!!) + - quit_client(): exit() after quitting activities + (this is why the client wasn't exiting) + - quit_client(), susp_client(), resume_client(): + print messages about which signal was received + - core client, Unix: if app is killed by SIGQUIT, + put it in limbo (same as if exited zero without writing finish file). + + client/ + app.C + client_state.h + cs_apps.C + main.C + win/ + wingui_mainwindow.cpp + tools/ + backend_lib.C + create_work.C + +Rom May 5 2004 + - Tag for 3.03 release, all platforms + boinc_core_release_3_04 + +David May 5 2004 + - core client: if there are errors in GUI_RPC setup + (e.g. the port is already in use), + just print the error, don't exit + - In some cases we ask for work in order to keep + all processors busy; + make sure we ask for at least 1 second in this case. + + client/ + cs_scheduler.C + gui_rpc_server.C,h + scheduler_op.C + lib/ + error_numbers.h + +David May 5 2004 + - get "make dist" to work again + + Makefile.am,in + client/ + Makefile.am,in + sched/ + Makefile.am,in + +Rom May 5 2004 + - Our exit strategy should be the same for Windows and Unix. + The signal handler should use the same global flags as Windows + for suspending and resuming activities. + + client/ + main.C + +Rom May 6 2004 + - Add a new report called pass percentage by platform which will allow us + to continue monitoring the pass percentages for the latest release of + each app version per platform. + + NOTE: The query isn't smart enough yet to exclude invalid platform to + version combinations. For instance currently Linux is on version + 302 and Windows is on 301, but the report will still show results + for Linux 301 + + html/inc/ + db_ops.inc + html/ops/ + failure_result_summary_by_platform.php + index.php + pass_percentage_by_platform.php + +David May 9 2004 + html/ + inc/ + gallery.inc + uotd.inc (new) + user/ + index.php + team.php + team_lookup.php + +David May 10 2004 + - extend the set of signals that are treated as "external", + i.e. if an app exits with one of these, put it in limbo + rather than treating it as error: + SIGHUP, SIGINT, SIGQUIT, SIGKILL, SIGTERM, SiGSTOP + Note: some of these should in principle never happen + because they're caught by the API. + But it doesn't hurt to be safe. + - update_average(): avoid divides by zero + + client/ + app.C + lib/ + exception.h + util.C + +David May 10 2004 + - added support for key up/down handling by apps + + api/ + windows_opengl.cpp + +David May 11 2004 + - replaced zip/unzip libraries with new code from Carl Christensen + + zip/ + * + +David May 11 2004 + - remove "user" argument from page_head() + + html/ + * + +David May 11 2004 + - Web: added "title" argument to project_banner(). + Lets the project control how page titles are rendered. + Removed explicit

title

s from most pages + + html/ + inc/many + user/many + +David May 11 2004 + - continued implementation of trickle messages; + fairly complete now except for app receipt of trickle-downs + + NOTE: changed format of trickle_down table. + An update function is included in html/ops/db_update.php + + api/ + boinc_api.h + client/ + Makefile.am,in + app.h + client_state.h + cs_scheduler.C + gui_rpc_server.C + scheduler_op.C + cs_trickle.C (new) + db/ + boinc_db.C,h + schema.sql + sched/ + handle_request.C + trickle_handler.C + +David May 11 2004 + - bug fixes in trickle code. + Trickle-ups work correctly. + handle_trickles works correctly. + trickle-downs are getting sent back OK + - client: if scheduler reply gets parse error, backoff project + (fixed bug where we retry every second) + - sched server: if request message doesn't parse, + send an "incomplete request received" reply + (instead of just returning: uh, ????) + - sched server: if request is not asking for work, + don't check min_sendwork_interval or try to send work + (avoid spurious "last RPC too recent" messages) + + client/ + scheduler_op.C + sched/ + handle_request.C + server_types.C,h + trickle_handler.C + +David May 12 2004 + - Server: remove MEDIUM_BLOB_SIZE and use LARGE_BLOB_SIZE instead. + MEDIUM_BLOB_SIZE was used in various C structs + to hold database blobs for: + app_version.xml_doc (list of files in app) + result.xml_doc_in, xml_doc_out (output files) + result.stderr_out + wu.xml_doc (input files) + It was defined as 4KB, which overflowed if you had + more than 10 or so files (with signatures etc.) + + Note 1: this greatly increases the size of WORKUNIT and RESULT, + to I decreased the number of WU_RESULTs in shared memory + from 1000 to 100. + Eventually we might want to redefine the shared memory + so that it doesn't store the entire structs + Note 2: these buffer overflows should have been caught early-on, + i.e. when the workunit, result or app_version was created. + We should never just do a strcpy() or even safe_strncpy(); + instead, we should check for overflow, return error if so, + then do the copy. + I added some code to do this in workunit and result generation; + still need to do this for app_version (in Python) + + db/ + boinc_db.h + sched/ + assimilator.C + file_deleter.C + make_work.C + sched_send.C + sched_shmem.C + server_types.h + transitioner.C + tools/ + backend_lib.C + process_result_template.C + +David May 12 2004 + - Added Janus Kristensen's "download network" pages + (for dissemination of 3rd-party add-ons) + + html/ + inc/ + download_network.inc + user/ + download_network.php + +Karl 2004-05-12 + - update_versions: by default only allow most recent core client + + tools/ + update_versions + +David May 14 2004 + - various web fixes + +David May 15 2004 + - small trickle-down fixes + client/ + cs_trickle.C + scheduler_op.C + +David May 15 2004 + - Massive simplification of STARFIELD implementation. + Instead of using the same 3D coordinate space as other stuff, + stars now have their own -1..1 type coordinate space, + and we do the perspective transformation ourselves. + This eliminates the need for all the is_visible() crap. + + The goal was to get rid of the hang/crash when the user + moves the viewpoint too far away, + but I ended up rewriting the (crufty) code. + + Got rid of get_matrix_invert() + + - Moved glFlush() from REDUCED_ARRAY::draw() to SAH_GFX_BASE::render + (or whatever the app's render routine is) + + api/ + gutil.C,h + reduce.C + +David May 17 2004 + - In the scheduler shared-memory segment, + keep only the result ID (not the whole result record) + in each WU_RESULT. + This saves large amounts of memory, + and doesn't incur any DB overhead because we have to + reread the result record anyway. + + sched/ + feeder.C + sched_shmem.h + sched_send.C + show_shmem.C + +David May 18 2004 + - Added the "homogeneous redundancy" feature courtesy of Michela Taufer. + This lets a project say that results for a given + workunit should be sent only to hosts with the same + OS name + CPU vendor. + Enabled it by putting in config.xml + - parse in scheduler replies + + client/ + scheduler_op.C + sched/ + sched_config.C,h + sched_send.C + +David May 18 2004 + - Various changes to benchmark code: + - unroll loops in FP benchmark + - use 10M instead of 1M ops per iteration + - use dtime() for timing + - get rid of wacky integer benchmark; + replace with integer counterpart to FP benchmark + + client/ + cpu_benchmark.C + +Rom May 18 2004 + - XML Parsing errors should now be hidden from normal operation. + NOTE: In order to see XML parsing errors you'll need to turn on the + debug state and debug scheduler operation log flags. + + client/ + app.C + client_types.C + cs_statefile.C + hostinfo.C + prefs.C + proxy.C + scheduler_op.C + time_stats.C + +Rom May 18 2004 + - Tag for 3.05 release, all platforms + boinc_core_release_3_05 + +David May 19 2004 + - Added code for Whetstone benchmark. + This produces a result several times larger than our own floating-point + benchmark (e.g., 750MFLOPS versus 160MFLOPS). + But it's not clear that the Whetstone number + should be interpreted as MFLOPS. + If you want to check it out, add a call to whetstone(10, x) somewhere, + and look at the result in the debugger. + + client/ + whetstone.C (new) + +David May 19 2004 + - Added code for Dhrystone benchmark. + Use the "VAX MIPS" result as integer benchmark. + It's somewhat higher than the benchmark we've been using. + - Switch to using Whetstone and Dhrystone instead of home-brew benchmarks. + + client/ + cpu_benchmark.C,h + cs_benchmark.C + dhrystone.C (new) + whetstone.C + +David May 19 2004 + - Since new benchmarks are higher than old ones, + redefine a cobblestone as 100 * (fpops + iops)/2 + (omit memory bandwidth, use 100 instead of 300) + + sched/ + handle_request.C + +David May 19 2004 + - Changed dhry/whetstone to use fixed # of iterations instead + of dynamically adapting. + This hopefully will make multiple CPUs run more in lockstep + + client + cpu_benchmark.h + cs_benchmark.C + dhrystone.C + whetstone.C + +David May 19 2004 + - boinc_fopen: if opening for read, and file doesn't exist, + return 0 immediately (avoid 5-sec delays) + - boinc_resolve_filename: use boinc_fopen() to open symlink file + - graphics: scale starfield velocity down by a factor of 10 + + api/ + gutil.C + lib/ + app_ipc.C + filesys.C + +David May 20 2004 + - In messages about benchmarks, report the number of CPUs, and + say that benchmark numbers are per CPU + + client/ + cs_benchmark.C + +David May 21 2004 + - API: changed timer period from 50 Hz to 1 Hz. + This timer is used only for reporting progress and CPU, + not for doing graphics, to 1 Hz is enough + - API: if setup_shared_mem() returns error, set standalone = true. + This means that if you run an app standalone, + it will be detected automatically, + so no need for command-line args or even + standalone argument to boinc_init() + (but leave that arg in for now) + - API: initialize fraction_done to -1, + and only report it to core client if >= 0 + (i.e. don't report it unless app specifies it) + - API: removed + #ifdef HAVE_SYS_SHM_H + #ifdef HAVE_SYS_IPC_H + around calls to attach_shmem in non-Win case. + This not an appropriate place for these ifdefs. + - core client: ACTIVE_TASK_SET::check_app_exited(): + skip tasks in state PROCESS_IN_LIMBO. + This avoid core client spinning when apps misbehave. + - core client: changed variable names in app.C: + starting_cpu_time -> episode_start_cpu_time + + api/ + boinc_api.C + client/ + app.C,h + +David May 21 2004 + - Core client: attempted to make benchmarks more accurate + and reproducible on multiprocessor or HT machines + be forcing each phase (floating point, integer) + to be more or less concurrent across processors. + This is done using trigger files. + Each benchmark waits for its trigger file before starting, + and stops when the file goes away. + + client/ + cpu_benchmark.h + cs_benchmark.C + dhrystone.C + whetstone.C + +Rom May 21 2004 + - A little fine tuning to the benchmark process. + Should be less than 1% difference between executions without any + other software runing + + client/ + cs_benchmark.C + dhrystone.C + whetstone.C + +David May 21 2004 + - Core client: in FILE_XFER_SET::poll(), when completed a file-size query, + close the socket before iniating the file transfer. + Otherwise we have a socket that's never closed. + + Note: some aspects of the FILE_XFER/HTTP_OP/NET_XFER hierarchy + seem absurdly complex, like the issue of when sockets are closed. + The whole thing should be reexamined at some point (but not now). + + client/ + file_xfer.X + +Rom May 22 2004 + - Somehow the boinc release build switched over to using shared libraries on + Windows instead of static, so now i'm switching it back to static libraries. + + win_build/ + boinc_gui.vcproj + +Rom May 23 2004 + - Add new report to OPs pages to show failures by host + + html/ops/ + failure_result_summary_by_host.php + index.php + +David May 23 2004 + - web: activating an account (un-munging the email address) + can fail if there's already an account with that email address. + Print an explanatory message in this case. + - web: moved forum-display code to separate file/functions + (forum_show.inc) so can selectively show forums + Renamed "$n" to "$thread_per_page" (come on, folks) + - remove extra tags in core_version XML dump file + + html/ + forum/ + forum.php + forum_show.inc (new) + sample_index.php (renamed from index.php) + inc/ + forum.inc + user/ + download.php + download_network.php + login_action.php + sample_index.php (renamed from index.php) + sched/ + db_dump.C + +David May 23 2004 + - Support for "compound applications" (such as climateprediction.net) + in which a main program runs several apps in sequence. + The items are: + 1) The app init file now contains fields + and + giving the fraction-done range occupied by the app. + Note: the app calls boinc_fraction_done() with values + from 0 to 1 as usual. + The API implementation takes care of scaling them + to the start..end range. + + The main program must fill in these fields and call + boinc_write_app_init_file() prior to running each app. + 2) boinc_finish() fills the final CPU time into the + APP_INIT_DATA struct, then calls boinc_write_app_init_file(). + This passes the CPU time along to the next program. + 3) got rid of boinc_child_start() and boinc_child_done(). + + api/ + boinc_ipc.C,h + client/ + app.C + lib/ + app_ipc.C,h + +David May 24 2004 + - Change benchmarks functions to use CPU time instead wall-clock time. + - move CPU measurement functions from api/boinc_api.C to lib/util.C + + api/ + boinc_api.C + client/ + cs_scheduler.C + dhrystone.C + whetstone.C + lib/ + util.C,h + +David May 24 2004 + - boinc_delete_file(): Windows: retry 5 times w/ 1 second delay + (in case virus-check program has file locked). + This may fix a problem where slot directories + weren't getting cleaned up. + - if clean_out_dirs() fails when starting app, + print error message and return error (so app won't start) + + client/ + app.C + cpu_benchmark.h + cs_benchmark.C + file_names.C + lib/ + filesys.C,h + +David May 24 2004 + - client: initialize NET_XFER::xfer_speed to -1, + and when we print it out check for this value + and print "no bytes transferred" + (this happens e.g. if upload a file that's + already been uploaded) + - removed NET_XFER::net_xfer_state (not used) + + client/ + net_xfer.C,h + pers_file_xfer.h + +Rom May 24 2004 + - Tag for 3.06 release, all platforms + boinc_core_release_3_06 + +David May 24 2004 + - bugs in update_versions: + "cur" -> "cursor" + move call to get_current_core_version() after DB init + + tools/ + update_versions + +David May 24 2004 + - Change benchmarks to not use global variables + (since, on Windows, we have several threads running them + in the same address space). + This requires passing around an extra structure pointer, + which slows down the benchmarks, + but it doesn't seem to make a big difference. + + client/ + dhrystone.C + whetstone.C + +David May 25 2004 + - added -noinsert option to assimilator + + sched/ + assimilator.C + +David May 25 2004 + - change client compile from -O2 to -O6 (Unix) + This brings the benchmark speeds on my laptop + (2.2 GHz Celeron) roughly into line with Win: + + Linux -O6: + whet 933 + dhry 1585 + + Linux -O2 + whet 545 + dhry 1268 + + Win release + whet 840 + dhry 1512 + + Win debug + whet 655 + dhry 1436 + + client/ + Makefile.am + +David May 25 2004 + - setup_project.py: + copy sample_index.php to index.php + Otherwise tests don't work. + + py/Boinc/ + setup_project.py + test/ + testbase.py + +Rom May 25 2004 + - Tag for 3.07 release, all platforms + boinc_core_release_3_07 + +David May 26 2004 + - update Dhrystone/Whetstone code based on latest versions (2.1, ?) + I don't think this will make a damn bit of difference, + but it's better to stay current + + client/ + dhrystone.C + whetstone.C + +David May 26 2004 + - updated config.guess + + config.guess + +Rom May 26 2004 + - Update config.guess so we don't have to add the --build command to + each execution of ./configure for the Macs + + / + config.guess + +Rom May 26 2004 + - NEW GUI: Implement Render and State management infrastructure. + + clientgui/ + BOINCGUIApp.cpp + BaseListCtrlView.cpp, .h + BaseWindowView.cpp, .h + MainFrame.cpp, .h + MessagesView.cpp, .h + ProjectsView.cpp, .h + ResourceUtilizationView.cpp, .h + TransfersView.cpp, .h + WorkView.cpp, .h + +David May 27 2004 + - Added a mechanism for limiting the number of results + sent to a given host in a given day. + - added 'nresults_today field' to host DB table + - added 'daily_result_quota' element to config.xml and SCHED_CONFIG + (optional - gives max results per host per day) + - change server logic so that the host record is updated + after calling send_work() + - change server logic to enforce daily result quota, + send message to user if quota exceeded, + also write log message if this happens + - Added script to send email to all opted-in users + + NOTE: existing projects will have to update their DB. + You can do this using html/ops/db_update.php + + db/ + boinc_db.C,h + schema.sql + html/ops/ + create_forums.php + db_update.php + mass_email.php (new) + sched/ + handle_request.C + sched_config.C,h + sched_send.C + +David May 27 2004 + - update comments in 'start' + + sched/ + start + +David May 27 2004 + - The BOINC app graphics framework does not use + (or require the use of) OpenGL. + Get rid of all OpenGL stuff in the code. + Note: windows_opengl.C is misnamed. + + api/ + graphics_api.C,h + windows_opengl.C + +David May 27 2004 + - added support for "static graphics": + applications generate graphics from a static image file + (part of the workunit) rather than dynamically. + - removed cruft from gutil.C: + mode_orth_ratio() + set_viewport_*() + center_screen_ratio() + I have no idea what these were for, + and perhaps neither did their author. + + - moved declarations of boinc_ap_mouse_button() etc. + to graphics_api.h + api/ + graphics_api.h + gutil.C + static_graphics.C (new) + windows_opengl.C + doc/ + graphics.png + graphics.sxd + +David May 27 2004 + - negated Windows timezone, and server-side timezone usage + + client/ + hostinfo_win.cpp + html/inc/ + host.inc + +Rom May 28 2004 + - Fix screensaver issue where somebody may have configured a 0 blank time, + if so, the blank time is set to twenty minutes. + - Host properties on the BOINC Ops page now shows the nresults_today value + - The host failures report now displays the nresults_today + + client/win/ + wingui_mainwindow.cpp + html/inc + db_ops.inc + html/ops/ + failure_result_summary_by_host.php + +Rom May 29 2004 + - Fix a possible bug in the new Limiting number of results sent + to a host per day due to a floating point issue. + + sched/ + handle_request.C + +David May 30 2004 + - scheduler: modify_host_struct(): + modify the actual structure, not a copy + (this caused results from new hosts to get zero claimed credit) + - numerous web site changes, including: + - added "recompute credit" feature for hosts + - moved forum files from html/forum to html/user + Also changed forum code to use object notation + (instead of archaic array notation) + and to eliminate the use of global variables + - show SETI@home credit, CPU hours + + html/ + inc/ + forum.inc + forum_show.inc (new) + host.inc + profile.inc + user.inc + ops/ + forum_repair.php (moved from forum) + user/ + forum_*.php (new; moved/renamed from forum) + host_delete.php + host_edit_action.php + host_edit_form.php + sched/ + handle_request.C + sched_send.C + +David May 30 2004 + - Add the ability to sort by total or expavg credit in most lists + - Fix the "update credit" feature to use the same + formula used to compute expavg credit in the first place + + html/ + inc/ + host.inc + team.inc + user.inc + user/ + host_update_credit.php + hosts_user.php + top_hosts.php + top_teams.php + top_users.php + +Karl 2004-05-31 + - update_versions signature files: added feature so that if + 'exec-file.sig' exists in a directory, treat it as the signature file + for exec-file. + + tools/ + update_versions + py/Boinc/ + tools.py + +David May 31 2004 + - Web: changed project news mechanism to use RSS + (Really Simple Syndication), described here: + http://blogs.law.harvard.edu/tech/rss + All projects now offer news feed at rss_main.php + This code courtesy of Jens Seidler. + - SETI@home public site: made front page cached + - added index on profile.uotd_time + + db/ + constraints.sql + html/ + inc/ + cache.inc + util.inc + news.inc (new) + user/ + rss_main.php + sample_index.php + old_news.php (new) + +David May 31 2004 + - Changed BOINC news to use RSS also + + doc/ + index.php (new) + index.html (removed) + rss_main.php (new) + +David May 31 2004 + - API: do not catch HUP, INT or QUIT signals. + This must be allowed to kill the application, + so that the core client sees the app as having + been killed externally, and puts it in limbo + (rather than seeing it as having quit with an error) + + lib/ + diagnostics.C + +David June 1 2004 + web stuff: + - fix bug in merging > 2 hosts + - remove references to html/forum in setup script + - move host_update_credit() to host.inc + and make an ops page for updating a host's credit + + py/Boinc/ + setup_project.py + +David June 1 2004 + - small web fixes related to moving forum files + html/ + inc/ + forum_show.inc + host.inc + util.inc + ops/ + host_update_credit.php (new) + user/ + forum_edit.php + forum_forum.php + forum_user_posts.php + host_edit_action.php + host_update_credit.php + +David June 1 2004 + - client: change benchmark interval from 30 days to 5 days + - Python: install_boinc_files(): don't copy sample_index.php + to index.php (overwrites file on running projects) + + client/ + cs_benchmark.C + html/user/ + forum_thread.php + py/Boinc/ + setup_project.py + +David June 1 2004 + - client: SCHEDULER_OP::poll(): if a RPC or master fetch fails for + a tentative project, set the RPC state to IDLE + before calling project_add_failed(). + Otherwise that function will attempt to remove the + NET_XFER and HTTP_OP, which have alread been removed + - client: clean_out_dir(): return 0 if directory doesn't exist + client/ + scheduler_op.C + lib/ + filesys.C + +Rom June 1 2004 + - Give visual indictators as to whether the build is debug or release. + + client/ + client_state.C + client/win/ + wingui_dialog.cpp + +Rom June 1 2004 + - Clean-up some server trace output. + + sched/ + handle_request.C + +David June 2 2004 + - client: cosmetic changes: "Account Key" -> "Account ID", + "BOINC Core Client" -> "BOINC software" + + client/ + gui_titles.C + win/ + boinc_gui.rc + +David June 2 2004 + - API: if app init data file not present, + set standalone to true, don't return error + + api/ + boinc_api.C + +Daniel June 3 2004 + - client: handle_pers_file_xfers(): if file transfer fails, + then don't verify the file + - client: start_xfer(): need to assign fxp in order for + handle_xfer_failure() to work + + client/ + cs_files.C + pers_file_xfer.C + +Karl 2004-06-04 + - start: fixed bug where Python 2.3.3 writes 'True' instead of '1' to + run_state.xml + + sched/ + start + + - fixed compile bugs + + lib/ + exception.h + util.C + + - install_boinc_files(): *do* copy sample_index.php to index.php, unless + it already exists (otherwise test scripts don't work) + + py/Boinc/ + setup_project.py + + - changed the default delay between requests for ResultMeter from 0.1 to + 0.5 - this should help MySQL servers that disconnect under load. Also + added a message on how to change it. + + - simplified code in ProjectList + + - fixed MySQL access concurrency bug that caused test scripts to fail + sometimes (re-open new database connection) + + test/ + testbase.py + +David June 6 2004 + - add "ignore_upload_certificates" flag to config.xml; + tells file upload handler to skip certificate check + - web: + - unified list displays (team members, teams, hosts, users): + groups of 20 with sort links + - clean up profile code + - make team pages generic (not depend on viewing user) + - moved team quit/manage links to user page + - update_profile_pages.php: remove PHP 30-sec time limit + + html/ + inc/ + gallery.inc + subscribe.inc + team.inc + user.inc + util.inc + ops/ + update_profile_pages.php + user/ + download_network.php + forum_edit.php + forum_post.php + prefs.php + profile_menu.php + sample_rss_main.php (new) + team_create_form.php + team_display.php + team_email_list.php + team_manage.php (new) + team_quit_form.php + top_hosts.php + top_teams.php + top_users.php + sched/ + db_dump.C + file_upload_handler.C + handle_request.C + sched_config.C,h + +David June 6 2004 + - client: show error messages on errors linking structures + - PERS_FILE_XFER::giveup(): add "why" argument; + store in FILE_INFO::error_msg, and show to user + (all permanent xfer failures pass through here) + + client/ + client_state.C + pers_file_xfer.C,h + +Karl 2004-06-08 + - changed BOINC api calls to extern "C" -- makes it easier to call from + other languages (Fortran) + + api/ + boinc_api.h + apps/ + upper-case.C + lib/ + app_ipc.C + +David 6 June 2004 + - in strcpy2(), use strlcpy instead of strncpy + strncpy() always copies the full N bytes, + which is inefficient when there are long (64KB) fields + that are short or empty. + strlcpy() does what we want - it only copies significant bytes, + but doesn't go off the end of the destination buffer. + I also commented out the version of strlcpy in std_fixes.h - + this has the same performance problem. + - fixed "show team email addresses" function to not show auths + - temporarily turned off user search by name and team search by name; + we don't have indices on these fields + - file upload handler: show bad-certificate message even + if we're not enforcing it. + - scheduler: fix insufficient-speed message + - validator: print log messages if can't lookup/update anything + + db/ + db_base.h + html/ + inc/ + util.inc + user/ + forum_text_search* + team_email_list.php + team_lookup.php + user_search_action.php + lib/ + std_fixes.h + sched/ + file_upload_handler.C + sched_send.C + validate.C + +David 6 June 2004 + - change boinc_sleep() to work correctly in the presence of signals + - add an implementation of strlcpy() for systems that don't have it + + lib/ + std_fixes.h + util.C,h + +Rom 6 June 2004 + - Enable GUI RPC's in the Windows Core Clients + - Move Winsock initialization out of each request to a per process thing + - Detect error condition where a socket initialization failure would cause + an error to be logged continuously + + client/ + client_state.C + gui_rpc_server.C + main.C + client/win/ + win_net.cpp + win_net.h + wingui_mainwindow.cpp + +David 9 June 2004 + - changed boinc_rename() to do backoff and retry, like boinc_fopen() + - changed file system ops to use random backoff instead of 1 sec, + to avoid lockstep scenario + - changed implementation of strlcpy() to use existing + library functions (strlen(), memcpy()) since these + are probably faster than doing it by hand + - moved xml_util.C,h from boinc to seti_boinc/db + This code isn't used in BOINC + - changed all + + client/ + client_msgs.C, .h + gui_rpc_server.C + log_flags.C, .h + doc/ + client_debug.php + +Jeff 11 June 2004 + - The start script now forks before exec'ing the ssh start to remote hosts. + Without this, start would run "start" on the first remote host it finds + in the config file but would go no further. + + sched/ + start + +Daniel 11 June 2004 + - client: check_idle() now also checks /dev/tty[1-7] (linux). + Also put idle checks under #ifdefs. MacOS X idle checks + will be more difficult. + + configure + configure.ac + config.h.in + client/ + cs_prefs.C + +David 11 June 2004 + - Windows sockets can't be used in fdopen() (thank you MS), + and we wanted all the standard XML output functions + to be able to write to either disk or socket (for GUI RPC). + So we added a class MIOFILE, with printf() and fgets() member funcs, + that can be implemented with either a FILE* or a memory buffer + under the hood. + - Moved MFILE from api/ to lib/ since it's used in the implementation + of MIOFILE + - Changed all XML write and parse functions to take MIOFILE& + instead of FILE* + - Changed GUI RPC client code to use MIOFILEs + - Changed GUI RPC protocol so that every reply message + ends with a \003 delimiter + (to make it unambiguous where reply ends) + - removed version number header from GUI RPC (rethink this later) + + Got this all to work on Unix; will try Windows next + + api/ + Makefile.am + mfile.C,h (moved from here) + client/ + Makefile.am + app.C,h + client_state.h + client_types.C,h + cs_scheduler.C + cs_statefile.C + gui_rpc_client.C,h + gui_rpc_server.C,h + gui_test.C + hostinfo.C,h + makefile.gui_test + miofile.C,h (new) + net_stats.C,h + net_xfer.h + pers_file_xfer.h + proxy.C,y + scheduler_op.C + time_stats.C,h + doc/ + client_sched.php (new) + lib/ + Makefile.am + mfile.C,h (moved to here) + +David 11 June 2004 + - get core client to compile on Win + - graphics API: change max frame rate from 10 to 33.3 + + api/ + windows_opengl.C + client/ + gui_rpc_server.C + miofile.h + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + +David 11 June 2004 + - moved idle-time funcs from cs_prefs.C to hostinfo_unix.C + - fixed handling of "messages" in GUI RPC + + client/ + cs_prefs.C + gui_rpc_client.C + gui_rpc_server.C + hostinfo_unix.C + +Rom June 12 2004 + - Cleanup build errors on Windows + - Fix the gui rpc to match documentation + + api/ + boinc_api.C, .h + gutil.C + client/ + gui_rpc_client.C + gui_rpc_server.C + lib/ + diagnostics.C + parse.h + shmem.C + util.C, .h + win_build/ + boinc_guirpc_test.vcproj + upper_case.vcproj + +David June 12 2004 + - fix compile errors on Unix + + apps/ + Makefile.am,in + +David June 12 2004 + - added support for name/passwd authentication to HTTP proxies. + Includes changes to the proxy settings dialog, + and to the HTTP_OP class. + All this courtesy of Kenichi Miyoshi and his colleagues + at NTT - thanks! + + client/ + http.C,h + proxy.C,h + win/ + boinc_gui.h,rc + wingui_proxydlg.cpp,h + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + +David 13 June 2004 + - fix typo on "start" + - don't allow empty thread titles + + html/inc/ + forum.inc + news.inc + uotd.inc + sched/start + +Rom 13 June 2004 + - Don't dangle sockets when the request doesn't come from the loopback + adapter. Thanks to Sebastian Masch for pointing out the bug and solution. + + client/ + gui_rpc_server.C + +Rom 13 June 2004 + - Do some more header file work and fix util.c so it'll compile on unix + platforms again. + + client/ + miofile.C, .h + stdafx.h + lib/ + base64.C, .h + util.C + +Rom 13 June 2004 + - Minor tweaks so you can setup a new project + + py/Boinc/ + setup_project.py + sched/ + start + +Karl 2004-06-14 + - 'start': simplified remote fork/exec logic, and added option for + parallel/sequential delegation to remote hosts (default sequential) + + sched/ + start + +Rom 14 June 2004 + - Fix clientside GUI RPC calls so the test app will work. + - Fix util.C so cross-platform compliation + + client/ + gui_rpc_client.C + lib/ + util.c + +David 14 June 2004 + - Email addresses in the DB should ALWAYS be lower-case, + with no leading or trailing white space. + Add code (trim, strtolower) to enforce this. + Existing databases should be cleaned up. + + html/user/ + confirm_email_change.php + create_account_action.php + edit_email_action.php + login_action.php + mail_passwd.php + +Daniel 14 June 2004 + - changed uses of mysql_fetch_assoc() to mysql_fetch_object() + - removed utility function get_profile_from_userid() (not used + anywhere) + - added proposal for new client result scheduling: please review! + + doc/ + client_sched.php + html/inc/ + subscribe.inc + util.inc + html/ops/ + migrate_tables.php + profile_ops.php + +Rom 14 June 2004 + - Add check for minor version change which will cause the client to + rerun the benchmark code. + + client/ + client_state.C + +Daniel 14 June 2004 + - client: Returning results due to "-return_results_immediately" + no longer tries to fetch work unless it's needed. + - client: Added "-check_all_logins" command-line option to force + idle checking to look at all users' terminals. + + config.h.in + configure + configure.ac + client/ + Makefile.in + client_state.C + client_state.h + cs_cmdline.C + cs_scheduler.C + hostinfo_unix.C + +Rom 14 June 2004 + - Add two additional tools to the default install + parse_config - Parses the config file looking for the requested config + information. + db_query - Queries the database for specific information in a + stripchart compatible format. + + py/boinc/ + setup_project.py + tools/ + parse_config + db_query + +Karl 2004-06-15 + - added compatibility for old versions of python XML library + + py/Boinc/ + boincxml.py + + - created Fortran wrapper + + api/ + boinc_api_fortran.C + +Daniel 15 June 2004 + - html: got rid of file descriptor parameters for a lot of + functions (esp. those used by gallery.inc). using output + buffering now (ob_start(), ob_get_contents(), etc.) + + html/ + inc/ + gallery.inc + profile.inc + util.inc + project.sample/ + project.inc + user/ + project.inc.sample + +Rom 15 June 2004 + - Move shell scripts that were in the sched folder to the tools folder + - remove start_servers.C and kill_server + - Move watchdog scripts to ops folder + + html/ops/ + watchdogs.php (added) + wd_nresults_changing.php (added) + py/boinc/ + setup_project.py + sched/ + kill_server (removed) + start_servers.C (removed) + wd.php (removed) + wd_nresults_changing.php (removed) + watch_tcp (removed) + grep_logs (removed) + tools/ + watch_tcp (added) + grep_logs (added) + +Rom June 15 2004 + - Tag for 3.08 release, all platforms + boinc_core_release_3_08 + seti_boinc_app_release_3_08 + +David 15 June 2004 + - Database inserts and updates from C++ (boinc_db.C) + were of the form "insert into foo set id=x, a=y,...". + Removed the "id=x" part. + The ID field should never be explicitly set. + - add index on user.name + + NOTE: projects should do this on their DB (see html/ops/db_update.php). + Otherwise user name search will be slow. + + db/ + boinc_db.C + constraints.sql + html/ops; + db_update.php + +Daniel 15 June 2004 + - html: Fixed bugs in gallery that caused database failures. + Fixed some bugs in building summary pages. + + html/inc/ + gallery.inc + profile.inc + +Daniel 15 June 2004 + - client: put all_logins_idle under an ifdef to check for + availability of {set,get}utent. TODO: implement these for BSD. + + aclocal.m4 + config.h.in + configure + configure.ac + client/ + hostinfo_unix.C + + +Karl 2004-06-16 + + - Compile fixes + - Removed windows MSVC-specific pre-compiled header stuff from API + headers and modules, since these are compiled/included by external + projects and do not use the same stdafx.h. + + lib/ + app_ipc.h + + api/ + boinc_api.h + boinc_api.C + + - Fortran wrapper: Return value fixes + + api/ + boinc_api_fortran.C + +David 16 June 2004 + - make team pages cached + - enable user name search + + html/ + inc/ + team.inc + user/ + team_display.php + user_search_action.php + +David 16 June 2004 + - Added to app_init_data.xml file, + passed to applications (for Folding@home). + This necessitated shuffline some code to + move write/parse code from client/ to lib/ + + client/ + app.C + hostinfo.C,h (moved from client/ to lib/) + hostinfo_network.C,h (new) + miofile.C,h (moved from client/ to lib/) + win/ + hostinfo_win.cpp + lib/ + app_ipc.C,h + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + upper_case.vcproj + + +David 16 June 2004 + - unix compile fixes for the above change + + client/ + Makefile.am + hostinfo_unix.C + lib/ + Makefile.am + sched/ + Makefile.am + +Daniel 16 June 2004 + - client: added implementations of {set,get}utent for lacking + systems (BSD, MacOSX) so all_logins_idle() will work. + + client/ + hostinfo_unix.C + +David 16 June 2004 + - renamed client/stdafx.h to lib/boinc_win.h + + api/ + boinc_api.C + client/ + stdafx.cpp + stdafx.h (removed) + lib/ + boinc_win.h (new) + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + boinc_guirpc_test.vcproj + +David 16 June 2004 + - scheduler returns message to client in case of internal errors + + sched/ + main.C,h + handle_request.C + +David 16 June 2004 + - change includes from stdafx.h to boinc_win.h + - add 1o-minute timeout on all network transfers + + client/ + *.C + lib/ + *.C + +Rom 16 June 2004 + - Additional include changes from stdafx.h to boinc_win.h + + api/ + *.C + client/ + *.C + lib/ + *.C + +David 16 June 2004 + - a few additions to the above + + api/ + graphics_api.C + gutil.C + reduce.C + static_graphics.C + windows_opengl.C + client/ + cpu_benchmark (removed) + message.C (removed) + win/ + wingui.h + lib/ + boinc_win.h + win_build/ + boinc_gui.vcproj + +David 16 June 2004 + - fixed shocking error in http.C: + in poll function (HTTP_OP_SET::poll()), + check for error conditions at the beginning, + outside of the switch on http_op_state. + Previously we were checking for errors only in a couple of states + (CONNECTING, REPLY_BODY) and errors in other states would go undetected. + This could account for hangs in file uploads, scheduler RPCs + + client/ + http.C + +Rom 16 June 2004 + - Fix HTTP:OP bug where on an upload and the server responds with a 404- + not found for the file_upload_handler would cause the client + to delete the result file. + + client/ + pers_file_xfer.C + +Rom June 15 2004 + - Tag for 3.09 release, all platforms + boinc_core_release_3_09 + +David 16 June 2004 + - Change how messages are stored in memory in core client + - use a list instead of a vector, ordered new to old + - max of 1000 messages (MAX_SAVED_MESSAGES) + - add seqno to MESSAGE_DESC + - change GUI RPC for getting messages. + Instead of "offset", has a "seqno" arg. + If nonzero, this is the minimum seqno to return + - add message-storage logic to Windows client + + + client/ + client_msgs.C,h + gui_rpc_server.C + main.C + win/ + wingui.cpp + lib/ + boinc_win.h + win_build/ + boinc_guirpc_test.vcproj + +David 16 June 2004 + - get GUI RPC working on UNIX + + client/ + Makefile.am + client_msgs.C,h + gui_rpc_client.C,h + makefile.gui_test + +Rom June 16 2004 + - Tag for 3.10 release, all platforms + boinc_core_release_3_10 + +David 17 June 2004 + - Change the way we get local host's domain name on UNIX: + instead of gethostbyname() + (which has nightmarish linkage problems that no one quite understands) + use "ping", which we assume exists on all UNIX systems, + and parse its output + - Allow Python scripts to access remote databases + (courtesy of Carl C.) + + client/ + gui_rpc_server.C + hostinfo_network.C,h + hostinfo_unix.C + win/ + hostinfo_win.cpp + py/Boinc/ + database.py + +David 17 June 2004 + - Not so fast! "ping -c 1 hostname" hangs forever on Linux + if hostname is unreachable. + "ping -c 1 -w 1 hostname" works, + but the -w option doesn't exist on Solaris! + So... + try with -w, and if get an error, try without. + Hope this is the end of the story. + + client/ + hostinfo_network.C + +Rom June 17 2004 + - Enable the low-water mark for the work queue again. + + client/ + cs_scheduler.C + +David June 17 2004 + - Fix bonehead mistake in ping/hostname code + (thanks to Rob Oglivie) + - Fix memory leak in GUI RPC + (thanks to Sebastian Masch) + + client/ + gui_rpc_client.C + gui_rpc_server.C + hostinfo_network.C + lib/ + app_ipc.h + mfile.h + +David June 17 2004 + - looser definition of "same platform" when using homogeneous redundancy + (Courtesy of Pietro Cicotti) + + sched/ + sched_send.C + +Rom June 17 2004 + - Tag for 3.12 release, all platforms + boinc_core_release_3_12 + +Rom June 17 2004 + - Tag for 3.13 release, all platforms + boinc_core_release_3_13 + +David 17 June 2004 + - enforce the application.deprecated flag in the scheduler. + When scanning the database, the feeder ignores deprecated apps + and any associated app versions and workunit/results + + sched/ + feeder.C + sched_shmem.C,h + +Daniel 17 June 2004 + - Determine utmp location at compile time so idle checking works on MacOSX + - get_local_network_info(): Redirect ping stderr to /dev/null + + config.h.in + configure + configure.ac + client/ + hostinfo_unix.C + hostinfo_network.C + +Rom 17 June 2004 + - Add an additional path to the list of pings to try. + /usr/sbin + + client/ + hostinfo_network.C + +Rom June 17 2004 + - Tag for 3.13 release, all platforms + boinc_core_release_3_13 + +David 2004.06.17 + - /usr/sbin/ping has different options than others. + Revise get_local_network_info(). + If all variants of ping fail, + set hostname="unknown" and ip_addr="0.0.0.0" + and print a helpful message. + - show more command line options + + client/ + cs_cmdline.C + cs_scheduler.C + hostinfo_network.C + hostinfo_unix.C + +David 2004.06.18 + - punt the ping/gethostbyname issue for now; + just get the hostname (not domain) + and set IP address to "unknown". + + client/ + hostinfo_network.C + +Karl 2004-06-18 + - makefile cleanup + + */Makefile.am + +Rom June 18 2004 + - Update screensaver logic to determine the difference between + 'no work avaliable' and the active tasks cannot display graphics. + + client/ + ss_logic.C + +Rom June 18 2004 + - Tag for 3.15 release, all platforms + boinc_core_release_3_15 + +David 2004.06.18 + - Undo the checkin of Mar 4 2004 that changed the "report deadline" + based on connected_frac etc. + Just use 24 hours. + - Undo checkin of June 14 2004 that didn't fetch work + if return_results_immediately is set; + this broke test_uc.py + + client/ + client_state.h + cs_scheduler.C + +David 2004.06.18 + - Aaargh! I forgot that gethostbyname() is unavoidably used + when contacting servers, so all this ping stuff + is a total waste of time! + Changed things back to the way they were originally. + + client/ + hostinfo_network.C + net_xfer.C + +Rom June 18 2004 + - Tag for 3.16 release, all platforms + boinc_core_release_3_16 + + +David 2004.06.18 + - add timestamps to messages written stdout/err.txt in Win + + client/win/ + wingui.cpp + +David 2004.06.18 + - updated zip/unzip files (from Carl) + + lib/ + boinc_zip.C,h (removed) + zip/ + various + +Rom June 19 2004 + - Tag for 3.17 release, all platforms + boinc_core_release_3_17 + +Rom June 19 2004 + - Lengthen the benchmarks so even on slow machines they won't get stuck in an + endless loop waiting on a file that has already come and gone. + + client/ + cs_benchmark.C + +Rom June 19 2004 + - Tag for 3.18 release, all platforms + boinc_core_release_3_18 + +David 20 June 2004 + - db_dump.C: major revision: make it configurable, + using an XML config file. + Lets you say what you want exported, + how to sort, whether to compress etc. + - destroy_shmem: try to destroy even if there are attachments. + Somehow ipcrm always destroys the seg. How do they do it? + - assimilator: print error and exit if handler returns nonzero + + lib/ + shmem.C + sched/ + assimilator.C + db_dump.C + +David 21 June 2004 + - Web: when displaying results, try to show "---" (i.e. undefined) + where a field isn't determined yet. + Show "pending" instead of 0 for granted credit of unvalidated results + + html/inc/ + result.inc + +Brian 22 June 2004 + - server: renamed all functions, structures and database items that + associated with trickle_up or down and renamed to + msg_from_host and msg_to_host repectively, + - Deleted result and app fields from the database entry for + msg_from_host (trickle_up) to make more generic of a + message that has no app or result associated it with it + - Changed methods that use these fields to ignore old + functionality, will update when new method agreed upon + - sched/ + handle_request.C + sched_config.C + sched_config.h + server_types.h + - db/ + schema.sql + BOINC_db.C + constraints.sql + +David 22 June 2004 + - client: handle a "down for maintenance" RPC reply as a failure, + i.e. do a backoff on the project. + This should hopefully fix a problem where if + a project is down, and a client has a result to report, + it will do an RPC every second, creating an overload on the server. + Do this by adding a new optional element + to scheduler replies. + - If get a from scheduler, + don't let that override the current min_rpc_time; + instead, take the max of the two. + - Change the implementation of trickle messages. + Instead of using dedicated trickle_up and trickle_down DB tables, + use more general msg_from_host and msg_to_host tables. + These will be used also for data management, + i.e. to send upoad or download requests to specific hosts. + + client/ + cs_scheduler.C + scheduler_op.C,h + db/ + boinc_db.C,h + schema.sql + lib/ + error_numbers.h + sched/ + assimilator.C + handle_request.C + main.C + server_types.C,h + trickle_handler.C + +Karl 2004-06-24 + - OpenBSD compile fixes from Daniel Hartmeier + + lib/ + util.C + filesys.C + + sched/ + sched_send.C + +Karl 2004-06-24 + - update_versions: only match exec_file if it's the same as the directory. + This makes executable selection deterministic. + + tools/ + update_versions + +David 24 June 2004 + - turn off sorting in team member display (slow query) + - show only up to 1000 users/teams/hosts + - use URL_BASE instead of MASTER_URL in page_tail() + - fix php typos + + html/ + inc/ + team.inc + util.inc + user/ + team_display.php + top_*.php + +Brian 24 June 2004 + - msg_from_host no longer have preceding and trailing flags in + scheduler reply. All tags will be included as part of the XML blob + to be created by whatever program handles the message. + + Sched/ + server_types.C + +Rom 25 June 2004 + - Numerious file additions to the new client gui + - Fixed a user feedback issue between restarting vs. resuming text when + describing restarting of a task. + - Limit the transitioner to a resultset of 5000 in it's workunit query so + it doesn't spend so much time waiting on the database and order by tansition_time + so we see the oldest to the newest. + - Include the prototypes of the new language translation files based off of + the standards used the wxWidgets, These files were constructed using an + automated tool called poEdit. + + client/ + app.C + clientgui/ + + clientgui/locale/ + en_US.* + sched/ + transitioner.C + +Rom 25 June 2004 + - Add the ability to just shutdown the website so we can reduce traffic + + html/inc/ + util.inc + +Karl 2004-06-27 + - fix to log directory creation from Chrischan + + sched/ + main.C + +David 27 June 2004 + - add a -mod N I option to the transitioner; + causes the transitioner to handle only WUs for which ID % N == I. + Can use this to parallelize the transitioner, + either on a single multi-CPU machine or across multiple machines + + sched/ + transitioner.C + +David 27 June 2004 + - changes (from Carl C.) to get rid of signal usage in zip/unzip code + + zip/unzip + fileio.c + unzip.c + zip/zip + zip.c + zipcloak.c + zipnote.c + zipsplit.c + +David 27 June 2004 + - Added core->app heartbeat mechanism so that apps will quit + if the core client dies + (i.e. if no heartbeat message arrives in 5 seconds). + Suppress this if app is standalone. + Also provide messages that let the core disable/enable + the mechanism (to support debugging of the core client) + - Added a 3rd message channel for suspend/resume/quit messages, + to replace signals. + This isn't used now. + - Restored code in APP_CLIENT_SHM that checks the "full" bit + before writing a message. + This may cause problems. + + NOTE: this is a backwards-incompatible change to the core/app + interface, so it requires a major version change (will do later) + + api/ + boinc_api.C + client/ + app.C,h + lib/ + app_ipc.C,h + +David 27 June 2004 + - Add a lock file mechanism to prevent two apps + from running in the same slot at the same time. + boinc_init() tries to lock the file; + if it fails, wait for 7 seconds to allow the old process to die + (the heartbeat timeout is 5 seconds) then try again. + If fail again, exit. + + api/ + boinc_api.C + client/ + client_state.C + hostinfo_unix.C + lib/ + app_ipc.h + +Rom 27 June 2004 + - Prevent the reuse of shared memory segments with ones that are already + in use on Windows. + + client/ + app.C + lib/ + shmem.C + +Rom 27 June 2004 + - Introduce the notion of high priority queries for mysql queries and + implement them for the transitioner + + db/ + db_base.C, .h + sched/ + transitioner.C + +Karl 2004-06-28 + - added configure-time option for building server+client or only client + (--disable-server or --enable-server) + + configure.ac + Makefile.am + + m4/ + kc_mysql.m4 + + [regenerated: configure, aclocal.m4, */Makefile.in] + +Daniel 29 June 2004 + - Check user idle time only if preferences require. + Some users worried that we were sniffing the keyboard. + - get rid of the CLIENT_STATE::user_idle variable; + call the function directly + - on Windows, move logic from GUI code to non-GUI (hostinfo_win.cpp) + + client/ + client_state.C,h + cs_files.C + cs_prefs.C + hostinfo_unix.C + win/ + hostinfo_win.cpp + wingui_mainwindow.cpp,h + lib/ + hostinfo.h + +David 29 June 2004 + - fix window compile by moving DLL handle out of HOSTINFO class + + client/ + app.C + win/ + hostinfo_win.cpp + wingui_mainwindow.cpp + lib/ + hostinfo.h + +Daniel 29 June 2004 + - New client CPU scheduler, as specified in client_sched.php + - Fixed NULL pointer bug in create_shmem when calling with pp=NULL + (fixed by Dave) + + client/ + app.{C,h} + client_state.{C,h} + client_types.{C,h} + cs_apps.C + cs_prefs.C + cs_scheduler.C + cs_statefile.C + gui_titles.C + gui_titles.h + win/ + wingui_mainwindow.cpp + lib/ + shmem.C + +Karl 2004-06-30 + + - updated 'about' dialog to remove "beta" and add UCB SSL copyright + + client/ + win/ + boinc_gui.rc + + - visual studio installer projects (create MSIs) + + boinc_setup creates an MSI with dialogs and options (launch on bootup, + desktop icon, etc.). boinc_setup_auto creates an MSI that installs + immediately with no prompting, ideal for Windows group policy to apply + to many computers + + win_build/ + boinc_setup.vdproj + boinc_setup_auto.vdproj + +David 30 June 2004 + - PHP code: change parse_config() so that it doesn't + read the config file; you have to read it first into a variable + (using get_config()) and pass it in to parse_config() + This saves work when you want to look at several config params. + - db_init(): parse the DB hostname and use it in mysql_connect. + This lets you run the web site from a different host than DB + - disallow caching of top_* pages with random offsets + - change cache period of top_* pages to 12 hours + - fix bug in user name search (escape _, %) + + html/ + inc/ + db.inc + db_ops.inc + util.inc + user/ + create_account_action.php + create_account_form.php + profile_menu.php + sample_rss_main.php + top_hosts.php + top_teams.php + top_users.php + +Eric K 30 June 2004 + - Removed "using" directives from header files. "using" + directives should not be used in header files for the following reasons. + - A "using namespace" directive cannot be revoked for any source file + including the header. It forces the use of the namespace regardless of + the consequences. + - Dropping the namespace qualifier on STL templates ambiguates the + resolution of template functions. (How many C libraries or headers + have you seen that define the function min()?) + - Reducing typing is not a good reason to drop namespace qualifiers any + more than it would be a good idea to "#define p printf" + - Namespaces exist for a reason. + - It's acceptable to have "using" directive in a source file, since it + won't affect other files. It's better to have "using std::string;" + directives than "using namespace std;" for hopefully obvious reasons. + +David 30 June 2004 + - change feeder query to eliminate 'order by random' + and add a limit of 100. + - change db_dump to not get counts, since these are slow on InnoDB + + sched/ + db_dump.C + feeder.C + +Daniel 30 June 2004 + - Continuing Eric's vanquishing of "using" directives from header + files. Moved "using" directives from inside "#ifndef _WIN32" + blocks. Should compile under Windows now. + + client/ + client_msgs.C + win/ + wingui_mainwindow.cpp + wingui_mainwindow.h + lib/ + miofile.C + msg_log.C + parse.C + util.C + +Daniel 30 June 2004 + - Minor changes: changed scheduling period from 30 secs to 1 hour. + - Got rid of float.h in cs_apps.C. + + client/ + client_state.C + cs_apps.C + +Brian 1 July 2004 + - Continuing Eric and Daniel's vanquishing of "using" directives from + header files. Instances of string or vector in header files were changed + to std::string and std::vector respectively. + + client/ + gui_rpc_client.h + +Rom 1 July 2004 + - Introduce skeleton of new transitioner queue class that uses a specialized + query for its job. NOTE: I don't know if it will even compile, but need another + set of eyes looking over it as well. + + db/ + db_base.C, .h + boinc_db.C, .h + +Daniel 2004-07-01 + - client: scheduler now only calls set_client_state_dirty if some + task was started or stopped (i.e. set of running tasks changed). + Also, don't try to schedule CPUs if there are no projects or + no results. + + client/ + cs_apps.C + +Daniel 2004-07-01 + - Yet more fixes related to recent "using" directive checkins... + + client/ + app.C + cs_scheduler.C + gui_rpc_client.C + hostinfo_unix.C + win/ + wingui_mainwindow.cpp + +David 1 July 2004 + - trickle message support: + - core client: send message to app when appropriate + - boinc_api: implement boinc_receive_trickle_down() + - blind attempt to fix HTTP auth crash: + check for empty URL on redirect + + api/ + boinc_api.C + client/ + app.C,h + cs_trickle.C + hostinfo_unix.C + http.C + lib/ + app_ipc.h + error_numbers.h + +Karl 2004-07-02 + - compile fixes + + db/ + boinc_db.C + + sched/ + transitioner.C + +Daniel 2004-07-02 + - fixed bug that caused CPU scheduler to decrease debts of + projects that didn't have results running. + - also undid 2004-07-01 change that only dirtied state file when + apps were started or preempted. Need to dirty state file + every time the scheduler recomputes debts. + + client/ + cs_apps.C + +David 2 July 2004 + - Changed the way result templates are stored with workunits. + Instead of storing them as blobs, + store a filename relative to project root dir. + This is to speed up DB. + - disable web command to update host credit + - turn off web commands to show results for host/user, and pending credit + - pruned command-line options from create_work. + You now have to run it in project root dir, + and it gets info from config file. + + Project note: this will require either + 1) dropping your workunit and result tables or + 2) modifying your workunit table (see ops/db_update.php) + + db/ + boinc_db.C,h + schema.sql + html/ + inc/ + host.inc + ops/ + db_update.php + user/ + pending.php + results.php + sched/ + feeder.C + transitioner.C + tools/ + backend_lib.C,h + create_work.C + process_result_template.C + +Daniel 2004-07-02 + - API: provide is_worker (default to true) parameter to boinc_init + and boinc_finish. + - Applications for which is_worker=false CANNOT access shared + memory segment that is used for status updates. But they + can still use BOINC graphics API. + - API: deleted standalone parameter to boinc_init. standalone + status is already detected in boinc_init automatically. It + should be sufficient for testing purposes. + - FORTRAN API also changed. + - Documentation updated to reflect API changes. + + api/ + boinc_api.C + boinc_api.h + boinc_api_fortran.C + doc/ + api.php + compound_app.php + +David 2 July 2004 + - added new classes DB_RESULT_DONE, DB_WORK_ITEM, DB_ACCOUNT_INFO + for efficient DB access + - feeder: don't need to check server state because scheduler also checks + - sched_config.parse(): if db host is current host, substitute "localhost" + + db/ + boinc_db.C,h + sched/ + feeder.C + sched_config.C + tools/ + create_work.C + +David 3 July 2004 + - Changed feeder to use DB_WORK_ITEM for database fetch. + This gets a stream of (result ID, WU) pairs + instead of getting a stream of results and then + fetching the WUs separately (avoid all those round-trips to DB) + + sched/ + feeder.C + db/ + boinc_db.C,h + +David 3 July 2004 + - tweak DB_WORK_ITEM for performance: + use mysql_use_result() instead of mysql_store_result(); + use high_priority + Feeder is performing well now, except that there are + long gaps when waiting for query to start returning + - Increase delay request to 1 hour when no work, bad auth etc. + - turn off showing results for host + TODO: parameterize web site feature flags + + db/ + boinc_db.C + html/inc/ + host.inc + sched/ + handle_request.C + sched_send.C + +Daniel 2004-07-03 + - API: boinc_init now only checks for lockfile if called by worker + applications. This way, we can have many non-worker apps in + addition to one worker app. + + api/ + boinc_api.C + +Rom 3 July 2004 + - Introduce basic transaction support for performance DB class. + - Implement basic transsction support for the transitioner. + + db/ + boinc_db.C + db_base.C, .h + sched/ + transitioner.C + +Rom 3 July 2004 + - Plug a memory leak in the transitioner + + db/ + boinc_db.C + +David 4 July 2004 + - scheduler: if client is requesting work, + and client is not returning results, + and there's no work, + then send "No work available" message + and return without opening DB + - scheduler: if client has wrong major version, + and is not returning results, + return without opening DB + + sched/ + handle_request.C + main.C + sched_shmem.C,h + +David 6 July 2004 + - Completed (more or less) the implementation of trickle messages. + Some changes: + - Trickle-up messages now have a "variety", + specified by the application. + Typically it's the name of the application. + The trickle-up handler (on the server side) specifies what + variety of message it wants to handle. + - boinc_receive_trickle_down() no longer returns the message itself; + instead, it returns the name of the file. + The app must open, read and delete the file. + + NOTE: the structure of the msg_to_host and msg_from_host tables + is changed. Projects will want to drop and recreate these. + + api/ + boinc_api.C,h + client/ + app.C + cs_scheduler.C + cs_trickle.C + scheduler_op.C,h + db/ + boinc_db.C,h + schema.sql + lib/ + diagnostics.h + filesys.C + sched/ + handle_request.C + server_types.C,h + trickle_handler.C + +Brian 6 July 2004 + - Changed client so that when a file info is compared to + an existing file info with the same name, the differences + in whether it is an upload or download are updated and + any urls that are not present in the file info are added to the url list. + - When a url is requested for a file info, the file info + checks whether it is an upload, and then looks for the + substring "file_upload_handler" any url it is trying to + use to upload the file. The opposite is true for downloads. + + - Changed get_url into three separate functions: + get_current_url(bool), returns the current good url + get_init_url(bool), returns the initial good url and sets the start url + get_next_url(book), increments current_url and finds the next good url + + - Changed client so that a file_info will save its signed xml + even if it doesn't include have xml signature. + + - Updated the client so that the check to see if the url is + valid for the type of network request is a private function of FILE_INFO + + - Modified the backoff_retry function in persistant_file_xfers + so that it uses the updated get_url that checks if the url + is correct for the type of transfer. Otherwise it could + increment the current_url index to point to an invalid url + + - If a file_info doesn't have a max number of bytes and a new + file_info with the same name does, update the max number + of bytes of the existing file_info and add the to the signed_xml. + + - when file_xfer is complete, the client checks if the file + was meant to be uploaded when present OR generated locally + before setting it to ready to report, instead of only the later + + - With the addition of multiple urls, the issue of sending urls + that didn't communicate well or got garbage. Whenever a file + get's a server error, it calls, check_giveup, which only gives + up on the file if there are no more urls to try. Also is called + if the downloaded file is garbage or has the same name but not the + correct size. + + - added functionality for send_file_list but does not do anything yet + + + client/ + client_types.C,h + client_state.h + cs_apps.C + cs_file.C + cs_scheduler.C + file_xfer.C + pers_file_xfer.C,h + scheduler_op.C,h + +Daniel 2004-07-06 + - client: when a project fails to attach, call quit_activities() + before exit(1) so other running apps will terminate. + + client/ + main.C + +Rom 6 July 2004 + - Removed ';' from queries that had them since the API Docs state + not to put them in the query. + - Implement a scheduler optimization so we do one batched read and one + transactional write. In the worst case scenario where the client + had submitted 20 results we would do 41 reads and 40 writes + just to update the results. + Now we batch read all the results at one time and surround + the write requests within a transaction. + So now our worst case scenario is 2 reads and 40 writes within a + transaction. + + db/ + boinc_db.C, .h + db_base.C + sched/ + handle_request.C + +Daniel 2004-07-06 + - CPU scheduler only considers resource shares for projects that have + a runnable result. + - Bound debt to [-1 day * ncpus, 1 day * ncpus] + - deleted some dead code + + client/ + app.C + cs_apps.C + cs_trickle.C + +Daniel 2004-07-06 + - client: work requests now include tag. + - scheduler: support for resource_share_fraction + when checking for wu feasibility, consider resource share of + project to determine estimated wallclock duration + - scheduler: syntax bug fix in validator + + client/ + cs_scheduler.C + sched/ + sched_send.C + server_types.C + server_types.h + validate.C + +Daniel 2004-07-06 + - client: bugfix in make_scheduler_request + + client/ + cs_scheduler.C + +Daniel 2004-07-06 + - uh, messed up doing a commit. but i put the "correct" files + back. sorry. + + client/ + app.C + client_state.h + cs_prefs.C + scheduler_op.C + +Rom 6 July 2004 + - Added event handler so we are notified of a system shutdown/logoff which + will allow us to shutdown gacefully instead of the OS terminating us. + - Do a little clean up work with the resource files in the hope that + visual studio won't remove the win_config.h reference the next time the + resources are modified. + + client/win/ + boinc_cli.rc + boinc_dll.rc + boinc_gui.rc + boinc_ss.rc + wingui_mainwindow.cpp, .h + +Rom 6 July 2004 + - Reduce the total number of messages the system attempts to keep in the + messages tab to 200. 2000 was a bit much and caused the system to spend + some time processing when there were quite a few messages to go through, + such as in Predictor@home + - Moved the code that checkes the total number of messages available in + the message tab out of the switch/case chunk of code so that it happens + more frequently than when the user clicks on the messages tab, which + could take awhile if there was more than 1000 messages. + + client/win/ + wingui_mainwindow.cpp, .h + +Rom 7 July 2004 + - Adjust the console control handler such that when a logoff event has + occurred check to see if we are running as a service and if so, ignore + the event, otherwise quit. + + Thanks to Fernando Vinan-Cano via John McLeod + + client/ + main.C + +Daniel 2004-07-07 + - client: set the result exit_code to a non-zero value when: + 1. the result couldn't start + 2. the result had a download error + 3. the result had an upload error + (unless the exit_code was already non-zero) + + This should get the validator to mark these results as invalid + and solve the problem the predictor@home people reported. + + client/ + client_state.C + lib/ + error_numbers.h + + +David 7 July 2004 + - Implement revised core/app interface + (see boinc/doc/api_v4.php). + - Augment the set of shared-memory message channels; + add a channel for suspend/resume/quit messages + (these replace the use of signals and SuspendThread calls); + add separate channels for trickle up/down + - Modify the API library accordingly. + Currently works for Windows; will do UNIX later + - Modify the core client (app.C) accordingly + - Call ACTIVE_TASK_SET::poll() even when activities suspended; + still need to send heartbeats. + - added MSG_CHANNEL class to make code better organized + + api/ + boinc_api.C + windows_opengl.C + client/ + app.C,h + client_state.C + lib/ + app_ipc.C,h + +Daniel 2004-07-08 + - NetBSD compile fixes from John Klos + (just added __NetBSD__ wherever __OpenBSD__ appeared) + + lib/ + filesys.C + util.C + +David 8 July 2004 + - got the new core/app interface working on Unix. + I looked into implementing the management functions + using a thread (with pthreads). + But the pthreads interface is kinda bizarre. + E.g. you can't suspend another thread. + You can send it a signal - but the signal handler + is not allowed to make any pthreads calls! WTF??? + - Added suspend/resume GUI RPCs; + changed gui_test to take a cmdline arg: -state -suspend -resume + + api/ + boinc_api.C + client/ + app.C + gui_rpc_client.C,h + gui_rpc_server.C + gui_test.C + +David 8 July 2004 + - Change the ind_res_st index (on result) from + (server_state, random) to just (server_state). + This makes the feeder's DB query somewhat faster (I think). + The price we pay is that results from the same WU may + be sent out close together in time. + - make download page cached + + NOTE TO PROJECTS: + this requires an update to your database. + See html/ops/db_update.php + + db/ + boinc_db.C + constraints.sql + html/ + ops/ + db_update.php + index.php + user/ + download.php + +Daniel 2004-07-08 + - Changed OpenBSD- and NetBSD-specific #ifdef's to be determined + by autoconf. No idea if this works on OpenBSD/NetBSD yet. + + Makefile.in + aclocal.m4 + config.h.in + configure + configure.ac + lib/ + filesys.C + util.C + */ + Makefile.in + +Brian 8 July 2004 + - Fixed a small bug in allowed_disk_usage where the + global_prefs.disk_max_used_pct was directly multiplied + by the total disk, creating a disk value that was a factor of 100 off, + effectively never becoming the min value returned by the function. + + client/ + cs_prefs.C + +Karl 2004-07-08 + - fixes for boinc_thread_cpu_time vs. boinc_calling_thread_cpu_time + + lib/ + util.h + api/ + boinc_api.h + boinc_api_fortran.C + client/ + dhrystone.C + whetstone.C + +Karl 2004-07-09 + - fixed CURSOR initialization problem (found by Carl Christensen) + - CURSOR now initializes itself; classes that use it don't need to + initialize it anymore + + - removed superfluous 'CURSOR cursor' in DB_WORK_ITEM -- is this correct? + - if there should be two cursors, they should be named differently -- + otherwise it is way too easy to use the wrong one in multiple + inheritance + + db/ + boinc_db.h + boinc_db.C + db_base.h + db_base.C + +Karl 2004-07-09 + - graphics API updates + + - fixed potential buffer overflows + + api/ + static_graphics.C + gutil.C + gutil.h + +Daniel 2004-07-09 + - Don't send heartbeats to, send trickle downs to, or get status + messages from apps without shared memory initialized (i.e. + PROCESS_UNINITIALIZED) + + client/ + app.C + +David 9 July 2004 + - Implemented GUI RPCs for + - showing graphics (one result or all, window or fullscreen) + - project reset, attach, detach + - Added cmdline options to gui_test to exercise the above + + client/ + gui_rpc_client.C,h + gui_rpc_server.C + gui_test.C + +Brian 9 July 2004 + - Changed server side conception of gigabyte to match client side. + - (1024.*1024.*1024.) instead of 1e9 + - makes sure that project will get work if there is space on client + + sched/ + sched_send.C + +Jeff 9 July 2004 + - create_work() now take a new parameter - the path to the result template + file. This was needed because some programs (eg the sah splitter) are + not run from the project root directory. + + tools/ + backend_lib.C + backend_lib.h + create_work.C + +David 9 July 2004 + - Integrate code (courtesy of James Drews) that lets you limit + the set of hosts from which the core client will accept GUI RPCs. + Here's how it works: make a file "remote_hosts" + in the BOINC directory with a list of hostnames (# for comment). + The core client will accept connections only from + localhost and from hosts in this list. + Note: if the -allow_remote_gui_rpc option is given, + ALL connections are accepted. + - add a "-host x" cmdline arg to gui_test + - add error checking to GUI_RPC_CLIENT so that it can tell + if its connection was rejected + - remove .gz target from client makefile + + client/ + Makefile.am + file_names.h + gui_rpc_client.C,h + gui_rpc_server.C,h + gui_test.C + tools/ + create_work.C + +David 11 July 2004 + - changes in core client related to attaching to projects + - commented out "maybe_rename_old_filename_format()" stuff. + Not needed, and contains hazardous asserts + - CLIENT_STATE::add_project() + - check that master URL starts with http://, + and has other chars after that + [WHY WASN'T THIS BEING DONE??] + - check that authenticator is non-null + + client/ + cs_account.C + win/ + wingui_dialog.cpp + lib/ + error_numbers.h + util.C,h + +Rom 11 July 2004 + - Checkin the document class stuff for the new GUI, right now the + SendMessageToCore function is hard coded to do a message + until I get around to figuring out why the compiler complains about + an attempt to cast to a void *. + NOTE: Still debugging the UI portion of the code, it'll follow shortly + + clientgui/ + ActiveTask.cpp, .h + App.cpp, .h + AppVersion.cpp, .h + BOINCGUI.vcproj + FileInfo.cpp, .h + MainDocument.cpp, .h + Message.cpp, .h + Project.cpp, .h + ProxyInfo.cpp, .h + Result.cpp, .h + stdwx.h + Workunit.cpp, .h + XMLParser.cpp, .h + +Daniel 2004-07-12 + - bugfix: don't tell uninitalized apps to reread prefs + - only call set_client_state_dirty("schedule_cpus") if some + project had a runnable result. (if no such project, then debt + and active task set can't change.) + - tell apps to stop doing screensaver graphics when rescheduling + CPUs + - added ACTIVE_TASK_SET::get_next_graphics_capable_app(), not + currently used + + client/ + app.{C,h} + cs_apps.C + +Rom 12 July 2004 + - Checkin two workable tabs for the new GUI, Project and Work, performance + isn't quite up to par yet. My client_state.xml file is roughly 256kb and + it takes the new gui almost a minute to parse the RPC from the core client. + + NOTE: The Work tab is hooked up but the I still need to massage the data + document-side to see things the same way as the existing GUI. + + clientgui/ + BaseListCtrlView.cpp, .h + BOINCGUI.vcproj + MainDocument.cpp, .h + MainFrame.cpp, .h + MessagesView.cpp, .h + Project.cpp + ProjectsView.cpp, .h + ResourceUtilizationView.cpp, .h + TransfersView.cpp, .h + WorkView.cpp, .h + XMLParser.cpp + +Karl 2004-07-13 + - fixed configure bug where MINOR_VERSION gets set to nothing if minor + version is 0 + + - changed MAJOR_VERSION, MINOR_VERSION to BOINC_MAJOR_VERSION, + BOINC_MINOR_VERSION; PACKAGE_VERSION and VERSION -> BOINC_VERSION_STRING + + - added '--disable-client' option to disable building client + + - fixed Makefile typo for message_handler + + - fixed Makefile problem with @CLIENT_BIN_FILENAME@.gz + + - misc configure fixes + + configure.ac + Makefile.am + + client/ + Makefile.am + client_state.C + cs_cmdline.C + cs_statefile.C + file_xfer.C + version.C (removed -- obsolete) + version.h (removed -- obsolete) + client/win/ + boinc_cli.rc + boinc_dll.rc + boinc_gui.rc + boinc_ss.rc + wingui_dialog.cpp + win_config.h [regenerated] + + py/Boinc/ + version.py.in + + sched/ + Makefile.am + file_upload_handler.C + handle_request.C + sched_shmem.C + + test/ + testbase.py + + configure [regenerated] + */Makefile.in [regenerated] + +Karl 2004-07-13 + + - new function generic_check_set() which generalizes + generic_check_set_majority() + + - Cleaned up sample validators and sample assimilator. Renames: + validate_test -> sample_bitwise_validator + validate_trivial -> sample_trivial_validator + assimilator -> sample_dummy_assimilator + + - sample_bitwise_validator: more efficient: compare (lazily-computed) + md5sums before comparing file contents + + - md5_file: md5_string(): new C++ version of md5_block; fixed constness + in md5_block, md5_file parameters + + sched/ + Makefile.am + validate_util.C + validate_util.h + validate.C -> validator.C (consistent w/ assimilator.C) + validate_test.C -> sample_bitwise_validator.C + validate_trivial.C -> sample_trivial_validator.C + assimilate_handler.C -> sample_dummy_assimilator.C + + lib/ + md5_file.h + md5_file.C + +Karl 2004-07-13 + - updated #includes of C headers in C++ files to C++ headers + (e.g. instead of ) + + - refactored HAVE_GL* preprocessing logic for OpenGL headers + + api/ + boinc_gl.h (new) + + 113 files modified + +David 12 July 2004 + - client: get env vars related to HTTP proxy authentication + (previously the cmdline version couldn't do auth) + + client/ + cs_cmdline.C + +David 13 July 2004 + - revised GUI RPC interface. + old: get_state() returns everything + problem: too slow to do every second + new: get_state() returns stuff that doesn't change often + (PROJECT, APP, APP_VERSION, WORKUNIT, RESULT) + get_results() returns dynamic info about results + (fast enough to do every second) + get_file_transfers() returns info about file transfers + (fast enough to do every second) + If either of the latter returns the name of something + that doesn't exist in the static state, + then do another get_state() call + + client/ + client_state.h + client_types.C,h + cs_statefile.C + gui_rpc_client.C,h + gui_rpc_server.C + gui_test.C + +Daniel 2004-07-14 + - schedule_cpus() now returns false if no projects had runnable + results. this should behave more nicely with do_something(). + + client/ + cs_apps.C + +Daniel 2004-07-14 + - implemented new work fetch policy, as described in client_sched.php + - compile fixes in client_types.h to get rid of warnings (there was + some confusing of struct and class) + - changed back to in std_fixes.h; this fixes + configure and compile problems with seti_boinc + - added some auxiliary code for new screensaver logic; actual + screensaver logic not yet changed (coming soon...) + + client/ + app.C,h + client_state.C,h + client_types.h + cs_apps.C + cs_scheduler.C + scheduler_op.C + lib/ + std_fixes.h + +Brian 14 July 2004 + - made a small changed that removed extra checks on downloaded files + when a file_xfer is completed. Was rejecting good files that had + bogus md5 checksums created using send_file or get_file. Extra time + will have to be spend to make md5 work for these two functions in the + future + + client/ + pers_file_xfer.C + +Rom July 15 2004 + - Tag for 4.00 release, all platforms + boinc_release_4_00 + +David 15 July 2004 + - server: better messages on DB errors + - web: cache system looks for "format=xml" in cache args, + sends as MIME type XML if so + - added CGI interface to get user stats as XML + - top_*.php: forgot to exit() in case of too-large offset + - xml_escape(): change \n to space + - db_dump: error checking; add fields to team output; + only output items with nonzero total_credit + - scheduler: we were doing an optimization of not opening the DB + in case there's no work and client not returning results. + Don't do this if this is initial request from host + (otherwise it won't get hostid, and will detach project) + - add "enforce_delay_bound" to SCHED_CONFIG + (NOTE TO PROJECTS: unless you pub + in your config.xml, the scheduler will send results + to hosts that are too slow to complete them within delay bound.) + + db/ + db_base.C + html/ + inc/ + cache.inc + user/ + account_created.php + download.php + show_user.php + top_*.php + lib/ + parse.C,h + sched/ + db_dump.C + handle_request.C + sched_config.C,h + +Noaa 15 July 2004 + - completely new copy of x_opengl utilizing glut, updated using Karl's + boinc_gl.h. Include-file issues including makefile issues have yet to + be resolved so this will NOT compile with your existing Makefile + - updated graphics_api with xwin_graphics_event_loop and some new + included files. Will not compile with existing Makefile. + - reduce.C rearranged includes and added GL, to be resolved later. + - gutil.C extern "C" for jpeglib, glut included, will not compile + with existing Makefile + - boinc_api.h RETSIGTYPE changed to void + + New makefile to take all of these into account will be committed when + available. + + api/ + x_opengl.C + x_opengl.h + graphics_api.C + reduce.C + boinc_api.h + gutil.C + + +David 15 July 2004 + - HTTP; increase size of request header buffer from 256 to 4096 + (fixes HTTP proxy authentication crash bug) + - New way of updating client_state.xml: + - write new file to client_state_next.xml + - rename client_state.xml to client_state_prev.xml + - rename client_state_next.xml to client_state.xml + - remove references to version.* from project file + + client/ + cs_statefile.C + file_names.h + http.h + win_build/ + boinc_gui.vcproj + +Noaa 15 July 2004 + + -added printout of usabilities in gui_test.C (ie when user types + "gui_test" with no arguments) + + client/ + gui_test.C + +Daniel 2004-07-15 + - API: made APP_INIT_DATA aid extern so apps can access it (used to set + fraction_done_start and fraction_done_end) + + api/ + boinc_api.C,h + +David 16 July 2004 + - on team listings, show only users w/ nonzero total credit + - xml_escape(): convert ^M and \r to blank as well as \n + + html/inc/ + team.inc + lib/ + parse.C + sched/ + db_dump.C + +Daniel 2004-07-16 + - API: fixes in GL code to use APP_INIT_DATA aid from boinc_api.C + + api/ + x_opengl.C + windows_opengl.C + +David 16 July 2004 + - fixed bug in transitioner where, when creating new results + for a WU, it uses the wrong suffix, + causing conflicts with existing result names. + - fixed bug in writing statefile; wouldn't work on fresh installs + + client/ + cs_statefile.C + sched/ + transitioner.C + +David 17 July 2004 + Various changes to reflect the fact that message-passing + operations may fail because buffer is full, + in which case they must be retried later. + + - in graphics API: don't ack graphics mode in set_mode(); + instead, ack it in timer_handler() + - in core client: keep track of the graphics_mode_requested + separately from the graphics_mode_sent; + in a polling routine, if these are different then try to send. + + - used CLIENT_STATE::get_next_graphics_capable_app() instead of + ACTIVE_TASK_SET::get_graphics_capable_app() + + api/ + windows_opengl.C + client/ + app.C,h + cs_apps.C + ss_logic.C + +David 19 July 2004 + - windows_opengl. + - on WM_CLOSE message, call set_mode() rather than KillWindow(). + If you call KillWindow() the core client never finds out + that we're in HIDE_GRAPHICS mode + - removed specious KillWindow() logic from make_new_window(); + - Various changes and bug fixes for GUI RPC: + - include resource share in PROJECT write + - include wu_name etc. in RESULT write + - expanded gui_test.C to include almost all RPCs + + api/ + windows_opengl.C + client/ + client_types.C,h + cs_statefile.C + gui_rpc_client.C,h + gui_rpc_server.C + gui_test.C + +Daniel 2004-07-19 + - client: try to choose new app to do screensaver graphics in + schedule_cpus() + + client/ + cs_apps.C + ss_logic.C,h + +David 19 July 2004 + - fix various bugs that kept test_uc.py from working + Project._build_sched_commandlines(): programs names have changed + (validate_test -> sample_bitwise_validator, + assimilator -> sample_dummy_assimilator) + ??? why does this function exist in the first place? + TestProject.run(): same + Work.install(): + need to copy result template file to project directory + Added -config_dir argument to create_work + For some reason, the transitioner wasn't expanding UPLOAD_URL + in result templates, when creating new results. + Fixes this. + + In spite of all this, test_uc.py doesn't quite work. + I think sample_bitwise_validator is crashing. + + py/Boinc/ + setup_project.py + sched/ + transitioner.C + test/ + testbase.py + tools/ + create_work.C + +Karl 2004-07-20 + - fixed bug in md5_string() that caused sample_bitwise_validator to + segfault. + - test_uc.py passes again. + + lib/ + md5_file.C + +Rom 19 July 2004 + - Increase the heartbeat give-up period from 5 seconds, to 30 seconds. + It looks as though we were hitting the give-up period when name resolution + was taking longer than expected. + - Increase the heartbeat timeout period to be greater than the timeout period. + + api/ + boinc_api.C + +Rom July 19 2004 + - Tag for 4.01 release, all platforms + boinc_release_4_01 + +Eric K. July 20 2004 + - Added cache control headers to the cached php pages to reduce CGI + load on the web server. The headers include Last-Modified, Expires, + and Cache-Control: public, max-age=. Expiration and max-age are + based upon the max-age parameter passed to start_cache(). + start_cache() also check the request header for 'If-Modified-Since' + and returns a 'HTTP/1.0 304 Not Modified' if 'If-Modified-Since' == + 'Last-Modified:' + + html/inc/cache.inc + +Rom July 19 2004 + - Fix a bug where during the benchmarking process all the active tasks + would die off. + + client/ + cs_benchmark.C + +Karl 2004-07-21 + - fix bug in "couldn't find app" messages + + sched/ + message_handler.C + validator.C + +Karl 2004-07-21 + - allow '.msi' as extension for installation package + + tools/ + update_versions + +Karl 2004-07-22 + - fixed html/php bugs (e.g. should be + isn't found (otherwise it just silently uses the previous command-line + argument as a file_ref!) + + tools/ + backend_lib.C + +Daniel 2004-07-26 + - Fixed fast wu_result check (broken by mysterious commit of + 2004-07-24) that caused work to never be sent. + + sched/ + sched_send.C + +Daniel 2004-07-26 + - API: send current VM usage and resident set size in + update_app_progress(). Currently only works for Solaris and Linux. + Does anyone know how to do this on Windows or OSX? + - Fixed typo on prefs page + + config.h.in + configure + configure.ac + api/ + boinc_api.C + client/ + app.C,h + html/inc/ + prefs.inc + +Rom July 27 2004 + - Fix a bug where received results were not being updated + + db/ + boinc_db.C + sched/ + handle_request.C + +Daniel 2004-07-27 + - client: upon file xfer failure, don't do multiple back-offs + + client/ + pers_file_xfer.C + +Rom July 27 2004 + - Create a tmp folder off of the project root so tasks and stuff can begin execution + from there, it was the log folder but the problem with that, is now our log directories + are symbolic links to a local volume so when we try to traverse back up to the project + folder we are missing a bunch of folders. + + py/boinc/ + setup_project.py + sched/ + start + +Daniel 2004-07-29 + - API: fixed bug that caused vm_size and resident_set_size not to be + sent to core client + - client: check_max_mem_exceeded() revived - currently only checks + against workunit max_mem_usage attribute + + api/ + boinc_api.C + client/ + app.C + +Noaa 29 July 2004 + - added another glut file to the source tree, updated the + makefile for it + - updated version of x_opengl.C + + boincglut/ + lib/ + glut/ + glut_glxext.c (new) + Makefile + + api/ + x_opengl.C + +Noaa 30 July 2004 + - added Makefile.Readme to explain how to make a Makefile.graphics + for a system since at the moment Makefile.graphics is restricted + to the setup on Miner. This can be used when Makefile.in is changed + so that a correct Makefile is generated at configure time. + + client/ + Makefile.Readme(new) + +David 3 Aug 2004 + - changed the API to handle compound applications. + API tasks are broken down into a number of boolean + "options" (struct BOINC_OPTIONS). + For compound apps, the controller and worker call a new + function boinc_init_options(), specifying which tasks + they're going to handle. + This reads the API init file, attaches shared memory, + and starts a timer (which does only the requested tasks). + + The old boinc_init() still exists (with no args now). + It is to be used by single-process apps. + It calls boinc_init_options() with all options turned on. + - Add the core client version to the API init file; + if the app has the wrong API version file, it quits. + - Core client: if an app gives us a trickle-up message, + do a scheduler RPC. + - Fixed API bug where trickle-up msgs were being read + from the wrong message channel + - Removed old code from API involving windows events + + api/ + boinc_api.C,h + apps/ + upper_case.C + client/ + app.C,h + lib/ + app_ipc.C,h + error_numbers.h + win_build/ + upper_case.vcproj + +David 3 Aug 2004 + - fixed gui_test so that + gui_test -show_graphics fullscreen + works (I hope) + + client/ + gui_rpc_client.C + gui_test.C + +David 3 Aug 2004 + - Change PHP so that web site is turned off if "stop_web" file is present; + it no longer looks at "stop_sched" or "stop_daemons". + NOTE: I don't think any script creates stop_web. + for now you'll have to do it manually + + html/inc + util.inc + xml.inc (new) + +Daniel 2004-08-03 + - Fixed "prefs and venue" issue. Before: host venue assignment always + comes from the project that is contacted. Now: host venue assignment + comes from the project with the newer global prefs. + + client/ + cs_scheduler.C + sched/ + handle_request.C + server_types.C,h + +Rom 3 Aug 2004 + - Change the Secure Windows Desktop message to include + an action item for those who want to fix it. + + client/win/ + boinc_ss.rc + +David 4 Aug 2004 + - Don't use transactions unless config.xml contains + + sched/ + handle_request.C + sched_config.C,h + transitioner.C + +David 4 Aug 2004 + - A without a signature would cause + the file_upload_handler to crash. + Fixed this. + - File upload handler: if ignore_upload_certificate is set, + don't compute the expected signature + + sched/ + file_upload_handler.C + +David 4 Aug 2004 + - fix bug in links on Top Hosts + - friendlier messages in RPC reply if bad code sign key + + html/inc/ + host.inc + sched/ + handle_request.C + +Daniel 2004-08-04 + - autoconf: added HAVE__PROC_* macros + - client: added m_swap checking for Linux (via /proc/meminfo) and + MacOSX (via sysctl(3) and CTL_USER (not CTL_VM!!!)) + + aclocal.m4 + config.h.in + configure + configure.ac + api/ + boinc_api.C + client/ + hostinfo_unix.C + +David 5 Aug 2004 + - Kinder, gentler messages when need work + + client/ + cs_scheduler.C + +David 5 Aug 2004 + - Initial support for hierarchical upload/download directories. + With large directories (100,000 - 1,000,000 files) + Solaris and NFS burn too much CPU time searching dirs. + Our plan is to use a 2-level hierarchy, + with the fanout specified in config.xml: + x + A fanout of 1024 should work OK for up to 1M files. + A couple of utility programs in tools/: + dir_hier_path shows where a file is + dir_hier_move moves existing files into a hierarchy + + lib/ + util.C,h + sched/ + sched_config.C,h + tools/ + Makefile.am + dir_hier_move.C + dir_hier_path.C + +Rom 5 Aug 2004 + - Some basic cleanup work + + sched/ + handle_request.C + main.C + +Brian 5 Aug 2004 + - Added my data management code for client. Full documentation is avaiable + on the BOINC website under Disk Space Management. Major changes to the + client are as follows: + - When a file is sent to be downloaded, it is associated with a project + which checks if there is enough space on disk + - Files are deleted when this space, as set by the user prefs, fills up + - Instead of sending the user prefs to the scheduling server, three + new values are sent and the server decides how much work to award + each host based on these values and config.xml prefs (documented) + - Files have a priority and expiration date which sorts them for + deletion purposes + - Uploaded my tools for sending and getting files to and from a host. + - Uploaded a tool that requests a file list from all hosts, although it has + not been fully implimented on the core client + - Uploaded a tool that sends a request for a host to delete a local file + + client/ + Makefile.am + gui_titles.h + scheduler_op.C,h + main.C + gui_titles.C + file_names.h + cs_statefile.C + cs_scheduler.C + cs_files.C + client_types.C,h + sched/ + server_types.C,h + handle_request.C + sched_send.C + delete_file.C + get_file.C + request_file_list.C + send_file.C + Makefile.am + db/ + boinc_db.h + +Rom 5 Aug 2004 + - Possible fix for segfaults on Linux platforms with the scheduler. + + lib/ + msg_log.h + sched/ + sched_msgs.h + +Noaa 5 August 2004 + + -changed source tree's glut library to boincglut to avoid + linking problems with possibly prexisting glut libraries + -updated the Makefile.Readme to reflect the change + -updated sample Makefile.graphics + + boincglut/ + lib/ + glut/ + Makefile + + api/ + Makefile.Readme + Makefile.graphics + + / + Graphics.Readme + +Daniel 2004-08-05 + - regenerated build files to fix (some) compilation problems from the + data management code + + aclocal.m4 + client/ + Makefile.in + sched/ + Makefile.in + win_build/ + boinc_cli.dsp,vcproj + boinc_gui.dsp,vcproj + +David 6 Aug 2004 + - Changed server software to use the hierarchical directory mechanism. + This means using dir_hier_path() to generate the pathname + of an input or output file, + rather than just concatenating directory and filename. + Also (in process_wu_template()) use dir_hier_url() + to generate the appropriate URL + - Add a scheme for transitioning from flat to hierarchical download dir. + Can have a element in config.xml, + giving the path of an old, flat dir. + file_deleter will look here if it can't find file in main download dir. + - Pass around SCHED_CONFIG in a few interfaces + (e.g. create_work()) in order to access uldl_dir_fanout + + html/inc/ + profile.inc + lib/ + util.C,h + sched/ + file_deleter.C + file_upload_handler.C + make_work.C + sched_config.C,h + validate_util.C + wu_check.C + tools/ + Makefile.am + backend_lib.C,h + create_work.C + dir_hier_move.C + dir_hier_path.C + +David 6 Aug 2004 + - In the web "get password" function, + look for not just the email addr but also + any munged versions of the email addr. + So people won't see "no such account" and create a new one. + (from Carl Christensen) + - Add escape_pattern() function for escaping "like" patterns; + use this in team lookup also + + html/ + inc/ + db.inc + user/ + mail_passwd.php + team_lookup.php + +Brian 6 Aug 2004 + - Fixed bug that was causing problems with BOINC client + Files were not being associated with projects because of small + bugs in the code that were resently checked in. Sorry + - Changed a naming convention in a new slice added to the data pies + in Windows GUI. + + client/ + client_types.C + cs_data.C + scheduler_op.C + gui_titles.C + +Daniel 2004-08-06 + - New preferences that cause apps to instead of : + leave_apps_in_memory ( if false) and vm_max_used_pct (if + exceeded, apps ) + - Various code clean up and bug fixes from data management stuff + + client/ + app.C,h + client_types.C + cs_apps.C + cs_data.C + cs_prefs.C + cs_scheduler.C + prefs.C,h + html/inc/ + prefs.inc + +Noaa 6 August 2004 + + - removed libglut.a from cvs, was accidentally in there + + boincglut/lib/glut/ + libglut.a (removed) + +Rom 6 Aug 2004 + - Feeder should be using mysql_store_result instead of mysql_use_result. + + db/ + boinc_db.C + +David 7 Aug 2004 + - changed table type to InnoDB + (except for tables that need fulltext indices, + which apparently only works w/ ISAM) + - fixed bug w/ graphics GUI RPC + + db/ + schema.sql + constraints.sql + client/ + gui_rpc_server.C + +Daniel 2004-08-09 + - client: + - check for exited apps right before (re)starting them for any + reason (unsuspend_all(), resume_or_start()) + - upon suspend_all(), if leave_apps_in_memory is false, quit all + tasks with state == PROCESS_RUNNING (not just those with + scheduler_state == CPU_SCHED_RUNNING, as before) + + client/ + app.C,h + +Noaa 9 August 2004 + - changed version of x_opengl no print statements handles + fullscreen + - added extern "C" around protos in graphics_api.h + + api/ + x_opengl.C + graphics_api.h + +Rom 10 Aug 2004 + - Bug Fix: Moved 5 day benchmark checking code into main polling function + - Bug Fix: Added extra logic so that if benchmarks execute BOINC will + successfully start back up the applications if leave_apps_in_memory + is set to false + - Bug Fix: Fix a state file parsing issue where an extra + start tag was being included within the signed_xml field without the + closing tag, this could be what was causing problems with P@H and + incorrect result file info structures. This could also lead to + messages on the server about duplicate result submissions. + + client/ + app.C, .h + client_state.C + client_types.C + gui_rpc_server.C + cs_benchmark.C + +Karl 2004-08-10 + - fixed 'make dist' bugs caused by php files being removed + + sched/ + Makefile.am + tools/ + add.C (removed - obsolete) + + +David 11 Aug 2004 + - FILE_INFO::write(): don't write signed_xml if it's not relevant + (i.e. if there's no xml_signature) + This caused an XML syntax error in client_state.xml + + NOTE: this looks similar to Rom's bug fix yesterday. + Two fixes are better than one, hopefully. + + client/ + client_types.C,h + +David 11 Aug 2004 + - Change "limit x offset y" to "limit y,x" in PHP code + for compatibility with PHP 3.x + (from Kalle Happonen) + + html/ + inc/ + team.inc + user/ + top_host.php + top_team.php + top_user.php + +David 11 Aug 2004 + - Divided app.C (which was getting too big) into: + app.C: constructor/destructor, XML write/parse + app_control.C: process control + app_graphics.C: graphics interactions + app_start.C: initialization/execution + + client/ + Makefile.am + app.C + app_control.C (new) + app_graphics.C (new) + app_start.C (new) + cs_apps.C + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + +David 11 Aug 2004 + - Make work for application files as well as input files + (this copies files to the slot dir instead of making symbolic link). + This should make it possible to use shared-library files in Mac OS/X + that have to reside in the slot dir. + This was done by factoring out file-setup code into a function + (setup_file()) that's used for all files (app, input and output) + - Deleted code for file-descriptor-based application access to + input and output files. + This feature wasn't well-designed, and no one was using it. + + api/ + boinc_api.C + client/ + app_start.C + lib/ + app_ipc.C,h + +David 11 Aug 2004 + - check for disk space overflow only every few hours + (not every second!! It traverses the entire BOINC directory, + which could contain thousands of files) + - Write out-of-disk-space messages using msg_printf(), + (not a pop-up dialog) + - fix spelling errors in error messages (ouch!) + + TODO: the disk-space logic needs review + + client/ + cs_data.C + main.C + +David 11 Aug 2004 + - DB_SCHED_RESULT_ITEM_SET::update_result(): escape the + stderr_out and xml_doc_out fields of result + (they may contain single-quote) + + db/ + boinc_db.C + +Daniel 2004-08-11 + - client: #include fixes for app.C refactoring + + client/ + app_control.C + app_start.C + +David 11 Aug 2004 + - comment out disk-management code, pending a review. + + client/ + client_state.C + client_types.C + cs_data.C + cs_scheduler.C + scheduler_op.C + +Rom 11 Aug 2004 + - Move gui_rpc_client.C, .h to the clientgui folder. + - Removed wx based document objects in favor of the + gui_rpc_client.C based objects. + - Update source to match. + + client/ + gui_rpc_client.C, .h (removed) + gui_test.C (removed) + makefile.gui_test (removed) + clientgui/ + gui_rpc_client.C, .h (added) + gui_test.C (added) + makefile.gui_test (added) + ***** Removed Numerous Files ***** + BOINCGUI.vcproj + MainDocument.cpp, .h + MainFrame.cpp + MessagesView.cpp, .h + ProjectsView.cpp + ResourceUtilizationView.cpp, .h + TransfersView.cpp, .h + WorkView.cpp + +David 12 Aug 2004 + - removed call to associate_file() for user files. + - fixed some code formatting, and comments of the form + foo(); // call foo + + client/ + client_types.C + cs_apps.C + cs_prefs.C + cs_scheduler.C + http.C + pers_file_xfer.C + prefs.C + lib/ + filesys.C + util.C + +David 12 Aug 2004 + - Improved error checking and reporting in parse state file + - check error returns of parse functions + - temp_project is local to block (so get a new one) + - delete objects in all error cases + - Check and report errors in init/insert of PERS_FILE_XFER + while parsing state file + - ignore app/app_version from state file if project is anonymous platform + - If get error parsing host info, time/net stats etc., + continue parsing rather than error out + - Improved error checking and reporting in parsing + and processing of scheduler reply + - check error returns of parse functions + - use msg_printf() instead of show_message() or fprintf(stderr)!! + - fix memory leaks + + client/ + client_msgs.C + cs_scheduler.C + cs_statefile.C + scheduler_op.C + +David 12 Aug 2004 + - compile fixes from Jakob Pedersen + + client/ + app.C + app_start.C + lib/ + util.C + sched/ + db_dump.C + send_file.C + +David 12 Aug 2004 + - Originally every scheduler reply contained + user, host and team info. + This is no longer the case because, for example, + the "no work available" logic now skips DB access. + Fixed a few bugs related to this: + - scheduler: send user/host/team info only if + the corresponding record was read from DB + - client: get team name, user credits, host credits + from scheduler reply only if they're actually there + (use -1 as a null value for credit fields) + + client/ + cs_scheduler.C + scheduler_op.C + sched/ + handle_request.C + server_types.C + +David 12 Aug 2004 + - canonicalize_master_url(): prepend http:// if it's not there. + And replace messy std::string code with nice stdlib code + + lib/ + util.C + +David 12 Aug 2004 + - db_dump: add element to team XML + - web: don't show memory BW, since we're not measuring it any more + - clear user.has_profile when delete profile + + html/ + inc/ + host.inc + user.inc + user/ + delete_profile.php + sched/ + db_dump.C + tools/ + dir_hier_move.C + +David 13 Aug 2004 + - use 0 (not -1) as null value for unix times + - comment out remaining disk management code + - compile error + + client/ + client_types.C,h + cs_scheduler.C + scheduler_op.C + sched/ + server_types.C + +David 13 Aug 2004 + - transitioner: don't set wu.transition.time to anything less + than now + wu.delay_bound. + This prevents the transitioner from repeatedly handling a WU + in the case where it's behind schedule + + sched/ + transitioner.C + +Noaa 13 Aug 2004 + + - changed Graphics.Readme to reflect movement of the gui_test stuff + + / + Graphics.Readme + +Rom 13 Aug 2004 + - Needed to backout the newer style of determining disk free space + on the clients since all the clients currently reporting to us + are 3.x clients and still using the original scheme. + + sched/ + sched_send.C + server_types.C, .h + +David 13 Aug 2004 + - bad IP address display on GUI RPC reject + + client/ + gui_rpc_server.C + sched/ + request_file_list.C + +Karl 2004-08-14 + - documentation notes on transaction support in MySQL versions & + troubleshooting + + doc/ + software.php + build_server.php + +David 16 Aug 2004 + - fix compile error + - check bind/listen failure in GUI RPC code + - added boinc_close_socket() + + client/ + gui_rpc_server.C + net_xfer.C + lib/ + util.C,h + +David 16 Aug 2004 + - changed "engine" to "type" in schema SQL + + db/ + schema.sql + +David 16 Aug 2004 + - compile fixes and more commenting-out of disk mgt code + + sched/ + delete_file.C + sched_send.C + server_types.C,h + +David 16 Aug 2004 + - client: check error return from choose_version_num(). + There's a remote chance this has something to do with + the "scrambled XML" problem + - changed my 13 Aug change to transitioner + so that new transition time is at least now + 1 day + + client/ + cs_apps.C + cs_scheduler.C + sched/ + transitioner.C + +Rom 16 Aug 2004 + - After much gnashing of teeth, head scratching, and other + assorted things, I finally can build the cross platform GUI again. + + The default project builds for the wxWidgets static library, MSVCRT + static library, and STL static library really don’t like each other. + It took a few days to get things to a point they would compile, and we + still throw a few warnings on the release build. + + clientgui/ + BOINCGUI.sln + BOINCGUI.vcproj + gui_rpc_client.C, .h (removed) + makefile.gui_test (removed) + lib/ + gui_rpc_client.C, .h (added) + makefile.gui_test (added) + +David 17 Aug 2004 + - server changes (courtesy Pietro Cicotti from Predictor@home) + to implement homogeneous redundancy more efficiently. + Instead of scanning result table, + use the workunit.workseq_next field to store an integer encoding + of the platform the WU has been sent to, if any. + - added utility program (hr_db_convert.C) to convert + existing an database to new format + + sched/ + sched_send.C + tools/ + hr_db_convert.C (new) + +David 17 Aug 2004 + - removed boinc_close_socket() from util.C, + since it causes Win link error in upper_case. + TODO: would be nice to use lib/ code as library + + client/ + gui_rpc_server.C + net_xfer.C + lib/ + util.C,h +Rom 17 Aug 2004 + - BugFix: Fix trickle messages from host. + - BugFix: HR fix for the scheduler. + + sched/ + handle_request.C + sched_send.C + +Karl 2004-08-18 + - update_versions: + - Print warning if specified signature files won't be used + - Print warning and query continue if no signature file specified + - Allow file.file_ref_info's contents to be used for inserting extra + info in the attribute (e.g. ) + + tools/ + update_versions + py/Boinc/ + tools.py + +David 19 Aug 2004 + - don't show a zillion digits of precision on file xfer speeds + + client/ + pers_file_xfer.C + +David 20 Aug 2004 + - strip_whitespace() did infinite loop on empty string!! + - removed old code in db_boinc + + db/ + boinc_db.C,h + lib/ + util.C + +David 20 Aug 2004 + - PHP fixes + + html/ + inc/ + cache.inc + util.inc + ops/ + show_log.php + white.css (new) + +David 20 Aug 2004 + - removed perror()s from shmem functions. + Shouldn't do I/O at this level. + + html/user/ + info.php + stats.php + lib/ + shmem.C + +Daniel 2004-08-20 + - client: fixed file xfer bug that caused null pointer dereference upon + some xfer failures + + client/ + pers_file_xfer.C + +Rom 20 Aug 2004 + - Tag for 4.03 release, all platforms + boinc_release_4_03 + +David 20 Aug 2004 + - handle_exited_app(): + Returning early in all cases of exiting with zero status + caused core client not to read stderr_out file + or clean out slot dir. + This made test_uc.py fail. + + DANIEL: please examine this and see if you agree, + and get test_uc.py working any time you do a major checkin + + client/ + app_control.C + +David 20 Aug 2004 + - already_sent_to_different_platform(): + fix concurrency bug by reading WU.workseq_next + from database just prior to checking, + then updating the field immediately if needed. + - scheduler: update_wu_transition_time(): + use update_field(); more efficient + - Added DB_BASE::get_field_int(): get a single integer + field from a DB record. + A little cheaper than reading the whole record + - DB_BASE::lookup(): remove code that sees if record is unique. + It's called after mysql_free_result(), + so it will never return anything. + - DB code: changed "if (db->mysql && is_high_priority) to just + "if (is_high_priority)". + db->mysql is a pointer, and is always nonzero. + It's not a flag saying whether the DB is MySQL. + All this code is only for MySQL anyway. + + db/ + db_base.C,h + sched/ + sched_send.C + +David 21 Aug 2004 + - Fixed nasty bug in feeder that has been present since April 3 (doh!). + scan_work_array() scanned the work array with logic of the form + if (wu_result.state == PRESENT) { + ... + } else { + // assume wu_result.state == EMPTY + } + but with the introduction of the CHECKED_OUT state, + this became invalid, and the feeder was overwriting entries while they + were "checked out" by a scheduler. + Fixed this by changing if() to switch() + - Added check to scan_work_array(): when read result from DB, + make sure result.workunitid matches the WU's ID. + This ensures correctness even if the feeder is wrong. + - removed commented-out code from feeder + + sched/ + feeder.C + sched_send.C + sched_shmem.h + +David 21 Aug 2004 + - removed old commented-out code + + client/ + client_types.C,h + cs_apps.C + +David 21 Aug 2004 + - If an app fails to go into fullscreen mode, + mark it as MODE_UNSUPPORTED so that we don't ask it again + + client/ + cs_apps.C + ss_logic.C + +David 23 Aug 2004 + - Cleanup and bug fixes in CPU scheduler + There was inconsistent terminology, + e.g. a task could have scheduler_state = CPU_SCHED_RUNNING + but actually be suspended; it could have state = PROCESS_RUNNING + but actually be suspended, and so on. + New terminology: + "executing" (formerly "running", which was used ambiguously) + CPU_SCHED_SCHEDULED (formerly CPU_SCHED_RUNNING): + the CPU scheduler has given its permission + for a task to execut; it may not actually be executing + PROCESS_EXECUTING: the process is executing (not suspended) + PROCESS_SUSPENDED: the process is suspended + new function: ACTIVE_TASK::process_exists(): + true if the state is EXECUTING, SUSPENDED, or ABORT_PENDING + Use this instead of (state == PROCESS_RUNNING) in many cases + renamed ACTIVE_TASK::task_exited() to has_task_exited() + changed logic in ACTIVE_TASK_SET::suspend_all() + ACTIVE_TASK_SET::unsuspend_all(): + Removed code that checks for process exit. + Poll code should take care of this. + - enabled preemption by quit + - add MSG_CHANNEL::send_msg_overwrite(): send message even + if there's already a message there. + Use this for process control messages. + - API: if suspended, check for messages as well as + (this affects Unix only) + - add enclosing tag for app init data file (so XML parsers accept it) + + api/ + boinc_api.C + client/ + app.C,h + app_control.C + app_graphics.C + app_start.C + client_state.C + cs_apps.C + cs_prefs.C + gui_rpc_server.C + lib/ + app_ipc.C,h + +David 23 Aug 2004 + - web: add cross-project ID to user page + - db_dump: add NO_SORT option (default) + + html/ + inc/ + user.inc + user/ + prefs_edit_form.php + sched/ + db_dump.C + +David 24 Aug 2004 + - logic error on task start (found by Carl C.) + + client/ + app_start.C + cs_apps.C + +Rom 24 Aug 2004 + - Fix a logic error where the benchmarks would continuously run on a + core client upgrade. + - Comment out event logging to the Windows Event log until we can + refactor the various messages. + + client/ + client_state.C + main.C + +Rom 24 Aug 2004 + - Tag for 4.04 release, all platforms + boinc_release_4_04 + +David 24 Aug 2004 + - Core client: check that shared memory exists before + attempting to send or get msgs to an app. + This hopefully will fix a crashing bug + that happens when you use quit-on-suspend + (since the shared-memory seg is deleted on quit) + - Separate get_app_status_msg() and get_trickle_up_msg() functions + + client/ + app.h + app_control.C + app_graphics.C + +Rom 24 Aug 2004 + - Tag for 4.05 release, all platforms + boinc_release_4_05 + +David 25 Aug 2004 + - Make it configurable (via in config.xml) + whether results are shown on user web site + + html/ + inc/ + host.inc + util.inc + user/ + results.php + +David 25 Aug 2004 + - Core client: print a message when an app is put in LIMBO state + (i.e. exit zero but w/o finish file) + + client/ + app_control.C + +Jeff 25 Aug 2004 + - limit workunit and result enumerations in the file_deleter to 1000. + + sched/ + file_deleter.C + +David 27 Aug 2004 + - add "use bytes" pragma to grep_logs (from Carl C.) + + tools/ + grep_logs + +David 27 Aug 2004 + - scheduling server only updates cross-project ID if the one + in request message is greater than what it has (from Janus K) + + sched/ + handle_request.C + +David 27 Aug 2004 + - db_ops DB browsing fixes (from Kalle Happonen) + + html/inc/ + db_ops.inc + +Rom 29 Aug 2004 + - Increase the feeder buffer sizes so that whatever this fcgi problem is, + we don't have to bounce the project so often. This is a temporary hack + until I or somebody else figures out whats going on. + + sched/ + feeder.C + sched_shmem.h + +Rom 30 Aug 2004 + - Win98 machines seem to be throwing a SEH stack overflow exception. + Our unhandled exception filter in this case allocated a 1MB memory buffer + and pointed the ESP register at it. Well this chunk of code seems to + be broken, it is probably the first time it has ever been used. + + lib/ + diagnostics.C + +Rom 31 Aug 2004 + - Win98 has a memory leak condition in dealing with memory mapped files. + So lets go ahead and fix one possible way to slow down the leak, A better + fix is to recycle the shared memory segments. Recycling of the shared + memory segments is forthcomming. + + lib/ + shmem.C + +David 31 Aug 2004 + - Don't delete shared-memory segment while ACTIVE_TASK is preempted + via quit (hopefully will fix Win98 problem). + - Add shmem_seg_name field to ACTIVE_TASK + - Factor ACTIVE_TASK::get_shmem_seg_name() out of write_app_init_file(). + It had no business being there. + In particular, write_app_init_file() is sometimes called + in the middle of execution, when you definitely don't want + to create a new shmem seg name + - write_app_init_file() doesn't take APP_INIT_DATA arg + - define type SHMEM_SEG_NAME (for uniformity across platforms) + + client/ + app.C,h + app_control.C + app_start.C + lib/ + app_ipc.C,h + +David 31 Aug 2004 + - feeder/scheduler: + We were seeing problems where the shared-mem array was + filling up with results that were "locked" by a particular + scheduler process, which apparently had then died, + leaving that slot in limbo. + Add code to the feeder to check if the process that + locked a slot still exists, and unlock it if not. + - end_cache(): check for ".." in params string. + We've had problems with files mysteriously disappearing, + and it's possible that the caching mechanism has a security loophole. + html/ + inc/ + cache.inc + prefs.inc + user/ + download_network.php + sched/ + feeder.C + main.C + sched_send.C + sched_shmem.h + +Jeff 31 Aug 2004 + - limit workunit enumeration in the assimilator to 1000. + + sched/ + assimilator.C + +Rom 31 Aug 2004 + - BUGFIX: Moved the delete shared memory code to the end of the function, to + happen right before slot directory cleanup. The previous instance of code + t8hat was commented out was for the unix branch. + - BUGFIX: The shared memory enumerator had a bug where the name it was + enumerating wasn't the same name that was eventually locked by the start + routine, this caused the client to only be able to run one application at + a time + - BUGFIX: The shared memory enumerator was still referencing the slot + directory number instead of the for loop iterator. + - BUGFIX: When a process has been preempted, it's pid handle and thread handle + need to be freed. + - BUGFIX: Calling MapViewOfFile on Win98 automatically causes a memory leak, + so don't call it unless we really have to. + + NOTE: I would like to thank Walt Gribben for helping me by debugging this issue + for me. + + client/ + app_control.C + app_start.C + lib/ + error_numbers.h + shmem.C, .h + +Rom 31 Aug 2004 + - Tag for 4.06 release, all platforms + boinc_core_release_4_06 + +Rom 1 Sep 2004 + - Language File Updates across all languages. + + client/translations/ + + +Rom 1 Sep 2004 + - Tag for 4.07 release, all platforms + boinc_core_release_4_07 + +David 1 Sep 2004 + - fixed bug in web-caching code that caused files in html/user + to be randomly deleted. + The function clean_cache($dir) was enumerating files in $dir, + and doing unlink($file), but without chdir'ing into $dir + or concatenating $dir onto $file. + + html/inc + cache.inc + +David 2 Sept 2004 + - If an executable file failed validation, any results using + that app version would hang forever in the "downloading" state. + Two changes were needed to fix this: + 1) garbage_collect(): when scanning results, + check for download failures of APP_VERSION files + (as well as WU files), and if so mark the result as failed. + Added new functions APP_VERSION::had_failure() and get_file_errors(). + 2) handle_scheduler_reply(): if get an APP_VERSION that we already have, + reset any errored-out FILE_INFOs, + i.e. give it a chance to download again. + There are various ways to do this, but this seems the cleanest. + Added new functions FILE_INFO::reset() + and APP_VERSION::clear_errors() + - made verify_downloaded_file() into a member function of FILE_INFO. + It now sets the error_msg field to a descriptive string + so that failures will be reported to project + + client/ + client_state.C + client_types.C,h + cs_files.C + cs_scheduler.C + pers_file_xfer.C + +David 2 Sept 2004 + - change MAX_WU_RESULTS from 500 to 100 + + sched/ + sched_shmem.h + +Rom 2 Sep 2004 + - BUGFIX: The active task destructor also tried to clean up dangling handles, so + after cleaning up a handle lets also set the handle value to NULL to keep it from + being acted on again. + + client/ + app.C + app_control.C + +David 2 Sept 2004 + - PERS_FILE_XFER::poll(): don't check file size if it's not specified in FILE_INFO + ==> This fixes download failure of user-supplied files + - PROJECT::parse_preferences_for_user_files(): fill in fip->project + ==> This fixes a crashing bug when user supplies files + - User-visible test: + change "preempt" to "pause" + change "quit" to "removed from memory" + change "suspend" to "left in memory" + + client/ + app_control.C + client_types.C + gui_titles.C + pers_file_xfer.C + +Rom 2 Sep 2004 + - BUGFIX: During a project reset the next_runnable_result becomes invalid, so each + time we go through the loop reset all next_runnable_result to NULL so we don't + crash. + + client/ + cs_apps.C + +David 2 Sept 2004 + - PERS_FILE_XFER::poll(): fixed bug that caused hang + + NOTE: check_giveup(), handle_xfer_failure(), and retry_or_backoff() + are a total mess. I'll get to them next. + + - If an app exits with zero status but no finish file, + instead of putting it in limbo (which causes the core client to do no work) + just restart the process again. + NOTE: eventually we should detect when this is happening repeatedly, + and error out the result. + For now, just print a message telling user they may need to reset project. + - rename PERS_FILE_XFER::xfer_done to pers_xfer_done + - move process cleanup code into separate functions + (ACTIVE_TASK::close_process_handles() + and ACTIVE_TASK::detach_and_destroy_shmem()) + client/ + app.C,h + app_control.C + pers_file_xfer.C + +David 3 Sept 2004 + - fix bugs in previous checkin + - schedule_cpus() + - clear temp vars at start (bug) + - don't delete ACTIVE_TASK on start failure; + other code takes care of this + - get rid of RESULT.is_active field. + Things that can be derived from other fields, + and need to be maintained in a bunch of places throughout + the code, are a bad programming practice + + client/ + app_control.C + app_start.C + client_types.C,h + cs_apps.C + +David 4 Sept 2004 + - New features for message boards (from Janus Kristensen): + Added: + - External avatars (but commented it out - + it's better to use hosted avatars) + (Tiny images under people's name) + - Hosted avatars + (Uploads and scales to 100x100 in the IMGAGE_PATH dir) + - Special users + (Project admins, devs, newcomers etc. will get a line + telling what they are under their name) + - Option to display images as links + - Option to open links in a new window + - Option to hide avatars + - Option to enable/disable attach of signature by default + - Settings for sorting is now handled using the database + instead of cookies (ie. you can change host without + having to set your preferences up again, + some users also have cookies disabled) + - Preview of signature + - Unread posts are marked as "Unread" + (if they are newer than 2 days (configurable in forum.inc) + and user hasn't visited the post) + - Interface to forum preferences and sorting methods + - Link to interface from user preferences + - Reset forum preferences button + (Some users have reported that an unusually long + signature with html could make the page unviewable. This fixes it) + - Option to sort with "Oldest first" in answers in the FAQ area + + Moved: + - Signature input in user prefs to forum prefs + + Fixed: + - Sorting in answers in the FAQ area didn't work + - minor speedups and html stuff + + DB-stuff: + - create forum_preferences & forum_logging + - transfer old settings + + NOTE: If you want to use these features, you will need to + create two new DB tables (forum_preferences and forum_logging; + just execute the commands from schema.sql) + and you'll probably want to copy existing signatures and nposts + from the user table (see html/ops/db_update.php) + + html/ + inc/ + forum.inc + forum_show.inc + user.inc + user/ + edit_forum_preferences_action.php (new) + edit_forum_preferences_form.php (new) + edit_user_info_action.php + edit_user_info_form.php + forum_forum.php + forum_post.php + forum_reply.php + forum_thread.php + +David 4 Sept 2004 + - removed old work_buffer_max_days stuff + (it's now only min_days) + + client/ + prefs.C,h + html/inc/ + prefs.inc + + +David 5 Sept 2004 + - Added new GUI RPCs and fixed bugs (from Sebastian Masch) + get_network_mode() + set_network_mode() + retry_file_transfer() + + client/ + client_types.C + cs_statefile.C + gui_rpc_server.C + lib/ + gui_rpc_client.C,h + + +David 5 Sept 2004 + - Bug fixes for recent forum changes (from Janus K) + + NOTE: if you've already added the forum_preferences table, + you'll need to do a DB update to add a new field + (see html/ops/db_update.php) + + db/ + schema.sql + html/ + inc/ + forum.inc + ops/ + db_update.php + user/ + forum_forum.php + forum_thread.php + +Rom 5 Sep 2004 + - Tag for 4.08 release, all platforms + boinc_core_release_4_08 + +David 6 Sept 2004 + - The Windows GUI and CLI versions were using different mechanisms + to ensure that only one instance of BOINC is running. + Factored this into a function check_unique_instance(), + which is used by all versions. + + client/ + file_names.C,h + main.C + win/ + wingui_mainwindow.cpp + lib/ + error_numbers.h + +David 7 Sept 2004 + - (from Ben Herndon) Some compilers optimize away sections of the Whetstone + benchmark function, since their results aren't used outside the function. + To deal with this, we added an global-scope array (extern_array[]) + and store the result of each section into it. + Also changed section 3 by initializint j from the extern_array, + so the compiler can't optimize out all the conditionals. + + client/ + whetstone.C + +David 7 Sept 2004 + - change "upgrade" to query user before overwriting files + + tools/ + upgrade + +David 7 Sept 2004 + - recognize CPU type on HP (DEC) alpha (from Duane Krahn) + + client/ + hostinfo_unix.C + +Rom 8 Sep 2004 + - If we can lock the lockfile, also aquire the global mutex. + If we don't the screensaver + cannot properly detect that BOINC is executing. + + client/ + file_names.C + +Jeff 09 Sep 2004 + - Change the validator to handle the case where one or more + of the result files for a WU's result set can't be read. + Currently, this case results in this WU and its results + never getting looked at again - no science, no credit. + + We distinguish 2 cases: + 1) transient failure, e.g. an NFS mount is not working. + (can't read directory) + In this case check_set() returns a special code to the validator, + which arranges for the WU to get transitioned again in a few hours. + 2) permanent failure (file doesn't exist) + The result's validate_state is set to ERROR (new state), + which is generally equivalent to INVALID + - add new WU arg to check_set() + (so it can access min_quorum) + + This is coordinated seti_boinc / boinc change. + This note is repeated in the seti_boinc checkin_notes. + + seti_boinc changes: + - get_result_file(), if it cannot read the result file, + tries to read the directory where the result file should be. + If it can read the directory, it returns ERR_FOPEN, as before. + If it cannot read the directory, it resturns ERR_OPENDIR. + ERR_OPENDIR in this context signals a possibly transient problem. + Upon a successful result read, it sets sah_result.have_result + (a new data member as of this change) to true. + - check_set(), upon return from get_result_file() : + - sets result.validate_state to VALIDATE_STATE_ERROR (a new state) + and retval to zero if there is a nonzero retval from check_set() + and it is not ERR_OPENDIR. It then continues. + - otherwise just continues. + check_set() then determines if any IO errors brought the result count + below wu.min_quorum. If not, it continues. Otherwise it returns. + In all subsequent logic any results for which + sah_result.have_result == false are skipped. + Note that the result and the sah_result vectors are associated. + + validate/ + sah_result.h + sah_validate.cpp + sah_boinc_db.cpp + + boinc changes: + - new validate state VALIDATE_STATE_ERROR. + - in the enumeration for check_set(), + we now include a clause to check for VALIDATE_STATE_INIT + in order to ignore results set to VALIDATE_STATE_ERROR. + This enumeration query now matches that for check_pair(). + Note that the only possible retvals from check_set() + are now zero or ERR_OPENDIR. + Note that logic to retry possibly transient errors still needs + to be done. + Also left to be done is a transitioner change to subtract + the number of results in state VALIDATE_STATE_ERROR + from the count of active results. + The latter change is needed to stimulate the production + of additional results for the affected WU. + + sched/ + validator.C + db/ + boinc_db.h + + +Rom 9 Sep 2004 ( for Sebastian Masch ) + - Don't cause the core client to rewrite the state file + for every block transfered during a network operation. + + client/ + pers_file_xfer.C + +David 9 Sept 2004 + - Further refinements of validation to deal with + recoverable/nonrecoverable file read errors. + Revised the signatures of check_set() and check_pair(), + and revised the validator accordingly. + + db/ + boinc.db.h + sched/ + sample_bitwise_validator.C + sample_trivial_validator.C + validate_util.C,h + validator.C + +David 9 Sept 2004 + - added try_fopen() (from Jeff Cobb): + like fopen(), but on tells you whether it's recoverable or not + + lib/ + util.C,h + + +David 9 Sept 2004 + - Added support for stats access via WAP (for cell phones) + (from Carl Christensen) + + html/ + inc/ + userw.inc + wap.inc + user/ + userw.php + ops/ + opsw.php + userw.php + +David 9 Sept 2004 + - In transitioner, count RESULT_OUTCOME_VALIDATE_ERROR as an error + + sched/ + transitioner.C + +David 9 Sept 2004 + - preliminary support for "locality scheduling" (for Einstein@home). + + client/ + client_types.h + sc_scheduler.C + sched/ + sched_send.C,h + server_types.h + +David 10 Sept 2004 + - compile fix for Win + + lib/ + util.C + +David 10 Sept 2004 + - validator: slight change to check_set() and check_pair(): + they no longer should update result records in case of + nonrecoverable error. + Just set the outcome to RESULT_OUTCOME_VALIDATE_ERROR, + and the framework program will do the updates. + + sched/ + validator.C + +David 10 Sept 2004 + - more changes for locality scheduling + + client/ + client_state.C + client_types.C + cs_scheduler.C + sched/ + Makefile.am + sched_config.C,h + sched_locality.h (new) + sched_send.C + server_types.C,h + +Rom 10 Sept 2004 + - NEw GUI: Put the glue back in so that we can make the various tabs work. + + clientgui/ + MainDocument.cpp, .h + stdwx.h + + +Lana 26 August 2004 + - Installation script provides better default daemons by starting + transitioner, feeder and file deleter deamons automatically + + tools/ + make_project + +Lana 11 Sept 2004 + - Created DB Purger that archives "DONE" workunits and their + results into XML archive files. Deletes those records from the database. + Added delete_from_db function to DB_BASE + + sched/ + db_purge.C + + db/ + db_base.h + db_base.C + + +David 12 Sept 2004 + - Added a queueing mechanism for shared-memory message passing, + class MSG_QUEUE. + This provides reliable, ordered message delivery. + I think process-control messages were being lost in some cases. + - Replaced ad-hoc 1-level queueing mechanism for graphics requests + - Changed the logic for selecting app for screensaver a bit; + have new field bool ACTIVE_TASK::is_ss_app that keeps track + of which app is acting as the screensaver. + This fixes bugs in a few particular cases. + + client/ + app.C,h + app_control.C + app_graphics.C + cs_apps.C + ss_logic.C + lib/ + app_ipc.h + +David 13 Sept 2004 + - Preliminary checkin for "GUI URLs" feature + (allows projects to send URLs to be use as links in GUIs) + This is implemented in a new class GUI_URLS. + Its init() member reads template file. + Its get_gui_urls() member macro-substitutes user/team/host IDs + into the URLs, and produces XML to be included in scheduler replies. + - renamed replace_element() to replace_element_contents() + - moved try_fopen() from lib/util.C to sched/sched_util.C + - added old and new docs to CVS + + doc/ (all new) + sched_locality.php + client_mac.php + delete_file.php + get_file.php + get_file_list.php + gui_rpc_control.php + gui_urls.php + info.php + send_file.php + lib/ + parse.C,h + util.C,h + sched/ + handle_request.C + main.C,h + make_work.C + sched_locality.C + sched_util.C,h + server_types.C,h + +David 13 Sept 2004 + - When email account ID, show (on the next web page) the "from" + address of the email, + since some users may have email filters based on sender. + The "from" address is the constant EMAIL_FROM, + which should be defined in project.inc. + If this is missing, it uses URL_BASE + (which is not an email address, so projects should define EMAIL_FROM) + + html/ + inc/ + util.inc + user/ + account_created.php + mail_passwd.php + +David 13 Sept 2004 + - small changes to screensaver logic, try to fix Rom's 2-CPU bug + + client/ + app_graphics.C + ss_logic.C + + +David 13 Sept 2004 + - Change CPU scheduling logic so that the min debt is subtracted + from the debt of all active projects. + i.e. debt is normalized to be zero-based. + This fixes a bug where the debt of projects with work + keeps getting bigger and bigger, + so that when a new project is attached or gets work, + it takes a long time for it to run. + + client/ + cs_apps.C + +Rom 14 Sept 2004 + - GUIRPC: Remove memory leaks from the client-side GUI RPC's. + - GUIRPC: Make the API contracts consistant. + + clientgui/ + MainFrame.h + lib/ + gui_rpc_client.C, .h + +David 14 Sept 2004 + - added a "project status" page showing daemon and DB status + The sample has various SETI@home-specific stuff; + projects will need to customize it. + - added db_init_aux(), which doesn't check stop_web, + generate HTML or exit; + moved db_init() to util.inc; it calls db_init_aux(), + and does the check/HTML/exit stuff + + html/ + inc/ + db.inc + util.inc + user/ + sample_status.php (new) + +David 14 Sept 2004 + fixes to forum code (from Janus K.): + + - Intelligently scale the avatar instead of stretching it. + (keep largest portion of the image within the 100x100 + view while keeping image proportions) + - show preview of the avatar in forum prefs + - Inform users of the maximum signature size in forum prefs + + html/ + inc/ + util.inc + user/ + edit_forum_preferences_action.php + edit_forum_preferences_form.php + +David 14 Sept 2004 + - fix bug in update_versions + + tools/ + update_versions + +Rom 14 Sep 2004 (boinc_public) + - Tag for 4.09 release, all platforms + boinc_core_release_4_09 + +Lana 14 Sep 2004 + - added cpu_scheduling to global preferences + + html/inc/ + prefs.inc + +David 18 Sept 2004 + - fixed "used before assigned" errors in whetstone. + + client/ + whetstone.C + +David 20 Sept 2004 + - changed PHP caching code to touch file before regenerating it. + This will (in most cases) prevent concurrent processes + from redundantly regenerating it. + - Change "cpu_scheduling" to "cpu_scheduling_period_minutes" + in global preferences + + html/inc/ + cache.inc + prefs.inc + +David 20 Sept 2004 + html/ + inc/ + forum.inc + user/ + edit_forum_preferences_action.php + show_user.php + +Lana 20 Sept 2004 + - Fixed create_work bug. Copy input text files to the download directories + + tools/ + backend_lib.C + +Rom 20 Sept 2004 + - NEWGUI: Refactor all view logic to accommodate + the new task based interface. + - NEWGUI: Add the new projects task pane. + - NEWGUI: Stub the other tabs. + - NEWGUI: Include new visuals for the task based UI. + + clientgui/ + + +David 21 Sept 2004 + - fixed profile image upload (from Matt) + + html/inc/ + profile.inc + +Lana 21 Sept 2004 + - added getting value of the cpu_sched_period + for the client from the global prefs + + client/ + prefs.h + prefs.C + +David 21 Sept 2004 + - parse_state_file(): + If client_state.xml doesn't exist, try client_state_next.xml. + If the resulting file is empty, try client_state_prev.xml + This should hopefully fix cases of state file corruption on crash + - change request delay from 1 hour to 1 day for: + - unknown platform + - no work for this platform + - core client out of date + + client/ + cs_statefile.C + sched/ + handle_request.C + sched_send.C + +David 22 Sept 2004 + Various cleanups; first try on project-overwrite bug + (I don't think these have anything to do with it, however). + Client now compiles with gcc -Wall -W -Werror + + - enforce buffer length arg in copy_element_contents() + - check return values from copy_element_contents() everywhere + - check return value from PROJECT::parse_account() + and PROJECT::write_account_file() + - remove unused arguments here and there + + + client/ + app.h + app_control.C + client_state.C,h + client_types.C + cs_account.C + cs_apps.C + cs_scheduler.C + cs_statefile.C + dhrystone.C + gui_rpc_server.C + main.C + net_stats.C,h + net_xfer.C,h + scheduler_op.C + lib/ + miofile.C + parse.C + +Rom 22 Sept 2004 + - NEWGUI: Add rules to enforce URL and Accout Key rules to the + attach to project dialog, this will increase the robustness + of the new UI when dealing with unexpected input. + - Cleanup the rest of the graphics stuff. + + clientgui/ + + +David 22 Sept 2004 + - store scheduler requests and replies in files whose names + include the project master URL. + This will hopefully prevent RPCs from clobbering each other. + The question of why concurrent RPC is happening is unresolved. + - rename next_project() to next_project_need_work() + - remove redundant time argument from SCHEDULER_OP::init_return_results() + + client/ + client_state.h + cs_scheduler.C + file_names.C,h + scheduler_op.C,h + + +David 22 Sept 2004 + - commented out PROJECT::share_size and PROJECT::size. + + client/ + client_state.C + client_types.C,h + +Lana 22 Sept 2004 + - included MD5 Checksum in the Core Client download page + + html/ + inc/ + util.inc + download.inc + +Rom 22 Sept 2004 + - Fix CPU Scheduler bug on a multi-proc machine after a project reset where + the core client gets stuck in a loop trying to schedule work that does + not exist. + + client/ + client_state.h + cs_apps.C + +Lana 22 Sept 2004 + - fixed opening of the ops page + + html/ + inc/ + util_ops.inc + db_ops.inc + +Rom 22 Sept 2004 + - NEWGUI: Make the quick tips section auto update with the quick tip for the + item the mouse is hovering over. + + clientgui/ + + +David 23 Sept 2004 + - fix bug in schedule_cpus() that caused it to not reschedule + when a result is done. + Removed its "must_reschedule" argument. + Add a boolean CLIENT_STATE::must_reschedule_cpus + that is set whenever a result is newly runnable or done, + and that tells schedule_cpus() to do its thang regardless of time. + + client/ + app_control.C + client_state.C,h + cs_apps.C + +David 23 Sept 2004 + - fix (from Frank Weiler) for GUI column sorting problem + + client/ + gui_titles.C,h + win/ + wingui_listctrl.cpp,h + wingui_mainwindow.cpp + +David 23 Sept 2004 + - Added code (from Ben Herndon) for getting X86 CPU names and models better. + Not using this for now. + + client/win/ + cpuid_tbl.cpp,h + opt_x86.h + opt_x86cpu.cpp + optBench.hpp + optimize.hpp + +Lana 23 Sept 2004 + - Fixed setting of the default venue on account setup. + + html/user/ + account_setup_nonfirst_action.php + +David 23 Sept 2004 + - to simplify things, removed a number of fields from SCHEDULER_REPLY + and have SCHEDULER_REPLY::parse() copy info straight into the PROJECT. + This eliminates a bunch of pointless copying + - added bool PROJECT::non_cpu_intensive + - commented out deletion_policy stuff + + client/ + client_types.C,h + cs_scheduler.C + scheduler_op.C,h + +Lana 23 Sept 2004 + - refactored access and storage to cpu_sched_period for the project. + now it is being maintained in global prefs only. + + client/ + cs_statefile.C + cs_apps.C + client_state.C,h + +David 24 Sept 2004 + - Scheduler: send a message to client (low priority) + if there is a newer minor version of the core client available. + This required adding the set of CORE_VERSIONs to shared mem + + sched/ + handle_request.C + sched_config.C,h + sched_shmem.C,h + +David 24 Sept 2004 + - db_dump: use mysql_use_result() instead of mysql_store_result() + for the enumeration of users. + Otherwise it has to store the entire result set in memory, + which could be prohibitive. + NOTE: still have to use mysql_store_result() for hosts + because of the user lookup to get show_hosts flag. + Could deal with this by doing a join. + - added use_use_result arg to DB_BASE::enumerate() (default false) + - change printfs to log_messages.printf in db_dump + - db_dump: don't show user host list + (can't do this if use mysql_use_result()) + + db/ + db_base.C,h + sched/ + db_dump.C + +David 24 Sept 2004 + - use lockf() in preference to flock(), since the former supports NFS + (from James Drews) + + lib/ + filesys.C + +David 24 Sept 2004 + - added a option to config.xml. + If set, no upload certificates will be generated for results. + This will make the transitioner run faster. + If you use this, you must set + immediately, and leave it on for a couple of weeks + even after start generating upload certificates again. + + sched/ + sched_config.C,h + transitioner.C + tools/ + backend_lib.C,h + process_result_template.C + +Rom 24 Sept 2004 + - NEWGUI: Hook up the rest of the html panes for the transfers, + messages, work, and resources tabs. + - Kick start the CPU scheduler on startup by setting must_reschedule_cpus + in case the scheduler is stuck in a funky state. + + client/ + client_state.C + clientgui/ + + +David 24 Sept 2004 + - support for projects. + The flag is parsed from scheduler and stored in state file + Non-CPU-intensive projects are treated specially + by the CPU scheduler: their results are always scheduled. + + client/ + client_state.C,h + client_types.C + cs_apps.C + +David 25 Sept 2004 + - Made GUI RPC client code a bit nicer by adding RPC class + + lib/ + gui_rpc_client.C,h + gui_test.C + +David 25 Sept 2004 + - Added new GUI RPCs: + project: suspend/resume + file transfer: abort + active task: suspend/resume/abort + get proxy info + - Modified the C++ interface to GUI RPC a little + NOTE: the RPCs themselves (XML on the wire) are unchanged + - Added suspended_via_gui flags to PROJECT, ACTIVE_TASK + - renamed CLIENT_STATE::pi to CLIENT_STATE::proxy_info + + client/ + app.C,h + client_state.C,h + client_types.C,h + cs_apps.C + cs_cmdline.C + cs_statefile.C + gui_rpc_server.C + pers_file_xfer.C,h + scheduler_op.C + win/ + wingui_proxydlg.cpp + lib/ + gui_rpc_client.C,h + gui_test.C + +David 26 Sept 2004 + - Added the ability to turn homogeneous redundancy on/off + on a per-application basis. + + NOTE: this involved adding a homogeneous_redundancy field to + the app table in the database. + To upgrade to this server software, + you must run the SQL query in html/ops/db_update.php, + which adds this database field. + + db/ + boinc_db.C,h + schema.sql + html/ + inc/ + db_ops.inc + ops/ + db_update.php + py/Boinc/ + database.py + sched/ + db_dump.C + sched_send.C + +Rom 27 Sep 2004 (boinc_public) + - Tag for 4.10 release, all platforms + boinc_core_release_4_10 + +David 27 Sept 2004 + - more support for GUI URLs. + The core client should now parse them from scheduler reply, + and save them in account file. + + client/ + client_types.C,h + scheduler_op.C + lib/ + parse.C,h + sched/ + handle_request.C + server_types.C,h + +David 27 Sept 2004 + - still more GUI URL changes + + client/ + client_types.C + scheduler_op.C + lib/ + gui_rpc_client.C,h + +David 28 Sept 2004 + - fixed CPU sched bug, I hope + + client/ + client_state.C + cs_data.C + +David 28 Sept 2004 + - parse message seqnos in GUI RPC client + + lib/ + gui_rpc_client.C,h + +Rom 28 Sep 2004 (boinc_public) + - Tag for 4.11 release, all platforms + boinc_core_release_4_11 + +Jeff 28 Sep 2004 + - reduced limit on feeder enumeration query from 10,000 to 1,000. + + sched/ + feeder.C + +David 29 Sept 2004 + - handle GUI RPCs even if we're running benchmarks + - report PROJECT::suspended_via_gui in RPC reply + + client/ + client_state.C + client_types.C + gui_rpc_server.C + +David 30 Sept 2004 + - added -db_host option to db_dump (so it can use a DB replica) + + sched/ + db_dump.C + +David 30 Sept 2004 + - Change wording of some web links + + html/ + inc/ + user.inc + util.inc + user/ + mail_passwd.php + +David 30 Sept 2004 + - got clientgui working on Linux!! + + clientgui/ + MainDocument.cpp + Makefile (new) + ValidateURL.cpp + +David 30 Sept 2004 + - changed the semantics of the GUI RPC get_messages() call. + - It no longer takes an "nmessages" arg. + - it returns messages in order of increasing seqno + - changed message_descs from a std::list to a std::deque + + client/ + client_msgs.C,h + gui_rpc_server.C + lib/ + boinc_win.h + gui_rpc_client.C,h + gui_test.C + win_build/ + boinc_guirpc_test.vcproj + +David 30 Sept 2004 + - added GUI_RPC_CLIENT::close() function. + Call this if any RPC returns ERR_READ or ERR_WRITE. + Then call init() again to reconnect + + lib/ + gui_rpc_client.C,h + +David 30 Sept 2004 + - fix crashing bug in get_messages GUI RPC (signed/unsigned issue) + + client/ + gui_rpc_server.C + +David 30 Sept 2004 + - First steps in fixing the venue mess: + venue is passed from server to client, never the other way. + - always pass back host credit info in sched reply + (not just if new hostid - how did that happen??) + - add none (---) as an option for venue in web form + - when user change venue of host, tell them that it + will take effect only after a sched request + + html/ + inc/ + host.inc + user/ + host_venue_action.php + sched/ + handle_request.C + server_types.C,h + +David 1 Oct 2004 + - Ending the venue debacle, part II: The Client + + 1) Each project maintains its venue separately. + It's stored in the project's account file, + and is used to select the project prefs variant. + + 2) Let P be the project that's the source of the global prefs. + Then P's venue is used to select the global prefs variant. + (Note: P's venue may change without the global prefs changing). + This venue is stored in the CLIENT_STATE.main_host_venue + and in the client state file; it survives even if P is detached. + + So the basic logic is: + if you get a new venue from project P, + re-parse its project prefs. + If in addition P is the source of the global prefs, + re-parse the global prefs and put the venue in CLIENT_STATE.main_host_venue + - got rid of CLIENT_STATE::parse_venue() + - don't send host_venue in scheduler request + + client/ + client_state.C,h + client_types.C,h + cs_account.C + cs_prefs.C + cs_scheduler.C + cs_statefile.C + scheduler_op.C + +David 1 Oct 2004 + - Bug fix for venue propagation + - Moved some account-file-related code to cs_account.C, + some prefs-related code to cs_prefs.C + client/ + client_types.C + cs_account.C + cs_prefs.C + cs_scheduler.C + +David 1 Oct 2004 + - CLIENT_STATE::avg_proc_rate: include on_frac in the formula + (from Ben Herndon) + + client/ + cs_scheduler.C + time_stats.h + sched/ + server_types.h + +David 1 Oct 2004 + - "default", nor "primary", prefs + + client/ + cs_account.C + +David 1 Oct 2004 + - web: add "as of May 14 2004" when show SETI@home classic stats + - fix bug in db_dump.C (wasn't checking for -d) + + html/inc/ + user.inc + sched/ + db_dump.C + +David 4 Oct 2004 + - Win GUI: don't show error box if WinsockCleanup() fails + (in CMyApp::ExitInstance()) + + client/win/ + wingui_mainwindow.cpp + +David 4 Oct 2004 + - web site fixes (forums) from Janus K + + html/user/ + edit_forum_preferences_action.php + home.php + +David 4 Oct 2004 + - fix typos and compile errors + + db/ + boinc_db.C + db_base.h + client/ + cs_scheduler.C + +David 4 Oct 2004 + - changed DB code to allow for the use of read-only DB replicas + Here's what you can do now: + + DB_CONN replica; + replica.open(name, host, user, passwd); + DB_USER user(replica); + user.enumerate(...) + + ... and this can be intermixed with access to the master DB (boinc_db). + + db/ + boinc_db.C,h + db_base.C,h + +Lana 4 Oct 2004 + - changed most of the update() statements to update_field() statements + to improve server performance + + sched/ + assimilator.C + feeder.C + file_deleter.C + update_stats.C + validator.C + wu_check.C + +David 6 Oct 2004 + - Added some new items to the APP_INIT_DATA struct + (and to the init_data.xml file): + - global preferences + - user/team/host IDs + - proxy info + + This is for the benefit of Folding@home, + whose application does some core-client-type stuff + (e.g. network communication) and therefore needs this info + + - changed GLOBAL_PREFS::source_project and source_scheduler + from std::string to char[256] + + - factored out PROXY_INFO code into lib/proxy_info.C,h + - moved GLOBAL_PREFS code from client/ to lib/ + + client/ + app_start.C + client_state.C + cs_prefs.C + cs_scheduler.C + prefs.C,h (moved to lib) + proxy.C,h + lib/ + app_ipc.C,h + prefs.C,h (moved from client) + proxy_info.C,h (new) + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + upper_case.vcproj + +David 6 Oct 2004 + - file upload handler was doing too many checks + in the ignore_upload_certificates case + + sched/ + file_upload_handler.C + +David 6 Oct 2004 + - Compile fixes. + + NOTE: on UNIX, it seems to be necessary to remove everything + from client/.deps before compiling, + else you get errors trying to compile prefs.C (which got moved) + Shouldn't something do this automatically? + + + client/ + Makefile.am + lib/ + Makefile.am + proxy_info.h + +David 6 Oct 2004 + - Added files (from Kenichi Miyoshi of NTT) to support + SSL (secure socket layer) communication. + These require an SSL library to use, + so I haven't put these files into the project. + Directions for using them are in + doc/ssl_build.txt + + client/ + ssl_http.C,h + ssl_net_xfer.C,h + +David 6 Oct 2004 + - the key generation function of crypt_prog now uses /dev/random + instead of getting random seed based on time + + lib/ + crypt_prog.C + +David 6 Oct 2004 + - boinc_resolve_filename() fix bug where link file is empty + (from Markku Degerholm) + + lib/ + app_ipc.C + +David 7 Oct 2004 + - return formatted msg in file_upload_handler + + sched/ + file_upload_handler.C + +David 7 Oct 2004 + - Housecleaning of result_report_error() and related code: + - removed RESULT::active_task_state field + - removed RESULT::signal field + - removed "errnum" argument from result_report_error() + - return XML text for upload errors + - clean up logic of result_report_error() + - changed FILE_INFO::had_failure() to optionally return error text + - changed RESULT_COMPUTE_DONE to RESULT_COMPUTE_ERROR + - renamed APP_VERSION::had_failure() to had_download_failure() + (same work WORKUNIT) + - schedule_cpus(): if any start or resume fails, + set must_schedule_cpus so we'll try something else + + client/ + app_control.C + app_start.C + client_state.C,h + client_types.C,h + cs_apps.C + cs_scheduler.C + cs_statefile.C + lib/ + prefs.C + result_state.h + +David 7 Oct 2004 + - Python DB code: don't treat a field as an external ID if + it ends with "_id" (like "seti_id") + + py/Boinc/ + db_base.py + +David 8 Oct 2004 + - Add confirm before delete prefs + + html/user/ + prefs_remove.php + +David 8 Oct 2004 + - GLOBAL_PREFS::parse(): don't erase source project/scheduler info + when parse venue-specific prefs + - compile fix for windows + + client/win/ + wingui_mainwindow.cpp + lib/ + prefs.C + +Lana 8 Oct 2004 + - changed check_set() to take input WORKUNIT instead of DB_WORKUNIT + - added VALIDATOR_ITEM and DB_VALIDATOR_ITEM_SET + - optimized validator to use DB_VALIDATOR_ITEM_SET + + db/ + boinc_db.C, .h + sched/ + validator.C + sample_bitwise_validator.C + sample_trivial_validator.C + +David 9 Oct 2004 + - forum updates (from Janus Kristensen) + + NOTE: to use this new code you'll have to update + your database (see html/ops/db_update.php) + + html/ + inc/ + forum.inc + forum_show.inc + util.inc + ops/ + db_update.php + user/ + edit_forum_preferences_action.php + edit_forum_preferences_form.php + forum_post.php + forum_reply.php + forum_thread.php + unread_post.png (new) + +David 9 Oct 2004 + - added script to cancel a WU + + html/ops/ + cancel_wu.php (new) + +David 9 Oct 2004 + - finished changes to validator to user DB_VALIDATOR_ITEM_SET + + db/ + boinc_db.C,h + sched/ + assimilator.C + db_purge.C + validator.C + +David 9 Oct 2004 + - When parsing a FILE_INFO, always copy the XML to "signed_xml". + Otherwise, when the core client tries to upload the file, + it sends an empty element. + + This fixes a problem in which all uploads fail if a project + uses the config option + + client/ + client_types.C,h + + +David 10 Oct 2004 + - GUI RPC fixes from Sebastian Masch + + client/ + client_types.C + gui_rpc_server.C + +David 11 Oct 2004 + - changed the graphics API to support Mac OS/X + (in which only the original thread can do GUI stuff). + boinc_init_graphics() now takes a function-pointer arg + for the worker function; it runs this function in a new thread, + and the calling thread does the GUI event loop. + + Did this for Windows, and attempted to make the same changes + in the Mac and X11 code. May or may not work. + + - got rid of everything related to the GRAPHICS_INFO structure. + This wasn't being used. + + NOTE: this change doesn't affect the core/app interface. + No need to recompile existing apps. + + api/ + graphics_api.C,h + windows_opengl.C + client/ + app_start.C + lib/ + app_ipc.C,h + prefs.C + +David 11 Oct 2004 + - added GUI RPC + - put extern "C" around filesys.C functions + (so can use from C apps) + + client/ + gui_rpc_server.C + lib/ + filesys.h + gui_rpc_client.C,h + util.h + +David 12 Oct 2004 + - fixes to forum code (from Janus) + - finished checkin of 9 Oct (forgot db_update.php) + + html/ + inc/ + forum.inc + ops/ + db_update.php + user/ + edit_forum_preferences_action.php + edit_forum_preferences_form.php + +David 12 Oct 2004 + - API: more detailed message when do heartbeat giveup + - remove CLIENT_STATE::previous_activities_suspended + - changed work fetch policy to get T work, not 2T + - don't handle SIGTSTP and SIGCONT + + api/ + boinc_api.C + client/ + client_state.C,h + cs_scheduler.C + main.C + win/ + wingui_mainwindow.cpp + +David 13 Oct 2004 + - in global prefs XML, if cpu_scheduling_period_minutes is empty, + set it to 60 (this caused core client to hang in some situations) + - renamed PREFS::cpu_sched_period to cpu_scheduling_period_minutes + (matching what it's called in the XML) + + client/ + cs_apps.C + lib/ + prefs.C,h + +David 13 Oct 2004 + - initial cleanup of x_opengl.C + (e.g. use a timer instead of onIdle) + + api/ + x_opengl.C + +Lana 13 Oct 2004 + - cleanup of boinc validator to handle error conditions + + sched/ + validator.C + +David 13 Oct 2004 + - Get app graphics working in Linux + + api/ + graphics_api.C + gutil.h + reduce.C + x_opengl.C,h + apps/ + Makefile.am + +David 13 Oct 2004 + - upload handler: return error msg to client if can't open log file + + sched/ + file_upload_handler.C + +David 14 Oct 2004 + - Core client: change the poll paradigm a little + OLD: all the poll functions get called, + at least once a second or more often when there's activity, + e.g. network traffic. + The problem: some of the poll functions (e.g. garbage collect) + do a lot of work, and in periods of network activity + they get called hundreds of times/sec. + NEW: all poll functions take a "double now" argument. + Those that only need to run every second can + keep track of the last time called, and return false + if not enough time has gone by + - Clarify meaning of TIME_STATS::active_frac: + it is the fraction of total time + (NOT time that core client is running) + that core client is enabled to work + - CLIENT_STATE::compute_work_requests(): + Don't divide by active_frac in computing work request; + the scheduler already does this!! + - Core client: don't use time_t for times. Use double. + - garbage collect: delete an unused FILE_INFO even if + it has an active PERS_FILE_XFER. + (Delete the PERS_FILE_XFER first.) + - API: fix crashing bug if app_init_data.xml file isn't there + - Graphics API, X version: wait for initial message + before doing anything (since GLUT needs a window) + - scheduler: fix small error in WU wallclock estimate + + api/ + boinc_api.C + x_opengl.C + client/ + app.C,h + client_state.C,h + client_types.C + cs_apps.C + cs_files.C + cs_scheduler.C + file_xfer.C,h + gui_rpc_server.C,h + http.C,h + main.C + net_xfer.C,h + scheduler_op.C + time_stats.h + win/ + wingui_mainwindow.cpp + lib/ + app_ipc.C,h + makefile.gui_test + sched/ + sched_send.C + +Lana 14 Oct 2004 + - improved db_purge to output to multiple archives + + sched/ + db_purge.C + +David 15 Oct 2004 + - GUI RPC: don't crash if bad project URL + - SCHEDULER_REPLY::parse(): tolerate extra lines + at start of scheduler reply (from Volker Hatzenberger) + + client/ + gui_rpc_server.C + scheduler_op.C + +David 15 Oct 2004 + - don't finalize WinSock unless we inited it successfully + + client/win/ + wingui_mainwindow.cpp + +Lana 15 Oct 2004 + - fixed bug in transitioner marking validate state as NO CHECK + for the workunits with the number of results exceeding max total + results + + sched/ + transitioner.C + +David 15 Oct 2004 + - debugged "clone account" feature + + html/ + inc/ + result.inc + user.inc + user/ + account_setup_first.php + account_setup_nonfirst_action.php + create_account_action.php + create_account_form.php + +David 16 Oct 2004 + - Changed semantics of "clone account" features. + As it stood, it let anyone see anyone else's project prefs, + which could be a violation of privacy. + Changed it to be team-centric: + team founders (and only them) have visible project prefs + + html/ + inc/ + team.inc + user.inc + user/ + clone.php + create_account_action.php + create_account_form.php + team_join_action.php + team_join_form.php + +David 17 Oct 2004 + - Deal with fatal GLUT errors (e.g. can't connect to X server) + by calling glut_quit() (which exits the pthread) + rather than exit() or abort() (which exits the app) + + api/ + graphics_api.C + boincglut/lib/glut/ + glut_util.C + README (new) + +David 17 Oct 2004 + - Fix bug in parsing multi-venue general prefs + (from Tim Brown) + + client/ + client_state.C + lib/ + prefs.C,h + +David 17 Oct 2004 + - cleanup of Makefile stuff (from Reinhard Prix) + Got rid of Makefile.in's. + You now have to run _autosetup ; configure to generate them + (and the Makefiles) + + 'make install' now installs header files and libs + under ${prefix}/include and ${prefix}/lib + + + *Makefile.in (removed) + */Makefile.am + configure (removed) + sched_fcgi/* (removed) + +David 18 Oct 2004 + - add web material related to "Team account creation URL"; + warn team founders that their project prefs are public + + html/ + inc/ + team.inc + user/ + clone.php + sample_rss_main.php + team.php + +David 18 Oct 2004 + - more Makfile cleanup + - removed #ifdef HAVE_DIRENT stuff from filesys.h + so apps can use it + + Graphics.Readme (removed) + configure.ac + boincglut/lib/glut/ + Makefile (removed) + api/ + Makefile.Readme (removed) + Makefile.graphics (removed) + clientgui/ + Makefile (removed) + lib/ + Makefile.am + filesys.h + +David 19 Oct 2004 + - generate clientgui/Makefile + + Makefile.am + configure.ac + +David 19 Oct 2004 + - fix bugs in GUI RPCs + + client/ + cs_apps.C + gui_rpc_server.C + +David 19 Oct 2004 + - fix GUI RPC client so it won't get confused if different + projects have the same app, WU or result names + + lib/ + gui_rpc_client.C,h + makefile.gui_test + +David 19 Oct 2004 + - if a Unix graphics-capable app is run standalone, + and it can't connect to X server, + the graphics thread exits but the worker thread continues. + + api/ + graphics_api.C + x_opengl.C + +David 19 Oct 2004 + - GUI RPC: the get_results and get_file_transfers RPC + weren't returning the project_url. + Do this, and parse it on the client side. + + client/ + client_types.C + lib/ + gui_rpc_client.C,h + +David 19 Oct 2004 + - Add to RSS export so Firefox users can bookmark RSS feed + + html/user/ + sample_rss_main.php + +David 19 Oct 2004 + - Added GLUT files for new fonts (from Bruce Allen) + + boincglut/lib/glut/ + Makefile + glut_bitmap.c + glut_hel10.c + glut_hel12.c + glut_tr10.c + glut_tr24.c + +David 19 Oct 2004 + - fixed CPU scheduler bug so that tasks suspended via GUI + actually are suspended + + client/ + cs_apps.C + +David 19 Oct 2004 + - added a -random_order option to the feeder + (this is inefficient if you don't have an index + on result.(server_state, random); + we're using it in the alpha project, where it doesn't matter) + + db/ + boinc_db.C,h + sched/ + feeder.C + +David 19 Oct 2004 + - in error messages from boincglut/ code, + use BOINCGLUT: prefix instead of GLUT: + + boincglut/lib/glut/ + glut_util.c + +David 19 Oct 2004 + - bug fix to RSS feed + + html/ + inc/ + util.inc + user/ + clone.php + sample_index.php + sample_rss_main.php + +David 20 Oct 2004 + - added to GUI RPC reply for results + - fix XML errors in GUI RPC replies (from Gilson Laurent) + - consolidated logic for estimated remaining CPU time + (don't do this in GUI) + + client/ + app.C,h + client_types.C,h + cs_apps.C + cs_scheduler.C + gui_rpc_server.C + win/ + wingui_mainwindow.cpp + +David 20 Oct 2004 + - API: don't delete shared mem in boinc_finish(). + If you do, the graphics thread (which is generally still running) + may seg fault soon thereafter. + + api/ + boinc_api.C + +David 20 Oct 2004 + - API: make the worker thread low priority + (or at least lower than the graphics thread) + + NOTE: on UNIX, the core client nices apps to 20. + Need to rethink this for graphics apps. + + api/ + graphics_api.C + +David 20 Oct 2004 + - removed clientgui stuff from build + + Makefile.am + configure.ac + +David 20 Oct 2004 + - Save user_run_request and user_network_request in client_state.xml + (so always/never/auto settings are persistent) + - Save PROJECT::suspended_via_gui in client_state.xml + (so suspend project is persistent) + - Save ACTIVE_TASK::suspended_via_gui in client_state.xml + (so suspend task is persistent) + + client/ + app.C + client_types.C + cs_statefile.C + +David 20 Oct 2004 + - commented out frac_rate_of_change stuff + (too complicated, not used) + + client/ + app.C,h + app_control.C + +David 20 Oct 2004 + - Graphics API (UNIX) change thread priority the proper way + (from Bruce Allen) + + api/ + graphics_api.C + +David 21 Oct 2004 + - fix to get_file_transfers RPC (from Sebastian Masch) + + client/ + gui_rpc_server.C + +David 21 Oct 2004 + - fix for result_show_graphics RPC + + lib/ + gui_rpc_client.C + +Rom 21 Oct 2004 (boinc) + - Tag for 4.50 release, all platforms + boinc_core_release_4_50 + +David 21 Oct 2004 + - compile fixes + To initialize a char[256], use strcpy(x, ""), not x[0] = NULL. + + client/ + app_control.C + clientgui/ + ViewProjects.cpp + lib/ + gui_rpc_client.C + +David 21 Oct 2004 + - add "nbytes" (i.e., file size) to FILE_TRANSFER in GUI RPC + + lib/ + gui_rpc_client.C,h + +David 21 Oct 2004 + - graphics API (UNIX): + replace assert(x) by + if (!x) { + userclose = 1; + return; + } + the goal is to exit gracefully if there's a graphics problem, + rather than aborting (and interfering with the computation) + - get clientgui to compile on Solaris + + boincglut/ + bglut_event.c + bglutint.h (removed) + boinc_glut.h (new) + glut_cmap.c + glut_fullscrn.c + glut_gamemode.c + glut_win.c + clientgui/ + Makefile.old + +David 21 Oct 2004 + - boinc_receive_trickle_down(): reset have_trickle_down + if don't find any trickle-down messages. + This will make subsequence checks efficient (i.e. no disk check). + - boinc_catch_signal(): for SIGHUP and SIGPIPE, + return (i.e. ignore the signal) rather than exiting. + This affects both the core client and apps that use + boinc_init_diagnostics(). + + api/ + boinc_api.C + lib/ + diagnostics.C + +Jeff 22 Oct 2004 + - Fixed a validator bug that caused result overflow conditions not + to be detected and passed on to the assimilator. Overflow indicators + have not been passed to the master science db since 9/24/2004. + + DB_VALIDATOR_ITEM_SET::enumerate() - added stderr_out to the query + VALIDATOR_ITEM::parse() - added stderr_out to the parse logic + DB_VALIDATOR_ITEM_SET::update_result() - update the result.opaque field + + db/ + boinc_db.C + +David 22 Oct 2004 + - schedule_cpus(): assume that if a task ran for X seconds, + it got X seconds of CPU time. + This makes the schedule work correctly even when + apps don't report their CPU time. + + client/ + client_state.C + cs_apps.C + +David 25 Oct 2004 + - Use double instead of time_t to represent time; + use dtime() instead of time(0) to get time + - better error message on upload init failure + - add lib/result_state.h to VC project + + client/ + client_state.C + client_types.h + cs_prefs.C + cs_scheduler.C + net_xfer.h + pers_file_xfer.C,h + schedule_op.C,h + ss_logic.C,h + lib/ + util.C,h + win_build/ + boinc_gui.vcproj + +David 25 Oct 2004 + - fixed bug that caused app's reported CPU time to always stay at zero + This is a by-product of recent graphics changes: + boinc_init() was getting the current thread handle and assuming + it's the worker thread, which is not the case now. + Fix: use a single variable for worker thread handle; + if boinc_graphics_init() is called, it changes it + + api/ + boinc_api.C,h + graphics_api.C + +David 25 Oct 2004 + - fix compile errors. + I conditionally commented out stuff related to taskbar icon + in the BOINC GUI code, + since taskbar icon doesn't seem to exist on X11/GTK + + api/ + boinc_api.h + clientgui/ + BOINCGUIApp.cpp,h + Makefile.old + +David 25 Oct 2004 + - New features for forums: + - lets you rate messages (binary) + - lets you filter what messages you see, based on ratings + From Janus Kristensen + + NOTE: to use this, you need to update your DB to add some fields + to the forum_preferences table; see html/ops/db_update.php + + html/ + inc/ + forum.inc + ops/ + db_update.php + user/ + edit_forum_preferences_action.php + edit_forum_preferences_form.php + forum_rate.php + forum_thread.php + +David 25 Oct 2004 + - add and fields + to XML for active task (for GUI RPC) + - compile fixes for app graphics (from Bruce Allen and Reinhard Prix) + + boincglut/ + Makefile.am + include/ + Makefile.am (new) + client/ + app.C + lib/ + gui_rpc_client.C,h + +David 26 Oct 2004 + - Fixed the following problem with graphics apps on Unix: + - the worker timer handler (on_timer) was set up in boinc_init(); + this is called in the main thread, + which for graphics apps ends up being the graphics thread. + - the call to getrusage() in on_timer() was returning + the CPU time of the graphics thread, not the worker thread + - there doesn't seem to be a way for one thread to + get the CPU time of another thread + Solution: (unfortunately requires a change to the API): + apps that use graphics now call either + boinc_init_graphics() or + boinc_init_options_graphics() + and DON'T call boinc_init() + + api/ + boinc_api.C,h + graphics_api.C,h + +Rom 26 Oct 2004 (boinc) + - Tag for 4.52 release, all platforms + boinc_core_release_4_52 + + +David 26 Oct 2004 + - Further changes to graphics API + + api/ + boinc_api.C,h + graphics_api.C + +David 26 Oct 2004 + - forum updates (from Jans) + + NOTE: run the DB update to get the right default behavior + + html/ + inc/ + forum.inc + ops/ + db_update.php + user/ + edit_forum_preferences_form.php + forum_post.php + forum_rate.php + +David 26 Oct 2004 + - added "supports graphics" boolean to RESULT GUI RPC reply + + client/ + app.C + lib/ + gui_rpc_client.C,h + +David 28 Oct 2004 + - client GUI: makefile fix, compile fix + - removed debugging stuff from boinc_api.C + + api/ + boinc_api.C + clientgui/ + Makefile.old + lib/ + gui_rpc_client.C,h + +Eric 28 Oct 2004 + - added threading flags and libraries to compile lines. + - upload handler now checks for zero length + + Makefile.incl + aclocal.m4 + api/ + Makefile.am + apps/ + Makefile.am + client/ + Makefile.am + clientgui/ + Makefile.am + lib/ + Makefile.am + sched/ + Makefile.am + file_upload_handler.C + tools/ + Makefile.am + +David 29 Oct 2004 + - update_versions looks for .sig files for single-file applications + (from Eric Myers) + + api/ + graphics_api.h + tools/ + update_versions + +David 29 Oct 2004 + - show app version# in result page + + html/inc/ + result.inc + +David 31 Oct 2004 + - fix clientgui compile on Solaris + - Mac OS/X app graphics fixes + + NOTE: shared memory doesn't seem to work right on Mac OS 10.2. + I've battled this for 2 solid days and am giving up for now. + + api/ + Makefile.am + boinc_api.C + graphics_api.C + macc_app_opengl.C,h + client/ + app_start.C + clientgui/ + stdwx.h + lib/ + util.C + +David 1 Nov 2004 + - Fixed the display of top users/hosts/teams ordered by average credit. + This code wasn't taking into account how long ago + the average credit was computed. + The fix: add functions user_inactive_days() (host/team also) + If the user's expavg_time is older than a week, + call user_decay_credit() to decay the average credit. + - create a PHP function update_average(), + exactly the same as the C++ function. + - add a "Generated on" line at the bottom of cached pages + + html/ + inc/ + cache.inc + credit.inc (new) + host.inc + team.inc + user.inc + user/ + top_hosts.php + top_teams.php + top_users.php + lib/ + util.C + +David 1 Nov 2004 + - PHP caching: call clearstatcache() prior to filemtime(), + just in case the file doesn't exist anymore. + NOTE: this doesn't seem to work. + Sometimes it thinks a cached copy is there, but it's not. + - row4(): don't left/right align + - core client download page: + don't check for user login (this page is cached!!) + + html/ + inc/ + cache.inc + util.C + user/ + download.inc + +David 2 Nov 2004 + - update schema.sql with forum-related changes + + db/ + schema.sql + +David 2 Nov 2004 + - split Dhrystone source into 2 files (from Peter Smithson). + This supposedly prevents compiler optimizations on Win + that give inflated results (I don't see this). + + client/ + dhrystone.C + dhrystone.h (new) + dhrystone2.C (new) + win_build/ + boinc_cli.vcproj + boinc_gui.vcproj + +Karl 2004-11-02 + - added environment options INSTALL_DIR and TOP_SOURCE_DIR for upgrade + + tools/ + upgrade + py/Boinc/ + BOINC_path_config.py.in + +David 3 Nov 2004 + - change trivial validator to not require majority + (this apparently applies even to error results; should fix this) + - avoid crash if get ack for non-existent result + (from Volker Hatzenberger) + + client/ + cs_scheduler.C + sched/ + sample_trivial_validator.C + +David 4 Nov 2004 + - compile fixes + + configure.ac + client + Makefile.am + +David 5 Nov 2004 + - get clientgui to compile on Solaris. + - include + - add NOCLIPBOARD flag in Makefile, + since Solaris WxWidgets doesn't seem to know about clipboard + NOTE: it compiles but crashes + - don't include boinc_api.h in util.C: ??? + + clientgui/ + Makefile.old + ViewMessages.cpp,h + stdwx.h + lib/ + util.C + +David 5 Nov 2004 + - move declaration of boinc_calling_thread_cpu_time() + from boinc_api.h to util.h + + api/ + boinc_api.h + client/ + dhrystone.C + whetstone.C + lib/ + util.h + +Rom 5 Nov 2004 + - Fixed a crashing bug on Solaris since the Window events show up in a drastically + different order than on other platforms. + - Fixed a bug that kept the GUI from closing down during a logoff or shutdown event + - GUI has reached feature partity with the previous GUI. + + clientgui/ + MainDocument.cpp + taskbarex.cpp, .h + BOINCTaskBar.cpp, .h + +Rom 5 Nov 2004 (boinc) + - Tag for 4.54 release, all platforms + boinc_core_release_4_54 + +David 6 Nov 2004 + - include credit.inc where needed + + html/inc + team.inc + host.inc + +Rom 7 Nov 2004 + - Modify the main build environment for Windows to include the new GUI, and remove + the old build environment. + + win_build/ + boinc.sln + boincgui.vcproj + +Karl 2004-11-07 + - add _autosetup steps to nightly-tarball and 'make dist', so that + autogenerated files don't have to be checked into the repository. + + Makefile.am + nightly-tarball + +Bruce Allen 2004-11-07 + - added include credit.inc + + html/user/ + top_teams.php + +David 9 Nov 2004 + - typo in graphics_api.C + - credit.inc is already included in team.inc + + api/ + graphics_api.C + html/user + top_teams.php + +David 9 Nov 2004 + - GUI RPC changes: + - enclose requests and replies in + or tags (make them more legit XML). + - add element to both requests and replies + - add /003 to end of requests messages + NOTE: neither end currently checks for or uses these elements. + - add CLIENT_STATE::version() (returns version #) + - moved win_config.h from client/win to top level, + since version number is needed by components + other than client + + win_config.h (new) + client/ + app_start.C + client_state.C,h + gui_rpc_server.C + win/ + win_config.h (removed) + lib/ + gui_rpc_client,.C + win_build/ + BOINCGUI.vcproj + boinc_cli.vcproj + boinc_dll.vcproj + boinc_gui.vcproj + boinc_guirpc_test.vcproj + boinc_ss.vcproj + upper_case.vcproj + +Rom 9 Nov 2004 + - Add needed files by the new installer + - Convert the Windows binaries from static linking to dynamic linking and + get the installer to include the 7.1 run-times + + client/win/ + dbghelp.dll (removed) + win_build/ + license.txt (removed) + readme.txt (removed) + splash.bmp (removed) + *.vcproj + *.sln + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/ + setup.ico + setup.bmp + win_build/installerv2/redist/0409/ + eula.rtf + readme.txt + win_build/installerv2/redist/Windows/x86/ + dbghelp.dll + +David 10 Nov 2004 + - put brackets around hostname in "can't resolve" error msg + - handle "next N" correctly in forum text search + (from Volker Hatzenberger) + - add RNG code for Windows (in case we ever need to + generate true random bits there) + + client/ + net_xfer.C + html/user/ + forum_text_search_action.php + lib/ + crypt_prog.C + +Rom 10 Nov 2004 + - Remove the old VC 6.0 build files + - Include the boinc_gui project within the boinc solution again to ease + debugging + - Update the new installer to shutdown and uninstall the BOINC + service during uninstall. + + win_build/ + *.dsp (Removed) + *.dsw (Removed) + boinc_gui.vcproj + BOINCGUI.vcproj + boinc.sln + +Rom 10 Nov 2004 + - Create a custom action to copy account files from a specific location + when the ACCOUNTS_LOCATION public property is defined. + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/Windows + Accounts_CopyFiles.vbs + +David 11 Nov 2004 + - error out compile if no file lock mechanism + + client/ + file_names.C + lib/ + filesys.C + +David 11 Nov 2004 + - compile fixes and cleanup for Mac + + api/ + boinc_gl.h + graphics_api.C + gutil.C + mac_app_opengl.C,h (removed) + mac_carbon_gl.C,h (removed) + reduce.C + boincglut/lib/glut/ + glutint.h + clientgui/ + MainDocument.cpp + Makefile.old + +Rom 12 Nov 2004 + - New Installer: Set screensaver to the BOINC screensaver + - New Installer: Detect the presence of the old BOINC installer and warn the + user to uninstall the old BOINC. + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/Windows/ + BOINC.vbs + +Rom 12 Nov 2004 + - On Windows, BOINC should not prompt for a project if non exist. + - On Windows, remove the -install and -uninstall from the commandline + since the installer now takes care of it. + + client/ + main.C + cd_cmdline.C + client/win/ + win_service.cpp + +David 12 Nov 2004 + - bug fixes for admin web interface (from Bruce Allen) + - change GUI RPC port number from 31416 to 1043 + - remove Mac files from Makefile + + api/ + Makefile.am + client/ + gui_rpc_server.C,h + html/ + inc/ + db_ops.inc + ops/ + db_action.php + lib/ + gui_rpc_client.h + +David 12 Nov 2004 + - booleans in config.xml are represented as 1 + ( still supported for now) + + html/ + inc/ + host.inc + util.inc + user/ + create_account_action.php + create_account_form.php + results.php + sched/ + sched_config.C + +David 12 Nov 2004 + - clear need_validate in all cases + + sched/ + validator.C + +Rom 12 Nov 2004 + - Fixed a bug that kept people from being able to attach to a new project + because of a control ID change. + - Fix the reference to gui_rpc_client.h in the project file. + + clientgui/ + ViewProjects.cpp + win_build/ + BOINCGUI.vcproj + +Rom 12 Nov 2004 + - Bring the screensaver up to date by adding diagnostics support, exception support, + and stackwalker support. + - Include the ability for the screensaver to make GUI RPC's. + - Convert the MFC style trace statements to BOINCTRACE statements. + - Give the ability for the screensaver to log to logfiles. + - Give the ability for the screensaver to track memory allocations and dump leaks + to the log file. + + client/win/ + win_screensaver.cpp + lib/ + diagnostics.h + win_build/ + boinc_ss.vcproj + +Rom 13 Nov 2004 (boinc) + - Tag for 4.55 release, all platforms + boinc_core_release_4_55 + +Bruce Allen 13 Nov 2004 + - Fixed, modified, tested script to remove workunits. + Linked to main ops page. + - Fixed links at bottom of workunits page, showing outcomes of results. + - Added tabular description of tables to the database form page, + longer clause box + - Added fix (commented out) to get pictures for systems without + TrueColor support (GD v 2) + - Fix to db_action.inc so it works under PHP<4.3.0 + + html/ops/ + cancel_wu.php (removed) + cancel_wu_form.php + cancel_wu_action.php + index.php + db_form.php + html/inc/ + db_ops.inc + profile.inc + db_action.inc + +Rom 14 Nov 2004 + - Updated the core screensaver code to use the GUI RPC's instead of passing + Window messages. + - Added two new GUI RPC's, set_screensaver_mode, and get_screensaver_mode. + - Added ID tags to the top of several files. + - Cleanup screensaver code + + api/ + windows_opengl.C + client/ + gui_rpc_server.C + main.C + ss_logic.C + client/win/ + boinc_ss.rc + win_screensaver.cpp, .h + win_util.cpp, .h + lib/ + gui_rpc_client.C, .h + +David 14 Nov 2004 + - remove hardwired font sizes from web code + + html/ + inc/ + forum.inc + forum_show.inc + ops/ + cancel_wu_action.php + +David 14 Nov 2004 + - improve account-creation email msg + - login_action.php allows authenticator to be passed as GET arg + + html/ + inc/ + util.inc + user/ + login_action.php + +David 14 Nov 2004 + - Fix for a validator bug pointed out by Bruce Allen: + After a call to check_set(), + update results whose outcome was changed to VALIDATE_ERROR + or whose validate_state was set to VALID or INVALID, + whether or not a canonical result was found. + - Add stack-trace code to Unix signal handler + + lib/ + diagnostics.C + sched/ + validator.C + +David 14 Nov 2004 + - changed default download page link to point to BOINC site + + html/user/ + intro.php + sample_index.php + +Rom 14 Nov 2004 + - Update screensaver so that it'll pass target Window Station and + Desktop to the graphics app via the CC, the CC code still needs + to be written. + - When the shared memory segment for the graphics channel is updated + to include the Window Station and Desktop the apps will now be able + to traverse the Window Station/Desktop boundry on Windows NT based + platforms. I still need to run this on a 9x platform and see if + I need to change the API calls into LoadLibrary/GetProcAddress calls. + - Update the diagnostics header so it can co-exist with the wxWidget + library. + + api/ + windows_opengl.C + client/ + gui_rpc_server.C + client/win/ + win_screensaver.cpp + lib/ + diagnostics.h + gui_rpc_client.C, .h + win_build/ + boinc_guirpc_test.vcproj + boinc_ss.vcproj + +Bruce 15 Nov 2004 + - Work on documentation for config.xml file. + Add explanation, missing material. More work needed. + - Added time zone to 'last modified' date. + + doc/ + configuration.php + docutil.php + +David 15 Nov 2004 + - some times were being read/written as ints instead of double + (from Sebastian Masch) + This fixes a bug of giving up on uploads too soon + + NOTE: the time returned by dtime() is NOT THE SAME AS UNIX TIME. + YOU CAN'T MIX AND MATCH. REMEMBER THIS!!!! + + client/ + client_types.C + pers_file_xfer.C + win/ + wingui_mainwindow.cpp + lib/ + gui_rpc_client.C,h + +David 15 Nov 2004 + - get rid of time(0) as much as possible + + client/ + app_control.C + client_types.C + cs_data.C + net_xfer.h + +David 15 Nov 2004 + - assimilator: after each enumeration of WUs, do a COMMIT. + This will hopefully fix a bug where a WU would appear + in an two enumerations in succession + (this happens when the enumerations are short, + i.e. when the assimilator is nearly caught up). + + sched/ + assimilator.C + +Rom 15 Nov 2004 + - Update screensaver logic in the core client to pass back the error + code to the screensaver instead of trying to also be a screensaver + - Remove the screensaver code from the old GUI + - Update the new setup to include the symbol files by default + - Update the diagnostics header so that BOINCTRACE is __noop in cases + where files are part of the STL or MS CRT when being compiled as part + of a wxwidget application like the boincmgr application. + + client/ + gui_rpc_server.C + ss_logic.C, .h + client/win/ + win_screensaver.cpp + win_mainwindow.cpp, .h + lib/ + diagnostics.h + win_build/ + boinc_gui.vcproj + win_build/installerv2/ + BOINC.ism + +David 16 Nov 2004 + - Validator bug: look for file name in xml_doc_out, not xml_doc_in + + sched/ + validate_util.C + +Bruce 16 Nov 2004 + - Fix bug in ops pages displaying counts of zero if 'additional + clauses' includes string names such as name='first_workunit' + + - Result summary pages corrected for boundary condition errors in + arrays and to cover additional result.outcome==6 case. Result + summaries now sum correctly over outcomes! + - Add validate state to result tables, color code for validate + state information + html/inc/ + db_ops.inc + util_ops.inc + + html/ops + db_action.php + +David 16 Nov 2004 + - compile fixes for Linux, Solaris + + lib/ + diagnostics.C + gui_rpc_client.C + +Rom 17 Nov 2004 + - Update screensaver so that it'll work across + Window Station and Desktop boundries. + Note: The screensaver will now work with the password checkbox + enabled on NT machines. + - Update screensaver so that it reports all error conditions + that the old GUI used to report. + - Update screensaver so that if BOINC isn't running + and graphics capable apps + it'll display the result name and percent completed. + NOTE: this hasn't been tested yet. + - Updated BOINC Manager with some const changes. + - Updated BOINC Manager so that it can detect which Window Station + and Desktop it is currently executing in, + and pass that info off to BOINC when needed. + - Updated the CC so that it doesn't try to act like a screensaver anymore, + so now we can have a unified screensaver experience. + - Updated the CC to pass the Window Station and Desktop information + to the science application so it can transition into the screensaver + desktop when the user + has the password checkbox checked on NT based platforms. + - Updated the shared memory structures for passing the extra information + that is now needed. + - Updated the GUI RPC's to require Window Station and Desktop information + when needed. + + NOTE: A lot of this stuff hasn't been tested on Win9x yet. + + api/ + windows_opengl.C + client/ + app.h + app_control.C + app_graphics.C + gui_rpc_sever.C + ss_logic.C, .h + client/win/ + boinc_ss.h + boinc_ss.rc + win_screensaver.cpp, .h + win_mainwindow.cpp + clientgui/ + BOINCGUIApp.cpp, .h + BOINCTaskbar.cpp + MainDocument.cpp, .h + WorkView.cpp + lib/ + app_ipc.C, .h + gui_rpc_client.C, .h + gui_test.C + +Bruce 17 Nov 2004 + - Fixed RESULT form on ops page so that it now covers correctly + all possible states (including ones with value 0) and + eliminated the 'Unknown' values that previously appeared on the form. + These were in error. This is a clean fix, by defining (for example) + outcome='CHOOSE_ALL', eg a non-numerical value, for the 'select + ALL' case. + - Added a select menu for validate_state to the RESULT form. + - In forms for outcome, validate_state, client_state and + server_state, indicate numeric values (helpful if using + additional clauses for more sophisticated queries) + html/inc/ + db_ops.inc + html/ops/ + db_form.php + +David 17 Nov 2004 + - Slight repackaging of Rom's last checkin: + - Define a structure GRAPHICS_MSG that includes + mode, window_station and desktop. + Pass around references to this struct + instead of the items separately. + - Revert to a single array "xml_graphics_modes" + - comment out BOINCTRACE calls. These don't work on Linux + + api/ + windows_opengl.C + x_opengl.C + client/ + app.h + app_control.C + app_graphics.C + client_state.C + gui_rpc_server.C + ss_logic.C,h + lib/ + app_ipc.C,h + gui_rpc_client.C + +Rom 17 Nov 2004 + - Bug Fix: The screensaver wouldn't shutdown when just the application + window was dismissed by moving the mouse two or three pixels. + There is a new graphics message called MODE_QUIT which is treated + like MODE_HIDE_GRAPHICS by the app, + but the CC sees the message and tells the screensaver to stop. + + api/ + windows_opengl.C + client/ + app_graphics.C + ss_logic.C + lib/ + app_ipc.C, .h + +David 17 Nov 2004 + - UNIX applications graphics: + Use atexit(), setjmp() and longjmp() to pop the stack + and resume within xwin_graphics_event_loop() + when exit() is called in the graphics thread. + + This means that we can use the standard GLUT library, + not our modified version. + + Thanks to Bruce Allen for suggesting this!!!! + + [Note inserted by Bruce the next day. ANSI-C 4.6.2.1 says: "The + longjmp function ... The longjmp function should not be called in + an exit handler (i.e., a function registered with the atexit + function (see §4.10.4.2)), since it might jump to some code which + is no longer in scope." This should be OK on OSes that delay image + teardown until after calling the handler functions, provided that + the routine calling exit() has cleaned up its memory. An + alternative might be to use dlopen() or the loader to replace the + calls to exit() with a BOINC routine.] + + api/ + gutil.C + x_opengl.C + client/ + app_control.C + lib/ + gui_rpc_client.C + gui_test.C + makefile.gui_test + +David 17 Nov 2004 + - call atexit() in restart(), + since this entry has been popped off the atexit "stack" + + api/ + x_opengl.C + +David 17 Nov 2004 + - compile fixes for Mac OS X + Applications graphics (at least for SETI@home) work on Mac now. + The close button is disabled when launch from cmdline (why??) + - remove references to boincglut/ + - GUI RPC client: don't try to send RPC request if not connected + + api/ + Makefile.am + boinc_gl.h + graphics_api.C + x_opengl.C + client/ + app_graphics.C + clientgui/ + BOINCGUIApp.cpp + MainDocument.cpp,h + Makefile.old + ViewWork.cpp + lib/ + gui_rpc_client.C,h + +Rom 17 Nov 2004 + - Bug Fix: When BOINC is running as a service, make sure that we can display + some simple status messages about the progress of the projects. + - Bug Fix: Allow the apps to detect if they can support graphics, because + of the Window Station and Desktop change, if not report back to the + CC that graphics are not supported. + - Bug Fix: Configure the screensaver so that is can reestablish a connection + to the CC in case the core client is shutdown in the background, and + restarted. + - Bug Fix: Use the project name in the system status message instead of the + result name. + - Bug Fix: Screensaver now works even when BOINC is running as a service. + NOTE: This currently only works if the account is LocalSystem and + Interact with Desktop is checked. + - Bug Fix: When the service account is switched to an account that cannot + support interact with desktop make sure the screensaver can display + the project status. + - Bug Fix: If we have to report back that graphics are not supported in + the current configuration, don't create the window, it only makes + the system jittery. I suspect it has something to do with the + possibility of garbage UI events being sent to the application. + - Remove remain screensaver logic from the old GUI. + + api/ + windows_opengl.C + client/ + ss_logic.C, .h + client/win/ + win_screensaver.cpp + wingui_mainwindow.cpp + lib/ + gui_rpc_client.h + +Bruce 18 Nov 2004 + - Bug fixes (thanks to Jens Seidler): set cross project id (CPID) + to random value when creating user account from Administrator form, + and lower_case email address before inserting into database. + Added script make_emails_lowercase.php which + goes through user database and changes email addresses to lowercase, + and sets CPID to a random string if it is currently 0 (empty). + It should be safe to run this script any number of times, + on a damanged or undamaged user database, with no side effects. + - 'Fixed' py/Boinc/add_util.py so that it takes cross_project_id + value out of XML file. Current default value is '0'. + Karl, could you fix this to make it a random string? + - validator.c sets global variable int boinc_validator_debuglevel + for use by check_set and check_match functions. + + html/ops/ + create_account_action.php + make_emails_lowercase.php + + py/Boinc/ + add_util.py + + sched/ + validator.C + +David 18 Nov 2004 + - Changed PHP code so that the "generated on" text + produced for cached pages appears inside the tag + for HTML pages, and doesn't appear at all for XML output. + + Cached pages must now call page_tail(true) rather than page_tail(). + This function, not end_cache(), prints the "generated on" text. + + - split some stuff out from util.inc into new .inc files + + html/ + inc/ + cache.inc + email.inc (new) + image.inc (new) + team.inc + util.inc + user/ + account_created.php + confirm_email_change.php + create_account_action.php + edit_email_action.php + edit_form_preferences_action.php + hosts_user.php + login_action.php + mail_passwd.php + sample_index.php + sample_status.php + show_user.php + team_display.php + team_email_lsit.php + top_*.php + +David 18 Nov 2004 + - UNIX app graphics: only call glutInit() once (avoid error msg) + - UNIX: if app exits with external signal, restart it + - check_suspend_activities(), check_suspend_network(): + don't do anything more than once every 5 seconds + - call do_something() every 0.1 second, + to improve response time to GUI RPCs + + api/ + x_opengl.C + client/ + app_control.C + app_graphics.C + client_state.C,h + cs_prefs.C + main.C + +Bruce 19 Nov 2004 UTC + - Clean fix automake/autoconf to build graphical core client. + David, I don't have a Mac OSX box handy to test this on. + I followed your hints in Makefile.old. + If you need to modify the Mac build flags, + it is trivial, just search for ${host} in configure.ac and you'll see. + - Removed obsolete aclocal.m4 file from CVS: + it is build by the ./_autosetup script + - Added some more files to .cvsignore + + .cvsignore + aclocal.m4 + configure.ac + clientgui/ + Makefile.am + +Rom 19 Nov 2004 + - Cleanup several warnings in the clientgui when all warnings are turned on in gcc. + - Added a /s parameter to the clientgui which will hide the main window on startup + for those OS's that support a system tray in there GUI. + - Added a new GUI RPC called which requests BOINC to quit nicely. + + client/ + gui_rpc_server.C + clientgui/ + BOINCBaseView.cpp + BOINCGUIApp.cpp, .h + BOINCListCtrl.cpp, .h + BOINCTaskCtrl.cpp, .h + MainDocument.cpp + MainFrame.cpp + ViewMessages.cpp + ViewProjects.cpp + ViewResources.cpp + ViewTransfers.cpp + ViewWork.cpp + lib/ + gui_rpc_client.C + +Bruce 19 Nov 2004 UTC + + - Added nice macro (wxWidgets.m4) to CVS for detection of wxWidgets. + Now switch off clientgui build (with nice warning) if wxWidgets is + not found. (thanks Reinhard Prix) + - Use outcome of pthread tests and corresponding flags to set pthreads + CFLAGS correctly. + - New user database email-lowercasing script more efficient, handles case + where user.id is not contiguous. + + configure.ac + Makefile.am + m4/ + wxWidgets.m4 + html/ops/ + make_emails_lowercase.php + +Bruce 20 Nov 2004 UTC + + - Added static volatile const char *BOINCrcsid="$Id:..."; string to + the top of all .C files. This means that 'string' or 'ident' + run on an executable will tell you the exact file versions used + in building it, since CVS replaces $Id:... with a complete version ID + string. Declaration is volatile so that the compiler won't remove + it even under agressive optimizations. + + - Fixed initialization bug where calling boinc_init_graphics() + would not initialize options correctly, creating + lockfile/finished havoc in graphics APP. Thanks Reinhard! + David, please bless this. + + ALL files of form *.C affected. + api/ + boinc_api.C + +Rom 20 Nov 2004 + - Added VM size detection for NT platforms to the BOINC API set. + - Changed the STARTUPINFO structure in the CC CreateProcess call to hide + the console window created for the science applications. + + api/ + boinc_api.C + client/ + app_start.C + +David 20 Nov 2004 + - web fix + + html/user/edit_email_form.php + +Rom 20 Nov 2004 + - Bug Fix: Undue the change made this morning relating to the STARTUPINFO structure, + specifying the startup parameters causes the first call to ShowWindow to be + ignored, which means we would have to make a second call. This however, isn't + the bug E@H ran into. + - Bug Fix: With older clients that didn't specify the window station and desktop in + the share memory buffer, we ended up calling both OpenWindowStation and OpenDesktop + with their lpszWindowStation and lpszDesktop parameters being an empty string, which + is an undefined behavior. Apparently Windows returns a valid handle instead of NULL + and sends the application into another window station and desktop. + + api/ + windows_opengl.C + client/ + app_start.C + +David 20 Nov 2004 + - Fix check_suspend_activity() logic when benchmarks running + - Old Win GUI: restore "Show Graphics" code + + client/ + client_state.C,h + cs_prefs.C + win/ + wingui_mainwindow.cpp + +David 21 Nov 2004 + - Change team-related PHP code so that it recomputes + "nusers" by doing a select count(*) when a user + quits or joins a team. + Also cleaned up skanky PHP code. + + html/ + inc/ + team.inc + util.inc + user/ + team*.php + +Rom 21 Nov 2004 + - Bug Fix: I think this fixes the "Could not find item xxx in list view" + error messages for all tabs. + After detecting a disconnected state, + resrt the cache to and cache from variables + since the listview control does not reissue a cache request + when all the items have been deleted. + + clientgui/ + BOINCBaseView.cpp + +David 22 Nov 2004 + - print error msg if app_info.xml has unparsed text + - support notion of "batch" in work creation + - shorten messages in BOINC manager + + api/ + boinc_api.C + boinc_gl.h + client/ + cs_statefile.C + clientgui/ + BOINCTaskBar.cpp + MainDocument.cpp + MainFrame.cpp + Makefile.old + ValidateAccountKey.cpp + ValidateURL.cpp + ViewMessages.cpp + ViewProjects.cpp + ViewTransfers.cpp + ViewWork.cpp + db/ + boinc_db.h + tools/ + backend_lib.C + create_work.C + +Karl 2004-11-22 + - changed parsing for to accept + or 1 + + client/ + scheduler_op.C + +Rom 22 Nov 2004 + - Fix a warning with the scheduler_op file + - Bug Fix: Context menu should now work on Win9x machines + - Bug Fix: Tooltip should now work of Win9x machines + - Bug Fix: BOINC Manager should now startup when the core client is not detected + - Bug Fix: Service setup has been temporarily disabled + + client/ + scheduler_op.C + clientgui/ + BOINCGUIApp.cpp, .h + BOINCTaskBar.cpp, .h + MainDocument.cpp, .h + stdwx.h + clientgui/msw/ + taskbarex.cpp, .h + lib/ + gui_rpc_client.C, .h + win_build/installerv2/ + BOINC.ism + +Bruce 23 Nov 2004 UTC + - Build boinc zip compression library as part of normal + ./configure && make process + - make install now installs libboinc_zip.a and boinc_zip.h + as part of normal make install + - Unix boinc client and boinc gui had the same name, + eg boinc_4.56_i686-pc-linux-gnu + I have changed this so that it is now + boinc_client_4.56_i686-pc-linux-gnu and + boinc_gui_4.56_i686-pc-linux-gnu. + If the change from boinc_ to boinc_client_ causes any pain, + please just modify CLIENT_BIN_FILENAME in configure.ac + - Removed -O3 as required compilation flag in building client gui. + Only needed for client (to optimize benchmarking routines). + - Removed un-necessary zip/configure.ac and zip/Makefile and zip/config.h + and config.h.in + - Added .cvsignore file for zip/ directory. + - Modified api/boinc_gl.h to use config.h to get correct include path + for glut.h + - Added double-inclusion protection for config.h + to avoid some warning messages + - Run autoheader BEFORE automake and autoconf in _autosetup + - Removed huge number of extraneous Makefile.in's + - Changed production of config.h from AM_ to AC_ macro + + _autosetup + configure.ac + Makefile.am + config.h + config.h.in (removed) + clientgui/ + Makefile.am + zip/ + Makefile.am + configure.ac (removed) + Makefile (removed) + .cvsignore (added) + config.h (shouldn't be here anyway) + config.h.in (shouldn't be here anyway) + api/ + boinc_gl.h + +Rom 23 Nov 2004 + - Bug Fix: Fix a crashing condition for both the screensaver and core client on + Win9x machines due to the Window Station and Desktop code. + - Bug Fix: Setup the core client to redirect stderr and stdout even though it is + running as a console. It's useful to do this in the case of where the core + client is launched from the boincmgr and so stderr and stdout cannot be + redirected. + + client/ + main.C + client/win/ + win_screensaver.cpp + clientgui/ + BOINCGUIApp.cpp + +Rom 23 Nov 2004 (boinc) + - Tag for 4.56 release, all platforms + boinc_core_release_4_56 + +David 23 Nov 2004 + - boinc_init_graphics_options() can be called with a NULL + worker_main argument. + This can be used by a separate graphics app. + + api/ + graphics_api.C + client/ + net_stats.C + +David 23 Nov 2004 + - Remove the dependencies of a project on a source or build tree. + This involves: + - Don't copy boinc_path_config.py to project/bin + - Copy a bunch of files from source/py/Boinc to project/bin: + add_util.py, boinc_db.py, boinc_project_path.py, etc. etc. + - put keys in home/projects/PROJECT/keys, not in home/keys + - socket.gethostname() seems to return the full domain name on Linux. + Strip off the domain part for log_HOST etc. + - On project creation, symlink bin/stop and status to start, + rather than copying the file + + py/Boinc/ + database.py + setup_project.py + tools.py + sched/ + start + tools/ + make_project + +Bruce 24 Nov 2004 UTC + - Added const char RCSID string to all *.c files, + so that 'ident' and 'strings' can identify file version numbers. + +David 24 Nov 2004 + - Fix the "upgrade" script. + You now run it in the source directory, not the project dir. + It now takes the project name (and optional root path) as arg + - Don't run "start" at the conclusion of upgrade + - make_project: don't copy upgrade to project/bin + - feeder: if restart enum in the middle of a scan, + return and sleep; don't keep trying 100 times + - feeder: make enum limit a #define + (should be a cmdline arg too) + + py/Boinc/ + setup_project.py + sched/ + feeder.C + tools/ + upgrade + +David 24 Nov 2004 + - don't run benchmarks if activities suspended (from Ian Hay) + - avoid buffer overrun in GUI RPC server + + client/ + cs_benchmark.C + gui_rpc_server.C + +David 24 Nov 2004 + - bug fix in graphics API (from Reinhard) + "first" should be init to true + + api/ + x_opengl.C + +Karl 2004-11-25 + - For add_util, when cross_project_id is default or 0, generate a random + UUID. + + Py/Boinc/ + tools.py (added make_uuid) + add_util.py + +Bruce and Reinhard 2004-11-26 + + - Fixed autoconf/automake build process so that it works correctly + under Mac OSX. Also make dist now works (make distcheck still + broken). Karl, since you were the last + person to fix up this mess, how about taking a look?? + - Added placeholders in sched/ for user: assimilator_placeholder.C + and validator_placeholder.C. + These are built by the build system, but can be replaced by user + code as desired. + + Makefile.am + configure.ac + api/ + Makefile.am + client/ + Makefile.am + clientgui/ + Makefile.am + db/ + Makefile.am + m4/ + Makefile.am + acx_pthread.m4 + ax_check_gl.m4 + ax_check_glu.m4 + ax_check_glut.m4 + ax_lang_compiler_ms.m4 + kc_mysql.m4 + sah_header_stdcxx.m4 + test/ + Makefile.am + zip/ + Makefile.am + zip/unzip/ + Makefile.am + zip/zip/ + Makefile.am + test/ + boinc_db.inc [removed: this file is autogenerated] + +Bruce 2004-11-27 + + - Added a -dont_update_db command-line option to assimilator.C + which prevents it from updating the database, and so is useful + for testing. + + sched/ + assimilator.C + +Karl 2004-11-27 + - Fixed db_base.py to work with Python-MySQLdb 1.x + + py/Boinc/ + db_base.py + +Bruce 2004-11-28 + - Sanity check args to parse_str(doc, tag, ...) and return false + if !doc, !tag, or !strlen(tag) + lib/ + parse.C + +Bruce 2004-11-29 + - Added command-line options -preserve_wu_files and -preserve_result_files + to the file deleter. This are useful to implement + for all input or output files respectively. + - Documented file tag. + - file_deleter logs strerror(errno) if unable to remove a result file. + - Admin database ops page: show all three file delete states, add additional + sort options to results page, better internal bug checking on state lists, + move result summary to top of WU detail page, show WU delay bound in + human-readable form, show cross_project_ID in user table. + sched/ + file_deleter.C + doc/ + files.php + html/inc + db_ops.inc + util.inc + +David 29 Nov 2004 + - scheduler: use safe_strncpy instead of strncpy for copying + stderr_out and xml_doc_out. + + client/ + test_http.C + test_net_xfer.C + doc/ + various + sched/ + assimilator.C + handle_request.C + +Jeff 29 Nov 2004 + - Log the number of WUs assimlated at the end of each WU enumeration. + + sched/ + assimilator.C + +Jeff 29 Nov 2004 + - Added back the "-noinsert" option, which had somehow disappeared. + + sched/ + assimilator.C + +Bruce 30 Nov 2004 + - Fixed errors in db_purge. If -max argument >= 1000, then it didn't + work because purged_workunits was reset to zero in do_pass(). Also, + max_number_workunits_to_purge was un-initialized if no -max argument + was given. David, please double-check these changes. + - Show all possible validate states on ops result summary page + html/inc + db_ops.inc + sched/ + db_purge.C + +David 30 Nov 2004 + - fixed a bug in DB_VALIDATOR_ITEM_SET::update_result(): the lines + "server_state=%d, outcome=%d, opaque=%lf" + "where id=%d", + produce a bad SQL query (e.g. opaque=0.0000where id=4) + - fixed a bug in the transitioner: + TRANSITIONER_ITEM::enumerate() and query() + weren't reading "need_validate". + In some (rare) cases this would cause the flag + to get incorrectly cleared by the transitioner + + NOTES: + - ALL VALIDATORS SHOULD BE RECOMPILED + - RECOMPILE THE TRANSITIONER + + db/ + boinc_db.C + client/ + cs_account.C + main.C + +David 30 Nov 2004 + - Fixed a major bug in the whole damn system (thanks to Rattledagger) + If we have target_results successful results for a WU, + and there's no consensus, we need more results!! + There was no mechanism to produce them. + Fix: in the validator, if we call check_set() and there's + no consensus, and #success results == target_nresults, + increment target_nresults + + Also had to add code to VALIDATOR_ITEM::enumerate() and parse() + to get target_nresults from the DB + + db/ + boinc_db.C + sched/ + validator.C + +David 1 Dec 2004 + - Use exclusively UNIX time (1970-origin) on Windows. + Previously we were using times in both this format + and in Windows 1601-based format. + This is a bug waiting to happen (in fact, it had already happened). + - convert a few remaining absolute times from int to double + - Add a function validate_time(). + This sees if its arg is in Windows format + (greater than now + 1000 days) + and if so converts it to UNIX format. + - Call validate_time() after parsing all absolute times + - in old GUI, show %done of file uploads correctly + + NOTE: the time-checking code can be removed in the next major version + + client/ + client_types.C,h + pers_file_xfer.C,h + win/ + wingui_mainwindow.cpp + lib/ + util.C,h + +David 1 Dec 2004 + - UOTD screening: only show active users + - fix log grep pages + + html/ + ops/ + profile_ops.php + show_log.php + user/ + html.php + sched/ + validator.C + +Bruce 2 Dec 2004 + - For unreturned results, show reporting deadline on user page. + - Add additional state possibilities. + - Explain validate error state. + + html/ + inc/ + resuls.inc + user/ + explain_state.php + +Rom 2 Dec 2004 + - Bug Fix: Each view now contains a display cache; the display cache + is synchronized during the regularly scheduled list render event. + The control grabs the necessary information from the cache instead + of cycling down to the document. Due to the way listviews were + implemented on some platforms I believe this will fix some refresh + problems where the data wasn’t being updated in a timely manor. + This also had the added benefit of increasing performance on displaying + updates. + - Fill in the missing piece for the memory leak detection to proplerly + display the file and line number information per allocation for the + GUI on Windows + - Rename the CC and GUI on all platforms to match that of Windows. + + / + configure.ac + clientgui/ + BOINCBaseView.cpp, .h + BOINCGUIApp.cpp + MainFrame.cpp, .h + stdwx.h + ViewMessages.cpp, .h + ViewProjects.cpp, .h + ViewResources.cpp, .h + ViewTransfers.cpp, .h + ViewWork.cpp, .h + clientgui/msw/ + taskbarex.h + +Bruce 2 Dec 2004 + - Added emacs mode statement to the top of this file to eliminate tabs + in favor of spaces! + - Fixed boinc_zip.h so that it works correctly under both C++ and + C under both Unix and Win32. + - Modified admin ops pages so that workunit displays transition time, + and target_nresults. Results pages displays deadline not received time + for results that are still in progress or were never received. + - Fixed glut detection bug in configure script + - Made php script function correctly under both php4 and php5. + + checkin-notes + configure.ac + zip/ + boinc_zip.h + html/ + inc/ + db_ops.inc + util_ops.inc + +Rom 2 Dec 2004 + - Add in the rcsid tag to all the boincmgr source files and the screensaver + for windows. + - Bug Fix: Fix a messages bug where the client would not attempt to + get the latest message state after a connection failure until a new + message was logged. + - Cleanup some of the statusbar update code, wxWidgets already had a function + to do that work. + - Bug Fix: Fix the socks proxy enable button, it was referencing the HTTP proxy + control instead of the socks proxy control. ( I thought I had fixed this + awhile ago ) + + client/win/ + win_screensaver.cpp + clientgui/ + BOINCBaseView.cpp + BOINCGUIApp.cpp + BOINCListCtrl.cpp + BOINCTaskCtrl.cpp + DlgAbout.cpp + DlgAttachProject.cpp + DlgConnection.cpp + DlgOptions.cpp + MainDocument.cpp + MainFrame.cpp + stdwx.cpp + ValidateAccountKey.cpp + ValidateURL.cpp + ViewMessages.cpp + ViewProjects.cpp + ViewResources.cpp + ViewTransfers.cpp + ViewWork.cpp + clientgui/msw/ + taskbarex.cpp + lib/ + stackwalker_win.cpp + +David 2 Dec 2004 + - added script for fixing the problem where some workunits + have target_nresults successful results and no consensus. + The script finds WUs in this state and sets their need_validate flag; + the validator (MAKE SURE YOU'VE RECOMPILED WITH CURRENT SOURCE) + will increment target_nresults and trigger the transitioner, + which will create a new result. + + + html/ops/ + repair_validator_problem.php + +Bruce 2 Dec 2004 + - Added logging of remaining result.outcome==OVER states to logging + output of transitioner. + - Fixed nasty bug in ops pages where top two WU error mask bits were + not being shown in WU summary/detail pages. + - Display some useful Unix times on db query page (helpful in formulating + queries. + + sched/ + transitioner.C + html/ + inc/ + db_ops.inc + ops/ + db_form.inc + +Rom 2 Dec 2004 + - Bug Fix: On certain versions of Windows it might be necessary for the + screensaver to force the foreground window depending on the state in + which the screensaver was launched. This is the slightly less + aggressive way to do this. Ideally the active process is the screensaver + and so therefore can promote another process into the foreground. + + client/win/ + win_screensaver.cpp + lib/ + gui_rpc_client.h + +Rom 2 Dec 2004 + - Fix a setup issue where the screensaver and manager files were not being + removed on uninstall. + + win_build/installerv2/ + BOINC.ism + +Bruce 3 Dec 2004 + - Fixed a nasty bug in the scheduler. Under a number of possible + error conditions, handle_request.C would read only some fields of + and existing request into memory, and then write more of those fields, + some of which were null, back into memory. This had the effect of nulling + out outcome, client_state, exit_status, cpu_time, xml_doc_out, stderr_out, + validate_state, claimed_credit and client_version. The point is that + DB_SCHED_RESULT_ITEM_SET::enumerate() followed by + DB_SCHED_RESULT_ITEM_SET::update_result + did not preserve an 'existing result'. It wiped out the fields above. + + db/ + boinc_db.C + +Rom 3 Dec 2004 + - Add back in trace statements to boincmgr's main frame, so we can begin to + track down the Mac OS X problem. + - Change the screensaver so that it only checks for BOINC's configuration + once. + + client/win/ + win_screensaver.cpp, .h + clientgui/ + MainFrame.cpp + +Rom 3 Dec 2004 + - Change which wxLogTrace prototype we are using in MainFrame.cpp and + enable that trace mask in BOINCGUIApp.cpp + + clientgui/ + BOINCGUIApp.cpp + MainFrame.cpp + +Eric 3 Dec 2004 + - Altered the configure script to generate a config.h that includes + "win-config.h" on WIN32 systems + - Added a file "version.h[.in]" that contains platform independent version + info. + - Made a default "config.h" that tells the user to run configure on + non-windows systems. Includes "win-config.h" on windows systems. + + config.h + version.h + version.h.in + configure.ac + win_config.h + +Bruce 3 Dec 2004 + + - Enabled automatic emailing of CVS diffs to the boinc_cvs email + list. This is done by adding a 'syncmail' script in the CVSROOT/ + directory and adding an extra line at the end of CVSROOT/loginfo. + +Rom 3 Dec 2004 + - Add an additional header for the additional logging prototypes under + wxWidgets + + clientgui/ + BOINCGUIApp.cpp + MainFrame.cpp + stdwx.h + +Bruce 3 Dec 2004 (Thanks Reinhard!!) + - C extern statements so that 'API' header files can be included in C + programs as well as C++. + - Make install now only installs the header files needed for building + the external APIs. + + api/ + Makefile.am + boinc_api.h + graphics_api.h + lib/ + Makefile.am + diagnostics.h + filesys.h + +Rom 3 Dec 2004 + - Fix build break on Windows where VC didn't like a C prototyped function + possibly throwing a C++ exception. + + lib/ + diagnostics.C, .h + +Janus 5 Dec 2004 + - Added forum navigation bar on bottom of threads (users dont need + to scroll up anymore to get back. + - Also made forum_threads.php output HTML 4.01 transitional valid + + html/user/ + forum_threads.php + +Bruce 5 Dec 2004 + + - Redid 'fix' to scheduler bug from 3 December 2004. In fact the + fix was incomplete. In order for it to work as intended, I would + have also had to modify SCHED_RESULT_ITEM::parse to copy the + additional needed fields into the in-memory structure. But this + is fragile. The next time some additional fields are added to the + result table, they would have to be incorporated here as well, to + ensure that SET followed by UPDATE is the identity operation. So + I did a more graceful and robust fix. Simply set result.id=0 for + those results that have already been received or which for other + reasons should not be modified in the database, then skip these + when updating. + + db/ + boinc_db.C [reverted to 1.96 + comments] + sched/ + handle_result.C + + +David 5 Dec 2004 + - show message (DEBUG level) if > 1 result/user/WU situation occurs + - FreeBSD compile fixes (from J.R. Oldroyd) + + client/ + gui_rpc_server.C + net_xfer.C + sched/ + sched_send.C + + +David 5 Dec 2004 + - Improve app CPU time reporting on Win9x (which lacks real calls). + Old: return elapsed time-of-day + New: return elapsed time-of-day during which app was not suspended + - remove working-set arg from get_cpu_time() functions + (we're not returning anything anyway) + + api/ + boinc_api.C + graphics_api.C + client/ + dhrystone.C + whetstone.C + db/ + boinc_db.h + lib/ + util.C,h + +Bruce 6 Dec 2004 [thanks to Bernd Machenschalk!] + + - Fixed 'time to checkpoint' problem under Win32 with pure C code. + It turns out that MS VC++ up to version 4.2 defines bool as INT. + But more recent VC++ defines bool as CHAR. This broke + boinc_time_to_checkpoint() under Win32, when used within pure ANSI + C code, if you treated the return value as a bool. So this patch + defines bool as char if using C under recent MS compilers. + + David, a better solution for API functions that should be + callable from C is to make them return 'int' not 'bool'. + Probably ditto for Fortran. Sigh. + + api/ + boinc_api.h + graphics_api.h + + lib/ + filesys.h + +David 6 Dec 2004 + - removed references to win_config.h from VC++ project files + - removed stuff from Makefiles that generates client/win/win_config.h + (this file isn't used anymore) + + set-version + client/ + Makefile.am + win_build/ + boinc_gui.vcproj + boinc_guirpc_test.vcproj + upper_case.vcproj + +David 6 Dec 2004 + - Added priority field to workunit and result tables. + Can be used to prioritize work dispatch + (implemented; run feeder with -priority_order option) + and to give higher priority to retries (not implemented) + - Added mod_time field to workunit and result tables. + This is stored in a MySQL format (12-char ASCII representation) + Need to add an index for this. + - add "batch" and "priority" args to create_work + - renamed host.workseq_next to host.hr_class + - added "avg_turnaround" field to host table. + Use this to keep track of average result latency. + Use this for "performance homogeneous scheduling" + (neither of these implemented yet) + - add new DB fields to db_dump.C, db_purge.C + - changed "account ID" to "account key" everywhere + - Python code: all Python is now copied to project/bin. + Eliminate the "Boinc" module. + boinc_path_config.py is no longer used by anything + in the project side, and it doesn't exist in project/bin. + - At conclusion of account creation, + send user to the BOINC site to download the core client. + We no longer expect projects to store the core client + in their DB or download directory. + - The email telling users their account key now takes into + account whether this is a new account, + whether it needs to be validated, + whether the user clicked "remind me of my key", etc. + - Web: improved and reorganized the display of general prefs + - client: don't redirect stderr/out on platforms other than Win + - when add project, check for empty URL or authenticator + - removed code (already commented out) that tells the server + what other projects the host is attached to. + This could be viewed as an invasion of privacy. + - create_work: error-check that enough input files are listed + - remove limit of 10 output files + (small change to process_result_template()) + - default uldl_dir_fanout (for new projects) is 1024 + + NOTE: this checkin requires that you update your database. + See html/ops/db_update.php + + TODO: if you type instead of + in a result template it screws things up. + Should use better syntax, and error-check. + + client/ + cs_scheduler.C + main.C + db/ + boinc_db.C,h + constraints.sql + schema.sql + html/ + inc/ + db_ops.inc + email.inc + host.inc + prefs.inc + util.inc + ops/ + create_account_action.php + db_update.php + user/ + account_created.php + account_setup_first.php + account_setup_first_download.php + create_account_action.php + get_passwd.php + mail_passwd.php + py/Boinc/ + add_util.py + database.py + projectxml.py + setup_project.py + tools.py + sched/ + db_dump.C + db_purge.C + feeder.C + file_upload_handler.C + handle_request.C + main.C + sched_send.C + sched_util.C,h + server_types.C,h + transitioner.C + tools/ + backend_lib.C,h + create_work.C + make_project + process_result_template.C + update_versions + xadd + +Rom 6 Dec 2004 + - Like so many other things in life, breaking out the MFC references + into there own include file proved that things are never as easy + as they first appear. As of right now the old GUI will not work + without a major investment in time and energy. I'm not going to + worry about it unless somebody really, really, really needs it. + - boinc_win.h now doesn't do anything with MFC. And undefined min + and max from the Windows header files. + - Diagnostics functions should no longer use exception handling for + error conditions. + + client/ + net_xfer.C + client/win/ + wingui.cpp + wingui_dialog.cpp + wingui_listctrl.cpp + wingui_mainwindow.cpp + wingui_piectrl.cpp + wingui_proxydlg.cpp + stdafx.cpp, .h (added) + lib/ + boinc_win.h + diagnostics.C, .h + win_build/ + boinc.sln + boinc_gui.vcproj + +Rom 6 Dec 2004 + - Force include StdAfx.h for all files in boinc_gui.vcproj fixes the + linker problems. + + win_build/ + boinc.sln + boinc_gui.vcproj + +Bruce 7 Dec 2004 + - Missing close bracket + - Use HAVE_STD_MIN and HAVE_STD_MAX to detect if std::min and std::max are needed. + Ron, please check and correct if needed -- build was broken under Linux. + html/ + ops/ + db_update.php + api/ + reduce.C + +Rom 7 Dec 2004 + - Include the STL header that deals with min and max for STL, and then include + std_fixes.h just in case it needs fixing. + + api/ + reduce.C + +David 7 Dec 2004 + - Win compile fix - don't include std_fixes (???) + + api/ + reduce.C + +Rom 7 Dec 2004 + - Fix a bug exposed by mikey2345 configuration that would create a bunch of + host records, basically if the state file cannot be written to, BOINC should + not run. + + client/ + client_state.C + +Bruce 7 Dec 2004 + - Added additional options -gzip, -zip, -max_wu_per_file to db_purge. The + compression options are 'efficient' in that they do not write an uncompressed + file then compress -- they go straight to compressed. SIGHUP and lockfile + shutdown signals are properly caught and close compressed files and DB cleanly. + - Typo killed feeder with bad MySQL syntax + + sched/ + db_purge.C + feeder.C + +Rom 7 Dec 2004 + - Checkin changes suggested by Bruce Allen and Bernd Machenschalk related to + compiling in pure ANSI C environments. + + lib/ + boinc_win.h + diagnostics.h + filesys.h + +David 7 Dec 2004 + - fix update_versions to allow signature files (.sig) + for files other than the main program + - make_project: create forum_index.php, rss_main.php, status.php + for new projects (from sample files) + - make_project: fill in reasonable values in config.xml for + min_sendwork_interval, max_wus_to_send, daily_result_quota, + disable_account_creation, and show_result + py/Boinc/ + setup_project.py + tools.py + tools/ + update_versions + +Bruce 7 Dec 2004 + - Moved RCSID tags to END of all .c .C and .cpp files, as per + David's request. + - Added additional normal and debug log output to db_purge + + sched/ + db_purge.C + +David 7 Dec 2004 + - fixed PHP bug: account key missing from emails + + html/inc/ + email.inc + +David 8 Dec 2004 + - change makefiles so that libboinc, libboinc_api and libboinc_api_graphics + have disjoint contents + - change client makefile so it uses libboinc instead of separate .o files + - added my .vimrc + + .vimrc + api/ + Makefile.am + apps/ + Makefile.am + client/ + Makefile.am + lib/ + Makefile.am + +David 8 Dec 2004 + - web site: added Team leaderboards broken down by type (see team.php) + + html/ + inc/ + team.inc + util.inc + user/ + sample_index.php + team.php + top_teams.php + +Rom 8 Dec 2004 + - While looking for something else about wxListCtrl in the source I found + references to Freeze()/Thaw() which should reduce flicker on platforms + other than Windows. I'm going to try and implement the same thing with + Windows in a roundabout fashion. + + clientgui/ + BOINCBaseView.cpp + +David 8 Dec 2004 + - moved bmplib and tgalib from seti_boinc to boinc/api + + api/ + Makefile.am + bmplib.C,h (new) + tgalib.C,h (new) + +David 8 Dec 2004 + - added boinc_report_app_status() function to API + (lets controllers report CPU time etc.) + + api/ + boinc_api.C,h + client/ + Makefile.am + +Bruce 9 Dec 2004 + - Fixed broken build (and removed non-functional broken fix). API + subdirs must be built first. + - Removed bmplib.C tgalib.C from api/Makefile.am as workaround + for missing header files + code. Note: header files must also + be listed among source files! + + Makefile.am + client/ + Makefile.am + api/ + Makefile.am + +David 9 Dec 2004 + - put user name in confirmation email correctly + + html/user/ + account_setup_nonfirst_done.php + create_account_action.php + +David 9 Dec 2004 + - Fix error in HTTP logic used in file uploading: + When we've received the HTTP header for a file upload reply, + don't set io_done to true; + otherwise we'll immediately try to read the reply body, + and it might not be there yet. + + api/ + Makefile.am + client/ + http.C,h + net_xfer.C,h + +David 9 Dec 2004 + - Really fixed the above problem. + The HTTP code was looking at the wrong flag + (io_done, should have been io_ready) + in the POST2 case waiting for reply body + + api/ + boinc_api.C + client/ + http.C,h + +David 10 Dec 2004 + - added a function get_file_dir() (in lib/filesys.C) + that searches the directories in the PATH env var, + looking for an executable file with a given name + (this is so boincmgr can find boinc on Unix) + + client/ + http.C + lib/ + filesys.C,h + util.C,h + + +Rom 10 Dec 2004 + - Bug Fix: Under the previous arrangement there was a timer event that would + fire off once a second to check for the possiblility that the item in the + list view had been deselected. We weren't receiving a deselection event + for single selection controls. So I've ripped out the timer code and + trapped the controls click event, and check the controls state. + + If we are a single selection control and the current selection is different + from the row that has focus, then manually send the deselection event. + + If we are a multi selection control, check to see if anything is selected, + if not, then manually send the deselection event. + + This has the added bonus of making our UI seem faster. + + NOTE: I know this wasn't on the list to fix this release, but it was driving + me nuts. + + clientgui/ + BOINCBaseView.cpp, .h + BOINCGUIApp.cpp + BOINCListCtrl.cpp, .h + MainFrame.cpp, .h + + +David 10 Dec 2004 + - Refactored the app graphics code so that it can be used in 2 ways: + 1) Linked with the main program. + This works OK on Windows, but on UNIX there's the problem + that the app won't run unless the required libraries + (openGL, X11) are present. + 2) Graphics code in a separate shared library. + The main program calls a new function boinc_init_graphics_lib(), + giving it the name of the shared library. + This function tries to open the library. + If this fails (e.g. because X11 libs aren't there) + it runs the application without graphics. + Otherwise it calls the graphics initialization routine + in the library, which creates the graphics thread. + + This case is tricky because the library's initialization routine + can't directly call boinc_init() (from boinc_api.C). + Doing so requires boinc_api.o to be linked with the library, + which gives it separate copies of all the static variables. + This produces a situation where, e.g., there are two copies of + "fraction_done"; the one in the main program gets updated, + the one in the library remains zero and + gets reported to the core client. + + To solve this problem, the library's initialization routine + takes a pointer to boinc_init() as an argument, + and calls it via that pointer. + boinc_api.o must NOT be linked with the shared library. + + Bruce Allen thought up the idea of doing graphics + in a separate library. + + TODO: graphics_lib.C isn't finished. Bruce? + + api/ + graphics_api.C + (link this with monolithic apps) + graphics_impl.C,h (new) + (link this with monolithic apps, + and with the shared library in the non-monolithic case) + graphics_lib.C,h (new) + (link this with the main program in the non-monolithic case) + +David 10 Dec 2004 + - Fixed a bug in the validator that could cause WUs to + get stuck in a state where they have no canonical result, + no results in progress, and no transition scheduled. + + 1) After calling check_set(), count the number "nsuccess_results" + of results that still have outcome == SUCCESS + (this may have changed, since check_set() can change + the outcome to VALIDATE_ERROR). + + 2) If check_set() fails to find a canonical result, + always schedule an immediate transition. + + 3) If nsuccess_results >= target_nresults, + set target_nresults to nsuccess_results+1. + This ensures that the transitioner will make a new result, + even in pathological cases (e.g. nsuccess_results > target_nresults) + + sched/ + validator.C + +Bruce 10 Dec 2004 + + David, here's a rough pass, I haven't even tried to compile + it. Please read comments in-line. I think the major + shortcoming is + that most (all?) apps will want to use 'handle' to resolve their + own functions to communicate data from worker to app graphics. + Perhaps we should provide an additional argument to + boinc_init_graphics_lib() for that purpose? At the right point, + after sucessful dlopen(), boinc_init_graphics_lib() will call + that user-supplied function (if not NULL) passing it handle. + On return boinc_init_graphics_lib() will then carry on and start + graphics. + It's fun working on a file that's not in Makefile. No guilt! + + api/ + graphics_lib.C + +David 10 Dec 2004 + - Spiffed up Bruce's code a little and got it compile. + The DLL handle is now available as a global variable + (graphics_lib_handle) + - change BOINC_OPTIONS::defaults() to a regular function, + options_defaults(BOINC_OPTIONS&). + More of the API (e.g. boinc_init_options()) is now "pure C" + + api/ + boinc_api.C,h + grpahics_impl.C + graphics_lib.C,h + +David 10 Dec 2004 + - Added clientgui/Makefile.mac + Currently, to use this you have to: + - install Wxwidgets 2.5.3 at the same level as boinc/ + - create clientgui/ in the wxwidgets samples directory + - copy the contents of boinc/clientgui there + - make -f Makefile.mac + + clientgui/ + Makefile.mac (new) + stdwx.h + +David 11 Dec 2004 + - Fixed Makefile.am for building graphics libs + + api/ + Makefile.am + +Bruce 12 Dec 2004 + Added extern C declarations to a couple of header files: + - In graphics_lib.h, this is for compatibility with pure C + applications. + - In graphics_impl.h, this would be needed EVEN if we were + never building app or library with anything other than C++. + It's because dlsym() can only work if you pass it a non-name + mangled symbol. Please see: + http://www.isotton.com/howtos/C++-dlopen-mini-HOWTO/C++-dlopen-mini-HOWTO.html + for futher edetail. + - Comments added to graphics_lib.C, better error message. + + api/ + graphics_lib.C + graphics_lib.h + graphics_impl.h + +David 12 Dec 2004 + - spruced up graphics lib stuff, removed a "*" that may have caused crash. + + api/ + boinc_api.h + graphics_api.h + graphics_impl.C,h + graphics_lib.C,h + +David 13 Dec 2004 + - bug fixes for graphics lib stuff. + Code in the app's graphics shared library (including x_opengl.C) + must not directly reference variables in the main program + (e.g. app_client_shm) because it will have "shadow" copies of them. + + Changed the graphics_impl interface so that the shared library + function gets passed a pointer to a structure (BOINC_MAIN_STATE) + containing everything it will need to access. + + This is a first pass. May need to add more to BOINC_MAIN_STATE. + And should clean up .h file structure so that compiler will + enforce constraints. + + api/ + graphics_api.C,h + graphics_impl.C,h + graphics_lib.C + x_opengl.C + +Karl 2004-12-13 + - Fixed testbase to work with Python 2.4. + + test/ + testbase.py + +David 13 Dec 2004 + - Fix a bug where a result could potentially bounce back + and forth between the transitioner and the validator. + This could happen if there are min_quorum success results, + and there's no consensus. + The fix: + - added new value for result.validate_state: + VALIDATE_STATE_INCONCLUSIVE means that check_set() + was called for the result and it didn't find a canonical result. + - The transitioner sets workunit.need_validate + if there are min_quorum success results, + and at least one is VALIDATE_STATE_INIT + (no change - this is how it currently is) + - validator: + consider results that are both INIT and INCONCLUSIVE + If check_set() doesn't find a quorum, + set all result states to INCONCLUSIVE + + Thanks to Kjell Nedrelid (Rattledagger) for finding this. + - added logic to admin HTML to show INCONCLUSIVE state + - Took boinc_real_escape_string() stuff out of HTML ops code. + If prevented SQL queries from working on isaac + + db/ + boinc_db.h + html/ + inc/ + db_ops.inc + result.inc + user.inc + ops/ + db_action.php + sched/ + assimilator.C + transitioner.C + validator.C + +Rom 13 Dec 2004 + - Bug Fix: BOINC Manager needs to initialize the System Idle Tracker + in order for BOINC to detect if the system is idle. + - BOINC Setup for Windows - The UI is now complete for the Single, + Shared, and Service install types. + + clientgui/ + BOINCGUIApp.cpp, .h + win_build/installerv2/ + BOINC.ism + +Janus 13 Dec 2004 + - Added a text-box that displays how many more chars the user can + write in the signature on forum prefs page + (Thanks goes to Christian) + - Also made changes to make this file HTML 4.01 transitional valid + + html/user/ + edit_forum_preferences_form.php + +David 14 Dec 2004 + - Win compile fix + + api/ + windows_opengl.C + +David 14 Dec 2004 + - moved mem_usage() from api/boinc_api.C to lib/mem_usage.C (new) + and changed its return value from (int) KBytes to (double) bytes. + POLICY: BOINC INTERNALS NEVER USE UNITS LIKE KBYTES. + USE THE NATIVE UNIT (E.G. BYTES), AND STORE IT IN A DOUBLE. + - changed the XML tags used in + - API messages + - GUI RPCs + - client_state.xml + for storing VM sizes. + This doesn't justify a major-version change since we + don't use these for anything critical. + + api/ + boinc_api.C + graphics_impl.h + graphics_lib.C + client/ + app.C,h + app_control.C + cs_apps.C + lib/ + Makefile.am + mem_usage.C,h (new) + gui_rpc_client.C,h + +David 14 Dec 2004 + - win compile fix + + lib/ + mem_usage.C + win_build/ + upper_case.vcproj + +David 14 Dec 2004 + - Added code to validator to maintain host.avg_turnaround + + sched/ + validator.C + +David 14 Dec 2004 + - Added a version of boinc_get_init_data() to graphics_impl.C + + api/ + graphics_impl.C + +Reinhard Prix 2004-12-15 + - Make sure that when --enable-maintainer-mode is used, automatic + re-configuration will find the proper macro-definitions in m4. + + Makefile.am + +David 14 Dec 2004 + - Moved boinc_get_init_data() from graphics_impl.C + to a new file, graphics_impl_lib.C + (included in libboinc_graphics_impl.a, but not in libboinc_graphics.a) + to resolve a duplicate-name problem + + api/ + Makefile.am + graphics_impl.C + graphics_impl_lib.C (new) + +Rom 15 Dec 2004 + - Setup should now be able to handle both the Single and Shared installation + types. + + win_build/installerv2/ + boinc.ism + +David 15 Dec 2004 + - transitioner: + if WU has error, set unvalidated results to VALIDATE_STATE_NO_CHECK + - Web: + - show WU error flags to users + - show link to canonical result on WU page + - clearer heading for deadline colors + + html/ + inc/ + result.inc + util.inc + user/ + workunit.php + sched/ + transitioner.C + +Rom 16 Dec 2004 + - Bug Fix: Apparently you cannot use the default constants that are normally + a part of the environment for a vbs script, + then in turn kept all the functions from returning the proper values. + - Bug Fix: Use the Session.Message functionality to report errors + to both the log file and the UI so we can actually see something + useful from dialog boxes and log files. + - Bug Fix: Prepopulate the service username field with the current user info + for the service install type + - Bug Fix: Remove the user domain field from the service config screen + to make room for the local system checkbox at some point + in time in the future. + - Bug Fix: Prevent an administrator from selecting an invalid + SETUPTYPE and ALLUSERS property combination. + I spent the better part of the day trying to figure out + how I might change the execution sequence so that changing the + ALLUSERS property based on the SETUPTYPE field would yield the right + redirection of the default folders + but it seems that the folder properties are handled via the + MSI engine itself and without a bit more knowledge I'm not + sure how to do it. But this only affects + those installing via the commandline or via some mass deployment + scenario and so just throwing an error is okay. + The errors describe the problem and how to fix it. + + The UI handles this automatically, + so the average install scenario won't have to worry about this. + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + +David 16 Dec 2004 + - User web: put a cap of 10 days on network connect period + - User web: organize prefs page layout so that venues + are grouped more clearly. + Still needs some work. + + html/ + inc/ + prefs.inc + util.inc + user/ + prefs_edit_form.php + white.css + +David 16 Dec 2004 + - User web: let the founder of a team change the founder to + any other member (from Django Fett) + + html/ + inc/ + db_ops.inc + user/ + team_change_founder_action.php (new) + team_change_founder_form.php (new) + team_manage.php + +David 16 Dec 2004 + - transitioner: if a result times out, update the hosts' + avg_turnaround (charge it with the full delay bound) + - scheduler: print work_req_seconds as a double, not int + + db/ + boinc_db.C,h + sched/ + sched_send.C + transitioner.C + +Rom 16 Dec 2004 + - Rework the CPU and Model Identification code on Windows so that + the specific CPU model is reported in the p_model field instead + of the p_vendor field. This fixes a bug in the predictor project + where new processors not already known to the OS were being flagged + as unknown and causing homogeneous redundancy to fail. + + The vendor ID was being detected, it just wasn't being included + in the p_vendor field if a processor identifier was being detected. + The OS aparently throws in an 'Unknown CPU typ' string in the cases + where it cannot determine the proper string to put in the registry. + + client/win/ + hostinfo_win.cpp + +Rom 16 Dec 2004 + - Bug Fix: Make sure that BOINC Manager can be started after setup completes + - Bug Fix: Make sure the read me can be displayed after setup completes + - Bug Fix: Do not display the options for launching the BOINC Manager or + the readme during an uninstall operation + - Bug Fix: Make sure permissions are updated during install based on + the selected install type + - Bug Fix: Only create the startup shortcut when the ENABLELAUNHCATLOGON + property is set. + - Bug Fix: Only enable the screensaver when the ENABLESCREENSAVER property + is set. + + Note: The screensaver and shortcut properties had been implemented awhile + ago, but the MSI package was doing something goofy with them. + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + +David 16 Dec 2004 + - bug fix: resident-set size on Linux was wrong + + lib/ + mem_usage.C + +Rom 17 Dec 2004 + - Bug Fix: Windows Scripting host needs to be installed before our setup + can work, so install it. + - Bug Fix: If the SETUPTYPE is Service or ServiceGUI perform validation + on the service account username and password + - Bug Fix: If the service useraccount doesn't already have the + 'Logon As A Service' right grant it. + - Bug Fix: If the SETUPTYPE is Service, install it as a Windows service + under the specified user account + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + + < Added a bunch of files required for various setup things > + +David 17 Dec 2004 + - VALIDATOR_ITEM: need to read receive_time so can update + host.avg_turnaround + + db/ + boinc_db.C + sched/ + transitioner.C + +Rom 17 Dec 2004 + - Bug Fix: Should prereq the grant.exe tool for rights management + - Bug Fix: Redirect the grant rights vbscript to point to grant.exe + new location + - Now we can install the service via the commandline, need to hookup + the rights change confirmation dialog box + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + + < Added a bunch of files required for various setup things > + +David 17 Dec 2004 + - Graphics lib tweaks: changed "bmsp" to "g_bmsp". + This eliminates a case (in boinc_init_graphics_impl()) + where an arg shadowed a global var. + - Added boinc_is_standalone() (hook version) to graphics_impl_lib.C + + api/ + graphics_impl.C,h + grpahics_impl_lib.C + x_opengl.C + +Rom 17 Dec 2004 + - Bug Fix: Prompt the user for the permission to grant the selected account + the right to logon as a service + - Bug Fix: Fix an ACL problem when installing as a service, and the account + is not part of the administrators group + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + +David 17 Dec 2004 + - User web: refer to boinc.berkeley.edu for client download in all cases + + html/user/ + account_setup_first_action.php + +Rom 17 Dec 2004 + - Bug Fix: Remove customer information screen + - Bug Fix: Change splash screen + - Bug Fix: Only prompt for permission to change user rights if the install + type is a service install type + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + +David 17 Dec 2004 + - feeder: if a result's WU refers to nonexistent app, + print error message and exit + - core client: if can't create/bind/listen GUI RPC socket, + print error message and exit + + client/ + client_state.C + sched/ + feeder.C + +Rom 17 Dec 2004 + - Bug Fix: Use an MSI DLL instead of grant.exe to grant the 'Logon As a Service' + right. + + win_build/installerv2/ + BOINC.ism + win_build/installerv2/redist/windows + BOINC.vbs + + < Added a bunch of files required for various setup things > + +Janus 18 Dec 2004 + - Added description of the new colored column "Time reported or deadline". + - Added "Done" to the possible client states in "client state" + descriptions. + - New way of displaying the threadlist: Will use icons to tell if threads + are new/unread, important or filtered. + - Usual HTML corrections + + html/inc + forum.inc + foum_show.inc + result.php + html/user + explain_state.php + results.php + filtered_post.png [new] + +Rom 18 Dec 2004 + - Make the idle detection code work again on the Windows platform. + + Thanks to Eric Toungdale for pointing out what needed to be done to + fix it. + + I claened up the orginal implementation a bit, reenabled some of the + debugging code that was remarked out. + + client/ + main.C + client/win/ + hostinfo_win.cpp + win_idle_tracker.cpp + lib/ + hostinfo.h + +Rom 18 Dec 2004 + - Add another layer of checks for Windows 2000 or better machines to get + try and get graphics to appear. + + api/ + windows_opengl.C + client/win/ + win_screensaver.cpp + +David 18 Dec 2004 + - BOINC_MAIN_STATE.app_client_shm was being copied + from the variable app_client_shm before the variable was initialized. + Fix this by changing BOINC_MAIN_STATE to point to the variable + rather than having a copy of it. + + api/ + graphics_api.C + graphics_impl.h + graphics_lib.C + x_opengl.C + +David 19 Dec 2004 + - fix compile of old Win GUI + - update BOINC manager messages a little + + client/win/ + wingui_mainwindow.cpp + clientgui/ + ViewMessages.cpp + ViewProjects.cpp + ViewResources.cpp + ViewTransfers.cpp + +David 20 Dec 2004 + - User web: + don't call db_init() in profile.inc. + This should be done by top-level files, not .inc files + - Admin web: + replaced brain-damaged "screen profiles" page. + The old one did 2 sequential scans of the profile table + for each screened profile. + The new one does 1 sequential scan for 20 screened profiles. + + html/ + inc/ + host.inc + profile.inc + ops/ + index.php + profile_ops.php (removed) + profile_screen_action.php (new) + profile_screen_form.php (new) + user/ + create_profile.php + delete_profile.php + edit_forum_preferences_action.php + profile_menu.php + view_profile.php + +David 20 Dec 2004 + - have assimilate_handler return an error code. + If nonzero, assimilator exits + (don't want to mark WUs as assimilated if temporary NFS failure, e.g.) + - improve docs on file management, added doc on file_deleter + - added doc on backend utility funcs + - improve docs on assimilate_handler() + - core client: if an output file is too big, print info on size, limit + + client/ + cs_apps.C + doc/ + various + backend_util.php (new) + benchmark.php (new) + file_deleter.php (new) + sched/ + assimilate_handler.h + assimilator.C + assimilator_placeholder.C + file_deleter.C + sample_dummy_assimilator.C + sched_util.C + validate_util.C + +David 20 Dec 2004 + - modify scheduler to handle bad host IDs gracefully. + E.g.: it a project accidentally deletes its host table, + things will eventually return to normal without + users having to detach/reattach + + Old logic: + look up host based on request.hostid + look up user based on host.userid + if user.authenticator != request.authenticator + send error message and delay request + + New logic: + look up host based on request.hostid + If not found, create new host record and return its ID + look up user based on request.authenticator + if no such user + send error message and delay request + if host.userid != user.id + create new host record and return its ID + + sched/ + handle_request.C + +David 20 Dec 2004 + - app graphics: on Mac, reinit GLUT on each restart + Bruce: please test + + api/ + x_opengl.C + +Rom 21 Dec 2004 + - Circumvent identity spoofing on the boards by displaying the + user id of the poster. + + html/inc + forum.inc + +Bruce 22 Dec 2004 + - Spent several hours tracking down a problem that turned + out to be the fact that sizeof(bool) is not consistent + even across gcc. It's 4 bytes on gcc 2.95, 1 byte on + gcc 3.0, 1 bytes on gcc 3.3 on x86 and 4 bytes on gcc 3.3 + on OSX. Botton line: one MUST eliminate bool from any + library object that's meant to be used in the public + API available from C. I started fixing this across more + of the API but got nervous that this would break the E@h + builds and cause even more delay. So did a minimal fix + for now: changed boinc_time_to_checkpoint() to return int. + + api/ + boinc_api.C + boinc_api.h + apps/ + upper_case.C + doc/ + api.php + client_app.php + +Rom 22 Dec 2004 + - Fix globalization/localization bugs related to the fact that we + only lookup the information once, and it needs to be after + the wxLocale object is created. + - Add the ability for the task control to have a horizonal rule + - Create a CreateTask API that doesn't require a reference to a bitmap + - Remove icons from the various tasks until we can get some better + visuals + - Fix a flicker bug when no item is selected on the project tab + and you hover over the 'attach to new project' or 'BOINC' links + - Remove the ability to expand or collapse the various headers + - Per comunity feedback, reorder the project tasks and put a + horizonal rule between the three groups of actions. + + clientgui/ + BOINCBaseView.cpp, .h + BOINCTaskCtrl.cpp, .h + ViewMessages.cpp, .h + ViewProjects.cpp, .h + ViewResources.cpp, .h + ViewTransfers.cpp, .h + ViewWork.cpp, .h + +Rom 22 Dec 2004 (boinc) + - Tag for 4.57 release, all platforms + boinc_core_release_4_57 + +David 22 Dec 2004 + - shuffle logic in xwin_graphics_event_loop() to deal with + situation where glutInit() calls exit() + + api/ + x_opengl.C + +Karl 2004-12-25 + - Link to http://bioinformatics.pzr.uni-rostock.de/~moeller/debian/boinc/ + (Stephen Möller's Debian packages) + - Clarify centiversions + + doc/ + anonymous_platform.php + +David 25 Dec 2004 + - core client: change WORKUNIT::command_line from char[256] to std::string. + This increases the limit on cmdline length from 256 to 8192 + (there's still a fixed-size buffer in the Unix startup code). + + It turns out there were no limitations on the server side. + + Also, change the representation in the core state file from + blah + to + + blah + + to accommodate long command lines (can be many lines). + Each line is limited to 4096 chars + - process_wu_template(): replace a 64KB buffer with a std::string. + There's still a 64KB length limit, + but this way overruns are caught and reported + instead of create_work crashing. + + client/ + app_start.C + client_types.C,h + tools/ + backend_lib.C + +David 25 Dec 2004 + - bug fix (from Nikolay Saharov): if user minimized app graphics window, + then closed it, then did "show graphics" again, + the result would be a nonexistent window, + impossible to manipulate. + Fix this by using original window size if window + is minimized or maximized + - compile fixes for SETI@home on Windows + removed extern "C" on jpeglib.h include (why did I need this + in the first place??) + api/ + gutil.c + gutil.C + windows_opengl.C + win_build/ + config.h (new) + win-config.h (new) + +David 26 Dec 2004 + - User web: define a function process_user_text() that + should be applied to any user-supplied text used in a SQL query. + It does trim(), stripslashes(), and boinc_real_escape_string() + - Update the account-creation and account-editing pages + to use the above; needs to be added a few other places too + - Remove the db_init() from forum.inc + and add db_init() as needed to .php files + (.inc files should NOT do db initialization) + + html/ + inc/ + db.inc + forum.inc + util_ops.inc + user/ + create_account_action.php + edit_user_info_action.php + forum*.php + +David 26 Dec 2004 + - If a project is suspended via GUI, + don't to any scheduler RPCs or master URL fetches for it + + client/ + cs_scheduler.C + +David 26 Dec 2004 + - Code cleanup in db_purge.C + + sched/ + db_purge.C + +David 27 Dec 2004 + - Add a -min_age_days N option to db_purge. + It will only purge WUs whose mod_time is at least N days ago. + - Change an index on workunit to make this efficient + - have setup_project.py copy db_purge + + Note: if you use this version of db_purge you should modify + the index workunit.wu_filedel. + You can do this manually or using html/ops/db_update.php + + db/ + constraints.sql + html/ops/ + db_update.php + lib/ + util.C,h + py/Boinc/ + setup_project.py + sched/ + db_purge.C + +David 27 Dec 2004 + - small fixes + + html/inc/ + uotd.inc + sched/ + db_purge.C + +David 27 Dec 2004 + - user web: apply process_user_text() to login text + - upgrade --help now works + + html/ + inc/ + util_ops.inc + ops/ + profile_screen_action.php + profile_screen_form.php + user/ + login_action.php + tools/ + upgrade + +David 27 Dec 2004 + - UNIX app graphics: if glutInit() fails, keep retrying periodically + (in case user runs X server, e.g.) + - scheduler: scan the work array from a random point, + instead of always from the start. + This prevents a result from getting stuck at the end + of the array, and possibly never getting sent. + (from Ben Herndon) + + api/ + x_opengl.C + lib/ + util.h + sched/ + main.C + sched_send.C + +David 27 Dec 2004 + - web fixes from Eric Myers + + html/inc + cache.inc + forum.inc + +Bruce 28 Dec 2004 + - fixes from Reinhard Prix to disable building of boincglut under + Darwin/Unix. It's only needed under Windows. Also warn user if + GLUT libraries missing, and then build only non-graphical client + side code. + + Makefile.am + configure.ac + api/ + Makefile.am + +Bruce 29 Dec 2004 + - make X/Unix graphics not fail if GLUT calls abort(3). This + generated a SIGARBT. We now catch this signal. In the + graphics thread, this just restarts the graphics init process + (with some sleep(2)ing if needed to prevent a busy fail loop). + If the signal is caught in the main thread, we restore the old + signal handler then raise(SIGABRT). + + David, note that when run standalone, killing the graphics + window does NOT kill the process. I think this is fine, but + it doesn't correspond to what the documentation says. + + Added hyperlink to WUs on ops pages (Hyperlink to WUs. Thanks + to Christian (DjangoFett@gmx.net). + + api/ + x_opengl.C + html/ + inc/ + db_ops.inc + +David 29 Dec 2004 + - (from James Drews) Add a "don't request more work" request for projects. + Inhibits requesting more work, + but allows completion and reporting of work to continue. + Added a GUI RPC to do this, + and also a menu command in the old Win GUI. + Implemented using a boolean in PROJECT + (saved/restored in client_state.xml) + - Removed win_config.h and win-config.h. + Put all "#ifdef HAVE_*" constructs inside #ifndef _WIN32 + Include version.h to get BOINC_MAJOR_VERSION etc. + + Now - what exactly are the roles of client/cpp.h and boinc_win.h??? + + win_config.h (removed) + api/ + boinc_api.C + client/ + client_types.C,h + cpp.h + cs_scheduler.C + gui_rpc_server.C + win/ + boinc_cli.rc + boinc_dll.rc + boinc_gui.h,rc + boinc_ss.rc + wingui_mainwindow.cpp,h + lib/ + gui_rpc_client.C,h + gui_test.C + mem_usage.C + win_build/ + config.h + win-config.h (removed) + +David 29 Dec 2004 + - (from Reinhard Prix) + X app graphics: check that a window actually has been opened + prior to calling glutMainLoop() + (just waiting for a message is not enough - + the message might be REREAD_PREFS) + + api/ + x_opengl.C + +Bruce 30 Dec 2004 + + - When creating large numbers of WU which have large input files, + the cost of computing the md5 sums becomes expensive. Inserted + a simple caching mechanism into the utility function + process_wu_template(). For a given filename FILENAME, this looks + for a file called FILENAME.md5, which contains the md5sum and + length. If the file exists, these values are used. If not, such + a file is created. Since (I think) David is planning to have a + database for files, this mechanism will eventually be obsolete. + Right now it disabled by default. Use -DBOINC_CACHE_MD5 to + enable it. + + tools/ + backend_lib.C + +Bruce 31 Dec 2004 + + - Some improvements on the md5-info caching. If the 'data' file is + more recent than the 'md5info', then ignore md5info. If md5info + has *exactly* the right format (no extra or missing characters) then + remove it in this case (only). Don't write an md5info file if + another file is found with the same name. Thus if someone has two + data files called X and X.md5, unless X.md5 has the exact correct + syntax for an md5-info cache file, it won't be removed or used. + Still disabled by default. Use -DBOINC_CACHE_MD5 to enable it. + + - Improvements to ops/ pages, from Christian Beer. Show all fields of + WU. Display status summaries based on mod-times. + + - Make 'grep logs' function assume default of *.log for filenames, unless + specified. + + tools/ + backend_lib.C + html/ + inc/ + db_ops.inc + util.inc + ops/ + show_log.php + + diff --git a/doc/contact.php b/doc/contact.php index 89ed85a113..b97f61f2e6 100644 --- a/doc/contact.php +++ b/doc/contact.php @@ -52,6 +52,7 @@ show_name("Pietro Cicotti"); show_name("Seth Cooper"); show_name("Markku Degerholm"); show_name("James Drews"); +show_name("Charlie Fenton"); show_name("John Flynn III"); show_name("Michael Gary"); show_name("Gary Gibson"); diff --git a/doc/create_project.php b/doc/create_project.php index 00a338d747..58d951e3c7 100644 --- a/doc/create_project.php +++ b/doc/create_project.php @@ -23,6 +23,7 @@ BOINC's abstractions of data and computation.
  • Work distribution
  • Locality scheduling
  • Trickle messages +
  • Intermediate upload