diff --git a/checkin_notes b/checkin_notes index 66a070079c..c560b354e8 100755 --- a/checkin_notes +++ b/checkin_notes @@ -1,19595 +1,9808 @@ David 1 Jan 2005 - - Deprecated the bad hash function used for the - upload/download directory hierarchies. - It wasn't uniform. - Use MD5 instead. - - Kept the old one around for a the time being. - dir_hier_path() and dir_hier_url() take a new arg - saying whether to use new or old hash. - The file_deleter and validator try the new hash, then the old. - - doc/ - busy_work.php (new) - tools_work.php - lib/ - util.C,h - sched/ - file_deleter.C - file_upload_handler.C - make_work.C - validate_util.C - wu_check.C - tools/ - backend_lib.C - dir_hier_move.C - dir_hier_path.C - - David 3 Jan 2005 - - split the implementation of REDUCE into 2 parts, - one for the app's main program and one for the shared library - - api/ - Makefile.am - reduce.C (removed) - reduce_lib.C (new) - reduce_main.C (new) - - Bruce 5 Jan 2005 - Bruce 6 Jan 2005 - - added new directory which builds a self-extracting tar - archive (executable shell script) for installation on - unix platforms. This will only be made when building - the client GUI and installs both the boinc client and - client GUI. Written and tested by Bernd Machenschalk. - - - next day revision, name shell script with appropriate - version/release number from configure.ac - - Makefile.am - sea/ [New Directory] - make-sea.sh - Makefile.in - BOINC/ [THIS DIRECTORY IS SPURIOUS: NO LONGER NEEDED] - - Janus 6 Jan 2005 - - Added support for an "Ignore" function in the forums - Users can now ignore a list of other users. The ignored - posts will appear as filtered. - - To use this the forum_preferences table needs a new - column: - - ALTER TABLE `forum_preferences` ADD `ignorelist` VARCHAR( 254 ) NOT NULL ; - - - Added thread name to page title in forums (from Athlonrob) - - Round scores and ratings in forum to avoid a rating of - for instance 2.999999999 - - /html/user - edit_forum_preferences_form.php - edit_forum_preferences_action.php - forum_thread.php - /html/inc - forum.inc - - Rom 6 Jan 2005 - - Bug Fix: fix crashing bug when running the old gui and new gui - side by side - - Bug Fix: Fix sync bug in new gui related to how the number of - rows were being calculated - - Bug Fix: Remove the explict call to freeze/thaw which was causing - the messages tab to flicker even when the data has not changed. - - Bug Fix: On Windows systems that support tooltip bubbles, don't - populate the regular tooltip field as it will appear before - the bubble request and makes the taskbar applet appear - ugly - - Bug Fix: The new gui should enforce closing down the core client - when it launches the core client, we were using the wxWidget - framework to do this, but the call to wxProcess::Exists causes - an assert on Windows if the process doesn't exist. And sometimes - crashes in a release build. - - Bug Fix: When syncing the views cache make sure there is at least - one item to syncronize, otherwise we'll reference a NULL pointer - and blow up. This fixes the crashing bug when you startup and - shutdown the core client in the background. - - client/win/ - wingui_mainwindow.cpp - clientgui/ - BOINCGUIApp.cpp, .h - BOINCBaseView.cpp - ViewMessages.cpp - ViewProjects.cpp - ViewResources.cpp - ViewTransfers.cpp - ViewWork.cpp - clientgui/msw/ - taskbarex.cpp - - Rom 6 Jan 2005 - - Bug Fix: On Windows 2000 machines or better use the GetLastInputInfo - API to determine if the system is idle or not instead of hooking - into each process space. This will fix the possible warnings - that key logging detection tools throw with BOINC is started up. - For older platforms we'll hook into the process space. - - Bug Fix: Detect system idle properties across the terminal services - boundry. Thanks to Eric Youngdale for the patch. - - Bug Fix: Detect the condition where the system tick count may have - looped back to zero. - - client/ - main.C - client/win/ - hostinfo_win.cpp - win_idle_tracker.cpp, .h, .def - clientgui/ - BOINCGUIApp.cpp, .h - BOINCTaskBar.cpp, .h - MainFrame.cpp, .h - - Rom 7 Jan 2005 - - Bug Fix: Provide better visuals during the connect and disconnected - states for the BOINC Manager - - Bug Fix: Provide written text describing the BOINC Manager state - - Bug Fix: Add new strings to language files - - clientgui/ - MainFrame.cpp, .h - stdwx.h - clientgui/res/ - connect.xpm - disconnect.xpm - clientgui/locale/ - < All PO files > - - Janus 7 Jan 2005 - - Bug fix: Don't show icon column in helpdesk - icons are not used here - - Bug fix: Filtering can now be turned off in helpdesk - - Ignored userlist is now unique and sorted by userid - (patches from Christian Beer - thanks!) - - More score rounding to avoid float inaccuracy - - /html/user - edit_forum_preferences_action.php - /html/inc - forum_show.inc - forum.inc - - David 7 Jan 2005 - - drop the indices on mod_time. - (result: app_mod_time, workunit: wu_filedel) - For SETI@home they were too much of a performance hit. - They're needed only for db_purge and result_summary.php, - which will have to do a sequential scan instead - - db_dump: try several times to remove old stats directory - - db/ - constraints.sql - html/ops/ - db_update.php - sched/ - db_dump.C - sched_locality.C - - David 7 Jan 2005 - - User web: show "external" version of cross-project ID - (i.e. hashed with email_addr) in the My Account page. - It will now match what's in the XML dump files - - html/inc - user.inc - - Rom 7 Jan 2005 - - Bug Fix: Fix compile error on Unix platforms for the BOINC Manager - - Bug Fix: Don't blow out of the core client when running as a service/daemon - and adding a project fails. Thanks to Sebastian Masch for tracking - down the bug. - - client/ - client_state.C, .h - cs_cmdline.C - main.C - clientgui/ - BOINCGUIApp.cpp - - David 7 Jan 2005 - - fixes from Christian Beer to avoid undefined PHP vars - - html/ - inc/ - db_ops.inc - ops/ - db_action.php - db_form.ph - - Bruce 7 Jan 2005 - - - Reinhard has done a substantial amount of work in the past - couple of weeks to fix a number of bugs and problems in the - X-windows and/or Mac graphics event loop, and with lockfile - handling problems seen on a number of Unix file systems. A - brief summary of the changes is: - - lockfile: replace calls to exit() by boinc_finish() + make - boinc_finish() remove the lockfile - - graphics-eventloop: some re-structuring and simplification to - make handling of glut-exits/abort-signals more robust. Eric, - if you could test this under Solaris we'd be very grateful. - - api/ - boinc_api.C - graphics_impl.C - x_opengl.C - diagnostics.C - filesys.C - - Rom 7 Jan 2005 - - Bug Fix: The screensaver doesn't really need to update every second. change - it to update once a minute. - - Bug Fix: The screensaver only needs to detect if BOINC is running once, - if it doesn't detect it display the not detected message. - - client/win/ - win_screensaver.cpp - - David 7 Jan 2005 - - off-by-1 error caused trivial validator to not work - - sched/ - validate_util.C - - David 7 Jan 2005 - - moved dir hierarchy code from lib/util.C to sched/sched_util.C - - buffer was too small by 1 byte in md5_file.C - - lib/ - md5_file.C - util.C,h - sched/ - file_deleter.C - sched_util.C,h - - David 7 Jan 2005 - - Changed Makefile.am's to use libraries (libboinc.a, libsched.a) - instead of listing separate .o files - - Makefile.incl - sched/ - Makefile.am - wu_check.C - tools/ - Makefile.am - backend_lib.C - dir_hier_move.C - dir_hier_path.C - - David 7 Jan 2005 - - Win compile fix - - api/ - boinc_api.C - - David 7 Jan 2005 - - add "ignorelist" field to forum_preferences - - add script for correcting team.nusers - (can drift away from correct value for some reason) - - User web mods: - - improve result field explanations - - user date_str() instead of time_str() when showing signup date - - db/ - schema.sql - html/ - inc/ - result.inc - team.inc - user.inc - util.inc - ops/ - db_update.php - team_repair.php (new) - user/ - explain_state.php - - Bruce 8 Jan 2005 - - In order to coordinate better with David, I am doing a slightly - premature checkin of modifications to scheduling locality. The - basic idea is to provide a simple notification mechanism to the - project, so that if no work is currently available for a given - data file, there is an opportunity to make such work. This is - controlled by an additional tag in config.xml, of the form: - - N - - where N is some number of seconds. If this new tag is absent, - then the locality scheduler behaves as before. - - The modification to behavior happens in send_results_for_file(). - This is the function that queries the database to see if there are - unsent results available for a given (large) data file on the - host. Previously, if such results are not found the scheduler - gives up and tries sending other results. With this modification, - if N is nonzero, then if no results are found the scheduler - touches a file with the same name as the host's data file, in a - directory - PROJECT_ROOT/locality_scheduling/need_work/ - The scheduler then sleeps for N seconds, and makes one additional - attempt to find suitable unsent results. The idea is that in this - interval, the project has an opportunity to make additional WU for - this file, which the transitioner can convert to unsent - results. [Note, the transaction for the first query is completed - before the sleep(N), and a new transaction is initiated - afterwards. So there is no 'sleep within a transaction'.] This - delay allows the project to make additional workunits suitable for - the host's existing data files. - - In addition, if the project determines that NO further workunits - can be made for a given data file, then the project can touch a - file with the same name as the input data file, in a directory - PROJECT_ROOT/locality_scheduling/no_work_available/ - If the scheduler finds this warning then it assumes that the - project can not manufacture additional WU for this data file and - skips the 'notify, sleep, query again' sequence above. Of course - it still does the initial query, so if the transitioner has made - some new results for an existing (old) WU, they will get picked - up. - - This mechanism is robust in the sense that if the signals fail for - any reason, or (say) the WU are not converted into unsent results - quickly enough by the transitioner, or if they are snapped up by - some other host, then the scheduler simply proceeds as with its - current unmodified behavior and nothing goes wrong. In other - words, the signals can be ignored at any time and for any time - without adverse consequences. - - TODO: further testing. - - sched/ - sched_locality.C - - David 8 Jan 2005 - Some changes related to locality scheduling: - - - Factored Bruce's new code into a separate function, - make_more_work_for_file() - - Remove the 'id>X' stuff from queries. - Assuming that work is fairly homogeneous - (i.e. no results are rejected because of resource requirements) - this is not needed. - If a result has already been sent, - it won't qualify for the select anyway. - - Add a 'workunitid<>X' clause to the queries. - This is to make the process of enforcing the - one_result_per_wu_per_user rule more efficient. - If the rule is not in effect, X is zero (so always true) - - If two consecutive select queries return the same result, - break out of the loop (avoid undesired looping) - - Use a for i=1,100 loop instead of a while(1) loop - around the work-sending logic, - to avoid infinite loops just in case - - sched/ - sched_locality.C - - David 8 Jan 2005 - - Implement the element in config.xml - If present, this tells the scheduler how long to sleep - between requesting more work for a file - and looking for it (and giving up if it's not there) - If absent, the scheduler doesn't request more work unit generation. - - sched/ - sched_config.C,h - sched_locality.C - - David 9 Jan 2005 - - fix memory leak in get_insert_id() - - db/ - db_base.C - - David 9 Jan 2005 - - user profile fixes - - disallow thread titles consisting only of HTML tags - - html/inc/ - forum.inc - profile.inc - - David 9 Jan 2005 - - message board fixes - show thread titles using htmlspecialchars() - prevent invisible titles - - html/ - inc/ - forum.inc - forum_show.inc - user/ - forum_thread.php - - Rom 9 Jan 2005 (boinc) - - Tag for 4.58 release, all platforms - boinc_core_release_4_58 - - David 9 Jan 2005 - - fix a buffer overrun problem by using std::string - in DB_BASE::insert_batch() - - db/ - db_base.C,h - sched/ - transitioner.C - - David 10 Jan 2005 - - client: fix bug where "requesting more work" messages - are generate every second when all projects are suspended - - client/ - client_types.h - cs_scheduler.C - - David 10 Jan 2005 - - locality scheduling changes: - Changed the algorithms a bit to avoid lots of DB queries - Invariant: for a given file/user pair, - results are sent in order of increasing ID - (i.e. the result sent is that with the smallest ID - among all those that CAN be sent). - This ensures that: - - the result for given WU will be sent around the same time - send_results_for_file(): - 1) of results for this file sent to this user, - find the one R with largest ID - 2) find unsent result R2 for this file with next ID greater than R, - and (if one result per user per WU) different workunitid than - ALL previous results sent to this user. - 3) if need more results, set R = R2 and go to 2) - send_new_file_work(): - min_id = 0 - while need more work - find unsent result R with id>min_id of least ID - min_id = R.id - (Note: this is necessary to preserve the invariant) - Changed make_more_work_for_file() to return zero for success - (BOINC convention) - - db/ - db_base.C,h - sched/ - sched_locality.C - - David 11 Jan 2005 - more locality sched changes (with Bruce Allen) - - - Added a notion of "working set" of files. - If a host doesn't have a file, the scheduler picks a - random entry from the working set and tries to send it - work from that file. - The project must supply a daemon program that maintains the working set - (could be the same as the work generator) - - Added config.locality_scheduling_send_timeout. - If any unsent result is older than this, - send it to the first eligible host - - If a host already has files, randomize their order - - Integrate work-generator invocation in send_results_for_file() - - If can't send a result because of no app_version, give up - - lib/ - error_numbers.h - sched/ - sched_locality.C - - Janus 12 Jan 2005 - - Removed check for $user->disabled_filtering which no longer exists. - - Added output of CVS version information if available. - Someone with time on their hands should add the following line to all - the PHP and include files (right after the inital <php - (remove the star! - inserted to avoid having CVS generate the info...): - - $cvs_version_tracker[]="\$I*d$"; //Generated automatically - do not edit - - (bug and idea found by Bruce Allen) - - html/inc - util.inc - forum_show.inc - - Bruce 12 Jan 2005 - more locality sched changes. - - bug fix 1, trivial, n % 0 generates FPE if no files. - - bug fix 2, subtle. In the deterministic hunt to find - the next unsent result, the comparison of the result name must be - done with the lexically maximum result name constructed from the - given filename. Eg, if one needs name>FILE_ZZZZ...Z where - Z=0xff (is this charset independent??) and the total name length - is 255 (or is it 254??). - - - David, I'll clean out some of the debugging scaffolding in a few - more days, when I get some confidence that there are not other - problems to fix! Please read embedded comments/questions in code. - - - Some more comemnts added later. We do sometimes get non-zero - return values from possibly_send_result(). I think that this is - because you've failed to match up the start_transaction and - commit_transaction pairs. Be careful: sleeps AND modifies the - DB. Right now I am too tired to fix this without making it worse. - Your turn. - - - A few other comments. Currently, I am 'advertising' filenames - returned by get_working_set_filename() for TWO types of files: - (1) those for which I can make more work - (2) those for which I can NOT make more work, but where you have - not flagged with flag_for_possible_removal(). - I am not sure that I understand the intent of - flag_for_possible_removal(). You surely are not guaranteeing - that no results will ever appear in the future for these files - (outstanding results might fail). So what is my WU generator - supposed to do with flag_for_possible_removal? Is (2) above - correct? - - - Finally, I have not yet seen a SINGLE instance of a - flag_for_possible_removal. Is the logic right? - - sched/ - sched_locality.C - - David 12 Jan 2005 - - xml_escape() and xml_unescape(): handle non-ASCII characters - - lib/ - parse.C - - Rom 12 Jan 2005 - - Bug Fix: Fix the bug where the screensaver wasn't saving the - configuration settings to the registry without the prep - work done by the previous installer. - - client/win/ - win_screensaver.cpp, .h - - Bruce 13 Jan 2005 - - Various efforts to fix CVS 'loginfo' file so that we get auto - mailings of changes to the top level directory. The main problem - is that one can't use "^boinc[ ]" or "^boinc\ " or - "^boinc\#20" as a regex to try and match the name of the top - level directory with no trailing slash. What a mess! - - - More work on sched_locality.C. Note that the 'wacky' warning is - actually not impossible. Consider the following scenario: WU A - has result 1 and WU B has result 2. These are both sent to a - host. Some time later, result 1 fails and the transitioner - creates a new result, result 3 for WU A. Then the host requests - a new result. The maximum result already sent to the host is 2. - The next unsent result (sorted by ID) is #3. But since it is - for WU A, and since the host has already gotten a result for WU - A, it's infeasible. So I think this is only wacky if - !one_wu_per_result_per_host. - - - David, I simplified the inner part of send_results_for_file() - somewhat. I can't see the need/use for the bool bool - in_working_set argument. If I have really screwed the pooch - please revert. - - sched/ - sched_locality.C - - David 13 Jan 2005 - - Core client: when get a workunit from scheduler, - clear errors (e.g. download failures) - for all files associated with this WU - (this is down in a new function WORKUNIT::clear_errors()) - Without this, if a file common to multiple WUs had a download - failure, all WUs would fail until user resets project!! - - Giant bug in HTTP file transfer: - If a network connection failed in the middle, - it wasn't being distinguished from a completed download; - the file size would be checked at the PERS_FILE_XFER level, - and it would get a "bad file size" fatal error. - Fix: when get EOF from a network connection reading HTTP reply, - compare the bytes transferred with the content-length - from HTTP header. - If not equal, classify it as an error. - This will cause higher levels to view it as a transient error, - and restart the download later. - - PERS_FILE_XFER::poll(): - the check for actual file size == desired file size - was inexplicably being done even for file uploads, - and even in cases where another error had occurred. - Do it only for download success cases. - - - client/ - client_types.C,h - cs_scheduler.C - http.C - pers_file_xfer.C - - Rom 13 Jan 2005 (boinc) - - Tag for 4.59 release, all platforms - boinc_core_release_4_59 - - David 13 Jan 2005 - - user web: in thread page, show numbered lists of pages correctly - Also get rid of goofy big/bold stuff - - page_tail(): use the current year (not necessarily 2004) for copyright - - add warning about CPU overheating to Rules/Policies page - - use tables for result state explanations - - html/ - inc/ - forum_show.inc - util.inc - user/ - explain_state.php - info.php - - David 13 Jan 2005 - - add "hidden" fields to thread and post tables, - in preparation for message board moderation features - - NOTE TO PROJECTS: apply this update if you're using current PHP. - It doesn't hurt to apply it anyway. - - db/ - schema.sql - html/ops/ - db_update.php - - Rom 13 Jan 2005 - - Checkin the changes necessary to hide threads in the forum code. - By: Rob Ogilvie - - Hidden threads should not be visible through a direct call - - html/inc/ - forum.inc - html/user/ - forum_thread.php - - David 13 Jan 2005 - - modified DB_BASE::enumerate() so that it returns: - - zero if returning a row - - ERR_DB_NOT_FOUND if reached end of result set - - other values indicated DB errors (e.g. lost connection to server) - - Strange as it may seem, until now we didn't have a way of - knowing that enumerate() had errored out. - As a result, e.g., db_dump would happily generate - a zero-entry user or host file - if the DB happened to disconnect during the select. - - changed db_dump.C to check error returns from enumerate(), - and exit() on DB failure - - changed xml_escape() to completely remove - control characters except for 9, 10, 13 - - db/ - db_base.C - lib/ - error_numbers.h - parse.C - sched/ - db_dump.C - - David 14 Jan 2005 - - Fix problems with backslashes in forum titles; - also kludge display so old titles with extraneous backslashes - are shown without them - - html/inc/ - forum.inc - - David 14 Jan 2005 - - fix to fix in msg board code - - html/inc/ - forum_show.inc - - Rom 14 Jan 2005 - - Bug Fix: The screensaver was passing the raw blank time (number of - minutes) instead of when in unix time format the screen should go - blank (number of seconds). - - client/win/ - win_screensaver.cpp - - Karl 2005-01-16 - - Added support for specifying db_{user,passwd} when creating projects - - tools/ - make_project - py/Boinc/ - setup_project.py - - Bruce 17 Jan 2005 - - Additional work on locality scheduling. - (a) make DB queries more efficient using name>'FILE__' and - name<'FILE__~' rather than name like 'FILE__%' - (b) Set 'no remaining work for this file' flag correctly - by making a DB scan if needed. - One can show that this is the 'cheapest' - reliable place to put this scan. - (c) Modify deterministic algorithm for finding unsent results - so that instead of starting with FILE="" and scanning forward - over all files, it starts at a random place in file space, - scans cyclicly to the end, and then from "" to the start point. - (d) Satisfy work request if possible. - Don't terminate sending work until none left that is feasible, - or request satisfed. - (e) If a new file is needed, first pick file associated with unsent - results which are more than 2 hours old. - Note: need to make this a user-configurable option, - and add some random +- slack. - - For the record, here is the current locality scheduler logic. - I will update the docs once this is a bit better tested and - stable. - - (1) If there is an (one) unsent result which is older than - (1) config.locality_scheduling_send_timeout (7 days) and is - (1) feasible for the host, sent it. - - (2) If we did send a result in the previous step, then send any - (2) additional results that are feasible for the same input file. - - (3) If additional results are needed, step through input files on - (3) the host. For each, if there are results that are feasible for - (3) the host, send them. If there are no results that are feasible - (3) for the host, delete the input file from the host. - - (4) If additional results are needed, and there is (one) unsent - (4) result which is older than 2 hours and is feasible for the - (4) host, send it. - - (5) If we did send a result in the previous step, then send any - (5) additional results that are feasible for the same input file. - - (6) If additional results are needed, select an input file name at - (6) random from the current input file working set advertised by - (6) the WU generator. If there are results for this input file - (6) that are feasible for this host, send them. - - (7) If additional results are needed, carry out an expensive, - (7) deterministic search for ANY results that are feasible for the - (7) host. This search starts from a random filename advertised by - (7) the WU generator, but continues cyclicly to cover ALL results - (7) for ALL files. If a feasible result is found, send it. Then - (7) send any additional results that use the same input file. If - (7) there are no feasible results for the host, we are finished: - (7) exit. - - (8) If addtional results are needed, return to step 4 above. - - sched/ - sched_locality.C - - - David 17 Jan 2005 - - don't start apps until after benchmark - (may work around CPDN bug) - - client/ - client_state.C - - Rom 17 Jan 2005 - - Bug Fix: Remove the ability for the CC to exit when a project fails to - attach. This now keeps the CC from exiting for te Single and Shared - install types as well. - - Bug Fix: Remove the readme options from setup. - - Bug Fix: Enable the checkboxes in setup by default. - - client/ - main.C - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/0409 - readme.txt - win_build/installerv2/redist/windows - BOINC.vbs - - Janus 18 Jan 2005 - - Initial test-version of the moderation system - Please test the current features (deleting posts, moving posts) and see - if this is how it should be done. - The rest is mostly copy-paste work as the same design can be used for - threads as well. - - This update includes: - - Deleting posts - - Moving posts - - Sending email notice to post author - - Users cannot edit their posts more than 1 hour after creating them - - Deleted posts are only shown to moderators - - Inversion of $filter_on in getThreads and getPosts (!) - Now the bit means "show deleted posts/threads" and defaults to off - - New special user bitfield - - Due to the new special user bitfield you must redefine who is who in your - project. Currently this is done manually (idea for the ops page, anyone?) - - This is how the bitfield is used: - 1st bit = Moderator - 2nd bit = Project Admin - 3rd bit = Project dev - 4th bit = Project tester - 5th bit = Volunteer dev - 6th bit = Volunteer tester - 7th bit = Project Scientist - - So if I'm a project admin and want to be moderator as well, I would - do the following SQL query: - - Update forum_preferences set special_user = '1100000' where userid=42 - html/ - user/ - forum_edit.php - +forum_moderate_post.php (new) - +forum_moderate_post_action.php (new) - inc/ - forum.inc - email.inc - +forum_moderators.inc (new) - ops/ - update_db.php - - David 18 Jan 2005 - - user web: general code cleanup, - and increased use of stylesheets for formatting - rather than hard-wired HTML - - use tables for profiles - - change way profiles are rated - - html/ - inc/ - forum.inc - prefs.inc - profile.inc - util.inc - user/ - forum_edit.php - forum_help_desk.php - forum_sample_index.php - forum_thread.php - profile_rate.php (new) - profile_search_action.php - view_profile.php - white.css - sched/ - db_dump.C - - David 18 Jan 2005 - - fix "added clauses" feature of admin web DB interface - - html/inc/ - db_ops.inc - - David 18 Jan 2005 - - added --cron-tasks option to start - (does periodic tasks but doesn't start daemons) - From David Hammer. - This should arguably be used instead of --cron - because if daemons are crashing you'll find out about it sooner. - - sched/ - start - - David 18 Jan 2005 - - added element to SCHED_CONFIG. - Lets the scheduler turn away clients below a certain version - without doing a lot of work - (especially important for locality scheduling) - - doc/ - configuration.php - sched/ - sched_config.C,h - handle_request.C - - David 18 Jan 2005 - - initial checkin of RPCs for account management systems: see - http://boinc.berkeley.edu/acct_mgt.php - - NOTE: to use this feature, you'll need to update your DB - using update_1_19_2005() - - html/ - ops/ - db_update.php - user/ - am_confirm.php - am_create.php - am_query.php - - Bruce 19 Jan 2005 - - Patches from Reinhard Prix to fix several problems. - (1) apps being suspended would call boinc_finish(nonzero) and - core client would treat this as app failure. Introduce - a new function boinc_exit() and call that instead. - (2) improvements to GUI build with wxWidgets - (3) improved X event handling loop now ensures that X window - is taken away when window killed. - configure.ac - clientgui/ - Makefile.am - api/ - boinc_api.h - boinc_api.C - x_opengl.C - lib/ - filesys.C - - David 19 Jan 2005 - - don't show rating buttons when user looks at their own profile - - html/inc/ - profile.inc - uotd.inc - - David 19 Jan 2005 - - Change the logic in CLIENT_STATE::do_something to - avoid unsuspending activities before starting them - - change CLIENT_STATE::check_suspend_activities() from int to void - - Checked these changes into boinc_public also - - client/ - client_state.C,h - cs_prefs.C - - David 19 Jan 2005 - - db_dump: deleting the old stats dir with /bin/rm -rf - fails sometimes ("dir is not empty"). - If this happens, try renaming it. - - sched/ - db_dump.C - - Bruce 20 Jan 2005 - - From Reinhard Prix. At Rom's request, this builds the - Linux client and clientgui using static rather than - dynamic linking to the gcc C++ lib. Note that modifying - this to do the same whenever gcc is used (not just under - Linux) might be desirable. - - configure.ac - client/ - Makefile.am - clientgui/ - Makefile.am - - David 20 Jan 2005 - - Added cross-project IDs for hosts. - This lets statistics sites show work per host, summed over projects. - - Implementation: - Hosts generate their own "internal" CPIDs, - using an MD5 of time/domain/IP/disk_free. - This should be unique across that user's hosts. - It's stored in the HOST_INFO structure and sent to server. - The server hashes the internal CPID with the user's email address - and stores the resulting "external" CPID in the host table. - It is included by db_dump in elements. - - PROJECT NOTE: if you use this server code you will need - to apply update_1_20_2005() from html/ops/db_update.php to existing DBs - - client/ - client_stats.h - hostinfo_unix.C - win/ - hostinfo_win.cpp - db/ - boinc_db.C,h - schema.sql - html/ops/ - db_update.php - lib/ - hostinfo.C,h - sched/ - db_dump.C - handle_request.C - server_types.C - start - - David 20 Jan 2005 - - scheduler compile fix for Solaris - - sched/ - sched_locality.C - - David 20 Jan 2005 - - client: strip whitespace from command lines - (prevents buildup of CRLFs in state file) - - in filesys.C, replaced #ifndef NDEBUG with #if 0 - to fix Windows compile - - client/ - client_types.C - lib/ - filesys.C - - David 20 Jan 2005 - - converted code to LGPL license - - (essentially all files) - - Rom 20 Jan 2005 - - Bug Fix: Remove some code that was keeping half of the - check_suspend_activities conditions to be skipped. - - NOTE: basically this was causing BOINC to alternate - between suspended mode and non-suspended mode twice - a second because the check for user idle activity - happened after we returned from the function which - means that reason was returning 0, meaning we shouldn't - be suspended. - - - Bug Fix: Setting activities_suspended should happen outside - the check for tasks_restarted, since it is used later in - the function, and activities_suspended may not be what - we expect it to be. - - Cleanup: In the idle detection routine save the needed values - to a variable so we can see them as we are steping though - the code, let the optimizer deal with it on release builds. - - Bug Fix: Remove the Modify option in setup, our setup is an - all or nothing deal. - - Bug Fix: Configure setup for automatic upgrades, this requires - the previous MSI databases from the builds we release to - public. - - NOTE: I need to talk to David about this a little bit, but - I think it is doable. - - Bug Fix: Fix the screensaver load up problem where it was - taking 60 seconds before the first text was displayed. - - NOTE: This reintroduces a bug where the screensaver slows to - a crawl when boinc isn't running in the background. I - think I've figured out a solution to it, but I didn't get - the code written for this release. - - client/ - client_state.C - cs_prefs.C - client/win - hostinfo_win.cpp - win_screensaver.cpp, .h - win_build/installerv2/ - BOINC.ism - - Rom 20 Jan 2005 (boinc) - - Tag for 4.60 release, all platforms - boinc_core_release_4_60 - - David 20 Jan 2005 - - Add external_ip_addr field to host table. - This is the REMOTE_ADDR reported by Apache - when the host contacts the scheduler. - May be different from the IP address reported by the host - (e.g. if the host is behind a NAT) - - NOTE: project must update their databases - (html/ops/db_update.php, update_1_20a_2005()) - to use this code. - - db/ - boinc_db.C,h - html/ops/ - db_update.php - sched/ - handle_request.C - - David 21 Jan 2005 - - Make it possible to abort/suspend/resume - results even when they're not active (i.e. not ACTIVE_TASK exists) - - move suspended_via_gui flag from ACTIVE_TASK to RESULT - - add aborted_via_gui flag to RESULT - - if start a task whose result is aborted_via_gui, abort immediately - - suspended results aren't eligible to start - - GUI RPCs that modify state set dirty flag - - client/ - app.C,h - client_state.C - client_types.C,h - cs_account.C - cs_apps.C - gui_rpc_server.C - - David 21 Jan 2005 - - rename ACTIVE_TASK::state to task_state - (to avoid confusion with RESULT::state) - - remove ACTIVE_TASK::exit_status - (just use RESULT::exit_status) - - when start result aborted via GUI, set its exit status accordingly - - CLIENT_STATE::app_finished(): - don't deal with output files if task was aborted via GUI - - client/ - app.C,h - app_control.C - app_start.C - cs_apps.C - - David 21 Jan 2005 - - finalize result correctly when aborted via GUI - - add aborted_via_gui flag to GUI RPC's version of RESULT - (the BOINC manager needs to look at this flag) - - client/ - app_control.C - app_start.C - lib/ - gui_rpc_client.C,h - - Rom 22 Jan 2005 - - Bug Fix: Upgrades of BOINC should now work correctly, any new - version of BOINC should automatically uninstall the previous - version before installing the new version. - - NOTE: The ProductCode has to be changed between each version or - the installer will believe it is a minor version change and - not prompt the UI, it'll just overwrite the files. - - win_build/installerv2/ - BOINC.ism - - Janus 23 Jan 2005 - - When listing a user's posts, only display deleted posts to the - author or moderators. When displaying them, display additional - info as to why the post was deleted. - (by Jens Seidler) - - html/user - forum_user_posts.php - html/inc - forum.inc - - Bruce 24 Jan 2005 - - Fixes from Christian Beer for ops pages to approve profiles and - to errors in the previous 20/next 20 links when 'additional - clauses' is non-empty. Restore missing project_footer() function. - - From Bernd Machenschalk, build self-extracting installer under - Solaris, now works with normal Sun/Solaris make (don't need gnu make). - - html/ - inc/ - db_ops.inc - profile.inc - project.sample/ - project.inc - - David 24 Jan 2005 - - Save proxy user names and passwords to disk in XML-escaped form - (so passwords of the form X and - set. Note that (1) this deletion simply removes the tag, so - file won't be deleted until after all WU that depend upon it are - completed and (2) the mechanism to determine which file to delete - could be improved. TODO: improve messages to hosts which have no file - space and ALSO have no files to delete. - - scheduler changes: locality scheduling. Clean up code which makes a - deterministic search of results to delete. Data files names can not - contain the "~" character! - - modified the send_new_file_work() function to look for unsent work - starting with a random time 6 to 12 hours ago. - - scheduler changes: added a simple debugging mechanism for scheduler - requests/replies. If you touch a file named 'debug_sched' in the project - root, then files called sched_reply_HOSTID_RPCNO and - sched_request_HOSTID_RPCNO will be created - under cgi-bin/ which contain the scheduler replies. You can turn on - this mechanism for some time to study the scheduler replies. - - David, the write() function that I added to SCHEDULER_REQUEST can - probably be done better. It would be nice if all the classes that - this includes an instance of had their own write() functions: it - would make debugging very easy. - - sched/ - handle_request.C - sched_locality.C - server_types.h - server_types.C - - Eric K. 31 Jan 05 - Fixed typo in lib/parse.C - - lib/parse.C - - Janus 31 Jan 05 - - Added functions to read and parse .po translations for the webinterface. - - Changed apps.php to use these new functions as an example. - - Added a tiny example language interface file - - Added language files (that are valid with regards to the interface) for - English and Danish as an example - - The script (Apache or whatever webserver is used) must have write- - access to the /languages/compiled directory as well as /languages/. It - will create compiled versions of the interface file and language files the - first time a page is accessed after a new language file or interface file - has been installed. - - To output something that can be translated, a page can use: - echo tr(MY_TOKEN); - where MY_TOKEN is the token-name used to identify the text that will be - output. To actually be allowed to write and use MY_TOKEN, the token must - be added to the language interface. The language interface file is simply - a file containing all the valid tokens listed one per line. Adding - MY_TOKEN - to the bottom of the file will make "MY_TOKEN" a valid token. - - Whenever you add a new token to the interface you _should_ at least add - the text to the english language file located in - /languages/translations/en.po - This file is used as default language and will be used as fallback in case - a translator for another language does not provide a translation for your - particular token (which especially will be the case when you add a new - token). - - You should be able to add comments using a # as the first char in a line - - at least in the .po-files. - - Future plans: 1) An expansion for project specific translations which can - be independently maintained by the project. - 2) Language selection in user prefs (to override browser defaults) - 3) Even better automatic language detection - - html/ - inc/ - translation.inc (new) - languages/ (new) - language_interface (new) - translations/ (new) - da.po (new) - en.po (new) - user/ - apps.php - - David 31 Jan 2005 - - Make it possible for a scheduler RPC reply to include several "messages", - each with its own message body and priority. - This involved changes to both scheduler and core client. - If the current core client gets several messages, - it will display only the last one. - - client/ - cs_scheduler.C - scheduler_op.C,h - sched/ - handle_request.C - sched_send.C - server_types.C,h - - David 31 Jan 2005 - - Made WORK_REQ into a member of SCHEDULER_REPLY. - This makes it available in handle_request() - in case you want to send user messages based on it. - Also reduces the number of structs that have to be - passed around everywhere. - - Fixed formatting in sched_locality.C. - Bruce: please use 4-space indentation, no tab chars - - sched/ - sched_locality.C,h - sched_send.C,h - server_types.C,y - - David 31 Jan 2005 - - Changed the way the core client handles elements - in scheduler RPC replies. - Old: clear the FILE_INFO's sticky bit - New: set a FILE_INFO::marked_for_delete flag. - An unreferenced file will be deleted if this flag is set, - regardless of whether the sticky flag is set. - If the marked_for_delete flag is set, - it won't be reported in scheduler RPCs, - even if the report_on_rpc flag is set. - This avoids situations where a server asks the client to delete a file, - but later sends work to that file - because it's reported in an RPC file list - - client/ - client_state.C - client_types.C,h - cs_scheduler.C - - David 31 Jan 2005 - - Core client: moved initialization stuff to new boinc_init(); - change main() so that it calls boinc_init(), - then does platform-specific stuff, - then calls boinc_main_loop() - This ensures, e.g. that check_unique_instance() is called - before most other stuff - - client/ - main.C,h - win/ - win_service.cpp - - Rom 31 Jan 2005 - - Implement log files for the BOINC Manager - - Implement call stacks, and memory leak detection for the BOINC Manager - on Windows - - Implement log rotation for both the core client and manager - - Implement stderr and stdout redirects with the core client - - Make the manager start the core client with IO redirection enabled - - Cleanup some more memory leaks in the BOINC Manager - - Enabled the STL use of the debug heap on Windows - - client/ - client_state.C, .h - cs_cmdline.C - cs_files.C - file_names.h - main.C - client/win/ - wingui_mainwindow.cpp - clientgui/ - BOINCGUI.cpp, .h - LogBOINC.cpp, .h (Added) - Makefile.am - ViewProjects.cpp - ViewMessages.cpp - ViewResources.cpp - ViewTransfers.cpp - ViewWork.cpp - stdwx.h - lib/ - diagnostics.C, .h - win_build/ - BOINCGUI.vcproj - - Rom 31 Jan 2005 - - Move the SetCurrentDirectory call to boinc_init() from service_main() - which was causing the log files to be put into the system32 directory. - Fixes start as service setup case. - - Flush stderr as well as stdout in boinc_init() - - Remove needless calls to PostMessage from check_unique_instance() - - Adjust BOINC Manager so that it can properly detect if it can open - a connection to the core client so that it can determine - if it needs to start it. Fixes single user setup case. - Should I make a complete API call in case another application - has port 1043 open? - - Cleanup exception.C out of the core client project. - - client/ - file_names.C - main.C - clientgui/win/ - win_service.cpp - clientgui/ - BOINCGUIApp.cpp - MainDocument.cpp, .h - win_build/ - boinc_cli.vcproj - - David 1 Feb 2005 - - scheduling server: if host is 4.62 or earlier, concatenate messages - - sched/ - server_types.C - - David 1 Feb 2005 - - MFILE's buffer was not being maintained as NULL-terminated. - This caused problems with GUI RPC, where the buffer was - transferred to code that expected it to be NULL-terminated - - lib/ - mfile.C,h - - Rom 1 Feb 2005 - - Implement the UI for aborted results that have not been executed before. - - Initialize aborted_via_gui since wxWidgets initializes bools to true. - - clientgui/ - MainDocument.cpp, .h - ViewWork.cpp - lib/ - gui_rpc_client.C - - Rom 1 Feb 2005 (boinc) - - Tag for 4.63 release, all platforms - boinc_core_release_4_63 - - Bruce 2 Feb 2005 - - Fixed trivial bug in scheduler which caused messages sent to clients - < 4.62 to be interchanged with their priority. So if the message was - supposed to be 'No work available' with priority 'low', the actual - message sent was 'low'. - - sched/ - server_types.C - - Bruce 2 Feb 2005 - - Improvements to the file deletion mechanism. Now try removing files if - no work was sent to hosts, and available space<0 OR if available space>0 - but work was unfeasible because the disk bound requirements of the work - exceeded the available space. - - Added a new config.xml boolean element called 'choose_download_url_by_timezone' - This requires that projects provide a 2-column file in the project root named - 'download_servers'. An example is: - 3600 http://einstein.aei.mpg.de - -21600 http://einstein.phys.uwm.edu - The first column is offset from UTC in seconds, and the second column is the URL - of the download server. When enabled, the scheduler will replace the download - path for data and executables by a list of download URLs, ordered by proximity - to the host's timezone. The download path must start with the - BOINC default download/ and the different download servers must have identical - file paths under download/, in other words they must be mirrored. - - Really exciting news, David: I have finally gotten emacs to obey your - indentations and formatting conventions, apart from doing this: - some_function(foo, bar - ); - instead of this: - some_function(foo, bar - ); - Emacs experts, advice appreciated! - - doc/ - configuration.php - server_debug.php - - sched/ - sched_config.h - sched_config.C - sched_send.C - handle_request.C - - Rom 2 Feb 2005 - - Moved localization resources to the root of the project per a discussion with - Janus, basically we are going to try to have all the localization material - for the web/Forum and clients all in one place. - - clientgui/locale/ - - locale/ - - - Bruce 2 Feb 2005 - - - Made the caching of md5 info for source files a configuration option in - config.xml. Use the boolean tag to enable it. - This prevents the work generation library from having to go back and - continuously regenerate the md5 sums of your input data files. Note - that reading these from disk can be expensive if you have many such files - that are large and that you re-use. See check-in notes from 30/31 Dec 2004 - for some details. - - doc/ - configuration.php - sched/ - sched_config.C - sched_config.h - tools/ - backend_lib.C - - Rom 2 Feb 2005 - - Bug Fix: Adjust the manager so that it'll set it's current directory - to that of its installed location. - This will fix the bug of the log files ending - up where the installer is executed from. - - Bug Fix: Remove the message cache from the message view in the manager. - This should clear up a crashing problem that seems to - strike the Win9x platform. - - clientgui/ - BOINCGUIApp.cpp - ViewMessages.cpp, .h - - David 2 Feb 2005 - - Scheduler: make things more uniform between locality - and non-locality (work array) scheduling. - Both cases use the following functions: - 1) call wu_is_feasible() to see if the host has enough - disk, memory, and CPU speed to handle a result. - (added this to locality scheduling) - 2) call add_result_to_reply() when you decide to send a result. - This updates database and SCHED_REPLY. - - If using locality scheduling, add_result_to_reply() doesn't - decrement wreq.disk_available, - since several results may involve the same file. - BRUCE: we need to decrement disk_available in - the locality scheduling code. - - add disk space check to wu_is_feasible() - (and removed it from scan_work_array()) - - simplified the args of wu_is_feasible() - - work_needed(): if wreq.disk_available is <= zero, - set the wreq.insufficient_disk flag and return false. - NOTE: this and wu_is_feasible() are now the only places - where we disk space is checked - - lib/ - error_numbers.h - sched/ - sched_locality.C - sched_send.C,h - - David 2 Feb 2005 - - core client: add platform name and client version to HTTP request headers - - client/ - http.C - - Rom 2 Feb 2005 - - Bug Fix: The screensaver really should call UpdateErrorBox frequently, - otherwise the error box ends up being drawn outside the visible region - of the window, which gives the impression that the screen has gone blank. - - Bug Fix: Give the core client enough time to actually cycle through all - the capable graphics applications before acting on the error codes. - - client/win/ - win_screensaver.cpp, .h - - Rom 2 Feb 2005 - - Bug Fix: Ops, when deleting a bunch of code, make sure all of it really - isn't needed. When the manager looses the core client reset the message - sequence back to zero so when we detect the core client again we can - get all the messages. - - clientgui/ - MainDocument.cpp - - Rom 2 Feb 2005 - - Tag for 4.64 release, all platforms - boinc_core_release_4_64 - - Rom 2 Feb 2005 - - Use the same technique to statically link nsl and socket for the client - as the clientgui. - - move the apps directory from the API_SUBDIRS variable to the - SERVER_SUBDIRS variable since we really don't need to build the - sample applications when all we really want is just the boinc client - tools. - - / - configure.ac - Makefile.am - - Rom 3 Feb 2005 - - Bug Fix: On machines older than Windows 2000 don't attempt to use memory - mapped files as an IPC mechinism for trapping when the last keyboard - or mouse input has happened. It's just easier to use the DLL shared - memory segment, and keeps us from crashing due to the fact that the - init function isn't called before the hook functions in external - processes. - - client/win/ - win_idle_tracker.cpp - - Bruce 3 Feb 2005 - - core client: add platform name and client version to HTTP request headers - when going via a proxy server. See David's change just above from 2 Feb. - - client/ - http.C - - David 3 Feb 2005 - - when get a FILE_INFO in a scheduler RPC reply, - replace the current list of URLs - with the list in the scheduler reply - - client/ - client_types.C - - David 3 Feb 2005 - - include platform name and client version in all GET and HEAD - HTTP request headers. - (but not POST - not needed since included in request body) - Note: would be nice to include host ID, but that info - isn't available at the HTTP level - - client/ - http.C - - Rom 3 Feb 2005 - - Bug Fix: Fix a localization problem where the application version - number was being localized when it shouldn't be. - - Bug Fix: The dwBlankTime variable is initialized at screensaver - startup instead of when BOINC is notified to start the screensaver. - This should fix the case where the blank time is longer than - the project cycle time. - - Bug Fix: Fix the version number display for a science application - in the work tab. It shouldn't use the localization rules. - - Bug Fix: In the transfers tab, replace upload with transfer. - - Bug Fix: In the work tab, replace "Quick Tips" with just "Tips" - to be consistent with the rest of the tabs. - - Bug Fix: Additional check to see if any new messages have been added - before changing the visible messages in the message tab. - - Bug Fix: Change the default blank time to 5 minutes. - - Bug Fix: Remove the ability for us to affect the secure password - option on NT based machines. - - Bug Fix: Check to see if we are running setup on an NT 4.0 box - acting as a Domain Controller, if we are warn the admin that - they'll have to manually set the 'LogonAsService' right themselves - with the User Manager for Domains, and then set the setup flag to - false. - - Bug Fix: Reorder the Service setup dialog so that there are entries - after the password confirmation edit box which gives us the extra - step needed to enable the next button. - - Bug Fix: Enable the 'Property as Integer' bit of the various checkboxes - we use in setup so that when somebody unchecks the damn checkbox it - finally does what I expected it to do in the first place. - - client/win/ - win_screensaver.cpp, .h - clientgui/ - ViewWork.cpp - ViewTransfers.cpp - ViewMessages.cpp - win_build/installerv2/ - BOINC.ism - - Rom 3 Feb 2005 - - Tag for 4.65 release, all platforms - boinc_core_release_4_65 - - Rom 3 Feb 2005 - - Bug Fix: Add a comment to the service install option that states that - show graphics does not work in the service install scenario. - - win_build/installerv2/ - BOINC.ism - - Rom 3 Feb 2005 - - Bug Fix: Add the 'Users' group to the list of users permissioned to read - and execute from within the BOINC folder after a service install. - - win_build/installerv2/ - BOINC.ism - - Janus 4 Feb 2005 - - Added strong to the list of allowed html tags in the forum. - - html/inc/ - sanitize_html.php - - Rom 4 Feb 2005 - - Bug Fix: Surround the calls to atol and atof in parse_int and parse_double - with setlocale calls so that we can parse numerical types from the core - client even while the manager is configured for a different locale. - - lib/ - boinc_win.h - parse.C - - Rom 4 Feb 2005 - - Bug Fix: Don't record the blank time as Epoch time in the registry. - - client/win/ - win_screensaver.cpp - - Eric K 4 Feb 2005 - - Added diagnostics.[Ch] to the gui build. (Builds were failing because it - was missing) - - Added function xwin_glut_is_initialized() so applications can tell if glut - is initialized. - - clientgui/Makefile.am - api/ - x_opengl.[Ch] - - Rom 4 Feb 2005 - - Bug Fix: Adjust the display of the app version in the work tab with a call - to setlocale instead if parsing a string. It looks better, and works - under a larger set of conditions. - - Bug Fix: Change the display of the progress indictator in the work tab to - use printf instead of just setting the string. This allows the progress - to be displayed in a localized fashion. - - Bug Fix: Change the transfer rate in the transfer tab to use printf instead - instead of just setting the string. This allows the progress to be - displayed in a localized fashion. - - Bug Fix: Add keyboard accelerators for all the setup configuration screens. - - clientgui/ - ViewTransfers.cpp - ViewWork.cpp - win_build/installerv2/ - BOINC.ism - - Rom 5 Feb 2005 - - Bug fix: Rework the logic for NT 4.0 BDC detection and dealing with the - condition. - - win_build/installerv2/ - BOINC.ism - - Rom 5 Feb 2005 - - Tag for 4.66 release, all platforms - boinc_core_release_4_66 - - Rom 5 Feb 2005 - - Bug Fix: Remove the Users group from the service install type ACL list. - - Bug Fix: Set ALLUSERS to null when either the Single or Service install - type is selected - - Bug Fix: Adjust the validate setup type script to account for the new - rules - - Bug Fix: When switching from an error state to the blank screensaver - state, invalidate the window and redraw the background. Basically - that was causing us to display out of sync project data. - - Bug Fix: Another screensaver transitional state fix - - client/win/ - win_screensaver.cpp, .h - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/windows - BOINC.vbs - - Rom 6 Feb 2005 - - Bug Fix: Reduce the flicker of the error box by only painting on - every third WM_PAINT message. - - client/win/ - win_screensaver.cpp, .h - - David 6 Feb 2005 - - Initial client support for "account managers". - Includes: - - new core client class (ACCT_MGR) for doing RPCs - to account managers - - GUI RPC for initiating an account manager RPC - TODO: add support in BOINC Manager - - client/ - acct_mgr.C,h (new) - file_names.h - gui_rpc_server.C - win_build/ - boinc_cli.vcproj - - David 6 Feb 2005 - - The critically important "work_req_seconds" field of a scheduler request - was not documented anywhere. - The units of this request are "normalized CPU seconds": - the request specifies the number of wall-clock seconds - the work should take to finish using 1 CPU on the host, - taking into account resource share, on_frac, and active_frac. - - client side: - document; - take on_frac into account - - server side: - document; - use wall-clock instead of cpu estimate for "seconds filled"; - take on_frac into account in wallclock estimate. - TODO: it would be simpler if the request just specified a number of FLOPs . - That way the server wouldn't have to - know about on_frac, resource share etc. - - Code cleanup - - - client/ - client_state.h - client_types.h - cs_scheduler.C - doc/ - work_req.php (new) - sched/ - handle_request.C - sched_send.C - server_types.C - - Rom 6 Feb 2005 - - Bug Fix: Enable the user to select which language the BOINC Manager - should display on startup. This is configured via the tools\options - dialog. - - Bug Fix: BOINC Manager should now remember whether it is maximized - or minimized, it does not remember position because wxWidgets - has a hard time with negitive coordinate values that multi-mon - configurations may have. If you plug in a negative value for - x or y the client ends up off the visible part of the screen. - - clientgui/ - BOINCGUI.pjd - BOINCGUIApp.cpp, .h - DlgOptions.cpp, .h - MainFrame.cpp, .h - - Rom 6 Feb 2005 - - Remove Legacy installer - - Add the BOINC Manager resource templates - - clientgui/res/templates - - win_build/installer - - - David 6 Feb 2005 - - compile fixes - - lib/ - parse.C - sched/ - sched_locality.C - sched_send.C,h - - David 7 Feb 2005 - - add "web service" for verifying a user CPID and an authenticator - - html/user/ - verify_cpid.php - - David 7 Feb 2005 - - If a result is reported after the canonical result's output files - have been deleted, handle this case specially: - don't trigger the validator, - and set the result's validate_state to TOO_LATE (new value) - - Add acct_mgr to Unix makefile - - client/ - Makefile.am - acct_mgr.h - db/ - boinc_db.h - html/inc - result.inc - sched/ - sched_send.C - transitioner.C - - David 7 Feb 2005 - - change limit in stderr_out reporting from 4KB to 63KB - - client/ - app_control.C - - Bruce 7 Feb 2005 - - Add new validate_state==TOO_LATE to ops pages summaries and result table - choice selection menus - - Ops pages fixes from Christian Beers and David Hammer: - * some rearrangement of index page - * fix pass percentage by platform pages to show only non-deprecated apps - * all platforms now appear in summary pages of failures - html/ - ops/ - cancel_wu_action.php - cancel_wu_form.php - clear_host.php - create_account_action.ph. - create_account_form.php - create_forums.php - db_action.php - db_form.php - index.php - failure_result_summary_by_platform.php - forum_repair.php - make_emails_lowercase.php - pass_percentage_by_platform.php - profile_screen_form.php - repair_validator_problem.php - result_summary.php - show_log.php - team_repair.php - inc/ - db_ops.inc - util_ops.inc - - Rom 7 Feb 2005 - - Bug Fix: Introduce a new state for the screensaver where it can display - that it is starting up, instead of flickering between different states - so fast at startup. - - Bug Fix: Only update the status box every ten seconds instead of every - second. - - Bug Fix: Change the update timer to every 30 seconds. - - client/win/ - boinc_ss.h - boinc_ss.rc - win_screensaver.cpp, .h - - Bruce 8 Feb 2005 - - Bug fix: method of determining which download site to point a host to - computing timezone differences, not taking into account the fact that - UTC+11 hours and UTC-11 hours are only 2 hours apart. Duh. - - sched/ - sched_send.C - - Janus 8 Feb 2005 - - Added another example of the use of the new multilanguage features for - the website. This time it is the "Rules and policies" page. - - Small correction to better allow comments and empty lines in language- - files and language interface. - - html/ - inc/ - translation.inc - languages/ - language_interface - translations/ - en.po - user/ - info.php - - David 8 Feb 2005 - - return the last 63KB of stderr output, not first 63KB - - client/ - app_control.C - - David 8 Feb 2005 - - locality scheduling: in send_results_for_file(), - if can't send a result because of a transient reason - (too little disk, estimated delay too large) break out of loop. - This is an attempt to preserve the "next available result ID" invariant. - - sched/ - sched_locality.C - sched_send.C,h - - David 8 Feb 2005 - - Change the way user cross-project ID is maintained. - OLD: when the client sends a scheduler RPC to project P, - it sends the largest CPID among projects with same - email hash as P. - This is saved in P's database and sent in future RPC replies. - Problem (pointed out by John McLeod): - A user's CPID can change whenever he joins a new project. - Statistics web sites don't have permanent IDs for a user. - NEW: when the client sends a scheduler RPC to project P, - it sends the CPID of the project for which user_create_time - is least (i.e. the project with the oldest account). - Project URL is used as a tie-breaker. - - - Fixed a bug where user_create_time wasn't being - parsed correctly from server reply. - - client/ - client_types.C - cs_scheduler.C - - David 8 Feb 2005 - Stuff related to web-site translations: - - - removed blank lines from language_interface; - these caused bad entries in language_interface.inc - - make_project: create additional directories - (html/languages, /compiled, /translations) - and make them writeable to all - - make_project and upgrade: copy language files too - - html/languages/ - language_interface - py/Boinc/ - setup_project.py - tools/ - make_project - - Rom 8 Feb 2005 - - Bug Fix: Add the ability for setup to shutdown any running instances - of the BOINC Manager during install and uninstall. - - Bug Fix: Change "Launch the program" to "Launch the BOINC Manager" - - Bug Fix: Fix a number of event bubble up issues with the base - wxTaskBarEx class, the sample format provided with the wxWidget - framework leads down the wrong path if you try to extend the class. - - Bug Fix: Add another custom action dll to do the actual shutdown - of the BOINC Manager - - clientgui/ - BOINCGUIApp.cpp - BOINCTaskBar.cpp, .h - clientgui/msw/ - taskbarex.cpp, .h - win_build/installerv2/ - BOINC.ism - win_build/installerv2/Windows/src/ShutdownBOINCManager - ShutdownBOINCManager.cpp ( added ) - ShutdownBOINCManager.def ( added ) - ShutdownBOINCManager.sln ( added ) - ShutdownBOINCManager.vcproj ( added ) - stdafx.cpp, .h ( added ) - win_build/installerv2/Windows/x86/ - shutdown.dll - - Bruce 8 Feb 2005 - Added new tag pair to config.xml: - N - M - This is used to warn users in advance if a new minimum core client is going - to be required. Users have until time 'M' (Unix epoch time(2) format) - to upgrade. Not yet tested. - - doc/ - configuration.php - sched/ - handle_request.C - sched_config.C - sched_config.h - - - - Bruce 8 Feb 2005 - - Turn off ops pages that update the data base. These now issue a message - informing the project admin that they need to be explicitly edited to - enable updating the database. This will help prevent inadvertent use. - Thanks to David Hammer. - - html/ - ops/ - clear_host.php - forum_repair.php - make_emails_lowercase.php - repair_validator_problem.php - team_repair.php - - David 9 Feb 2005 - - small bug fix: set must_reschedule_cpus in - ACTIVE_TASK_SET::exit_tasks(). - This fixes a (rare) situation where you detach from a project, - other projects' tasks are not run, and the CPU is idle. - - win graphics compile fix - - api/ - reduce_lib.C - client/ - app_control.C - client_state.h - - Eric K. 9 Feb 2005 - -Unfortunately on some 32 bit systems there is a problem with wx-widgets - configuring itself for largefile support. On these systems largefile - support breaks C++ compiles by defining away many of the C standard library - routines that should reside in namespace std::. In order to get around - problem first we have to check the largefile support macros. Later we will - use the macro SAH_LARGEFILE_BREAKS_CXX to check for the breakage. If - if breakage is found LARGEFILE_BREAKS_CXX is defined in config.h. This - define is checked in std_fixes.h and the appropriate functions are defined - in order to solve the problem. (These functions were already in place) - Because these defines affect the behavior of standard library headers, - std_fixes.h is being included from config.h - -Added AM_CPPFLAGS, AM_CFLAGS, and AM_CXXFLAGS (for flags common to all - compiles) so they will be defined in all Makefile.am files. - -Put #ifdef _cplusplus around the C++ specific items in std_fixes.h so it - may be included from C source files. - - configure.ac - Makefile.incl - m4/ - sah_largefile_breaks_cxx.m4 - api/ - Makefile.am - lib/ - std_fixes.h - - David 9 Feb 2005 - - locality scheduling: move check for transient infeasibility - to SCHEDULER_REPLY::work_needed() for uniformity - - scheduler: if request has different CPID, accept it - whether or not it's greater than current one - - file deleter: show full path in error messages - - sched/ - handle_request.C - sched_locality.C - sched_send.C - server_types.h - - Rom 9 Feb 2005 - - Bug Fix: Fix a stupid mistake where I wasn't even checking to see if a - person selected to allow the screen to be blanked before setting the - blank timer to work. - - client/win/ - win_screensaver.cpp, .h - - Rom 9 Feb 2005 - - Bug Fix: If a result is flagged as 'Aborted', do not show the - 'Suspend'/'Resume' options in the task list. - - Bug Fix: If a result is suspended without having already been - executed, display it as suspended instead of 'Ready to Run' - - clientgui/ - ViewWork.cpp - - David 9 Feb 2005 - - scheduler changes to get the FCGI version to compile. - Problem: the FCGI library inexplicably doesn't provide - a version of fscanf(). - Some of Bruce's recent additions - (timezone-dependent URL, MD5 caching) use fscanf(). - I commented them out with the _USING_FCGI_ symbol. - This shouldn't affect anyone since E@h doesn't use FCGI. - - sched/ - sched_send.C - tools/ - backend_lib.C - - David 9 Feb 2005 - - report GUI RPC connection rejected errors at most once every ten minutes - - client/ - gui_rpc_server.C - - Bruce 10 Feb 2005 - More sched locality and other scheduler changes. - - Address David's comment of Feb 2. - Now properly reduce the disk size resource requirements - of a WU being sent if the file is already on the host, - or already included in a previous WU being sent. - DAVID: please check that reply_copy.wus.pop_back() is right. - - For this, define a function host_has_file(). - This can also be used in the future for more intelligent - file deletion schemes. - - Make warnings to upgrade old clients have low priority until - 3 days before deadline. Then high priority. - - Fix sign error in messages sent to users about insufficient disk space. - - Move extract_filename() from sched_locality.C to sched_util.C - - Pretty up the ordered list of URLs printed for a given host. - - I've even tested these changes before committing them! - - sched/ - handle_request.C - sched_locality.C - sched_send.C - sched_util.[hC] - - Bruce 10 Feb 2005 - Added code to the scheduler so that it will dump core on SEGV. - This is disabled by default. - Having this is really useful if the scheduler is crashing - some of the time. - You can load the core dump file into a debugger to see where things are - breaking. To use this, edit sched/main.C by hand and set - #define DUMP_CORE_ON_SEGV 1 - - sched/ - main.C - - Eric K 10 Feb 2005 - Fixes to get server components compiling under FCGI. - - Added check for _USING_FCGI_ in std_fixes.h in order to prevent - redefinition of stdlib functions with LARGEFILE_BREAKS_CXX is defined. - - Because FCGI doesn't have fscanf() and fgetc() that work on FCGI_FILE*, - the FILE pointers for these functions need to be wrapped in a call to - FCGI_ToFILE(). In the case where FCGI isn't being used we define - FCGI_ToFILE(x) to (x). - - lib/ - std_fixes.h - sched/ - sched_send.C - tools/ - backend_lib.C - - David 10 Feb 2005 - code shuffling in scheduler: - - moved locality-specific code from sched_send.C to sched_locality.C - - moved timezone-related code to sched_timezone.C - - sched/ - Makefile.am - sched_locality.C,h - sched_send.C - sched_timezone.C,h (new) - - David 10 Feb 2005 - - expanded gui_test to a full-featured command-line interface - to the core client, and renamed it to boinc_cmd. - The commands have all changed; see code (I'll write a web page too) - - lib/ - Makefile.am - boinc_cmd.C (new) - gui_rpc_client.C,h - gui_test.C (removed) - - Rom 10 Feb 2005 - - Bug Fix: Inconsistant window state was causing the BOINC Manager to - be blank on startup, basically either wxWidgets or Windows wasn't - properly dealing with the Window state changes and the client - would believe it was not being displayed when in fact it was on - the screen. When the window was hidden from view, it would - skip updating any of the controls. - - clientgui/ - BOINCGUIApp.cpp - BOINCTaskBar.cpp - MainFrame.cpp - - Eric K 10 Feb 2005 - - There was a problem using dynamic allocations (with new) in many of the - graphics classes. In many places the code was written assuming default - values of 0, especially for pointers and booleans. While that's true - in the case of a static instance with the default constructors, it not - generally true with dynamic allocation unless the default constructor - is replaced. Therefore I've added constructors in the following - classes/structs: MOVING_TEXT_PANEL, COLOR, PROGRESS, PROGRESS_2D, - TEXTURE_DESC, REDUCED_ARRAY. - - This will be a problem is any are used from C code unless the - constructors declarations are enclosed in "#ifdef __cplusplus" blocks. - - There was also a problem that showed up under Windows when dynamic - allocations were used. app_graphics_resize() gets called before - app_graphics_init(). This usually results in a crash since classes - haven't yet been constructed. To work around this I've added a case - for WM_CREATE in the WndProc() which calls app_graphics_init. Under - windows this will get passed before WM_SIZE does. - - api/ - gutil.C - gutil.h - reduce_main.C - windows_opengl.C - - Rom 10 Feb 2005 - - Bug Fix: Reorder the logic for NT 4.0 domain controllers one more - time. Damn variant variable types. - - win_build/installerv2/redist/windows/ - BOINC.vbs - - Bruce 10 Feb 2005 - - Sched locality change: if the host does not have enough memory to satisfy - a work request, do not search for or send further work. This is the same - way that disk space limits are handled. This is necessary since otherwise - a host with small memory will endlessly trigger the WU generator, churning - out infeasible WUs. - - Added boolean arg to host_has_file() following David A's advice. This - eliminates the 'expensive' copy of a large data structure. The bool arg - makes host_has_file() skip the final WU in the vector in hunting for a file. - - Better log message for setting coredump size. - I - Added RCSID tag to sched_timezone.C - - Got rid of annoying 'no ' tag messages from scheduler - sched/ - sched_send.C - sched_locality.C - main.C - sched_timezone.C - server_types.C - - David 11 Feb 2005 - - Core client: require that an app version's main program be executable - (and thus that it be digitally signed) - - compile fix for Windows guirpctest (should rename boinc_cmd) - client/ - app_control.C - app_start.C - win_build/ - boinc_guirpctest.vcproj - - Janus 11 Feb 2005 - - Added translation features to create_account_form.php - - Inserted the text from the page in the language interface and the - english language file - - /html/ - users/ - create_account_form.php - languages/translations/ - en.po - - Rom 11 Feb 2005 - - Bug Fix: Check to see if the hostname given to us is in dotted decimal - notation, if so, convert it into an ip address, otherwise pass it to - a name resolution service. - - client/ - net_xfer.C - - David 11 Feb 2005 - - core client: added a function maybe_more_data() - to see if there might be more data later - on a socket for which recv() returned -1 - - Previously this was done in HTTP_REPLY_HEADER::read_reply() - in a way that worked on Unix but not Windows, - and it wasn't done at all in read_reply() - (used to read file upload handler replies). - - client/ - http.C - - David 11 Feb 2005 - - compile fix for Unix - - client/ - net_xfer.C - - David 11 Feb 2005 - - compile fix for FreeBSD (from JR Oldroyd) - - api/ - graphics_lib.C - - Janus 12 Feb 2005 - - Added "Delete forum thread" feature - - Added "Double post" to the list of reasons why a post is deleted - - /html/ - inc/ - email.inc - user/ - forum_moderate_post.php - forum_moderate_thread.php (new) - forum_moderate_thread_action.php (new) - forum_thread.php - - David 12 Feb 2005 - - fix to the 11/feb fix - - client/ - http.C - - David 12 Feb 2005 - - added functions in PHP code to get data from GET and POST, - and do various safety checking on it. - These functions should be used exclusively; - $_GET and $_POST should not be accessed directly - - moved some stuff out of html/inc/util.inc - - html/ - inc/ - db_ops.inc - gallery.inc - prefs.inc - profile.inc - util.inc - user/ - various (didn't finish) - - David 13 Feb 2005 - - Get rid of the concept of explicitly "activating" an account. - Instead: whenever the server receives an account key - (whether via the web or in a scheduler RPC request) - for an account that has an unverified email address - (i.e. the email_addr field is in 'munged' form) - it changes the email address to non-munged form. - - html/ - inc/ - email.inc - languages/ - language_interface - translations/ - en.po - user/ - account_created.php - account_setup.php - account_setup_first.php - account_setup_nonfirst_done.php - create_account_form.php - login_action.php - sched/ - handle_request.C - - David 13 Feb 2005 - - code cleanup in forum code. - More validation of GET and POST data - - html/ - forum*.php - - David 13 Feb 2005 - - scheduler: change config option from "enforce_delay_bound" - to "ignore_delay_bound" (i.e. the default is to enforce the bound) - - scheduler: in estimating result delay, - take into account results being included in this reply - (as well as work already on client) - - sched/ - sched_config.C,h - sched_send.C - server_types.C,h - - David 13 Feb 2005 - - Core client: require that all app_version files be signed - - update_versions: put signatures on all app_version files - - client/ - client_state.C - cs_files.C - py/Boinc/ - tools.py - - David 14 Feb 2005 - - user web fixes - - html/user/ - create_account_form.php - account_created.php - - David 14 Feb 2005 - - scheduler: in estimating delay of a result, - ignore time stats (on_frac, active_frac) - if no results have been added to reply yet. - Clients with low on_frac/active_frac - will still get at least one result. - - sched/ - sched_send.C - server_types.C - - David 14 Feb 2005 - - Allow remote application graphics via X11. This involves: - - Adding an optional element to graphics messages - passed from core client to app - - Changed the GUI RPC interface to include display - (as well as window_station and desktop) - - X version of API does putenv("DISPLAY=x") with the display X - it gets from the core client - - change BOINC manager so that (on Unix) it gets the DISPLAY - and passes it in graphics RPCs - - modify boinc_cmd so that it can pass display - - fixed indentation in x_opengl.C - Please follow the existing style!! - - api/ - x_opengl.C - clientgui/ - BOINCGUIApp.cpp,h - MainDocument.cpp,h - ViewWork.cpp - lib/ - app_ipc.C,h - boinc_cmd.C - gui_rpc_client.C,h - - Rom 14 Feb 2005 - - Use the display information passed from the BOINC Manager and - screensaver. - - client/ - app_graphics.C - gui_rpc_server.C - - David 15 Feb 2005 - - Fix the anonymous platform mechanism - - client/ - app_start.C - - David 15 Feb 2005 - - BOINC manager: on Unix, don't ask whether to show remote graphics - - clientgui/ - ViewWork.cpp - - David 15 Feb 2005 - - "upgrade" creates any project directories that don't already exist. - (e.g. html/languages stuff) - - py/Boinc/ - setup_project.py - - Bruce 15 Feb 2005 - - Scheduler changes (global): - - Ignore CPU limitations and resource share entirely, IF - a host: - (1) has no work for this project - (2) has no results in this sched reply - This ensures that any host that wants to do work will at least - get *something*. It liberalizes slightly David A's approach - from 14 Feb 2005. Eliminate use_time_stats from wreq structure. - - Scheduler changes (locality scheduling only): - - Improve return value info for some functions. - - Modify send_old_work() to accept a t_min < t < t_max time range - - New sched locality algorithm to send work to hosts with no files. - Send oldest result in the time range A < t < B where - B = locality_scheduling_timeout/2 - A = B - rand*locality_scheduling_timeout/2 - Here rand is a uniformly distributed random number in [0,1]. - - When an unsent result is older than locality_scheduling_timeout, no - longer send it to the FIRST host that requests work. Instead send - it to the first host which has a connection speed > 100kb/s. - - Fix file deletion. Previously we were deleting files from hosts - when they got no work for that file. But this might have been - because the work was infeasible (cpu time). Now delete files - from host ONLY if there is no work remaining for that file. - - sched/ - sched_locality.C - sched_send.C - server_types.h - - David 15 Feb 2005 - - User web: security-related PHP cleanup - Replace $_GET["id"] with getint("id) here and there. - Use lookup_x() instead of explicit SQL - - html/ - inc/ - db.inc - util.inc - user/ - confirm_email_change.php - edit_email_action.php - host_edit_form.php - host_venue_action.php - hosts_user.php - results.php - show_user.php - team_display.php - team_quit_form.php - userw.php - - David 15 Feb 2005 - - User web: add warning telling message-board posters - not to be obscene or threatening - - html/ - inc/ - forum.inc - user/ - forum_post.php - forum_reply.php - - Bruce 15 Feb 2004 - - More sensible use of request_delay. If a host contacts the - scheduler, and fails to get work because there are N secs - of pending work, then send a delay request of min(3600, N/5) secs. - Otherwise the same host was coming back every hour, without being able - to get additional work. - - Implemented by adding a method set_delay() to - SCHEDULER_REQUEST. This sets the delay to the maximum of the - previous requested delay or the current requested delay. The - delay is NEVER set longer than two days. - - sched/ - server_types.h - server_types.C - handle_request.C - sched_send.C - - David 15 Feb 2005 - - user web - - html/user/ - account_setup_first_done.php (new) - - David 16 Feb 2005 - - user web fixes - - html/user/ - account_setup_first_done.php - team_display.php - - David 16 Feb 2005 - - Giant checkin to remove warnings when compiled with - all known warnings enabled. - This consisted of: - 1) string literals ("foo") are type const char*, - so any variables or args that you assign them to - must be const char* - 2) shadowed variables - 3) unused params (removed or commented out) - 4) a couple of printf format/var mismatches - (nothing that would cause a problem at this point) - - api/ - x_opengl.C - client/ - (most .C, .h) - clientgui/ - (most .C, .h) - res/ - *.xpm - db/ - (most .C, .h) - lib/ - (most .C, .h) - sched/ - (most .C, .h) - tools/ - (most .C, .h) - - Janus 17 Feb 2005 - - Added security checks to forum moderation features - - Added project specific translation ability to the translator: - To use this you simply add language files and tokens in the - project specific language directory: - /html/languages/project_specific_translations/ - There's a dummy en.po file there to show how it is done. - You use the tr(TOKEN)-function to get your token translated. - It is possible to override the BOINC-provided translation by - redefining the TOKEN in the project specific translation files. - - Changed the translator to use the project default language as interface - instead of having to explicitly write everything in a seperate file. - Therefore you do no longer have to add tokens to the - language_interface-file. - - html/ - inc/ - translation.inc - user/ - forum_moderate_thread.php - forum_moderate_post.php - forum_moderate_thread_action.php - forum_moderate_post_action.php - languages/ - language_interface (removed) - project_specific_translations/ (new) - en.po (new) - - Rom 17 Feb 2005 - - Bug Fix: Close down the local boinc daemon if we started the local boinc - daemon. - - Bug Fix: I forgot to change the comparision in the ENABLESCREENSAVER from - string to integer when I changed the control type - - clientgui/ - BOINCGUIApp.cpp, .h - win_build/installerv2/ - BOINC.ism - - David 17 Feb 2005 - - make_project: added --db_host option. - Lets you make a project with a remote DB server - - make_project: got rid of --base option - - add html/languages/project_specific_translations to set - of directories created by make_project and upgrade - - py/Boinc/ - database.py - setup_project.py - tools/ - make_project - - David 17 Feb 2005 - - Win core client: retry CreateProcess() 5 times with random delay, - in case some other process has executable file open - (from Bruce Allen) - - client/ - app_start.C - - Bruce 17 Feb 2005 - - make daily_result_quota be PER CPU with a hardwired limit of - 4 CPUS. - - Improved error messages if users are being denied work because of - lack of CPU. The message reports back their on fraction, active - fraction, and resouce share fraction, as percentages. - - sched/ - sched_send.C - doc/ - configuration.php - - David 17 Feb 2005 - - partially fixed test_uc.py. - It doesn't get Python errors any more, but it sometimes fails. - This is because of file_deleter. - It can delete input files that are needed by - another WU, and it can delete output files before they're checked. - Should fix this. - - test/ - testbase.py - - Rom 17 Feb 2005 - - Add an additional HTTP trace statement to print out the reply size of - an HTTP operation on a failure condition. - - client/ - http.C - - David 18 Feb 2005 - - core client HTTP: in a POST operation (i.e. scheduler RPC) - when start to read reply body, - reset bytes_xferred and file_offset to zero - (otherwise length calculation at the end will fail) - - client/ - http.C,h - - David 18 Feb 2005 - - For some reason I removed a strdup() in my 17 Feb checkin to start.C, - which caused memory corruption on all platforms. - It's back now - - handle in PROJECT::parse_account(). - Gets rid of a spurious warning - - client/ - app_start.C - cs_account.C - scheduler_op.C - - David 18 Feb 2005 - - fix gcc warning - - printf in http.C had wrong conversion character - - client/ - app_start.C - http.C - - David 18 Feb 2005 - - API: removed the check in boinc_init() - that requires the API library to have the same major version - as the core client. - - api/ - boinc_api.C - - David 18 Feb 2005 - - core client: pass proxy info to apps correctly - - client/ - app_start.C - - David 19 Feb 2005 - - user web cleanup (GET arg checking mostly) - - html/user/ - (various files) - - Janus 20 Feb 2005 - - Made the image resize script GD2-aware. It will automatically use >=GD2 - if this is available on the webserver. - This will make avatars (and whatever uses the script) look much better. - - html/inc/ - image.inc - - Bruce 20 Feb 2005 - Fixed a bug in locality scheduling. When old work was being sent, - the daily_result_quota constraint was not being enforced. - Normally this constraint is enforced in the work_needed() - function. However note that the critical send_work() function - NEVER checks work_needed() [DAVID, perhaps it should?] before - calling send_work_locality() or scan_work_array(). Then, when - send_work_locality() was called, it would in turn call - send_old_work() immediately, WITHOUT checking to see if - work_needed() was TRUE. This allowed the daily_result_quota - constraint to be broken. - - Possible fixes included: - test work_needed() before calling send_old_work() - test work_needed() WITHIN send_old_work() - test work_needed() within possibly_send_result() - test work_needed() within wu_is_infeasible() - - Conclusion: work is ONLY sent by the function - possibly_send_result() which is called in two places in - sched_locality.C: once in send_results_for_file() and once in - send_old_work(). The first of these DOES check the value of - work_needed(). The second does NOT. So I added a check of - work_needed() within send_old_work(). A also added - added another check of work_needed() at the top of - send_results_for_file() BEFORE any DB access is done. It might be - better to put this test of work_needed() lower down (within - possibly_send_result()) or higher up (where send_old_work()) - is called. I am not sure. David, I'd appreciate your advice. - - sched/ - sched_locality.C - - Rom 21 Feb 2005 - - Bug Fix: Fix a localization error where we were refering to - "Abort Transfer" as "Abort Upload" - - clientgui/ - ViewTransfers.cpp - - Rom 21 Feb 2005 - - Bug Fix: On platforms other than Windows, really close down the - manager, when the user requests the app to close. - - clientgui/ - MainFrame.cpp - - Rom 21 Feb 2005 - - Bug Fix: If a result or transfer is paused by some event other than - actually changing it's CPU_SCHED state, such as user activity then - report the result as suspended instead of running. - - client/ - gui_rpc_server.C - clientgui/ - MainDocument.cpp, .h - ViewTransfers.cpp - ViewWork.cpp - lib/ - gui_rpc_client.C, .h - - Bruce 22 Feb 2005 - - Bug fixes to scheduler code - - For locality scheduler, if anonymous platform lacks app, - don't do deterministic search for work! - - For locality scheduler, remove 'unsent' constraint from initial query - so that existing index in result table can be used to perform - a more efficient search. - - Send multi-message replies to core clients > 4.19 - - Change 'no work available' message to 'no work sent' - since this is often due to constraints at the client end, - NOT lack of work at project end. - - When daily result quota exceeded, - tell users what its value is for that host. - - sched/ - sched_locality.C - sched_send.C - server_types.C - server_types.h - - David 22 Feb 2005 - - prevent users from including HTML tags in the - name, url, postal_code fields of their DB records - - add a script (clean_user_names.php) for fixing existing DBs - - fix type in team edit - - html/ - inc/ - db.inc - translation.inc - ops/ - clean_user_names.php (new) - user/ - create_account_action.php - edit_user_info_action.php - team_edit_form.php - - David 22 Feb 2005 - - Validator: added a "-mod n i" cmdline option. - Processes only WUs with ID mod n == i. - Lets you run multiple copies of validators for greater throughput. - - db/ - boinc_db.C,h - sched/ - validator.C - - Rom 22 Feb 2005 - - Bug Fix: Include the core client version number in the connected to - field of the status bar to ease deployment issues for large farms - - client/ - gui_rpc_server.C - clientgui/ - MainDocument.cpp, .h - MainFrame.cpp - lib/ - gui_rpc_client.C, .h - - David 22 Feb 2005 - - backend processes: centralize avg_turnaround updating, - and write log messages - - backend programs: define CRITICAL/NORMAL/DEBUG as 1/2/3 - so that message logging works as advertised - - sched/ - sched_msgs.h - sched_util.C,h - transitioner.C - validator.C - - David 22 Feb 2005 - - admin web: - fixed boinc_real_escape_string(); - fixed clean_user_names.php (rerun this if you already ran) - - user web: - change "questions and problems" to "questions and answers" - - html/ - inc/ - db.inc - ops/ - clean_user_names.php - create_forums.php - user/ - forum_help_desk.php - forum_post.php - forum_reply.php - sample_index.php - - David 22 Feb 2005 - - core client: scheduling: cap project debt at 1 day - - client/ - cs_apps.C - http.C - scheduler_op.C - sched/ - sched_send.C - - David 23 Feb 2005 - - got test_uc.py to work again - woohoo! - - changed WU name to uc_wu_nodelete. - Otherwise the input file would get deleted - and subsequent WUs (created by make_work) would bomb out - - change make_work to strictly obey its max_wus argument. - - remove check that original input file is deleted, 'cuz it's not. - - py/Boinc/ - setup_project.py - sched/ - make_work.C - test/ - make_project_ap.php (removed) - test_backend.py (removed) - test_uc.py - testbase.py - uc_wu (removed) - uc_wu_nodelete (new) - - Rom 23 Feb 2005 - - Bug Fix: On localized machines the administrators and users groups - can be named something other than administrators and users. This - is also the case if the administrators and users groups have been - renamed on english machines. So thanks to some sample code from - MSDN we can now detect what names we should be using in both cases - during setup to set permissions on the BOINC folder. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/Windows/src/GetGroupName - GetGroupName.cpp - GetGroupName.def - GetGroupName.sln, .vcproj - stdafx.cpp, .h - win_build/installerv2/redist/Windows/x86/ - getgrpname.dll - - Rom 23 Feb 2005 - - Bug Fix: Installshield isn't very consistent with how it deals with - copied controls from one dialog to another. It seems on my last - round of updates to make the checkbox controls act as integers - the UI didn't update properly and left me with the impression - that all the controls had been properly flagged as integer values. - It turns out they were not, so i've changed them so that they are. - - win_build/installerv2/ - BOINC.ism - - Rom 24 Feb 2005 - - Bug Fix: Reset the client_version integer with every get_state request. - - lib/ - gui_rpc_client.C - - Janus 24 Feb 2005 - - Web translator no longer outputs warnings to the screen - instead it logs - it to a file on the server. (defined in translation.inc) - - Added multilanguage features to the rest of the account_creation pages - - /html/ - inc/ - translation.inc - user/ - account_*_done.php - - David 24 Feb 2005 - - Finish server-side support for account management. - Changed all inputs to GET, all outputs to XML - Added get_info and set_info functions - - html/ - inc/ - db.inc - user/ - am_create.php - am_get_info.php (new) - am_query.php - am_set_info.php (new) - - David 25 Feb 2005 - - Core client: in Unix version, make sure that - shared-mem segments get deleted when ^C the core client. - If they don't, some systems (Solaris) eventually run out of something. - - client/ - app.C,h - app_control.C - cs_apps.C - - David 25 Feb 2005 - - Scheduler: added a mechanism to dynamically adjust the - max # of results sent per day on a per-host basis, - so that "bad hosts" (those that always return either errors or nothing) - are eventually cut back to 1 result per day. - - Added "max_results_day" field to host table. - Initialized to config.daily_result_quota. - When host returns an error result, or a result times out, - decrement max_results_day (but not below 1). - When the host return a success result, - double max_results_day (but not above config.daily_result_quota) - - Idea is from Bruce Allen - - NOTE TO PROJECTS: you must update your database - (see html/ops/db_update.php) prior to using this on your server. - - db/ - boinc_db.C,h - schema.sql - html/ops/ - db_update.php - sched/ - handle_request.C - sched_send.C - server_types.h - transitioner.C - - David 25 Feb 2005 - - core client: possible fix for heap corruption problem - - check for strlen(file_signature), not file_signature - - client/ - cs_files.C - - David 25 Feb 2005 - - allow only one account per email address, - including munged email addresses (from Bruce Allen) - - html/user/ - create_account_action.php - - Rom 27 Feb 2005 - - Add another flag to the diagnostics library that will allow - a check of the heap with every allocation/deallocation. - - Enable a check of the heap for every allocation in the - core client. - - client/ - main.C - lib/ - diagnostics.C, .h - - David 27 Feb 2005 - If you attached to a project and give a URL like "a.b.c//", - two bad things happen: - 1) canonicalize_master_url() strips off everything before the //, - leaving an empty URL - 2) it will write an account file account_.xml - and make an entry in the client state file - 3) next time the core client starts up, it errors out - trying to create the project directory. - Fixes: - - canonicalize_master_url(): check before "://", not "//" - - is_account_file(): tighten up. - Old: anything starting with account_ is considered an account file. - New: must match account_A.B.xml where A and B are nonempty - - invalid_url(): - Old: must match http://X, X nonempty - New: must match http://X.Y/, X and Y nonempty - rename to valid_master_url() and invert sense - - client/ - cs_account.C - file_names.C - lib/ - util.C,h - - David 27 Feb 2005 - - when scanning account files, make sure a project has - a unique master URL before adding to list of projects - - client/ - cs_account.C - - Bruce 28 Feb 2005 - - messages containing newlines were being lost when sent to 4.19 - core clients. Fix strips newlines from messages sent to clients - <= 4.19. NOTE: stripping may ALSO be needed for more recent - clients. But it would be better to fix the clients so that - embedded newlines in messages are respected. - - sched/ - server_types.C - - David 1 Mar 2005 - - core client: in garbage collection, reference-count FILE_INFOs - that are pointed to by FILE_XFER or PERS_FILE_XFER objects. - Hopefully this will prevent crashes when dealing with - app versions with unsigned files. - - client/ - client_state.C - cs_files.C - pers_file_xfer.C,h - - David 1 Mar 2005 - - core client: FILE_INFO::merge_info(): merge signature also. - If we get a new version of a FILE_INFO from server - and it has a signature, us it. - - client/ - client_types.C - - David 1 Mar 2005 - - fix for update_versions in case of single-file app - with signature included (from John Flynn III) - - tools/ - update_versions - - David 1 Mar 2005 - - added host_venue to get_state GUI RPC reply - - client/ - cs_statefile.C - - Janus 2 Mar 2005 - - Changed translation compiler to avoid concurrent compiles - - html/inc/ - translation.inc - - David 2 Mar 2005 - - change db_update.php script to print messages on success/failure - (from Eric Myers) - - html/ops - db_update.php - - Rom 3 Mar 2005 - - Bug Fix: Remove the prereq's for the Windows Scripting Host on - Windows - - Bug Fix: Convert all the VBS custom actions to C/C++ custom - actions - - NOTE: I'm having problems with code paths that involve displaying - something to the user, so 7 out of the 10 custom actions have been - debugged, and the others are waiting on me to figure out why - MsiProcessMessage is returning 0 when it is supposed to be - returning 6. - - win_build/installerv2/ - < numerous files and folders > - - Bruce 3 March 2005 - - Added ops page for managing special users (from Christian Beer) - - html/ - ops/ - index.php - manage_special_users.php - manage_special_users_action.php - - David 3 Mar 2005 - - typo in translation.inc (wrong date format in log file) - - db_update.php must be run from command line, - and gets user name/password interactively - instead of from config file - (from Eric Myers) - - html/ - inc/ - ops.inc (new) - translation.inc - ops/ - db_update.php - - Rom 3 Mar 2005 - - Bug Fix: Fix the rest of the custom actions - - Bug Fix: Hide password values from the log files - - Bug Fix: Enable Next by default on the Service Config page - - win_build/installerv2/ - < numerous files and folders > - - David 3 Mar 2005 - - include User-agent: BOINC field in all HTTP requests - (POST as well as GET) - - user web: missing wild-card char in email address lookup - - client/ - cs_scheduler.C - http.C - html/user/ - mail_passwd.C - - Janus 4 Mar 2005 - - Added optional project-specific callback functions for: - + Workunit info page - + User info page - + User account page - + Additional credit (old seti and old climateprediction) - These can be found in the project_callbacks.inc-file in the - project directory. - In the future you won't have to manually patch the CVS to edit - these pages - simply add stuff to these callback functions. - - Automatically detect image library to use with profiles - (from Christian Beer) - - /html/ - inc/ - user.inc - profiles.inc - user/ - show_user.php - home.php - workunit.php - project-sample/ - project_callbacks.inc (new) - - Rom 3 Mar 2005 - - Bug Fix: Adjust the tail options for Linux with regards to - the self extracting archive script - - sea/ - make-sea.sh - - David 5 Mar 2005 - - code cleanup and reorganization. - Remove API-specific stuff from lib/filesys.C - Don't define HANDLE as int on Unix - - api/ - boinc_api.C - doc/ - various changed and new - lib/ - filesys.C,h - - Rom 5 Mar 2005 - - Add some additional log spew to display the daemon configuration - option and a note if the detected configuration doesn't support - graphics. - - client/ - client_state.C - - David 5 Mar 2005 - - initial support for GUI RPC authentication - If the core client finds a file called "gui_rpc_auth.cfg", - it reads a password from it, and all GUI RPC requests - must authenticate using a challenge/response sequence, - proving that they have the password without sending it. - - Added --passwd option to boinc_cmd - - Moved network-related code out of gui_rpc_server.C - and http.C (identical stuff) into lib/network.C,h - - client/ - file_names.h - gui_rpc_server.C,h - http.C - net_xfer.C,h - lib/ - boinc_cmd.C - gui_rpc_client.C,h - network.C,h (new) - win_build/ - boinc_cli.vcproj - boing_gui.vcproj - - Bruce 7 March 2005 - - Fix problem with ops page. If a clause had for example "name like '%Jim%' - then pushing the 'Next 20' link would break the additional clause. - Thanks for Christian Beer. - - html/ - inc/ - db_ops.inc - - David 7 Mar 2005 - - Unix compile fixes and core client code cleanup: - - add network.C to Makefile - - Move check_unique_instance() from file_names.C to main.C - - client/ - file_names.C,h - main.C - lib/ - Makefile.am - network.C,h - - David 7 Mar 2005 - - Bug fixes in GUI RPC protection. - It works now using boinc_cmd. - (need to integrate in BOINC manager) - - client/ - gui_rpc_server.C - lib/ - boinc_cmd.C - gui_rpc_client.C - - David 7 Mar 2005 - - validator: change credit-granting formula (median_mean_credit()) - to ignore claimed credits close to zero. - This is a workaround for what seems to be a current bug - in the API or core client, - causing 0 or very low CPU time to get reported erroneously. - - sched/ - db_dump.C - validate_util.C - - Rom 7 Mar 2005 - - Bug Fix: Change the state refresh functionality from an OnIdle event - to a specific timer event since on some platforms the on timer - event is called really often. - - clientgui/ - Events.h - MainDocument.cpp, .h - MainFrame.cpp, .h - - David 7 Mar 2005 - - Core client: if a project is anonymous-platform, - don't require that main programs be marked as executable - - client/ - app_start.C - - David 7 Mar 2005 - - core client: win compile fixes - - client/ - main.C,h - win/ - wingui_mainwindow.cpp - lib/ - network.cpp - - Rom 7 Mar 2005 - - Bug Fix: Remove the check to see if we have any projects already defined - or not, before promting the user for project information. This - keeps the client from getting stuck when being launched as a daemon - on the *nix machines. - - client/ - client_state.C, .h - cs_cmdline.C - main.C, .h - - David 8 Mar 2005 - - fixed bug where, if a trickle-up file arrives from app - while a scheduler RPC is in progress, - it gets deleted when the RPC concludes - (and therefore is never sent). - - Solution: when put a trickle-up message in RPC request, - append ".sent" to its filename if not there already. - When get trickle-up ack, delete files of form trickle_up*.sent - client/ - cs_trickle.C - lib/ - util.C,h - - David 8 Mar 2005 - - user web: got rid of the "project_callbacks.inc" file. - "project.inc" is already being used for this purposes. - The project-specific functions must be defined there, - perhaps empty. - Also removed _callback from function names - they're - not callbacks in the conventional sense. - Also, these functions are expected to print, not return a string - (so they can call row2() and stuff like that) - - if a WU is pending validation, show that - - change CHARSET of english translation to UTF-8 - - html/ - inc/ - user.inc - languages/translations/ - en.po - project.sample/ - project.inc - project_callbacks.inc (removed) - user/ - home.php - show_user.php - workunit.php - - Rom 9 Mar 2005 - - Bug Fix: Instead of relying on the wxWidget framework for UI - updates for various menu items, move the update code to the - OnFrameRender function so we don't eat CPU in what seems - to be a busy loop. It seems for platforms other than Windows - the Idle event is fired for each iteration of a message pump - check where no other events were processed. On Windows their - is an actual message sent by the OS called WM_IDLE which is - used by wxWidgets. - - clientgui/ - MainFrame.cpp, .h - - David 9 Mar 2005 - - db_dump: add UNIX time to directory names for old stats - (so that you can run db_dump more than once pre day) - - sched/ - db_dump.C - - David 9 Mar 2005 - - compile fix - - client/ - http.C - sched/ - validate_util.h - - Rom 9 Mar 2005 - - Cleanup a few asserts that were happening under Linux and not - Windows - - clientgui/ - MainFrame.cpp - MainDocument.cpp - - David 9 Mar 2005 - - core client: allow show_graphics RPCs even for results - that are not currently scheduled - - client/ - gui_rpc_server.C - - David 9 Mar 2005 - - get rid of the STRING256 type, and change things to std::string - - subscript error in SCHEDULER_OP::update_urls(). - Not sure if this could cause the project-clobber bug - - client/ - client_types.C,h - cs_prefs.C - cs_scheduler.C - scheduler_op.C,h - - David 9 Mar 2005 - - When fetch a master URL, put it in a file of the form - master_PROJECTURL.html (not just master.html). - This will hopefully fix a bug where sometimes - one project's scheduler URL show up in another project. - - replace tabs with spaces - - client/ - acct_mgr.C - app_graphics.C - check_state.C - client_state.C - client_types.C - cs_benchmark.C - cs_files.C - cs_scheduler.C - cs_statefile.C - file_names.C,h - file_xfer.C - gui_rpc_server.C - http.C - main.C - net_xfer.C - scheduler_op.C,h - - Rom 9 Mar 2005 - - Bug Fix: refactor the status bar code so that it is a derived - class of wxStatusBar and then set it to be the status bar, which - in turn fixes the status bar creation bug on platforms other - than Windows in which the status bar text and bitmaps were - having their top and left values be set to 0,0. - - clientgui/ - MainFrame.cpp, .h - - Rom 10 Mar 2005 ( On behalf of Komori H. ) - - Bug Fix: Allow the proper translation of the status bar for languages - that change the ordering of works depending on context. - - Bug Fix: Include a meta tag in the task pane that specifies that the - task pane is UTF8. - - clientgui/ - MainFrame.cpp - BOINCTaskCtrl.cpp - - David 10 Mar 2005 - - core client: replace fopen() with boinc_fopen() in several places. - This could solve problems where some - other program (backup, virus check) is scanning files - - fix compile warnings - - api/ - gutil.C - apps/ - concat.C - client/ - cs_account.C - http.C - log_flags.C - next_xfer.C - scheduler_op.C - clientgui/ - ViewMessages.cpp - ViewResources.cpp - ViewTransfers.cpp - doc/ - manager.php (new) - menubar.php (new) - lib/ - gui_rpc_client.C,h - util.C,h - sched/ - db_dump.C - server_types.C - validate_util.C - - David 10 Mar 2005 - - tested and fixed bugs in the core client's support for - account management RPC. - It now can make the RPC, parse the reply, - and attach to the projects listed in the reply. - - client/ - acct_mgr.C,h - client_state.C - lib/ - boinc_cmd.C - gui_rpc_client.C - - Charlie 11 Mar 2005 - - Add support for building Mac GUI BOINC Manager, Core Client - and SETI@home application using XCODE IDE on Macintosh. - Removed Eric Heien's old boinc.pbroj which is confusing - on CVS because it is a bundle, which looks like a directory - to CVS. New boinc.pbproj bundle is checked in zipped. - - - Changes for Mac GUI BOINC manager and core client. - Major rework of XCode project file. - BOINC Manager has standard Mac application bundle with icon. - Client doesn't ask for User ID or Project URL on command line. - Added code for Mac to determine idle time (user inactivity). - Core Client is embedded in BOINC Manager application bundle. - BOINC Manager sets working directory to - ~/Application Support/Boinc_Data/ - and then launches embedded Core Client. - - client/ - hostinfo_unix.C - main.C - clientgui/ - BOINCGUIApp.cpp - lib/ - hostinfo.h - mac_build/ - boinc.pbproj/project.pbxproj (directory & file both removed) - boinc.pbproj.zip (new) - info.plist (new) - HowToBuildBOINC_XCode.rtf - - Rom 11 Mar 2005 - - Add Account Management support into the BOINC Manager. - - NOTE: Some problems remain with the current design, such as - pointing out when a username and password combination is - invalid. Currently the only way for somebody to know - something is up is by looking into the messages tab, but - by then the username and password have been recorded in - the acct_mgr_login.xml file because there is no way for - the manager to know something is wrong. - - clientgui/ - BOINCGUI.pjd - DlgAccountManager.cpp, .h (added) - Events.h - MainDocument.cpp, .h - MainFrame.cpp, .h - lib/ - acct_mgr_client.C, .h (added) - gui_rpc_client.C, .h - - David 11 Mar 2005 - - fix make_project - - tools/ - make_project - - David 11 Mar 2005 - - BOINC manager: avoid asserts by commenting out some code - - fix account manager functions - - print messages on acct mgr RPC start/end - - client/ - acct_mgr.C - clientgui/ - MainFrame.cpp - lib/ - acct_mgr_client.C - gui_rpc_client.C - - David 12 Mar 2005 - - Change the appearance of the Task area of the BOINC manager. - Use white background instead of blue. - Surround tasks with bordered boxes. - - commented out some unused code. Delete? - - clientgui/ - BOINCTaskCtrl.cpp,h - VewProjects.cpp - - David 13 Mar 2005 - - scheduler: add nowork_skip configuration flag. - If set, and there's no work, return from RPC - without looking up user/host records. - (this was previously the default. It no longer is) - - scheduler: if using locality scheduling, never set "have_no_work" - - scheduler: replace "Einstein" by "this project" in message - - sched/ - handle_request.C - sched_config.C,h - sched_send.C - - David 13 Mar 2005 - - db_dump: name archive dirs X_YYYY_mm_dd_hh_mm_ss - - David 14 Mar 2005 - - API: implement keyboard handling in X11 (from Eric Myers) - - api/ - x_opengl.C - - Rom 15 Mar 2005 - - Backout the meta tag change that was made to support Japanese, - aparently the string encodings are not automatically converted - in Linux, or something to that effect. - - clientgui/ - BOINCTaskCtrl.cpp - - David 15 Mar 2005 - - API: change timer_period from variable to constant - - fix compile warnings - - api/ - boinc_api.C - lib/ - boinc_cmd.C - parse.C - - David 15 Mar 2005 - - BOINC manager: if project doesn't have a name yet, use its URL - - clientgui/ - MainDocument.cpp - - Rom 15 Mar 2005 - - Make the couldn't find messages visible only on debug builds, it - freaks people out when they see them in the BOINC Manager log - file even though it is normal for it to happen when the daemon - shuts down. - - lib/ - gui_rpc_client.C - - Rom 15 Mar 2005 - - Remove the accessors from the cache container classes for each - of the views. - - Add the default system encoding to the help/about dialog for - the internationalization team. - - clientgui/ - DlgAbout.cpp - ViewProjects.cpp, .h - ViewResources.cpp, .h - ViewTransfers.cpp, .h - ViewWork.cpp, .h - - Rom 16 Mar 2005 - - Implement the diagnostics functions for platforms other than Windows. - - NOTE: I was working in this area a bit since I'm trying to track down - why E@H isn't always able to display graphics during a start screen saver - request. The changes here and some build environment changes should - now allow us to build a debug E@H application with debug BOINC API - libraries and now see additional information reported to stderr_txt as - the application tries to identify/transition into the calling desktop. - - lib/ - diagnostics.C, .h - - David 17 Mar 2005 - - on Unix, create download files with user/group/other access - (RW or RWX, as needed) - All other files have permissions based on umask. - - client/ - client_types.C - cs_account.C - - David 18 Mar 2005 - - Web: make download network stuff work for new projects - - html/inc/ - download_network.inc - py/Boinc/ - setup_project.py - - David 19 Mar 2005 - - rewrite installer text for LGPL - - remove old license file - - doc/ - license_1.0.txt (removed) - win_build/installerv2/redist/0409/ - eula.rtf - - Bruce 19 Mar 2005 - - Overdue checkins on a bunch of minor scheduler code. Some that is - E@H specific is now included (but protected by - #ifdef EINSTEIN_AT_HOME - to make it simpler for me to maintain consistency with BOINC cvs. - - Added project-specific unacceptable_os() function for rejecting hosts. - - Transitioner and scheduler now initalize host.max_results_day correctly - in database under all circumstances. - - Browser requests are now correctly identifed (REQUEST_METHO=="GET") and - properly redirected. This was broken. David, please see comment near - one of the probable_user_browser=true in handle_request.C. I think - something is wrong here (or I am missing the point!). - - More info about requests is logged - - If the scheduler hangs (incoming request incomplete) it will normally be - killed by Apache after a timeout. But this happens silently. So I now - install a signal handler and catch this SIGTERM. In this case an - error message is logged and all open files are flushed before exit(1)ing. - - If IO is passed through files, check that request length and content length - agree and log a message if they do NOT. - - active_frac not correctly reported by 4.19 and earlier core clients. - Adjust for this in estimating wallclock execution times. - - All messages sent to user ALSO get logged to cgi.log - - Added a small block into validator code to attach a debugger. - - sched/ - handle_request.C - sched_send.C - main.C - transitioner.C - validator.C - - David 19 Mar 2005 - - API: changed all vars modified by signal handler to "volatile" - - API: fixed typo in key handling for Unix - - api/ - boinc_api.C - - David 21 Mar 2005 - - API: changed time variables in worker signal handler from double to int. - Apparently some platforms had atomicity problems - where accessing doubles uses multiple instructions - and a signal was happening in the middle. - Don't need fractional time because worker timer period is 1 sec. - From Takafumi Kawana and Bruce Allen. - - boinc_checkpoint_completed(): clear ready_to_checkpoint - AFTER resetting time_until_checkpoint - From Takafumi Kawana. - - api/ - boinc_api.C - sched/ - handle_request.C - - David 21 Mar 2005 - - BOINC web site: reorganized front page, download page - - scheduler: fixed a heinous bug in validate_util.C - introduced on 7 Mar 2005 - - doc/ - various - sched/ - handle_request.C - validate_util.C - - Rom 22 Mar 2005 - - Bug Fix: Capture the WM_CLOSE message that Intellitype and Intellipoint - sends us and ignore them, that'll keep the screensaver up and running - even when Intellipoint/Intellitype is trying to shut us down. - - client/win/ - win_screensaver.cpp, .h - - David 22 Mar 2005 - - user web: mail_passwd.php was broken. Aargh. - - html/user/ - forum_thread.php - mail_passwd.php - - David 22 Mar 2005 - - core client: the -attach_project option now must be followed - by the URL and account key. - It no longer prompts for these. - - client/ - client_state.C,h - cs_cmdline.C - main.C - - David 23 Mar 2005 - - user web: added "prefs" anchor to home.php so you can - link to Preferences from front page. - - add teamid to account management RPCs - - html/ - inc/ - user.inc - user/ - am_get_info.php - am_set_info.php - - David 23 Mar 2005 - - user web: don't delete teams even when they become empty - - html/ - inc/ - team.inc - ops/ - db_update.php - user/ - white.css - - David 24 Mar 2005 - - User web: in create_account_action() there was SQL of the form - select * from user where email_addr like '@$email_addr\\_%'. - THIS IS NOT CORRECT. - The email address itself can contain underscores, - which are wildcards for "like". - If the user table is big (like S@h) and the email address - is like a_a@b.c, a very slow query will result. - - added functions lookup_user_munged_email() and validated() - to inc/email.inc. - Use these for logic related to munged email addresses - - don't put SQL into top-level PHP files. - - html/ - inc/ - email.inc - user/ - create_account_action.php - - Charlie 25 Mar 2005 - - BOINC Manager: create BOINC Data directory in - "/Library/Application Support/" directory, - not in user's "~/Library/Application Support/" - - Set working directory to "BOINC Data" before redirecting stdout and stderr - - Fixed BOINCTRACE compile warning when non-debug build on Mac - - Fixed bug in CTaskBarIcon::OnNetworkSelection - - Implemented Dock popup menu using CTaskBarIcon class - - Implemented System Menubar Icon menu using CMacSystemMenu class - derived from CTaskBarIcon class - - Changed "Hide" menu item to "Close" (Mac only) - - client/ - main.c - - clientGUI/ - BOINCGUIApp.cpp - BOINCTaskBar.cpp/h - MainFrame.cpp - clientGUI/mac/ - MacSysMenu.cpp/h (add) - SystemMenu_Prefix.pch (add) - SystemMenu.m (add) - lib/ - diagnostics.h - mac_build/ - Info.plist (add) - SystemMenu-Info.plist (add) - boinc.pbproj/project.pbxproj (add) - - Charlie 26 Mar 2005 - - BOINC Manager: Workaround apparent bug in Mac version of WxWidgets which - prevented the main window's size and position from being restored on - application launch. - - Precompile stdwx.h in XCode project BOINC Manager builds. - - clientGUI/ - MainFrame.cpp - mac_build/ - boinc.pbproj/ - project.pbxproj - - Rom 28 Mar 2005 - - Well now that I've fully tested and deployed BOINC via Active Directory, - I found something wrong. When deploying BOINC to the computer via - Active Directory the installation runs as the computer account when - copying files so files can be read off a network share, but when we get - to the CopyAccountFiles custom action setup would fail since LOCALSYSTEM - only has access to the local machine. - - The solution is to include the account files and any other configuration - file as part of the BOINC MSI transform which needs to be created in - order to populate the global properties for deployment. The setup - documentation will be updated to reflect this change. - - - Bug Fix: Attempting to install BOINC in a managed environment would fail - since ALLUSERS is automatically set to 1 for any installation type. So - if we detect that we are being installed in a managed environment - ignore the ALLUSERS value. - - Menu items are still installed for all users though, that'll be fixed - a little later. - - win_build/installerv2/ - BOINC.ism - win_build/installerv2/redist/Windows/src/boinccas/ - boinccas95.def - boinccas95.vcproj - CACopyAccountFiles.cpp, .h (removed) - CAValidateSetupType.cpp - win_build/installerv2/redist/Windows/x86/ - boinccas.dll - boinccas95.dll - - David 28 Mar 2005 - - user web: put charset in header if it's defined (from Jens) - - user web: call db_init() before mysql_real_escape_string() - - html/ - inc/ - util.inc - user/ - account_created.php - am_get_info.php - am_query.php - am_set_info.php - confirm_email_change.php - login_action.php - - Rom 28 Mar 2005 - - Keep people from rating posts if their RAC falls below 5.0 - - html/inc/ - forum.inc - - David 29 Mar 2005 - - user SHM_R|SHM_W instead of 0777 in shmget() call - - lib/ - shmem.C - - David 29 Mar 2005 - - API: in boinc_finish(), - call boinc_worker_thread_cpu_time() instead of - boinc_calling_thread_cpu_time() - (since the graphics thread can call boinc_finish()). - Also, offset CPU time by initial_wu_cpu_time - instead of aid.wu_cpu_time - - This may help "zero CPU time" problems, but I doubt it - - api/ - boinc_api.C - lib/ - util.C - - Rom 29 Mar 2005 - - Bug Fix: Populate the tooltip field for the system tray icon - so that people can flag the manager as hidden and keep it hidden, - instead of having it show back up after every reboot. - - Bug Fix: Fix the Disable network access menu items after Charlie's - fix for the Mac, apparently the event class is populated at different - points between the two platforms, which causes code confusion, and - the docs don't help. Instead query the state from the core client - and then figure out what to do, this keeps the code the same on all - platforms and avoids the quirk. - - Add additional information to the attach to projects dialog describing - the project url and account key are sent via email from the project. - - Changed the baloon timeout value from 10 seconds to 5 seconds which is - about where the majority believes it should be. - - clientgui/ - BOINCGUI.pjd - BOINCTaskBar.cpp - DlgAttachProject.cpp - MainFrame.cpp - clientgui/msw/ - taskbarex.h - - David 29 Mar 2005 - - moved NetOpen(), NetClose(), NetCheck() from win_net.cpp (removed) - to lib/network.C - - client/ - client_state.C - hostinfo_network.h - hostinfo_unix.C - time_stats.C - win/ - win_net.cpp,h (removed) - wingui_mainwindow.cpp - lib/ - network.C,h - win_build/ - boinc_cli.vcproj - boinc_gui.vcproj - - David 29 Mar 2005 - - Transitioner: when updating a workunit - (DB_TRANSITIONER_ITEM_SET::update_workunit()), - only update those fields that have changed since we read it. - This is an attempt to deal with the following scenario: - - 1) validator finds canonical result, triggers assimilation, - sets assimilate_state = READY - 2) transitioner reads WU - 3) assimilator reads WU and updates assimilate_state = DONE - 4) transitioner writes WU (with assimilate_state still READY) - 5) assimilator processes WU again (ERROR) - - db/ - boinc_db.C,h - sched/ - assimilator.C - transitioner.C - - - Rom 29 Mar 2005 - - Implement GUI RPC authentication in the manager - - Implement a Select Computer MRU list so you only have to type - the remote computer name once. - - clientgui/ - DlgSelectComputer.cpp - MainDocument.cpp, .h - MainFrame.cpp, .h - lib/ - gui_rpc_client.C, .h - - Charlie 29 Mar 2005 - BOINC Manager: Work around apparent bug in Mac version of WxWidgets - which prevented the main window's size and position from being - restored on application launch. - Main widow close box doesn't quit application. - Postponed implementing the umask change due to security concerns: - removed umask(0) from Core Client & BOINC Manager; changed BOINC - Data directory back to user's "~/Library/Application Support/" - Automate generating Mac version numbers from version.h file. (Added - shell script build phase and tiny SetVersion shell application to - XCode project to create / update InfoPlist.strings file.) - CViewProjects::OnTaskLinkClicked(): added casts to change compiler - errors to compiler warnings; this allows it to compile. - - client/ - main.C - clientGUI/ - BOINCGUIApp.cpp - MainFrame.cpp - ViewProjects.cpp - clientGUI/mac/ - SetVersion.C (add) - mac_build/ - boinc.pbproj/ - project.pbxproj - - David 30 Mar 2005 - - Fixed bug where clients report a result CPU time as zero, - even though the result used a lot of CPU. - The basic problem was in the API: the final call to - update_app_progress() (from boinc_finish()) - was trying to send a status message. - But some fraction of the time the message slot was full - (core client hadn't read previous message) - so this message wouldn't get delivered. - Core client was using checkpoint_cpu_time as final CPU, - so (for applications that never checkpoint) - the core client would never get a nonzero checkpoint_cpu_time. - - I fixed this at both ends, i.e. if you either use a new core client - with old apps, or use new apps with existing core clients, - the problem will go away. - Fixes: - - 1) API: retry sending final status message a few times w/ sleep - 2) core client: use current_cpu_time rather than checkpoint_cpu_time - as the result's final_cpu_time. - - core client: show current directory on startup - - win compile fixes - - api/ - boinc_api.C - client/ - app_control.C - client_state.C - net_xfer.C - win/ - wingui.h - clientgui/ - BOINCTaskCtrl.cpp - lib/ - network.h - - David 30 Mar 2005 - - Apparently, even though the port number 1043 is assigned to BOINC - (see http://www.iana.org/assignments/port-numbers) - Microsoft IIS binds to it on some systems. - So... - core client: if can't bind to 1043, bind to 31416 - BOINC mgr: if can't connect to 31416, connect to 1043 - - If something is bound to 31416 we're screwed. - Thanks a lot, Microsoft! - - client/ - gui_rpc_server.C,h - lib/ - gui_rpc_client.C,h - sched/ - sched_util.C - - David 31 Mar 2005 - - BOINC Manager compile fixes for Unix - - clientgui/ - MainDocument.cpp,h - Makefile.am - ViewProjects.cpp - - Rom 31 Mar 2005 - - Bug#59 Fixed: SystemTray Icon Does Not Remain Hidden - - Bug#79 Fixed: When manager window is in background selecting open - boinc manager does not bring it to front - - Bug#80 Fixed: Double clicking on system tray icon should open - manager/bring it into focus - - Bug#118 Fixed: BOINC Manager needs to prompt for project information - when no projects are detected - - Bug#143 Fixed: Position and size not saved consistantly - - clientgui/ - BOINCTaskBar.cpp - MainFrame.cpp, .h - - Rom 1 Apr 2005 - - Make the dialog manager files and implementation match so others - can make changes to the dialogs - - clientgui/ - BOINCGUI.pjd - DlgAbout.cpp, .h - DlgAccountManager.cpp, .h - DlgAttachProject.cpp, .h - DlgConnection.cpp, .h - DlgOptions.cpp, .h - DlgSelectComputer.cpp, .h - - David 1 April 2005 - - create_shmem(): use mode 0666 when creating shared mem - - attach_shmem(): fix error check on shmat() return - - sched_util.C: get_log_path() was creating directory in wrong place - - api/ - boinc_api.C - lib/ - shmem.C - sched/ - handle_request.C - sched_util.C - - David 1 April 2005 - - Parse environment vars AFTER parsing the client state file. - Otherwise env vars are ignored - - client/ - main.C - - David 1 April 2005 - - core client: if an app hasn't checkpointed yet, - leave it in memory when preempting. - - client/ - cs_apps.C - - Janus 2 April 2005 - - Lots of updates for the website translation system: - - Now creates missing dirs when first installed - - Supports "dual ID" language files (ie those files that have - names like xx_YY (for instance zh_TW for the Chinese) - Please note the use of lower- and uppercase letters. - - You can now override the automatic selection by the use of - a cookie named "lang". A page for setting this cookie has also - been made (language_select.php). - - The automatic selection now searches for all the languages that - the user's browser specifies before using the project default - (ie. it no longer uses only the first language that the browser - gives it in the string). - - Made some small additions to en.po so that the language select page - can display the correct names of the languages instead of their - ISO names: "Danish (Dansk)" instead of "da". - - Added some more logging so that missing tokens will be printed to - the logfile as well as on screen. - - Added the title on the sample forum index page to en.po - - /html/ - inc/ - translation.inc - languages/ - translations/ - en.po - user/ - language_select.php (new) - img/ (new) - da.png (new) - - David 2 April 2005 - html/ - inc/ - translation.inc - ops/ - repair_validator_problem.php - - David 3 April 2005 - - Maintain the "main host venue" in a more robust way. - (Reminder: the "main host venue" is the host venue of the - project that supplied the most recent global prefs. - Host venues for each project are stored in account files. - The global prefs file identifies the source project.) - - Old: main host venue is stored in the client state file, - and updated only when a scheduler RPC returns - global prefs with a new host venue. - Problem: if it's missing from the client state file - it may never get set to the correct value. - - New: on startup, the global prefs file is parsed once - to obtain the source project. - Then main host venue is computed, based on the source - project and the host venue specified in its account file. - Then the global prefs file is parsed again, using this venue. - - user web: add option for columnar prefs display. - Append "&cols=1" to prefs.php URL - - boinc_cmd (command-line tool): fix bugs and improve argument checking. - Change syntax of some operations (see web page) - - client/ - client_state.C - client_types.h - html/ - inc/ - prefs_col.inc - user/ - prefs.php - lib/ - boinc_cmd.C - - Rom 3 Apr 2005 - - Add an additional error code to the screensaver framework to - report back the difference between BOINC being idle and BOINC - being idle and not being attached to any projects. - - client/ - ss_logic.C, .h - boinc_ss.h - boinc_ss.rc - win_screensaver.cpp, .h - lib/ - gui_rpc_client.h - - David 3 April 2005 - - BOINC manager: new "statistics" tab (from Jens Breitbart) - Here's Jens' summary of changes: - - Client - * Statistics are stored on a daily basis - ~ Statistics := {User & host total credit, user & host avg. credit} - ~ max. 30 days are stored - * Statistics are gathered after the client has contacted the scheduler - ~ No extra call to the scheduler is made, just information already - provided are stored - * Added support for the RPC call "" - ~ Answer include all saved statistics from all projects - ~ Syntax of the answer: - - - %s - - %f - %f - %f - %f - %f - <- repeated for each day - <- repeated for each project - - * Statistics are saved in files called "statistics_master_url.xml" - ~ Syntax is similar to the one shown above except every project is - saved in its own file - ~ Files are saved after every scheduler reply - ~ Files are read at client start - ~ Files are deleted on project detach - - Manager - * Added a statistic tab - ~ Drawing the graph on a wxPanel using the paint event. - ~ wxPlottWindow not working very reliable... - ~ Design is looking quite simple - * Using the RPC "" to get the Information from the client - - client/ - client_state.C,h - client_types.C,h - cs_account.C - file_names.C,h - gui_rpc_server.C - scheduler_op.C - ss_logic.C - clientgui/ - BOINCBaseView.cpp.h - MainDocument.cpp,h - MainFrame.cpp - ViewStatistics.cpp,h (new) - lib/ - gui_rpc_client.C,h - util.C,h - win_build/ - BOINCGUI.vcproj - - David 4 April 2005 - - compile fixes for Unix - - cliengui/ - MainFrame.cpp - Makefile.am - - David 4 April 2005 - - Call get_connected_state() every 10 seconds, not 10X per second - (it does a registry lookup on Win) - - fix names of SS constants - - client/ - client_state.C - client_types.C - ss_logic.C,h - time_stats.C,h - win/ - win_screensaver.cpp - lib/ - boinc_cmd.C - - David 4 April 2005 - - Core client: don't print "no final message" (not relevant in most cases) - - Core client: don't do SS poll more than once per second - - Core client: don't do SS reset on each CPU resched - (no reason to start/stop SS if same app running) - - Get rid of SS_STATUS_RESTARTREQUEST, - which as far as I can tell involved the core client asking - the screensaver to ask it to do graphics again. - Instead, the core client just tells another app to start doing SSG. - It hangs on to the last GRAPHICS_MSG - (workstation/desktop will be the same) - - Got rid of SS_STATUS_NOTGRAPHICSCAPABLE - ??? - - Allow really small CPU scheduling periods (for debugging) - - client/ - app_control.C - app_graphics.C - client_state.C - cs_apps.C - ss_logic.C,h - win/ - win_screensaver.cpp,h - lib/ - gui_rpc_client.h - prefs.C - - Rom 5 April 2005 - - Moved the daemon communication to a seperate thread so that the screensaver - can be more responsive to the system since it cannot now be blocked on - network IO. - - client/win/ - win_screensaver.cpp,h - - Charlie 5 April 2005 - Mac: Enabled close box on science application graphics, handle Quit properly - using Bernd's suggestions. Hide GLUT menu bar. Bring application to - front when "Show Graphics" is selected in BOINC Manager. - - api/ - x_opengl.C - - Rom 5 April 2005 - - Bug Fix: We stoped ack'ing the MODE_UNSUPPORTED from a science application - after a screensaver start request. Check for any graphics messages that - need to be processed from get_next_graphics_capable_app(). - - Bug Fix: Adjust the logic of get_next_graphics_capable_app() so that even - if the graphics mode was MODE_WINDOW or MODE_HIDE_GRAPHICS before the - start of the screensaver, we still factor in what it's current - graphics_mode_acked in case it has been changed to MODE_UNSUPPORTED - - client/ - app_graphics.C - client/win/ - win_screensaver.cpp - - David 6 April 2005 - Changes to support users whose Internet providers - modify image files in transit. - Cell-phone-based providers using UMTS (e.g. Vodaphone) - apparently do this. - - - Add a preference "dont_verify_images" that tells BOINC - not to verify (via signature or checksum) image files. - "Image files" for those whose names end with .jpg, .jpeg or .png. - - - Change the Windows path separator from \ to / - - client/ - app_start.C - cs_files.C - file_names.C,h - gui_rpc_server.C - pers_file_xfer.C - html/ - inc/ - prefs.inc - lib/ - filesys.h - prefs.C,h - - Rom 6 April 2005 - - Implement a connection manager thread for the Manager, it is really rough. - - NOTE: Currently crashes on exit, due to an access violation, and changing - computers does not work. It also prompts for a project every time it - starts - - Read/Write font information to the registry so we can attempt to - identify some of the localization issues as possible font set issues with - wxwidgets. - - clientgui/ - BOINCBaseView.h - BOINCTaskCtrl.cpp - MainDocument.cpp, .h - stdwx.h - - David 6 April 2005 - - screensaver tweaks - - code cleanup in screensaver.cpp - - client/win/ - boinc_ss.rc - win_screensaver.cpp - res/ - boinc.cmp - - Rom 6 April 2005 - - Added the connecting state to the status bar since the UI was displaying - it as disconnected when we would switch between machines. - - Bug Fix: Explicitly declare the network connection thread as a joinable - thread, by default wxWidgets defines the default behavior as detached - which handles its own destruction. - - NOTE: The documentation also states that on Windows all threads are - joinable, so in the end, the crashes were related to me attempting to - cleanup the thread when it had already deleted itself, which caused a - double free situation. - - clientgui/ - MainDocument.cpp, .h - MainFrame.cpp, .h - - David 6 April 2005 - - code cleanup in BOINC manager - - clientgui/ - *.cpp - - David 7 April 2005 - - Attempt to fix the situation where: - 1) user merges hosts; hosts with lower IDs are folded - into host with maximal ID, then deleted - 2) If host's client_state.xml file still has one of the - lower IDs, then the next time it contacts the scheduler, - the host lookup fails and a new host record is created, - which defeats the purpose of the merge. - - Solution: - - When merge hosts, don't delete lower-ID records. - Instead, change them to "zombie" state, in which: - - userid is zero - - rpc_seqno is ID of new host record - - scheduler: if host is zombie, follow link to new host, - send back its ID to client - - db/ - boinc_db.h - html/ - inc/ - util.inc - user/ - host_edit_action.php - host_edit_form.php - sched/ - handle_request.C - - David 7 April 2005 - - Core client: deal correctly with HTTP servers that don't support - the Range: option. - Namely: if we issue an HTTP GET request with a Range option, - and the reply header is 200 OK (rather than 206 Partial Content) - then assume the server is sending us the whole file; - reset bytes_xfered and offset to zero, - and open the file in "wb" rather than "ab" mode. - - client/ - http.C,h - - David 7 April 2005 - - Python: in install_boinc_files(): don't copy "sample" php files, - since this is called from "upgrade" and it would overwrite - existing files. - Move the copies to install_project(), - which is used only at project creation. - - py/Boinc/ - setup_project.py - - David 7 April 2005 - - Show complete account info in profile page - - fix name conflict in PHP - - html/ - inc/ - profile.inc - user.inc - util.inc - user/ - host_edit_form.php - show_user.php - - Rom 7 April 2005 - - Switch the connection errors and connection initialization routines - from a polling style routines to an event style, this fixes the - issues of the attach to project dialog being displayed at odd - times. - - Warn the user of connection failures to a new host. - - Deal with various odd issues that cropped up due to the connection - thread being introduced to the system. - - clientgui/ - BOINCGUIApp.cpp - MainDocument.cpp, .h - MainFrame.cpp, .h - lib/ - gui_rpc_client.C - - Rom 7 April 2005 - - Enable the F1 key so that it'll open up a browser to - http://boinc.berkeley.edu/manager.php - - Add status bar text for each task that is defined and don't remove it - until the list has been updated. - - Define and fire an update view window message which is used to quickly - update the listview out of cycle with the timer event, but since the - timer event in turn fires the same event, we won't be caught in a - recursive update loop. We can only process one of these messages at - a time. - - clientgui/ - BOINCBaseView.cpp, .h - BOINCTaskCtrl.cpp, .h - Events.h - MainFrame.cpp, .h - ViewMessages.cpp, .h - ViewProjects.cpp, .h - ViewResources.cpp, .h - ViewStatistics.cpp, .h - ViewTransfers.cpp, .h - ViewWork.cpp, .h - - David 8 April 2005 - - compile fixes, code cleanup - - clientgui/ - BOINCBaseView.cpp - BOINCGUIApp.cpp - BOINCListCtrl.cpp - BOINCTaskBar.cpp - DlgOptions.cpp - MainDocument.cpp - MainFrame.cpp - ViewMessages.cpp - - David 8 April 2005 - - user web: weaken the test for hosts to be considered compatible - for the "merge" function. - This is needed because different versions of the core client - reported CPU vendor/model differently. - - If two hosts have the words "Intel" and "Pentium" anywhere - in their vendor/model, - and they don't have conflicting xxxGHz strings, - consider them compatible - - client/ - app_graphics.C - html/inc/ - host.inc - - David 8 April 2005 - - Manager: removed extraneous stuff from About box - - Manager: don't show version number in status bar - - clientgui/ - DlgAbout.cpp - DlgSelectComputer.cpp - MainFrame.cpp - lib/ - gui_rpc_client.C - - David 8 April 2005 - - Made library functions for creating a socket, - and for changing a socket to/from asynch mode - - GUI RPC client: allow for asynchronous connection. - First you call RPC_CLIENT::init(host, true), - then you call RPC_CLIENT::init_poll() - until it returns either zero (connected) - or a value other than ERR_RETRY (error) - - client/ - net_xfer.C - lib/ - error_numbers.h - gui_rpc_client.C,h - network.C,h - - David 8 April 2005 - - debugged asynchronous connect for GUI RPC - - lib/ - boinc_cmd.C - gui_rpc_client.C,h - - David 9 April 2005 - - GUI RPC: allow RPCs used by screensaver - (get/set screensaver state, get state, get results) - from local host without password authentication. - This eliminates need for screensaver to read password file - - client/ - gui_rpc_server.C,h - - David 9 April 2005 - - move NET_XFER::get_ip_addr() to lib/network.C, - and rename it resolve_hostname() - - client/ - gui_rpc_server.C - net_xfer.C - proxy.C - lib/ - network.C,h - - Rom 9 April 2005 - - Initial checkin for async sockets wok for the manager. - - NOTE: It currently reports back a -103 ERR_WRITE from the - rpc.authorize function. - - clientgui/ - Events.h - MainDocument.cpp, .h - MainFrame.cpp, .h - - David 10 April 2005 - - debug BOINC manager connection code - - clientgui/ - MainDocument.cpp - MainFrame.cpp - lib/ - gui_rpc_client.C - - David 10 April 2005 - - add is_file() to lib interface - - compile fix in zip code - - lib/ - filesys.C,h - zip/ - boinc_zip.cpp - - David 10 April 2005 - - Unix compile fixes - - client/ - Makefile.am - clientgui/ - Makefile.am - lib/ - filesys.C - - Bruce 11 April 2005 - - Added signal handler to file_upload_handler along with a bit - of logging. This is intended to help debug file uploading - problems, where apache kills the file upload handler because - something is going wrong. - - sched/ - file_upload_handler.C - - - David 11 April 2005 - - GUI RPC: if core client is < 4.30, don't do password authentication - - lib/ - gui_rpc_client.C - - Rom 11 April 2005 (boinc) - - Tag for 4.30 release, all platforms - boinc_core_release_4_30 - - David 11 April 2005 - - Core client: if we're configured to not accept remote GUI RPC connections - (i.e., remote_hosts.cfg if absent or empty, - and the -allow_remote_gui_rpc cmdline is absent) - then bind our listening socket to 127.0.0.1 rather than INADDR_ANY. - This will in theory disallow remote connections. - - client/ - gui_rpc_server.C - - Bruce 11 April 2005 - - Scheduler: with locality scheduling, if we touch a trigger file then - sleep, and then try again, but DON'T find more work available, give up - trying to make work for that file. - - - File upload handler: to prevent multiple instances of file_upload_handler - from trying to upload the SAME file, - use lockf() to place an advisory lock on the file. - David, I probably should have discussed this with you first, - but it's too early in the morning. - Please revert if this is a mistake! - - sched/ - sched_locality.C - file_upload_handler.C - - David 12 April 2005 - - The test script test_uc.py didn't work. There were 2 problems: - 1) the core client's logic for checking an account filename - was too strict. It required a dot in the hostname, - which wasn't present here ("localhost") - 2) the Python code for signing executables needed to look - both in bin/ (for "upgrade") and ../tools/ (for test) - for the sign_executable program - - client/ - file_names.C - py/Boinc/ - setup_project.py - tools.py - - David 12 April 2005 - - core client: in result-finished message, show result name, not WU name - - core client: fix handling of dont_verify_images preference - FILE_INFO::verify_downloaded_file(): - if image file and dont_verify_images is set, - and file is present and nonempty, count it as verified. - Also move file size checking logic here. - PERS_FILE_XFER::start_xfer(): use FILE_INFO::verify_downloaded_file() - to decide whether to use existing file, - rather than doing a bunch of checks manually - PERS_FILE_XFER::poll(): don't check size on completion of xfer. - Leave it to verify_downloaded_file(). - - is_dir() and is_file() return bool, not int - (hope this doesn't break C compile) - - scheduler: the parent of a zombie host might be a zombie - - client/ - cs_apps.C - cs_files.C - pers_file_xfer.C - lib/ - error_numbers.h - filesys.C,h - sched/ - handle_request.C - - David 12 April 2005 - - core client: merge verify_existing_file() and verify_downloaded_file() - into a single function verify_file(bool strict), - where "strict" says whether to check checksum/signature - (this is skipped when seeing if a result's input files are available) - This fixes a bug in the dont_verify_images logic - - client/ - client_types.C,h - cs_apps.C - cs_files.C - pers_file_xfer.C - sched/ - sched_send.C - - Rom 12 April 2005 - - Bug Fix: The manager shuold look for the daemon on the loop back adapter - since that is where the daemon is listening. - - Bug Fix: THREAD_PRIORITY_IDLE is even lower than THREAD_PRIORITY_LOWEST - - Bug Fix: Once again back out a change to support Japanese until we - understand the font problems futher, basically trying to support - Japanese right now causes problems for English based systems. - - api/ - boinc_api.C - clientgui/ - BOINCTaskCtrl.cpp - lib/ - gui_rpc_client.C - - David 13 April 2005 - client/ - app_control.C - client_state.C,h - client_types.C,h - cs_apps.C - cs_scheduler.C - scheduler_op.C,h - lib/ - boinc_win.h - prefs.C,h - - Rom 13 April 2005 - - Bug Fix: Re-enable INADDR_ANY for the *nix platforms since they cannot - seem to connect through the loopback adapter. - - client/ - gui_rpc_server.C - clientgui/ - gui_rpc_client.C - - David 13 April 2005 - - schedule_cpus(): if using deadlines, - DON'T call assign_result_to_projects(). - That sets the already_selected fields of running results, - and schedule_earliest_deadline_result() skips over them, - even though they may have the earliest deadline - - name changes - cpu_crunch_nearest_first -> cpu_earliest_deadline_first - schedule_nearest_deadline_project() - -> schedule_earliest_deadline_result() - - core client: make function request_schedule_cpus() so you can - see why CPU is being rescheduled - - don't use "crunch" or "panic mode", especially in user interface - - client/ - app_control.C - client_state.C,h - cs_apps.C - cs_scheduler.C - gui_rpc_server.C - - Bruce 14 April 2005 - - file_upload_handler: when responding to a request for the - file length, check first that the file is not already - in open (locked) by another file_upload_handler. If the - file IS open (locked), then do NOT hand back the file length. - Instead return a transient error. This will prevent - transmission of upload data starting at the wrong offset. - - file_upload_handler: ignore tag - - To help understand when/why multiple file_upload_handlers - are trying to write to the same file, set default log level - to DEBUG. Also log messages at level CRITICAL if there is - an attempt to write to a locked file. We may want to change - this level to DEBUG in the future, if this turns out to be - 'normal' TCP buffering of data between host and server. - - sched/ - file_upload_handler.C - - Charlie 15 April 2005 - Mac: Fix compile errors for BOINC Manager. - - client/ - net_xfer.C - clientgui/ - BOINCGUIApp.cpp - MainDocument.cpp - mac_build/ - boinc.pbproj/ - project.pbxproj - English.lproj/ - InfoPlist.strings - - David 15 April 2005 - - file upload handler: Solaris compile fix - - mail_passwd.php: if an account exists with non-munged address, - return that account key (old code could return account key - for a munged address, even though a non-munged one exists) - - html/user/ - get_passwd.php - mail_passwd.php - sched/ - file_upload_handler.C - - David 15 April 2005 - - core client, GUI RPC: if no remote connections allowed, - use lookback address (127.0.0.1) for listening socket - - client/ - gui_rpc_server.C - lib/ - boinc_cmd.C - gui_rpc_client.C - - David 15 April 2005 - - Manager: added "no more work" toggle for projects - (from James Drews) - and fix compile warnings - - clientgui/ - DlgAttachProject.cpp - DlgConnection.cpp - DlgSelectComputer.cpp - MainDocument.cpp,h - MainFrame.cpp - ViewMessages.cpp - ViewProjects.cpp,h - ViewStatistics.cpp - - Bruce 15 April 2005 - - file_upload_handler: fixed another bug. If you fopen(path, "a") in - append mode then fseek() then write to the file, the fseek() HAS - NO EFFECT. This is documented ANSI C. So I have eliminated the - fseek. We now check that the file size corresponds exactly to the - claimed offset of the data. If they do not agree then return a - transient error to force the host to ask again for the file length - and re-transmit data. - - sched/ - file_upload_handler.C - - David 15 April 2005 - - removed close() call in RPC_CLIENT constructor (???) - Manager works on Linux now - - lib/ - boinc_cmd.C - gui_rpc_client.C - - David 15 April 2005 - - core client: added "-dir path" cmdline option - (chdir to the given directory at startup) - - client/ - cs_cmdline.C - - David 15 April 2005 - - Fortran API: trim whitespace from filenames passed from FORTRAN, - and blank-pad filenames passed to FORTRAN (from Don Bashford) - - api/ - boinc_api_fortran.C - - David 15 April 2005 - - Ops web: create account script broken - (fixes from Andy Read) - - html/ops - create_account_action.php - - David 15 April 2005 - - On Mac OS X apparently binding a socket to address 127.0.0.1 fails. - Use INADDR_ANY instead. - - client/ - gui_rpc_server.C - - Charlie 16 April 2005 - Mac: Fix paths in XCode project to make them fully portable / relative. - Clear menu bar in science apps using Bernd's suggested code. - - api/ - x_opengl.C - mac_build/ - boinc.pbproj/ - project.pbxproj - - David 16 April 2005 - - fixed GUI RPC connection problem on Mac - (if a connect on a socket fails, you need to close it - and make a new one before trying another connect) - - lib/ - gui_rpc_client.C - - Bruce 17 April 2005 - - Made default choice 'ACCEPT' for screening user profiles for UOTD. - html/ - ops/ - profile_screen_form.php - - David 17 April 2005 - - (from Reinhard Prix) add IOKit framework to Mac compile of core client - - configure.ac - - David 17 April 2005 - - add PID to log messages of scheduler and file upload handler - - lib/ - msg_log.C,h - sched/ - main.C - file_upload_handler.C - - David 18 April 2005 - - code cleanup in scheduler - - sched/ - handle_request.C - sched_send.C,h - server_types.C,h - validate_util.C - - Bruce 18 April 2005 - - Added ops page script to email owners of 'problem' hosts. Thanks to - Christian Beer for writing this. - - html/ - inc/ - email.inc - ops/ - problem_host.php - - David 18 April 2005 - - scheduler: don't send a result to a host - if its network connection period (work_buf_min_days) - is greater than WU's delay bound - - sched/ - sched_send.C,h - server_types.C,h - - Charlie 18 April 2005 - Mac: Move some Mac-specific code out of x_opengl.C into new - Cocoa source file macglutfix.m. Replace Carbon API calls - with equivalent Cocoa calls soScience apps don't need to link - with Carbon framework. They will need to link with AppKit - framework (Macintosh only) - - api/ - x_opengl.C/h - macglutfix.m (new) - mac_build/ - boinc.pbproj/ - project.pbxproj - - Bruce 19 April 2005 - - rework of file_upload_handler. I learned that is it not - reliable to use flock/lockf/fnctl file locking with buffered - IO. This is because the stream libraries might unexpectedly - open/close/dup file descriptors on you. So I have modified - the file write/append functions to use raw IO rather than - buffered IO. In doing this I also found and fixed some small - bugs. There is no guarantee that one can mix flock/lockf/fnctl - file locking so I have settled on fnctl since it is POSIX and - gives the most control. - - sched/ - file_upload_handler.C - - David 19 April 2005 - - bug fixes for remote GUI RPC - - client/ - gui_rpc_client.C - lib/ - gui_rpc_client.C - - Bruce 19 April 2005 - - Better error reporting from problem_host.php reporting page, if - host does not exist. Thanks to Christian Beer. - - html/ - ops/ - index.php - problem_host.php - - David 19 April 2005 - - BOINC manager: remote connection wasn't working because - it was using the wrong password variable. - - clientgui/ - MainDocument.cpp - - David 19 April 2005 - - error checking in boinc_cmd - - lib/ - boinc_cmd.C - gui_rpc_client.C - - David 19 April 2005 - - fix bug in -attach_project command line option (from Tony Murray) - - GUI RPC: include for active tasks, - (even though it's always zero) - - client/ - app.C - cs_cmdline.C - gui_rpc_server.C - - David 19 April 2005 - - core client: warn user if results are overdue - - client/ - app.C,h - client_state.C - cs_apps.C - - Janus 20 April 2005 - - Added "sticky forum thread" code from BURP (lightning) - - Added support for per sub-forum posting rules for threads and replies: - - You must have at least X total credit - - You must have at least Y recent credit - - You must wait Z secs between each post - - Moved temporary rules for rating to the forum_rate.php file. - (this file needs a bit of work) - - Added some DB fields to make the above features work - - html/ - inc/ - forum.inc - forum_show.inc - user/ - forum_thread.php - forum_moderate_thread_action.php - forum_reply.php - forum_post.php - forum_rate.php - img/ - unread_post.png (moved) - filtered_post.png (moved) - emphasized_post (moved) - unread_sticky.png (new) - stick_post.png (new) - ops/ - db_update.php - - Rom 20 April 2005 - - The new UI scheme for the project tab, the rest of the tabs will - follow. - - clientgui/ - BOINCBaseView.cpp, .h - BOINCTaskCtrl.cpp, .h - Events.h - MainFrame.cpp, .h - ViewProjects.cpp, .h - - David 20 April 2005 - - added Janus' DB changes to schema.sql - - use get_int() etc. in forum_rate.php - - no time limit in update_forum_activitie.php - - db/ - schema.sql - html/ - ops/ - update_forum_activities.php - user/ - forum_rate.php - - David 20 April 2005 - - removed residual CORE_VERSION stuff - - db/ - boinc_db.C,h - sched/ - db_dump.C - handle_request.C - sched_shmem.C,h - - Rom 20 April 2005 - - Here are the rest of the tabs converted over to the new UI scheme. - - clientgui/ - BOINCBaseView.cpp, .h - BOINCTaskCtrl.cpp - Events.h - MainFrame.cpp - ViewMessages.cpp, .h - ViewProjects.cpp, .h - ViewResources.cpp, .h - ViewStatistics.cpp, .h - ViewTransfers.cpp, .h - ViewWork.cpp, .h - - Rom 20 April 2005 - - Fix an Assert where somebody attempts to close the manager and then - selects exit again before the daemon has a chance to close itself - down - - clientgui/ - BOINCGUIApp.cpp - - David 21 April 2005 - - change buttons in task tab based on selection - - clientgui/ - BOINCBaseView.h - MainDocument.cpp,h - ViewProjects.cpp - - Rom 21 April 2005 - - Code Cleanup - - clientgui/ - BOINCBaseView.cpp, .h - BOINCListCtrl.cpp, .h - BOINCTaskCtrl.cpp, .h - ViewMessages.cpp, .h - ViewProjects.cpp, .h - ViewResources.cpp, .h - ViewStatistics.cpp, .h - ViewTransfers.cpp, .h - ViewWork.cpp, .h - - David 21 April 2005 - - CPU scheduler: don't run projects or results suspended via GUI, - even in earliest-deadline-first mode - - fix button logic for projects - - set buttons in work tab based on selection - - include graphics_mode_acked in GUI RPC description RESULT. - Could indicate whether app has window open (but doesn't yet). - - client/ - app.C - cs_apps.C - clientgui/ - MainDocument.cpp,h - ViewProjects.cpp,h - ViewWork.cpp, h - lib/ - gui_rpc_client.h - - Rom 21 April 2005 - - More code cleanup - - Enable the various project defined website under new GUI scheme - - clientgui/ - BOINCBaseView.cpp, .h - Events.h - ViewMessages.cpp - ViewProjects.cpp, .h - ViewResources.cpp - ViewStatistics.cpp - ViewTransfers.cpp - - David 21 April 2005 - - improve client startup messages - - client/ - client_state.C - client_types.h - cs_account.C - cs_scheduler.C - - Rom 22 April 2005 - - Post an update request instead of forcing one right as the user is changing - tabs, this increases preceived performance since the tab switches over - and the update happens around the same time as ones eyeballs move to the - part of the screen where they are expecting to see a change. - - clientgui/ - MainFrame.cpp - - Charlie 23 April 2005 - Mac: Rename "BOINC.app" to "BoincManager.app", rename "boinc_client" - to "boinc". - Create screen saver, add it to BOINC XCode project. - - clientgui/ - BOINCGUIApp.cpp - mac/ - mac_saver_module.cpp (new) - boinc.tiff (new) - Mac_Saver_ModuleView.h (new) - Mac_Saver_ModuleView.m (new) - BOINCSaver.nib.sit (new) - mac_build/ - Info.plist - ScreenSaver-Info.plist (new) - boinc.pbproj/ - project.pbxproj - - Rom 23 April 2005 - - More code cleanup work in the manager - - clientgui/ - MainDocument.cpp, .h - - Charlie 24 April 2005 - Mac: Fix screensaver to work properly with password option. - MacGLUTFix() gets GLUT graphics window pointer correctly, - sets screensaver window level to 2020 instead of 1000. - Don't change screensaver blanking window's level. Add blocking - to main screensaver thread to yield more time to BOINC apps. - - api/ - macglutfix.m - clientgui/ - mac/ - mac_saver_module.cpp - Mac_Saver_ModuleView.m - - Charlie 25 April 2005 - Mac: screensaver tweaks: banners scroll faster & smoother, - reduce annoying flashes when screensaver graphics are starting. - gutil.C - fix compiler warning. - - api/ - macglutfix.m - x_opengl.C - gutil.C - clientgui/ - mac/ - mac_saver_module.cpp - - Eric 25 Apr 2005 - GUI fix for platforms without tooltips. - Typo fix in Makefile.am - - clientgui/ - Makefile.am - BOINCTaskCtrl.cpp - ViewProjects.cpp - ViewWork.cpp - - Rom 25 April 2005 - - Don't allow people to continue posting or reading from a thread that has - already been closed for administrative purposes. - - html/user - forum_reply.php - - Rom 25 April 2005 - - Update the manager so that it'll build against wxWidgets 2.6.0 - - NOTE: You'll need to upgrade to wxWidgets 2.6.0 and make sure that you - are building the ANSI version of the libraries. - - clientgui/ - MainDocument.cpp - MainFrame.cpp - clientgui/msw/ - taskbarex.cpp, .h - win_build/ - BOINCGUI.vcproj - - Charlie 26 April 2005 - Mac: Changes for compatibility with wxMac-2.6.0 - Don't open BOINCManager window if launched automatically at login. - - clientgui/ - BOINCGUIApp.cpp - mac/ - MacSysMenu.cpp - MacSysMenu.m - mac_saver_module.cpp - mac_build/ - HowToBuildBOINC_XCode.rtf - - Rom 26 April 2005 - - More code cleanup in the manager. - - Take care of a couple crashing conditions that occurred after the - migration to wxWidgets 2.6.0 - - Make the website buttons work again - - Layout() seems to work better than the call to Fit() to adjust the - various window locations. So switch all the calls from Fit() to - Layout() and see if this fixes the Mac scrollbar issue. - - clientgui/ - BOINCBaseView.cpp, .h - BOINCTaskCtrl.cpp, .h - Events.h - MainFrame.cpp - ViewProjects.cpp - ViewStatistics.cpp - ViewTransfers.cpp - ViewWork.cpp - - David 26 April 2005 - - Preliminary checkin for "intermediate upload" feature for CPDN. - This allows an app to upload a file in the middle of a result. - - code cleanup in Manager code: - - Started to get rid of member functions of CMainDocument - that access elements of PROJECT (????). - e.g.: - GetProjectProjectName() - GetProjectTeamName() - Rom: please complete this. - - Started to get rid of functions like - CViewProjects::FormatProjectName() - Rom: please complete this - - ASSERT(NULL != X) -> ASSERT(X) - (do not undo these - please replace everywhere) - - Destructors don't need to reset fields. - TODO: replace the OnDocGetItemText() functions - with functions that get all items at once - - api/ - boinc_api.C - client/ - app.h - app_control.C - cs_files.C - clientgui/ - BOINCBaseView.cpp - BOINCGUIApp.cpp - BOINCListCtrl.cpp - BOINCTaskBar.cpp - BOINCTaskCtrl.cpp - MainDocument.cpp,h - MainFrame.cpp - ViewMessages.cpp - ViewProjects.cpp,h - ViewResources.cpp - ViewStatistics.cpp - ViewTransfers.cpp,h - ViewWork.cpp - lib/ - gui_rpc_client.C,h - shmem.C,h - win_build/ - boinc_cli.vcproj - - Charlie 27 April 2005 - Mac: created installer. Changed working directory from - user-specific "~/Library/Application Support/BOINC Data" - to global "/Library/Application Support/BOINC Data". - Fixed CViewProjects::OnProjectWebsiteClicked for Mac. - Added progress display to screensaver when no application - graphics. - - mac-installer/ - LoginItemAPI.c (new) - LoginItemAPI.h (new) - PostInstall.cpp (new) - postinstall (new) - postupgrade (new) - ReadMe.rtf (new) - License.rtf (new) - BOINC.pmsp (new) - clientgui/ - BOINCGUIApp.cpp - MainFrame.cpp - mac/ - mac_saver_module.cpp - - Rom 27 April 2005 - - Make the taskbar work again after the wxWidget conversion to 2.6.0 - - Fix the Windows projects so that they look for the setup.h file in - correct location. - - clientgui/msw/ - taskbarex.cpp - win_build/ - BOINCGUI.vcproj - - Janus 28 April 2005 - - Updates from Rob Ogilvie: - - Forum rules apply to rating as well - - Quoting is now done with blockquotes instead of > - - Added blockquote to stylesheet and valid html in sanitizer - - Loads of get_int/get_str corrections - - Moderators can view hidden threads if going direct by ID - - Made the special user feature aware of "holes" in the bitfield - (corrects a potential bug when part of the bitfield isn't specified) - - Added a 5 sec delay to userw.php in the case where the user does not - exist. This will in particular force people to not lookup the - non-existant user 0 hundreds of times per min - which is waste of - resources (DB and bandwidth). - - html/ - inc/ - sanitize_html.inc - forum.inc - user/ - forum_rate.php - forum_reply.php - forum_thread.php - style-black.css - style.css - userw.php - - Charlie 28 April 2005 - Mac: Clean up XCode project by removing unused libraries - and frameworks. - Update build instructions to include screensaver & installer. - - mac_build/ - HowToBuildBOINC_XCode.rtf - boinc.pbproj/ - project.pbxproj - - Rom 28 April 2005 - - Add a timeout to any gui rpc connection attempt, this should get - around the manager hanging when a firewall is blocking 31416. - - lib/ - gui_roc_client.C, .h - - David 28 April 2005 - - debugged intermediate upload feature - - Got rid of some -1 returns. - A BOINC function should never return -1 - (or the return value of a system call) - since this discards info about where the error came from - - parse_double(): don't accept NaN or +- infinity - - api/ - boinc_api.C,h - apps/ - upper_case.C - client/ - app.C,h - app_control.C - client_state.C - client_types.C,h - cs_apps.C - cs_files.C - gui_rpc_server.C - lib/ - app_ipc.h - error_numbers.h - filesys.C - mfile.C - network.C - parse.C - - Rom 28 April 2005 - - Adjust the installer so that it will not include the pdb files in future - releases. - - Keep previous manager look and feel around. - - clientgui/archive/ - - win_build/installerv2/ - BOINC.ism - - Charlie 28 April 2005 - Mac: Add Bernd's HOST_INFO::host_is_running_on_batteries - code for Macintosh. - - client/ - hostinfo_unix.C - - David 28 April 2005 - - Get rid of a user.update() in the scheduler. - This updates all fields of the user record, - possibly overwriting fields updated by the validator - around the same time. - Replace it with user.update_field() - (From Bruce Allen) - - TODO: there's also a host.update() that needs to be dealt with. - - sched/ - handle_request.C - server_types.C,h - - Charlie 29 April 2005 - Mac: Add precompiled header to XCode project for mgr_boinc - target to greatly speed up compilation. - - clientgui/ - mac/ - MacGUI.pch (new) - - Bruce 29 April 2005 - - Fixed update_average() function to do the right thing when the time - between successive calls is small (zero seconds): - - Consider the limit - as diff->0, using the first-order Taylor expansion of - exp(x)=1+x+O(x^2). - So to the lowest order in diff: - weight = 1 - diff ln(2) / half_life - so one has - avg += (1-weight)*(work/diff_days) - avg += [diff*ln(2)/half_life] * (work*SECONDS_PER_DAY/diff) - notice that diff cancels out, leaving - avg += [ln(2)/half_life] * work*SECONDS_PER_DAY - - lib/ - util.C - html/ - inc/ - credit.inc - - Charlie 29 April 2005 - Mac: made path to Installer-info.plist in XCode project relative - rather than absolute. - Checked in Installer-info.plist. - - mac_build/ - Installer-info.plist (new) - - Rom 29 April 2005 - - Bug Fix: UpdateSelection should be called everytime the listview has - been refreshed in case a project/result/transfer has changed its - status which might cause a button change. - - Bug Fix: Double clicking on the taskbar icon will restore the window - as well as show it. - - clientgui/ - BOINCBaseView.cpp - BOINCTaskBar.cpp - - Charlie 29 April 2005 - Mac: Update version to 4.35. Update build instructions. - - clientgui/ - mac-installer/ - BOINC.pmsp - mac_build/ - HowToBuildBOINC_XCode.rtf - Info.plist - - Janus 30 April 2005 - - Changed rating +/- links to be images instead (more visible) - Suggested by Eric Myers. - - Added example images - - Made "sticky sorting" optional. Users can now ignore sticky posts and - have posts sorted by time as usual if they like. - - html/ - inc/ - forum.inc - forum_show.inc - user/ - edit_forum_preferences_form.php - edit_forum_preferences_action.php - img/ - rate_positive.png (new) - rate_negative.png (new) - - Bruce 30 April 2005 - - Compile fix for upper_case (was broken under gcc/Linux) - - apps/ - upper_case.C - - David 30 April 2005 - - bug fix in scheduler (buffer overrun on user prefs update) - - sched/ - handle_request.C - sched_shmem.C - - David 30 April 2005 - - (from Eric Myers) - Windows: if user holds down control key while in screensaver mode, - input is handled by the app (and screensaver mode is not exited) - - api/ - windows_opengl.C - - David 30 April 2005 - - changed library order in clientgui Makefile - (from JR Oldroyd; needed for link on FreeBSD) - - clientgui/ - Makefile.am - - Bruce 1 May 2005 - - Added a utility function to 'print' a text description of errors - in error_numbers.h. In the future, when adding a new error number - to this file, please update boincerror() in util.C to contain a - short text description of the error. - - lib/ - error_numbers.h - util.C - util.h - - David 2 May 2005 - - bug fix for intermediate upload feature - - client/ - app.C - - Bruce 2 May 2005 - - locality scheduling: if host resources are inadequate for ANY WU, - assume that they are inadequate for ALL WU. Without this we will - execute an expensive deterministic search over all WU, looking - for one that is appropriate. This could be a config option if - desired, or one might add in an extra search step to find WU with - appropriate resources. But for now this is the cleanest. - - sched/ - sched_locality.C - - Rom 3 May 2005 - - Bug Fix: Global Loc issue with the statistics tab on creation. - - clientgui/ - ViewStatistics.cpp - - David 3 May 2005 - - scheduler: fixed a bug where host::update() - could potentially overwrite a credit update - happening around the same time. - Did this by adding a function HOST::update_diff(HOST& initial) - which does an update only of those fields that have - changed relative to the given initial values. - (from Bruce Allen) - - scheduler: fixed a bug where host_cpid wasn't being maintained properly. - Caused it to change on each RPC. - - removed unused "p_calculated" from HOST - - removed code to parse non-existent fields p_fpop_err etc. in HOST - - db/ - boinc_db.C,h - sched/ - handle_request.C - server_types.C - - Bruce 3 May 2005 - - ignore fields p_fpop_err in scheduler requests (still there from - 4.19 core clients) else these generate lots of logfile noise. - David, please revert if you don't like it. - - in host page visible to ordinary users, include daily result - quota info. - - sched/ - server_types.C - html/ - inc/ - host.inc - - Janus 4 May 2005 - - Split forum.inc into two files. One DB related (db_forum.inc) and one - that has to do with usual forum functions (like showing posts etc). - - html/inc/ - forum.inc - db_forum.inc (new) - - Bruce 4 May 2005 - - log execution times for two cgi scripts (scheduler and - file_upload_handler) - - better print format for timezone - - bug fix: with locality scheduling, permit multiple requests - to make work for same file. Bug introduced April 11, 2005. - - sched/ - sched_util.h - sched_util.C - sched_timezone.C - main.C - sched_send.C - file_upload_handler.C - sched_locality.C - - Jeff 4 May 2005 - - Accounted for the fact that function finite() is prototyped in ieeefp.h - under solaris and math.h under linux. - - configure.ac - lib/ - parse.C - - David 4 May 2005 - - bug fix in boinc_upload_file() (from Tolu Aina) - - added forum_preferences.ignore_sticky_posts to schema - - api/ - boinc_api.C - db/ - schema.sql - - Bruce 4 May 2005 - - bug fix so that Unix hosts report their timezones correctly - taking into account the effect of DST on their localtime. - - NOTE: hosts that lacked a gmt offset in the tm structure (System V - with no BSD extensions) had the WRONG SIGN for the timezone. - This is now fixed. These host types (AIX, Cygwin?) will now have a - change in sign in their timezone, making it consistent with other - Unix hosts and with Win32 hosts. - - - Note that with these changes we adopt the convention that the database - timezone value is the (Local Standard Time) - (UTC time). This - quantity only depends upon spatial location on the earth's surface and - is NOT a function of time. - - - Change php functions to correctly describe timezone field. - - client/ - hostinfo_unix.C - html/ - inc/ - email.inc - host.inc - db_ops.inc - - Rom 4 May 2005 - - Bug Fix: Fix the screensaver on Win9x class of machines. - - Bug Fix: The help menu needed to include items for the BOINC website - and manager page. - - Some code cleanup - - client/win/ - win_screensaver.cpp - clientgui/ - Events.h - MainFrame.cpp, .h - ViewMessages.cpp - ViewProjects.cpp - ViewStatistics.cpp - ViewTransfers.cpp - ViewWork.cpp - - David 4 May 2005 - - core client: fix bug where sometimes we don't fetch work - even though a CPU is idle (from John McLeod) - - client/ - cs_scheduler.C - - David 4 May 2005 - - limit size of author field in forums (from Rob Ogilvie) - - html/ - inc/ - forum.inc - user/ - black.css - style.css - style-black.css - - Rom 4 May 2005 - - Update the minimum wxWidgets version we support to 2.6.0. - - / - configure.ac - - Charlie 5 May 2005 - Mac: Modify projects and rebuild with OS 10.3.0 compatibility SDK. - Rebuild WxMac-2.6.0 library with OS 10.3.0 compatibility SDK. - Update build instructions. Update version number in various - *info.plist files. Update ReadMe file. Better logic for avoiding - annoying flashes in screensaver. Avoid screensaver hang if graphics - application is non-responsive. Installer: don't require reboot; - launch BOINC at end of install; refuse to install if OS < 10.3; - set up BOINC Data directory properly if installed by non-admin user. - - api/ - macglutfix.m - clientgui/ - mac/ - mac_saver_module.cpp - mac_build/ - HowToBuildBOINC_XCode.rtf - Info.plist - SystemMenu-Info.plist - ScrenSaver-Info.plist - Installer-Info.plist - boinc.pbproj/ - project.pbxproj - mac_installer/ - BOINC.pmsp - PostInstall.cpp - ReadMe.rtf - - David 5 May 2005 - - core client: exit if can't write state file - - client/ - client_state.C - scheduler_op.C - - David 5 May 2005 - - fixes for FreeBSD from J.R. Oldroyd - - BOINC Manager: - Don't use BOINC_DIAG_REDIRECTSTDERR and BOINC_DIAG_REDIRECTSTDOUT - on non-Windows - IsBOINCCoreRunning(): close RPC connection - - clientgui/ - BOINCGUIApp.cpp - lib/ - network.C - - David 5 May 2005 - - scheduler: HOST::fix_nans(): use !finite() instead of isnan() - (to detect infinity as well as NaN) - - DB_HOST::update_diff(): escape/unescape strings - - scheduler: escape/unescape strings in a could of update_field()s - - db/ - boinc_db.C - db_base.C - sched/ - handle_request.C - - David 5 May 2005 - - core client: parse multiple tags per line from a master file - This should fix a minor bug for UMTS users. - UMTS apparently strips CRLFs from HTML files. - So UMTS users would see only 1 scheduler from a project, - even if it has multiple schedulers. - - client/ - scheduler_op.C - - David 5 May 2005 - - sort team pages - - html/ - inc/ - team.inc - user/ - team_display.php - - Rom 5 May 2005 - - When running benchmarks, close down and remove science applications - from memory. If a science application isn't listening to the quit request - it may not be responding to suspend/resume either which would cause problems - during the benchmark process. - - If a science application doesn't shutdown within 10 seconds, kill it. - - Fix the bug I introduced last night with the view statistics tab. - - Make suspend_all call atp->preempt() instead of doing the same thing itself. - - Move the starting benchmark message to a place right before the benchmarks - start. We were receiving a few process control messages and people might - interpret that to mean other stuff was going on during the benchmarks. - - client/ - app.C, .h - app_control.C - cs_benchmark.C - cs_prefs.C - clientgui/ - ViewStatistics.cpp - - Eric 05/05/05 Woo Hoo! - - Modified the BOINC_GETSOCKOPT_TYPE macro so it determines the proper type - of parameter 5 to getsockopt() by using the compiler. - The macro was in danger of becoming an ever expanding list of - case statements, since some platforms - use socklen_t, others use size_t, and still others use int. Some aren't - even consistent from OS rev to OS rev. - - A macro BOINC_SOCKLEN_T is set in config.h to indicate the proper type. - This is typedef to be boinc_socklen_t in lib/network.h. The special cases - for __APPLE__ and WIN32 can probably be removed at a later time. Places - where socklen_t was used have been changed to boinc_socklen_t. - - Added double inclusion protection to network.h - - Added libtool.m4 so porters don't need to install libtool. - - Fixed header order problem in SAH_HEADER_STDCXX which caused problems - on solaris - - Added caching of results to SAH_CHECK_NAMESPACES and - SAH_FUNCS_IN_NAMESPACE - - Small changes to configure.ac to improve compatibility with earlier - versions of automake. - - Added include of to time_stats.C - - Fixed problem with std_fixes.h when included from C. - m4/ - libtool.m4 - boinc_getsockopt.m4 - sah_header_stdcxx.m4 - sah_namespace.m4 - client/ - time_stats.C - gui_rpc_server.C - ssl_net_xfer.C - lib/ - network.C - network.h - std_fixes.h - - Charlie 5 May 2005 - Mac installer: Wait until installer quits before launching BOINC. - mac_installer/ - PostInstall.cpp - - Charlie 6 May 2005 - Macintosh only: wxProcess::Exists() and wxKill() are unimplemented - in WxMac-2.6.0 so create our own CBOINCGUIApp::ProcessExists(), use - it and kill() in CBOINCGUIApp::ShutdownBOINCCore(). - - clientgui/ - BOINCGUIApp.cpp/h - - - David 6 May 2005 - - fixes to work fetch policy (from John McLeod) - - changed names of work-fetch urgency constants to WORK_FETCH_* - (use common prefix for related symbols) - - client/ - client_state.h - client_types.C,h - cs_scheduler.C - scheduler_op.C - - David 6 May 2005 - - prevent users from changing their name to empty string - (from Rob Ogilvie) - - html/user/ - edit_user_info_action.php - - Charlie 7 May 2005 - Mac: Fix problems with window position & size caused by - calling Maximize(false). If m_bFrameVisible-visible is - false at startup, don't show & hide window (to eliminate - annoying flash of window). - - clientgui/ - BOINCGUIApp.cpp - BOINCTaskBar.cpp - MainFrame.cpp - - Bruce 7 May 2005 - - compile fix for HPUX and AIX - - client/ - hostinfo_unix.C - - Janus 8 May 2005 - - Security patches and improvements from Rob Ogilvie making it harder - to misuse the forums. - - escape all strings before inserting into SQL and check everything else - - use regex do search and remove images instead of old slow function - - added a function cleanTextBox that prepares text to be dropped into - a textarea (replacing < and >). Also added the use of it to the - reply-page and edit-page. - -
 changes in the stylesheet
-
       - Added max width on authorcols in forum to css
-
       - Added nicer style to blockquotes
-
     - Removed some old code from forum show_post that wasn't used anymore but
-
       still accessed the database and threw away the result.
-
     - Added a tiny part of the PayPal donation system from BURP, more parts
-
       will show up later when they have been rewritten to work with php4
-
       Please check if the license of the original PayPal script
-
       (http://opensource.org/licenses/cpl.php) fits with the BOINC license. The
-
       way I read it there should be no problems (since BOINC is opensource as
-
       well).
 
-
-
     html/
-
         inc/
-
             db_forum.inc
-
             forum.inc
-
             paypal_global_config.php (new)
-
         user/
-
             black.css
-
             forum_edit.php
-
             forum_reply.php
-
             style.css
-
             style-black.css
-
         white.css
-
             payment_success.php (new)
-
             payment_process.php (new)
 
-
-
 David  8 May 2005
-
     - work fetch and CPU scheduling fixes (from John McLeod)
 
-
-
     client/
-
         client_state.C,h
-
         client_types.C,h
-
         cs_scheduler.C
-
         scheduler_op.C,h
 
-
-
 David  9 May 2005
-
     - scheduler: return error (and don't send result)
-
         if result DB update, WU DB update, or XML mods fail
-
         (from Ian Hay)
 
-
-
     sched/
-
         sched_send.C
 
-
-
 Rom    9 May 2005
-
     - Remove last Friday's benchmark checkin and introduce a benchmark startup
-
         timeout.  If an application cannot be shutdown because an application
-
         fails to shutdown, it'll just skip the benchmarks.
-
     - Add a new log flag for the cpu scheduler called '' so
-
         that people can debug client-side issues with the scheduler
-
     - Convert the #ifdef scheduler debug code to log flag calls
-
     - Fix a CPU scheduling bug where the client thought all the CPU's were idle.
 
-
-
     client/
-
         app.C, .h
-
         app_control.C
-
         client_msgs.C, .h
-
         client_state.C
-
         cs_benchmark.C
-
         cs_scheduler.C
-
         log_flags.C, .h
 
-
-
 Bruce 10 May 2005
-
     - Forums: added an html/bookmark style link to the header for each message.
-
       This makes it a bit more convenient to reference a particular message
-
       (rather than the entire thread) in an email or another thread.
-
       Janus, Rob, I hope this is OK with you.
-
       Feel free to revert if you don't like it.
-
     - Forums: added credit and recent average credit to the brief description
-
       of users.
 
-
-
     html/
-
         inc/
-
             forum.inc
 
-
-
 Janus  10 May 2005
-
     - Reply box on reply page in the forums is now at the top of the page
-
         to avoid scrolling (From Rob Oglivie)
 
-
-
     html/user/
-
         forum_reply.php
 
-
-
 Rom    10 May 2005
-
     - work fetch and CPU scheduling fixes (from John McLeod)
-
     - Convert screen saver debug messages to scoped messages so that everyone
-
         can see them by adding a flag to log_flags.xml
 
-
-
     client/
-
         app_graphics.C
-
         client_msgs.C, .h
-
         client_state.C
-
         cs_scheduler.C
-
         log_flags.C, .h
-
         scheduler_op.C
-
         ss_logic.C
 
-
-
 Bruce 11 May 2005
-
     - Eliminate some annoying 'undefined index' errors in PHP log. Note
-
       that in general the right way to use _GET[] is like this:
-
           $x=default_value;
-
           if (isset($_GET["x"])) $x=$_GET["x"];
-
       This prevents PHP notice-type error messages.
-
     - Eliminate some annoying undefined variables
-
     - Typo in download_network.php
 
-
-
     html/
-
         inc/
-
             forum.inc
-
             util.inc
-
             prefs.inc
-
             forum_show.inc
-
             db_forum.inc
-
             host.inc
-
             db_ops.php
-
         user/
-
             prefs.php
-
             sample_rss_main.php
-
             download_network.php
-
             top_teams.php
-
             show_host_detail.php
-
             team_display.php
-
             top_hosts.php
-
             top_users.php
-
             create_account_form.php
-
             logout.php
-
             view_profile.php
 
-
-
 Rom    11 May 2005
-
     - When adjusting the graphics mode to the application from within
-
         the application use the acked_graphics_mode instead of the
-
         current_graphics_mode since the current
-
         graphics mode is what we would like to be,
-
         not necessarily what we are.
 
-
-
     api/
-
         windows_opengl.C
 
-
-
 David  11 May 2005
-
     - scheduler: fixed bug where rpc_seqno wasn't getting updated
 
-
-
     db/
-
         boinc_db.h
-
     sched/
-
         handle_request.C
-
         server_types.C
 
-
-
 Bruce 12 May 2005
-
     - forums: allow project admin, project developers and forum moderators
-
         to edit their own posts at any time (not just within one hour).
-
     - scheduler: if host reaches daily result quota and contacts the scheduler,
-
         tell it to delay until a random time falling within the first hour
-
         of the following day.
-
         Previously the host would be told to delay one hour,
-
         which could lead to as many as 24 retries in a one-day period.
 
-
-
     html/
-
         user/
-
             forum_edit.php
-
     sched/
-
         sched_send.C
 
-
-
 David  12 May 2005
-
     - db_dump: don't exit if user lookup fails
-
     - user web: improve processing of team names (from Rob Ogilvie)
 
-
-
     html/
-
         inc/
-
             team.inc
-
             util.inc
-
         user/
-
             team_create_action.php
-
             team_display.php
-
             team_edit_action.php
-
     sched/
-
         db_dump.C
 
-
-
 David  12 May 2005
-
     - core client: dir_scan() shouldn't skip over all entries
-
         starting with ".".  It should only skip over "." and "..".
 
-
-
     lib/
-
         filesys.C
 
-
-
 David  12 May 2005
-
     - parse unused ACTIVE_TASK entries to avoid error messages
 
-
-
     client/
-
         app.C
 
-
-
 Rom    12 May 2005
-
     - Bug Fix: ShutdownSaver() can be called from the data management thread
-
         in the scrrensaver, so specifically look up the primary window and
-
         post a quit message there instead of the default window proc of the
-
         thread, which in our case doesn't exist.
-
     - Bug Fix: Remove MODE_QUIT from the CC logic and use MODE_HIDE_GRAPHICS
-
         with is_ss_app to stop the screensaver.  Some projects were not giving
-
         us the MODE_QUIT message and so the screensaver wouldn't shutdown in
-
         a timely manor.
 
-
-
     api/
-
         windows_opengl.C
-
     client/
-
         app_graphics.C
-
     client/win/
-
         win_screensaver.cpp
-
         
-
 Charlie    13 may 2005
-
     Mac: Update build instructions. 
-
         Fix compile error.
-
     client/
-
         main.C
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
 
-
-
 Janus  13 May 2005
-
     - Really make optional fields (postal code and url) optional
-
          For those who rewrite stuff to using get_str etc please remember to
-
          consider if the variable is optional (add true to get_str) or not.
-
     - Added support for css class names in start_forum_table:
-
          Use array(array("Header 1", "style_name_1"), "Header 2", array("Header 3", "style_name_2"))
-
          It defaults to the old "heading" style.
-
     - Checking in patch from Rob Oglivie:
-
          - Figured out how to simply merge two objects together in
-
            db_forum.inc's forum preferences function
-
          - Moved forum-related text transforming functions in to
-
            text_transform.inc - these can certainly be used elsewhere
-
          - Defined a text transforming options class where default options 
-
            are set
-
          - Created a new output_transform() function that takes text and options
-
            and outputs text transformed as such.
-
          - Implemented said function in show_post and show_post2, as well as in
-
            the signature preview on edit_forum_preferences_form.php
-
          - Various wrappers and modifiers to clean up forum-related table
-
            display when people use long nonbreaking words for thread subjects or
-
            their usernames.  These fixes all work in Firefox.  IE, Opera, and KTHML
-
            users will get most of the benefits, but not all of them.
-
          - Wrote a page explaining how to use bbcode tags and linked to it
-
            instead of the allowed HTML tags section
-
          - After editing forum preferences, people are now taken back to the
-
            forum preferences page again - so they can see how it looks
-
          - Quoting text on the forums now uses bbcode instead of HTML
-
          - Added a signature delimiter
-
     - Renamed get_settings_from_user to get_transform_settings_from_user
-
     - Made compile_languages optional in the translator (wow how did anything work
-
           without this in earlier versions?)
 
-
-
     html/
-
         inc/
-
             db_forum.inc
-
             forum.inc
-
             forum_show.inc
-
             translation.inc
-
             util.inc
-
             text_transform.inc (new)
-
         user/
-
             edit_forum_preferences_form.php
-
             edit_forum_preferences_action.php
-
             edit_user_info_action.php
-
             forum_edit.php
-
             forum_reply.php
-
             forum_thread.php
-
             white.css
-
             bbcode.php (new)
 
-
-
 Rom    13 May 2005
-
     - When an application is in screensaver mode,
-
         do not respond to the WM_CLOSE event since Intellitype/Intellipoint
-
         will try to shutdown the screensavers.
-
     - When in screensaver mode respond to a power broadcast event
-
         by shutting ourselves down so the OS can go to sleep.
 
-
-
     api/
-
         windows_opengl.C
 
-
-
 Rom    13 May 2005
-
     - Cause the screensaver process to exit when a power broadcast event
-
         is fired.  It was already shutting down the screensaver
-
         when the APMSUSPEND event was fired
-
         but now we shutdown during the system query phase which happens
-
         before the system actually decides to shutdown
 
-
-
     client/win/
-
         win_screensaver.cpp
 
-
-
 David  14 May 2005
-
     - fix bug where multiple scheduler RPCs or master file fetches
-
         could be started simultaneously (this is a no-no).
-
     - NET_XFER_SET::do_select(): don't add a socket to fd_set
-
         if io_done is true.
-
         This causes the select() to fail and all I/O locks up.
-
     - break out English strings for socket errors
-
         into a separate function (socket_error_str())
-
         instead of having them embedded in resolve_hostname() (???)
 
-
-
     client/
-
         cs_scheduler.C
-
         net_xfer.C
-
         scheduler_op.C
-
         win/
-
             wingui_mainwindow.cpp
-
     lib/
-
         network.C,h
 
-
-
 Charlie    15 may 2005
-
     Mac: Update XCode project and build instructions for 
-
         OS 10.4 (Tiger) and XCode 2.0. Fix gcc-4.0 compiler warning.
 
-
-
     clientgui/
-
         mac/
-
             mac_saver_module.cpp
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
 
-
-
 David  15 May 2005
-
     - small web cleanup
 
-
-
     html/
-
         inc/
-
             mail.inc
-
         user/
-
             mail_passwd.php
 
-
-
 David  15 May 2005
-
     - fix bug where sometimes master file fetch
-
         or user-requested scheduler RPC wouldn't happen
-
     - SCHEDULER_OP::init_get_work(): remove master_file_only argument
-
         NOTE: functions should do one thing only.
-
         Please do not overload them with extra arguments
-
         and orthogonal functionality
 
-
-
     client/
-
         cs_scheduler.C
-
         scheduler_op.C,h
 
-
-
 Janus  16 May 2005
-
     - Don't send reply-notifications in the forum to the user who posted the
-
       reply, this just adds needless datatransfer for sending the mail and
-
       later because the user will check if there actually was a reply...
 
-
-
     html/
-
         inc/
-
            subsribe.inc
-
         user/
-
            forum_reply.php
 
-
-
 Bruce 17 May 2005
-
     - scheduler: use locking to prevent more than one scheduler instance from
-
       running for a given host.  This works by creating a file called
-
       CGI_ in the cgi-bin/ directory, and using Posix advisory file
-
       locking.  I have been testing this code for three days and am seeing
-
       *some* invocations of this.  David, I'll send details to the dev mailing
-
       list or talk with you about it later this week.  Note: this code probably
-
       can be removed in the future, when the core client problems are fixed.
-
       Also note: I don't know if this is compatible with the fast cgi sched.
 
-
-
     sched/
-
         handle_request.C
-
         server_types.h
 
-
-
 Charlie    17 May 2005
-
     Mac: SetVersion now automatically updates version number 
-
         string in all 5 files where needed, but does not touch 
-
         these files if the version number is current.  Update build 
-
         instructions to reflect this new automation.
-
         Fix new warnings from gcc 4.0 compiler.  Installer makes 
-
         old BOINC quit before starting newly installed BOINC Manager.
 
-
-
     clientgui/
-
         mac/
-
             mac_saver_module.cpp
-
             SetVersion.C
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
-
         mac_installer
-
             BOINC.pmproj (new, replaces BOINC.pmsp in Tiger)
-
             PostInstall.cpp
 
-
-
 Bruce 17 May 2005
-
     - forum style: use 'comma-separated' number format for credit/RAC
 
-
-
     html/
-
         inc/
-
             forum.inc
 
-
-
 David  17 May 2005
-
     - (from Bruce Allen) fix bug in scheduler in case where
-
         host has been merged,
-
         and results are reported with old (zombie) host ID.
-
         Results in the DB have already been updated to new hostid;
-
         compare with that ID, not old ID
-
     - move mylockf() to sched_util.C
-
         (eliminate duplicate definition in scheduler/file upload handler)
-
     - move delete_file_from_host() to sched_locality.C
 
-
-
     sched/
-
         file_upload_handler.C
-
         handle_request.C
-
         sched_locality.C,h
-
         sched_util.C,h
 
-
-
 Rom    17 May 2005
-
     - Bug Fix: The Mac screensaver sends us a MODE_HIDE_GRAPHICS even before
-
         it acknowledges the MODE_FULLSCREEN change which in turn tells the CC
-
         to shutdown the screensaver.  So lets improve the robustness of the
-
         shutdown logic to only shutdown the screensaver if the CC has received
-
         an ack for the MODE_FULLSCREEN message.
 
-
-
     client/
-
         app_graphics.C
 
-
-
 Charlie    18 May 2005
-
     Mac: Fix some compiler warnings.  Add --build=powerpc-apple-darwin to 
-
         configure args in build instructions to force generic platform name.
-
         Fix core client redirection when launched by screensaver.
 
-
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
-
     clientgui/
-
         mac/
-
             mac_saver_module.cpp
 
-
-
 Rom    18 May 2005
-
     - Bug Fix: After starting the CC wait for 5 seconds to give the CC time
-
         to establish the listening socket for the next rpc request.
-
     - Convert the remaining #ifdef'ed debug messages into scoped messages
-
         so they can be tracked in debug/release builds on all platforms.
-
     - We store most if not all time values internally as doubles, so make
-
         the calls to time(0) to dtime() to see if that fixes a deadline
-
         problem on the mac with the screensaver.
 
-
-
     client/
-
         app_graphics.C
-
         ss_logic.C
-
     clientgui/
-
         BOINCGUIApp.cpp
 
-
-
 Charlie    18 May 2005
-
     Mac: Eliminate an absolute library search path in project. 
-
         In build instructions, don't suggeest using jpeglib.h from
-
         seti_boinc project.
 
-
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
-
         
-
 David  19 May 2005
-
     - Core client: When proxy info is updated (via RPC) send a
-
          message to the process_control channel,
-
         telling the app to reread the app_info file (for Folding@home)
 
-
-
     api/
-
         boinc_api.C,h
-
     client/
-
         app.h
-
         app_control.C
-
         cs_scheduler.C
-
         gui_rpc_server.C
 
-
-
 Charlie    20 May 2005
-
     Mac: Change how wxWidgets libraries are linked so the static 
-
         versions are used even if the dynamic libraries are present.
-
         Add information to Build instructions for passing arguments to 
-
         the Core Client for debugging under XCode.
 
-
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
 
-
-
 David  20 May 2005
-
     - changed download page to make it small;
-
         details are on separate pages.
-
     - removed "high_priority" and "return_result_immediately" attributes
-
         from RESULT (no changes like this without discussion!)
 
-
-
     client/
-
         client_types.C,h
-
         cs_scheduler.C
-
     doc/
-
         download.php
-
         versions.inc (new)
 
-
-
 David  20 May 2005
-
     - Added mechanism to report results sooner in some cases.
-
         - results have a new field "completed time":
-
             the time when ready_to_report was set.
-
         - a project's completed results are reported when either
-
             1) the time is within a day of a report deadline, or
-
             2) the time is more than work_buf_min_days after
-
                 r.completed_time for some result r.
 
-
-
     client/
-
         client_state.C
-
         client_types.C,h
-
         cs_scheduler.C
 
-
-
 Rom    20 May 2005
-
     - Reduce flicker in the screensaver by delaying the request to
-
         enter fullscreen mode until after the app has ack'ed the hide_graphics
-
         request.
-
     - Fix what appears to be a long standing bug in the Windows screensaver
-
         where after the first execution of the screensaver the core client
-
         continues to report the screensaver mode as SS_STATUS_QUIT even when
-
         the screensaver is starting up for the second time which causes the
-
         screensaver to exit.
 
-
-
     client/
-
         app_graphics.C
-
         ss_logic.C
-
     client/win/
-
         win_screensaver.cpp
 
-
-
 David  20 May 2005
-
     - get rid of warnings in ACTIVE_TASK parse
 
-
-
     client/
-
         app.C
 
-
-
 Rom    20 May 2005
-
     - Fix the one off bug that would allow the screensaver to continue operation
-
         when only one click of the mouse occurred or one click of the keyboard.
 
-
-
     client/
-
         app_graphics.C
 
-
-
 Charlie    21 may 2005
-
     Mac: If core client exits screensaver mode but Mac screensaver engine 
-
         doesn't (as in the case of a mouse button click with no mouse movement)
-
         then show message "BOINC is no longer in screensaver mode."
-
         Update installer to work around problems launching BOINC Manager.
 
-
-
     clientgui/
-
         mac/
-
             mac_saver_module.cpp
-
     mac_installer/
-
         postinstall
-
         postupgrade
-
         PostInstall.cpp
 
-
-
 David  21 May 2005
-
     - API: there seem to be problems with the user of timer signals
-
         in the BOINC API (Unix version).
-
         On some platforms the signals are delivered to both
-
         the worker and graphics thread,
-
         and they can deadlock on something down in _vprintf().
 
-
-
         Rather than try to sort this out,
-
         we'll switch to using a separate thread instead of signals.
-
         (from J.R. Oldroyd)
 
-
-
     api/
-
         boinc_api.C
 
-
-
 Rom    21 May 2005
-
     - Bug Fix: The ATI graphics drivers do not like to be told to switch
-
         to the original desktop and window station that the application started
-
         with.  So now the application will detect which window station and
-
         desktop it is currently running under and only switch if it is different
-
         from the desired desktop and window station.  There was no API
-
         failure codes to look for, the application believed everything was
-
         running like it was supposed to be.
 
-
-
     api/
-
         windows_opengl.C
 
-
-
 Charlie    22 may 2005
-
         Fix problems launching BOINC Manager from installer.  Build release 
-
         using BOINC.pmsp with PackageMaker 1.2 (from XCode 1.5 / Panther) 
-
         instead of BOINC.pmproj with PackageMaker 2.0 (XCode 2.0 / Tiger) 
-
         to avoid "null volume" error when installing on Mac OS 10.3.x.  So 
-
         updated version number strings in BOINC.pmsp.
 
-
-
     mac_installer/
-
         BOINC.pmsp
-
         postinstall
-
         postupgrade
-
         PostInstall.cpp
 
 
-
-
-
 David  22 May 2005
-
     - debugged yesterday's API change on Linux.
-
         It worked OK except CPU time wasn't getting reported.
-
         It turns out that getrusage(), on Linux at least,
-
         returns CPU time only for the calling thread
-
         (in this case the timer thread,
-
         whereas we wanted the worker thread).
 
-
-
         So: put back a timer signal, but use it ONLY to get worker CPU time,
-
         and only do that if the worker thread is the one handling the signal.
-
         Store the worker CPU time in a variable (worker_thread_cpu_time)
-
         which is read by the timer thread.
 
-
-
         Aargh!!
 
-
-
         Still need to make sure this works on Mac OS X, Solaris etc.
 
-
-
     api/
-
         boinc_api.C
-
         graphics_impl.C
 
-
-
 David  22 May 2005
-
     - screensaver logic: if > 1 apps are running (e.g. multiprocessor)
-
         switch between them every 10 minutes
-
     - compile fix for Win
 
-
-
     api/
-
         boinc_api.C
-
     client/
-
         app_graphics.C
-
         ss_logic.C
 
-
-
 David  22 May 2005
-
     - Unix API: don't do any floating-point math in the timer signal handler
-
     - compile fixes
 
-
-
     api/
-
         boinc_api.C
 
-
-
 Charlie    22 may 2005
-
     Mac: add build of boinc_cmd command-line application to XCode project.
-
     Remove wxRESIZE_BORDER from dialog styles so they are not resizeable.
-
     
-
     clientgui/
-
         DlgAbout.h
-
         DlgAccountManager.h
-
         DlgAttachProject.h
-
         DlgConnection.h
-
         DlgOptions.h
-
         DlgSelectComputer.h
-
         
-
     mac_build/
-
         boinc.pbproj/
-
             project.pbxproj
 
-
-
 David  22 May 2005
-
     - compile fix
 
-
-
     api/
-
         boinc_api.C
 
-
-
 Rom    23 May 2005
-
     - Modify the configure.ac script to explicitly state which combination
-
         of wxWidget libraries we need to link against, otherwise it will
-
         fall back to a default which may cause more harm than good.
 
-
-
     /
-
         configure.ac
 
-
-
 David  23 May 2005
-
     - scheduler fixes (from John McLeod and others)
-
         - estimate remaining CPU correctly if frac done = 0
-
         - avoid div by zero error
-
         - fix seconds-per-day scaling problem
 
-
-
     client/
-
         app.C
-
         client_types.C
-
         cs_apps.C
-
         cs_scheduler.C
-
         scheduler_op.C
 
-
-
 Rom    23 May 2005
-
     - Introduce a change in the screensaver logic so that it checks user idle
-
         activity before informing the screensaver to shutdown, so that in the
-
         case of an application exiting due to it completing the result the CC
-
         can promote another application to screensaver status and continue on.
 
-
-
     client/
-
         app_graphics.C
 
-
-
 David  23 May 2005
-
     - added  entry to sched config file (optional).
-
         Specifies where scheduler PID lockfiles are kept
-
         (default is cgi-bin dir)
 
-
-
     sched/
-
         handle_request.C
-
         sched_config.C,h
 
-
-
 David  23 May 2005
-
     - factored out CLIENT_STATE::adjust_debts()
-
         from CLIENT_STATE::schedule_cpus()
 
-
-
     client/
-
         cs_apps.C
 
-
-
 Charlie    24 may 2005
-
     Tweaked Rom's fix to screensaver logic to also check if previous mode 
-
     was MODE_FULLSCREEN.  This makes it work reliably when screensaver is 
-
     activated by moving mouse into hot corner.
-
     
-
     client/
-
         app_graphics.C
 
-
-
 David  24 May 2005
-
     - Removed "max_projects_on_client" from GLOBAL_PREFS structure.
-
     - added RESULT::computing_done() function.
-
         This replaces explicit references to RESULT::state
-
     - minor code cleanup in CPU scheduler
 
-
-
     client/
-
         client_types.C,h
-
         cs_apps.C
-
         cs_scheduler.C
-
     lib/
-
         prefs.C,h
-
         result_state.h
 
-
-
 Rom    24 May 2005
-
     - Instead of going to sleep to give the CC enough time to open a
-
         listening socket we should attempt to connect after we have received
-
         our first OnFrameRender timer event which will happen after at
-
         least one window idle event.
 
-
-
     clientgui/
-
          BOINCGUIApp.cpp
-
          MainFrame.cpp, .h
 
-
-
 Rom    24 May 2005
-
     - Throttle back how often the UI is aloud to update itself to two times
-
         a second, the Mac was consuming 12% of the CPU just processing events
-
         in the BOINC Manager
 
-
-
     clientgui/
-
         MainFrame.cpp
 
-
-
 Charlie    25 may 2005
-
     Mac: If core client sends screensaver SS_STATUS_QUIT, kill the 
-
         screensaver engine if it has not quit after 1 second.  Eliminate
-
         "BOINC is no longer in screensaver mode" message.
 
-
-
     clientgui/
-
         mac/
-
             mac_saver_module.cpp
 
-
-
 David  25 May 2005
-
     - Changed the interface for creating a GUI RPC connection.
-
         RPC_CLIENT::init() synchronous
-
         RPC_CLIENT::init_asynch(double timeout, bool retry)
-
             If retry is true, keep trying (alternating between
-
             alternate and main ports) until succeed or time out.
-
             This is used by the BOINC manager when it starts up
-
             the core client, since it may take many seconds before
-
             the core client runs and creates the listening socket.
-
     NOTE: the BOINC Manager sees if the core client is running by
-
         connecting to it.  It then closes this connection and connects again.
-
         Would be better to connect just once.
 
-
-
     clientgui/
-
         BOINCGUIApp.cpp
-
         MainDocument.cpp
-
     lib/
-
         boinc_cmd.C
-
         gui_rpc_client.C,h
 
-
-
 David  25 May 2005
-
     - don't initiate scheduler RPC is activity suspended
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  25 May 2005
-
     - if an app hasn't checkpointed yet, never preempt it by killing it
-
         (even in CPU benchmark case)
 
-
-
     client/
-
         app_control.C
-
         cs_apps.C
-
         cs_benchmark.C
 
-
-
 David  26 May 2005
-
     - feeder: added a "-mod n i" option.
-
         This lets you run schedulers on more than one host.
 
-
-
     db/
-
         boinc_db.C,h
-
     sched/
-
         feeder.C
 
-
-
 David  26 May 2005
-
     - file_deleter: if a file is present but can't be deleted,
-
         don't mark the WU or result as file_delete_state = DONE;
-
         leave it in state READY.
-
         This addresses the case where files can't be deleted because
-
         of dir permissions.
 
-
-
         If such an error occurs, sleep for 5 seconds before next scan
-
         (avoid rapid infinite loop)
 
-
-
         (From Kevin Reed)
 
-
-
     - Change log messages in file_deleter to same format as other daemons,
-
         e.g. [WU#12345]
 
-
-
     sched/
-
         file_deleter.C
 
-
-
 Rom    26 May 2005
-
     - Include version information for boinc_cmd.exe so the Windows installer
-
         will know it can upgrade the file with future revisions.
 
-
-
     client/win/
-
         boinc_cli.rc
-
         boinc_cmd.rc, .h (Added)
-
     win_build/
-
         boinc.sln
-
         boinc_guirpc_test.vcproj
 
-
-
 Rom    26 May 2005 (boinc_public)
-
     - Tag for 4.44 release, all platforms
-
       boinc_core_release_4_44
 
-
-
 David  27 May 2005
-
     - added help and version cmdline options to boinc_cmd.C
-
         (from Eric Myers)
 
-
-
     lib/
-
         boinc_cmd.C
 
-
-
 David  28 May 2005
-
     - commented out RedHat stuff from config.guess
-
         (fix problem where Linux platform name contains "redhat")
 
-
-
     config.guess
 
-
-
 David  28 May 2005
-
     - reschedule CPUs when resume activities for whatever reason
-
         (from Jim Harris)
 
-
-
     client/
-
         cs_prefs.C
 
-
-
 David  28 May 2005
-
     - BOINC manager: changed message in work tab
-
         try to make it clear WHY a result is not running
-
         Not quite done - need to show if project is suspended
-
     - BOINC manager: changed message in projects tab
-
         "Project suspended" -> "Suspended by user"
-
         Also, don't show "won't get new work"
-
     - BOINC manager code cleanup
-
         - got rid of enums in CMainDocument for RESULTTYPE, CPU_SCHED_TYPE,
-
             and RUN_TYPE.
-
             ?? Why make new constants when we already have perfectly good ones?
-
         - got rid of (in CMainDocument):
-
             bool                        IsProjectSuspended(int iIndex);
-
             bool                        IsProjectRPCPending(int iIndex);
-
             bool                        IsProjectAllowedToGetWork(int iIndex);
-
             int                         GetWorkState(int iIndex);
-
             int                         GetWorkSchedulerState(int iIndex);
-
             bool                        IsWorkAborted(int iIndex);
-
             bool                        IsWorkAcknowledged(int iIndex);
-
             bool                        IsWorkActive(int iIndex);
-
             bool                        IsWorkReadyToReport(int iIndex);
-
             bool                        IsWorkSuspended(int iIndex);
 
 
-
-
-
     clientgui/
-
         BOINCTaskBar.cpp
-
         MainDocument.cpp,h
-
         ViewProjects.cpp
-
         ViewWork.cpp
 
-
-
 David  31 May 2005
-
     - Add 2 new items to scheduler RPC request:
-
         - 
-
             List of other results for this project
-
             (besides those being reported, if any)
-
             This can be used by the scheduler to resend
-
             previously sent results that were lost somehow.
-
             Includes only the name of the result.
-
         - 
-
             List of all results for which computation is not done.
-
             Includes estimated remaining CPU time, report deadline.
-
             This can be used by the scheduler to decide whether
-
             to send short-deadline results.
 
-
-
         Note 1: the scheduler doesn't use the above info yet.
-
             Need to get this code into clients first.
 
-
-
         Note 2: I used tag names  and 
-
             for the results within each element.
-
             This will prevent the current scheduler from
-
             mistaking them for elements being reported.
-
             This is a kludge, but is fixed in new scheduler code
-
             (see next item)
 
-
-
     - add skip_unrecognized() function to lib/parse.C
-
         Call this when get an unrecognized line.
-
         If it's a single tag "",
-
         this will skip all lines up to and including ""
 
-
-
     - Change Win name from "BOINC Daemon" to "BOINC client"
-
         (let's not introduce random new terms at this point)
 
-
-
     - boinc_cmd: print error messages in some cases
-
         (should finish this to handle other cases)
 
-
-
     - fix bug in boinc_cmd: wasn't connecting to alternate port
 
-
-
     client/
-
         cs_scheduler.C
-
         win/
-
             boinc_cli.rc
-
     lib/
-
         boinc_cmd.C
-
         gui_rpc_client.C,h
-
         parse.C,h
-
         util.C
-
     sched/
-
         server_types.C
 
-
-
 David  31 May 2005
-
     - core client: remove extraneous scheduling-related messages.
-
         Just say when we're entering/leaving either
-
         no-work-fetch mode or deadline-scheduling mode
 
-
-
     - got rid of work_request arg to
-
         CLIENT_STATE::make_scheduler_request() and
-
         SCHEDULER_OP::init_op_project()
 
-
-
     - When making a scheduler RPC, always show
-
         the work request and the # of results being returned
 
-
-
     client/
-
         client_state.h
-
         client_types.h
-
         cs_apps.C
-
         cs_scheduler.C
-
         scheduler_op.C,h
 
-
-
 David  31 May 2005
-
     - If a project has multiple scheduler URLs,
-
         contact them cyclically but starting at a random index.
-
     - Add error-checking on start_rpc() for schedulers beyond the first one.
-
         This might fix some of the problems seen recently with Pirate.
 
-
-
     client/
-
         client_state.C
-
         client_types.C,h
-
         scheduler_op.C,h
 
-
-
 David  1 June 2005
-
     - Restrict the account management mechanism to reduce its security risk.
-
         1) am_create.php now returns an error if an account
-
             (validated or not) exists with the given email address.
-
         2) The account-confirmation email cautions the recipient
-
             to ignore it if they didn't make the request
-
         2) am_query.php returns an error if an account with same email exists.
-
     - Add an "acct_mgr_name" argument to am_create.php so we can
-
         tell the user where the request came from
 
-
-
     The reason for this change is as follows.
-
     Suppose a hacker X knows or guesses the email address of a user Y.
-
     X sends an am_create RPC to the project.
-
     Y receives an email and, without thinking, clicks on the URL.
-
     X then does an am_query RPC and gets Y's authenticator.
-
     These changes prevent this attack.
 
-
-
     There's still a small security risk.
-
     A hacker could spam a project with am_create RPCs
-
     with various known email addresses.
-
     A small fraction of recipients might click on validate link,
-
     which would create accounts with authenticators known to the hacker.
-
     However I don't see this as a significant problem.
 
 
-
-
-
     html/
-
         inc/
-
             email.inc
-
         user/
-
             am_create.php
-
             am_query.php
-
             login_action.php
 
-
-
 David  1 June 2005
-
     - Reorganization of schedule RPC and master file fetch code
-
         trying to get rid of bug where once project's scheduler URLS
-
         end up in another project.
 
-
-
         The following conditions are either all true or all false:
-
             1) SCHEDULER_OP::project is nonzero
-
             2) SCHEDULER_OP::state is not IDLE
-
             3) SCHEDULER_OP::http_op is in HTTP_OP_SET.
 
-
-
         These become true in:
-
             SCHEDULER_OP::start_rpc()
-
             SCHEDULER_OP::init_master_fetch()
 
-
-
         These become false in:
-
             SCHEDULER_OP::poll() (when an operation finishes)
-
             SCHEDULER_OP::abort() (called when reset or abort project)
 
-
-
     - Changed SCHEDULER_OP from struct to class and hid some of its data
 
-
-
     client/
-
         client_state.C
-
         cs_scheduler.C
-
         schedule_op.C,h
 
-
-
 David  1 June 2005
-
     - a result is not "in progress" if it's ready to report
 
-
-
     client/
-
         client_types.C
 
-
-
 David  1 June 2005
-
     - Scheduler: when send the client a delay request because
-
         it's contacted us before min_sendwork_interval,
-
         add an additional 1% to the delay request.
-
         This handles the case where the client's clock is
-
         slightly faster than the servers,
-
         and it repeatedly does an RPC slightly before it should
-
         (from John McLeod)
 
-
-
     sched/
-
         handle_request.C
 
-
-
 David  1 June 2005
-
     - add  and 
-
         items to  GUI RPC "get_state" reply.
-
         These indicate the current work-fetch and CPU sched policies.
-
         They're integers - 1 means in effect, 0 means not.
-
     - don't write cpu_sched_work_done_this period to statefile,
-
         or in get_state GUI RPC
-
         
-
     client/
-
         client_state.h
-
         cs_statefile.C
 
-
-
 David  2 June 2005
-
     - add a new value FILE_DELETE_ERROR for file delete state
-
         (for when the unlink failed, e.g. because of permissions).
-
     - add a new cmdline flag -retry_errors to file deleter
 
-
-
     (from Kevin Reed)
 
-
-
     db/
-
         boinc_db.h
-
     html/inc/
-
         db_ops.inc
-
     sched/
-
         file_deleter.C
 
-
-
 David  2 June 2005
-
     - Scheduler: don't write Content-type: text/plain twice
-
         (from Bruce Allen)
-
     - move set_core_dump_size_limit() code to separate function
 
-
-
     sched/
-
         handle_request.C
-
         main.C,h
 
-
-
 David  2 June 2005
-
     - scheduler/work fetch changes
-
         (from John McLeod)
 
-
-
     client/
-
         app.C
-
         client_types.C
-
         cs_apps.C
-
         cs_scheduler.C
 
-
-
 David  3 June 2005
-
     Stuff related to per-host lockfiles in scheduler:
 
-
-
     - enable locking only if  is present in config file
-
     - delete lockfiles from sched_lockfile_dir (NOT necessarily CGI dir)
-
     - if mylockf(fd) fails (can't lock file) close fd before returning
-
         Otherwise would overflow fd limit under FCGI
-
     - Fix error message if lock_sched() returns -1
-
         (-1 is not a PID)
-
     - move lock-release logic into separate function (unlock_sched())
 
-
-
     sched/
-
         handle_request.C
-
         sched_util.C
 
-
-
 David  6 June 2005
-
     - remove char* versions of starts_with() and ends_with().
-
         (Attempt to fix app_start problem on HPUX)
 
-
-
     client/
-
         cs_trickle.C
-
         file_names.C
-
     lib/
-
         util.C,h
 
-
-
 David  6 June 2005
-
     - (scheduler changes from John McLeod):
-
         I believe that I may have found the idle CPU problem for multiple CPUs.
-
         I have also changed one variable name that was apparently
-
         causing some confusion and chqanged a couple of debug messages
-
         to print a bit more information.
 
-
-
     client/
-
         cs_scheduler.C
-
         net_xfer.C
 
-
-
 David  6 June 2005
-
     - Manager: show frac done correctly
-
         (from Glenn Dill)
 
-
-
     clientgui/
-
         ViewWork.cpp
 
-
-
 David  7 June 2005
-
     code cleanup in CPU sched/work fetch area:
-
     - introduced concepts of
-
         "runnable result"
-
         "runnable project"
-
         "potentially runnable project"
-
         These encapsulate a lot of the checks
-
         (suspended via gui, blah blah) that we do everywhere.
-
         For each of these, added a bool function.
-
     - rename things in terms of these concepts, e.g.
-
         local_total_resource_share -> runnable_resource_share
-
             (i.e. sum of resource shares of runnable projects)
-
         local_total_lt_available_resource_share
-
             -> potentially_runnable_source_share
-
     - eliminate the use of PROJECT::next_runnable_result
-
         as an indicator of whether a project has a runnable result.
-
         Just call PROJECT::runnable().
-
         Eliminate the use of assign_results_to_project()
-
         to see if projects have a runnable result.
-
     - rename "debt" to "short_term_debt", including in client_state.xml
-
         (this will cause one-time parse error, shouldn't hurt anything)
 
-
-
     client/
-
         client_types.C,h
-
         cs_apps.C
-
         cs_scheduler.C
 
-
-
 Rom    7 June 2005 (boinc_public)
-
     - Tag for 4.45 release, all platforms
-
       boinc_core_release_4_45
 
-
-
 David  7 June 2005
-
     - core client: eliminated the practice of passing "now" (time of day)
-
         as an argument, e.g. to poll functions.
-
         Instead, reference gstate.now.
-
         This is updated at the top of do_something().
-
         If you're doing something that requires high resolution
-
         (e.g. NET_XFER_SET_POLL()) then call dtime() yourself.
 
-
-
     client/
-
         *.C, *.h
 
-
-
 Rom    7 June 2005 (from Walt Gribben)
-
     - Adjust the logging functions so they do not randomly write outside
-
         the scoped area defined for spacing which might cause random crashes
-
         
-
     lib/
-
         msg_log.C
 
-
-
 David  7 June 2005
-
     - core client: store the overall work fetch urgency in
-
         CLIENT_STATE::overall_work_fetch_urgency,
-
         and don't pass it around as an argument
-
     - add PROJECT::downloading(): true if the project
-
         has a result in state RESULT_FILES_DOWNLOADING
-
     - got rid of "old" argument to CLIENT_STATE::next_project_need_work()
-
     - CLIENT_STATE::compute_work_requests():
-
         return value is an error code, not overall urgency.
 
-
-
     client/
-
         client_state.h
-
         client_types.C,h
-
         cs_scheduler.C
-
         scheduler_op.C,h
 
-
-
 David  7 June 2005
-
     - code cleanup: use new functions (like RESULT::runnable() etc.)
-
         instead of inspecting member variables (like suspended_via_gui)
-
     - Added RESULT::runnable_soon(): true iff result is
-
         downloading or runnable, not suspended, project not suspended
-
     - fix bug in Rom's last checkin (Rom, please verify)
 
-
-
     client/
-
         client_types.C,h
-
         cs_apps.C
-
         cs_scheduler.C
-
         scheduler_op.C
-
     lib/
-
         msg_log.C
-
         network.C,h
 
-
-
 David  7 June 2005
-
     - FILE_INFO::verify_file(): if a file fails verification,
-
         set its "status" field to the appropriate error code.
-
         This wasn't being done, so in most cases the
-
         core client would verify the file over and over.
 
-
-
         This was exacerbated by a bug I introduced 7 months and 3 weeks ago
-
         (and fixed earlier today).
-
         In CLIENT_STATE::update_result() I had
 
-
-
         if (now - last_time < 1.0) return false;
-
         last_time = 0;
 
-
-
         It should be "now", not zero.  This caused pending input files to
-
         get checked 10 times a second, rather than once.
 
-
-
     client/
-
         cs_files.C
 
-
-
 Rom    7 June 2005 (boinc_public)
-
     - Tag for 4.45a release, all platforms
-
       boinc_core_release_4_45a
 
-
-
 David  8 June 2005
-
     - core client: add constructor and destructor to NET_XFER,
-
         and have them close the file and/or socket if present.
-
         This should fix a bug where a file was left open
-
         in the case of a download failure,
-
         causing process creation failure later on.
 
-
-
     client/
-
         app.C
-
         http.C
-
         net_xfer.C,h
-
         pers_file_xfer.C
 
-
-
 David  8 June 2005
-
     - API, Unix/Linux/Mac:
-
         Don't use a SIGALRM signal in the worker thread to get CPU time.
-
         It turns out that the signal handler is usually
-
         called in a different thread anyway,
-
         and getrusage() return CPU time for the entire process,
-
         so it doesn't matter what thread we call it from.
-
         Instead, just call getrusage() from the timer thread.
-
         (From J.R. Oldroyd and Bernd Machenschalk)
 
-
-
     api/
-
         boinc_api.C
 
-
-
 David  8 June 2005
-
     - Added a new general preference: start/end hours for network communication
 
-
-
     client/
-
         client_state.C,h
-
         cs_prefs.C
-
         prefs_file_xfer.C
-
     html/inc/
-
         prefs.inc
-
     lib/
-
         prefs.C,h
 
-
-
 David  8 June 2005
-
     - Check network start/end hours even if user_network_request is ALWAYS.
-
         Currently that's the default,
-
         and in fact there's no interface for changing it to AUTO.
-
     - CLIENT_STATE::scheduler_rpc_poll():
-
         check for master file fetch and user-requested scheduler RPCs
-
         before checking network_suspended flag.
-
         Otherwise the user might get into a state where their
-
         prefs don't allow network access (e.g. because of time-of-day),
-
         and they can't do an "update" to change the prefs
 
-
-
     client/
-
         cs_prefs.C
-
         cs_scheduler.C
-
         win/
-
             wingui_mainwindow.cpp
 
-
-
 David  8 June 2005
-
     - bug fix in net stats calculation
-
         (from Glenn Dill)
-
     - refactor code so adjust_debts() is independent from schedule_cpus()
-
     - call adjust_debts() from quit_activities(), so that long-term debt
-
         updated and written to state file when exit core client
-
         (from Glenn Dill)
 
-
-
     client/
-
         client_state.h
-
         cs_apps.C
-
         cs_benchmark.C
-
         net_stats.C
 
-
-
 David  9 June 2005
-
     - Changed variable names from "work_done" to "wall_cpu_time";
-
         it's important to emphasize that debt accounting
-
         is done on the basis of how long a process is running,
-
         NOT how much CPU time it actually or reportedly got.
-
     - don't count non-CPU-intensive apps in calculation of
-
         total_wall_cpu_time_this_period
-
     - fixed crash if you run core client with -attach_project X
 
-
-
     client/
-
         client_state.C,h
-
         client_types.C,h
-
         cs_apps.C
-
         cs_cmdline.C
 
-
-
 David  10 June 2005
-
     - Fixed major goof in last checkin:
-
         caused all debt calculations to be no-op
-
     - Manager: in "status" column of Projects tab,
-
         show all relevant info, comma-separated
 
-
-
     client/
-
         cs_apps.C
-
     clientgui/
-
         ViewProjects.cpp
 
-
-
 David  10 June 2005
-
     - BOINC Manager: change things so that if user tries to
-
         attach to a project and it fails,
-
         an alert dialog shows up within a few seconds,
-
         saying what went wrong and what to do about it.
 
-
-
     This involves several pieces:
 
-
-
     - add a new core client message priority: MSG_ALERT.
-
         The accompanying message should be shown in an alert dialog.
-
     - CLIENT_STATE::add_project: show alert msg if URL or key is bad
-
     - project_add_failed(): add a "reason" argument,
-
         and show alert messages accordingly
-
     - change SCHEDULER_OP::check_master_fetch_start(), SCHEDULER_OP::poll()
-
         to call project_add_failed() with appropriate reason
-
     - CMainDocument::CachedMessageUpdate():
-
         scan new messages; if any are MSG_ALERT priority, show alert.
-
         Else append to main message vector.
-
     - CMainFrame::OnListPanelRender(): call pDoc->CachedMessageUpdate().
-
         This is the easiest way I could find of checking new messages
-
         every 5 seconds, even when not in the Messages tab.
 
-
-
     NOTE: there's one piece I didn't do.
-
     When the Manager connects to a core client with some ALERT messages
-
     already in its message log, it probably shouldn't show alerts for them.
-
     Rom, please figure out how to do this.
 
-
-
     client/
-
         client_msgs.h
-
         cs_account.C
-
         gui_rpc_server.C
-
         main.C,h
-
         scheduler_op.C
-
         win/
-
             wingui_mainwindow.cpp
-
     clientgui/
-
         MainDocument.cpp,h
-
         MainFrame.cpp
-
         ViewMessages.cpp
-
     lib/
-
         gui_rpc_client.h
 
-
-
 David  11 June 2005
-
     - changed project_add_failed() to a member function of PROJECT
-
         (PROJECT::attach_failed).
-
         Move code out of main.C,h
-
     - Removed special project_add_failed() from Win GUI code.
 
-
-
     client/
-
         client_types.h
-
         cs_account.C
-
         main.C,h
-
         scheduler_op.C
-
         win/
-
             wingui_mainwindow.cpp
 
-
-
 David  11 June 2005
-
     - CLIENT_STATE::find_project_with_overdue_result():
-
         need to convert work_buf_min_days to seconds
-
         (from Jim Harris)
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  12 June 2005
-
     - In language names in .po files,
-
         use HTML special characters (e.g. à)
-
         instead of non-ASCII characters
-
     - user web: fix bug in language select page (from Jens)
-
     - db_dump: don't exit if user lookup fails
-
     - change wording of user-name lookup: "starts with", not "contains"
 
-
-
     html/
-
         language/translations/
-
             ca.po
-
         user/
-
             language_select.php
-
             user_search_action.php
-
     sched/
-
         db_dump.C
 
 
-
-
-
 Rom    13 June 2005
-
     - Code clean for the Manager
-
     - Added two new HTTP_STATUS constants, but haven't done anything with
-
       them yet.
-
     - The title of the account manager dialog is the name of the
-
       organization managing the accounts.
 
-
-
     client/
-
         http.C
-
         scheduler_op.C
-
     clientgui/
-
         BOINCBaseView.cpp, .h
-
         BOINCTaskBar.cpp
-
         MainDocument.cpp, .h
-
         MainFrame.cpp
-
         ViewMessages.cpp
-
         ViewProjects.cpp, .h
-
         ViewResources.cpp
-
         ViewStatistics.cpp
-
         ViewTransfers.cpp
-
         ViewWork.cpp
 
-
-
 David  13 Jan 2005
-
     - Add code (in TIME_STATS) to compute a quantity "cpu_efficiency".
-
         This is the ratio between CPU time accumulated by BOINC apps
-
         and the wall time those apps are scheduled at the OS level.
-
         It may be less than one if
-
         1) apps page or do I/O
-
         2) other CPU-intensive apps run
 
-
-
         This is computed with a 1-day exponential smoothing.
 
-
-
         For now, we're just computing this.
-
         At some point we'll use it to estimate how long will take.
 
-
-
         (from Glenn Dill)
 
-
-
     client/
-
         client_state.h
-
         cs_apps.C
-
         time_stats.C,h
 
-
-
 David  13 June 2005
-
     - bug fix in Manager: can't pass a std::string to printf(%s)
 
-
-
     clientgui/
-
         ViewWork.cpp
 
-
-
 David  13 June 2005
-
 	- get Manager to compile on Windows:
-
 		- can't do DynamicCast stuff for non-wx objects
-
 		- don't bother doing both ASSERT(p) and if(p).
-
 			Better yet, don't do either
 
-
-
 	clientgui/
-
 		BOINCTaskBar.cpp
-
 		ViewMessages.cpp
-
 		ViewProjects.cpp
-
 		ViewResources.cpp
-
 		ViewStatistics.cpp
-
 		ViewTransfers.cpp
-
 		ViewWork.cpp
 
-
-
 David  13 June 2005
-
 	- core client: estimate CPU time to completion of an active result
-
 		as a weighted average of estimates based on
-
 		1) the workunit's flops count
-
 		2) the current reported CPU time and fraction done,
-
 		weighted by the fraction done.
-
 		This gives better estimates for apps that don't
-
 		estimate their fraction done well (e.g. SETI@home).
-
 		It should eliminate a behavior where the client gets 1 result,
-
 		starts running it, and immediately requests more work.
-
 	- core client: fix bug where we'd to a master file fetch
-
 		after every scheduler RPC
-
 	- core client: show messages when downloading master page,
-
 		and when it succeeds or fails
 
-
-
 	NOTE: I was seeing a bug where each file transfer would fail
-
 	immediately with a CONN_REFUSED error (10061 on Win),
-
 	but would succeed on retry.
-
 	This went away when I changed the settings on my
-
 	Symantec Personal Firewall to not check outgoing connections.
-
 	Seems like a bug in Symantec to me.
 
-
-
 	client/
-
 		app.C
-
 		cs_account.C
-
 		net_xfer.C
-
 		scheduler_op.C
 
-
-
 David  13 June 2005
-
     - core client: don't reset projects on major version change
 
-
-
     client/
-
         client_state.C
 
-
-
 David  14 June 2005
-
     - core client: use "potentially runnable resource share"
-
         instead of "total resource share" in several places:
-
         - estimating how long a project's work will take
-
         - how many CPUs a project should occupy
-
         - the "resource share fraction" reported to schedulers
 
-
-
         The idea: if a process is not potentially runnable
-
         (e.g. because it's suspended by user)
-
         it's not going to get CPU time,
-
         so it shouldn't be included in resource share calculations.
-
         (suggested by Jim Harris)
-
     - rename CLIENT_STATE::ettprc() to time_until_work_done();
-
         add a "subset resource share" parameter
-
     - get rid of the global variable "trs" (total resource share)
-
     - make proj_min_results() a member of CLIENT_STATE,
-
         remove the "ncpus" param, and add a "subset resource share" param
-
     - CLIENT_STATE::avg_proc_rate() now computes processing rate
-
         across all projects
-
     - Multiply by TIME_STATS::cpu_efficiency in avg_proc_rate()
-
     - add functions runnable_resource_share() and
-
         potentially_runnable_resource_share() to CLIENT_STATE
-
     - set_cpu_scheduler_modes(): remove "* ncpus" from
-
          if (frac_booked > MAX_CPU_LOAD_FACTOR * up_frac * ncpus)
-
          (John: is this right?)
 
-
-
     Note: in some cases (e.g. if the work-fetch policy has
-
     decided to get work only for 1 or 2 project),
-
     the set of projects used in resource share calculations
-
     should be smaller than the potentially runnable ones.
-
     It's not clear how to do this.
 
-
-
     client/
-
         client_state.C,h
-
         cs_apps.C
-
         cs_data.C
-
         cs_scheduler.C
 
-
-
 David  14 June 2005
-
     - code to get phys/virt memsize, NCPUs, OS name on HPUX
-
         (from Lars Bausch)
 
-
-
     client/
-
         hostinfo_unix.C
 
-
-
 Jeff  14 June 2005
-
     - fixed a bug in the feeder code that handles the mod(result id)
-
       functionality.
 
-
-
     sched/
-
         feeder.C
 
-
-
 David  14 June 2005
-
     - web: the XML variant of show_user.php now allows the
-
         user to be identified either by ID or authenticator.
-
         In the latter case, the output includes a list of the user's hosts.
-
         
-
     html/
-
         inc/
-
             xml.inc
-
         user/
-
             show_user.php
 
-
-
 David  14 June 2005
-
     - avoid divide by zero in CPU efficiency calc
-
         (from John McLeod)
 
-
-
     client/
-
         time_stats.C
 
-
-
 David  15 June 2005
-
     - Fixed pernicious API bug:
-
         boinc_get_init_data() was copying the APP_INIT_DATA structure,
-
         which contains a char*.
-
         This produced 2 pointers to the same string,
-
         and both pointers could eventually get free()d.
-
         Solution: overload = and define a copy constructor for APP_INIT_DATA
-
     - fixed minor bug in forum code:
-
         rounding of ratings was wrong in the negative case
 
-
-
     html/inc/
-
         forum.inc
-
     lib/
-
         app_ipc.C,h
 
-
-
 David  15 June 2005
-
     Scheduler changes:
-
     
-
     - renamed set_cpu_scheduler_modes() to set_scheduler_modes()
-
     - in set_scheduler_modes(), moved result checks that
-
         don't involve EDF simulation out of the loop that does EDF simulation.
-
     - in set_scheduler_modes(), change logic so that booked_to
-
         is in units of wall time, not CPU time.
-
         Makes things clearer.
-
     - removed the frac_booked logic from set_scheduler_modes().
-
         I don't think this is correct.
-
         e.g. result A has deadline 1, CPU 1; result B has deadline 2, CPU 1.
-
         Then frac_booked would be 1.5, but we can meet both deadlines
-
     - renamed MAX_CPU_LOAD_FACTOR to CPU_PESSIMISM_FACTOR
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  15 June 2005
-
     - Add host id, host_cpid to XML output of show_user.php
 
-
-
     html/inc/
-
         xml.inc
 
-
-
 Rom    15 June 2005
-
     - Due to the previous app_ipc.C change only the project preferences
-
         were being copied, so expand on the previous check-in and copy the rest
-
         of the APP_INIT_DATA data.
 
-
-
     lib/
-
         app_ipc.C,h
 
-
-
 Charlie    16 June 2005
-
     - Replace Mac BOINCManager icons with new ones contributed by Juho Viitasalo
-
     
-
     client/
-
         mac/
-
             BOINCMgr.icns
 
-
-
 David  16 June 2005
-
     - use memcpy() in APP_INIT_DATA::copy()
 
-
-
     lib/
-
         app_ipc.C
 
-
-
 Rom    16 June 2005
-
     - Modify Account Manager interface two incorporate an additional dialog.
-
       There is now a dialog for when you have already signed up with an
-
       account manager, and one for when you need to provide account
-
       manager informaton.  Modifing the dialogs should happen from MainFrame.cpp
-
       since the Dlg* files are autogenerated by DialogBlocks.
-
     - Apparently, some languages do not like time to be dual purposed, so 
-
       change time to elapsed time for transfers.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgAccountManager.cpp, .h (Removed)
-
         DlgAccountManagerSignup.cpp, .h (Added)
-
         DlgAccountManagerSStatus.cpp, .h (Added)
-
         Events.h
-
         MainFrame.cpp, .h
-
         ViewTransfers.cpp
 
-
-
 David  16 June 2005
-
 	- validate account manager URL before trying to do RPC
-
 	- generate MSG_ALERT messages for account manager RPCs
-
 		(success or failure).
 
-
-
 	client/
-
 		acct_mgr.C
 
-
-
 David  17 June 2005
-
     - scheduler: handle_msgs_from_host():
-
         if insert into msgs_from_host table fails,
-
         don't acknowledge messages
-
         (from Ian Hay)
 
-
-
     sched/
-
         handle_request.C
 
-
-
 David  17 June 2005
-
 	- BOINC manager: get rid of
-
 		CMainDocument::IsAccountManagerFound() etc.
 
-
-
 	clientgui/
-
 		MainDocument.cpp,h
-
 		MainFrame.cpp
 
-
-
 David  17 June 2005
-
     - Run CPU on the same # of CPUs that BOINC will use,
-
         reflecting global preferences.
-
         (from Glenn Dill)
 
-
-
     client/
-
         cs_benchmark.C
-
         cs_scheduler.C
 
-
-
 Rom    17 June 2005
-
     - Per community request, after verifing that the _CrtMemBlockHeader structure
-
       is the same in VS 2005 I've adjusted stackwalkers requirements so that
-
       BOINC can be built with VS 2005.
 
-
-
     lib/
-
         stackwalker.h
 
-
-
 Charlie    18 June 2005
-
     - Fix XCode project to use gcc 3.3 compiler for bnackward compatibility 
-
       with systems 10.3.0 through 10.3.8 as well as 10.3.9 and later.
-
     - Use pre-built special config.h for Macintosh (don't require running 
-
       autoconf.)
-
     - Modify version.h so PACKAGE_STRING is defined for Mac as well as Windows.
-
       make this chaneg iin version.h.in so it will be retained when version.h 
-
       is rebuilt by configure process.
-
     
-
     clientgui/
-
         mac/
-
             config.h (added)
-
     version.h
-
     version.h.in
 
-
-
 David  18 June 2005
-
     - CLIENT_STATE::set_scheduler_modes():
-
         Remove EDF simulation.
-
         Instead, simulate weighted round-robin,
-
         and if a deadline is missed, use EDF
-
     - Remove PROJECT::exp_avg_cpu, PROJECT::exp_avg_mod_time.
-
         This was an attempt, introduced a while back but never used,
-
         to improve estimates of result CPU time.
-
         It's fatally flawed because it assumes all results
-
         from a project are the same #FLOPs.
-
         It will soon be replaced by a better mechanism.
 
-
-
     client/
-
         client_types.C,h
-
         cs_apps.C
-
         cs_scheduler.C
 
-
-
 David  18 June 2005
-
     - Add a per-project "duration correction factor" used
-
         to scale the estimated CPU time of a result.
-
         This should improve the accuracy of predictions of how much
-
         CPU time results will take,
-
         which should improve the effectiveness of the CPU scheduling
-
         and work fetch policies,
-
         and will also cause schedulers to send more appropriate
-
         amounts of work (once we modify the scheduler)
-
         (from John McLeod)
 
-
-
     client/
-
         client_types.C,h
-
         cs_apps.C
-
         cs_scheduler.C
 
-
-
 David  18 June 2005
-
 	- don't let cpu_efficiency become negative.
-
 		Somehow it was -1 on my machine and that hosed everything
 
-
-
 	client/
-
 		cs_scheduler.C
-
 		time_stats.C
 
-
-
 David  18 June 2005
-
 	- Refine the round-robin simulation added earlier today
-
 		to model multiple CPUs.
-
 	- Fix bug in update of duration_correction_factor
 
-
-
 	(both from John McLeod)
 
-
-
 	client/
-
 		client_types.C
-
 		cs_scheduler.C
 
-
-
 David  19 June 2005
-
     - bug fix in scheduler
-
         (from Glenn Dill)
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  19 June 2005
-
 	- work-fetch policy:
-
 		if fetching work would cause deadlines to be missed
-
 		(based on round-robin simulation) then don't fetch work
-
 	- factor simulations of EDF and round-robin
-
 		into separate functions
 
-
-
 	client/
-
 		client_state.h
-
 		cs_scheduler.C
 
-
-
 David  19 June 2005
-
     - change normalization of short-term debt so average (not min) is zero
-
         
-
     client/
-
         cs_apps.C
-
         cs_scheduler.C
 
-
-
 Rom    19 June 2005
-
     - Checkin the rest of the Account Manager updates to the UI.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgAccountManagerStatus.cpp, .h
-
         MainDocument.cpp, .h
-
         MainFrame.cpp
-
     lib/
-
         acct_mgr_client.C, .h
 
-
-
 David  20 June 2005
-
     - Wrote version 3 of the round-robin scheduling simulator
-
         (used to decide whether to enter EDF more,
-
         and whether to suspend work fetch).
-
         This version (CLIENT_STATE::rr_misses_deadline())
-
         models the fact that when all the work for a project is finished,
-
         the fractional resource share of other runnable projects increases.
-
         So, e.g., a few short results and one long one,
-
         which almost saturates the CPU, is feasible.
 
-
-
     client/
-
         client_state.h
-
         client_types.h
-
         cs_apps.C
-
         cs_scheduler.C
 
-
-
 David  21 June 2005
-
 	- Account management: move responsibility for the
-
 		acct_mgr_url.xml and acct_mgr_login.xml files
-
 		from the manager to the core client.
-
 		Do this because only the core client knows when an
-
 		account manager RPC has succeeded;
-
 		unless this happens, these files should not be changed.
 
-
-
 		Add new type ACCT_MGR_INFO to core client
-
 		(member of CLIENT_STATE).
-
 		Read files on startup.
-
 		When acct manager RPC succeeds, write files.
-
 	- Add new GUI RPC for getting acct manager info
-
 	- Manager: for "Manage Accounts", get account manager info via RPC,
-
 		then decide what dialogs to put up.
-
 	- Message types (replace MSG_ALERT):
-
 		MSG_ALERT_ERROR shows an error alert
-
 		MSG_ALERT_INFO shows an info alert
-
 	- Show on info alert when acct mgr RPC succeeds
-
 	- Manager: get rid of CMainDocument::UpdateAccountManagerAccounts()
-
 		(???)
 
-
-
 	client/
-
 		acct_mgr.C,h
-
 		client_msgs.h
-
 		client_state.C,h
-
 		cs_account.C
-
 		file_names.h
-
 		gui_rpc_server.C
-
 		main.C
-
 	clientgui/
-
 		MainDocument.cpp,h
-
 		MainFrame.cpp
-
 	lib/
-
 		acct_mgr_client.C,h (removed)
-
 		gui_rpc_client.C,h
-
 	win_build/
-
 		BOINCGUI.vcproj
 
-
-
 David  21 June 2005
-
 	- GUI principle for manager:
-
 		For any user action that can potentially fail
-
 		(project attach, acct mgr update)
-
 		ALWAYS show an alert when the action is finished.
-
 		E.g. show "Attach succeeded" if an attach succeeds.
-
 		Don't require users to look in Messages for outcome.
-
 	- Add a "show_alerts" argument to add_project().
-
 		Says whether to show alert when attach succeeds or fails.
-
 		True for attaches via GUI,
-
 		false for others (e.g. account manager attaches)
-
 	- SCHEDULER_OP::backoff(): if account is tentative,
-
 		call attach_failed().
 
-
-
 	client/
-
 		acct_mgr.C
-
 		client_state.h
-
 		client_types.h
-
 		cs_account.C
-
 		cs_cmdline.C
-
 		gui_rpc_server.C
-
 		scheduler_op.C
-
 	clientgui/
-
 		MainDocument.cpp
 
-
-
 David  21 June 2005
-
     - Unix compile fixes
 
-
-
     client/
-
         main.C
-
     clientgui/
-
         Makefile.am
-
     lib/
-
         Makefile.am
 
-
-
 David  21 June 2005
-
     - Manager: don't reenter message-display code
-
         (else can show same msg or alert twice)
 
-
-
     clientgui/
-
         MainWindow.cpp
 
-
-
 David  21 June 2005
-
     - scheduler: when handling results, if any of them fails the
-
         sanity checks (e.g. it was already returned)
-
         then don't update the transition time of the corresponding WU
 
-
-
     db/
-
         boinc_db.C
-
     sched/
-
         handle_request.C
 
-
-
 David  21 June 2005
-
     - core client: round-robin simulator wasn't excluding
-
         non-CPU-intensive projects
-
         (from John McLeod)
-
     - scheduler: comment out transaction stuff.
-
         It's not clear what this does, or if we want it.
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  21 June 2005
-
     - scheduler: don't send acks for results for which DB update failed
-
         (from Ian Hay)
-
     - change result_acks vector from RESULT to std::string
-
     - scheduler: fix workunit update query empty case
-
         (from Bruce Allen)
 
-
-
     db/
-
         boinc_db.C
-
     sched/
-
         handle_request.C
-
         server_types.C,h
 
-
-
 David  21 June 2005
-
 	- add_project(): set sched_rpc_pending so we always do
-
 		a scheduler RPC even if not fetching work
-
 	- win compile fixes
 
-
-
 	client/
-
 		cs_account.C
-
 	client/win/
-
 		wingui_mainwindow.cpp
 
-
-
 Rom    22 June 2005
-
     - Remove code that causes the CC to block on network requests, the 
-
       dial-up functionality is being moved into the manager
-
     - Add global preferences to the get_state GUI RPC and remove the
-
       proxy_info from get_state since proxy_info has two RPC's of it's
-
       own.
-
     - Add a frequency reminder slider to the Tools/Option dialog so we
-
       don't repeatedly spam the user with connection requests.
-
     - Remove the DlgConnection dialog since we are going to use a
-
       message box instead
-
     - Add prefs.C to various project files for Windows.
-
     - Remove some unused headers from stdwx.h
-
  
-
     client/
-
         cs_statefile.C
-
         net_xfer.C
-
     clientgui/
-
         BOINCGUI.pjd
-
         BOINCGUIApp.cpp
-
         DlgOptions.cpp, .h
-
         MainFrame.cpp
-
         stdwx.h
-
         DlgConnection.cpp, .h (Removed)
-
     lib/
-
         app_ipc.C
-
         gui_rpc_client.C, .h
-
         network.C, .h
-
         prefs.C, .h
-
     win_build/
-
         BOINCGUI.vcproj
-
         boinc_guirpc_test.vcproj
-
         boinc_ss.vcproj
 
-
-
 Charlie    22 June 2005
-
     Mac: Update build instructions for pre-built config.h file, 
-
     using gcc 3.3 compiler, etc.
-
     Added lib/prefs.C to builds of BOINC Manager, screen saver.
-
     
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
-
     
-
 David  22 June 2005
-
     - API: Don't call app_init_graphics() until we've created GL context
-
         (Windows)
-
         (From Eric Myers)
 
-
-
     api/
-
         graphics_api.h
-
         windows_opengl.C
-
     sched/
-
         sched_send.C
 
-
-
 David  22 June 2005
-
     - Add two new GUI RPCs that let the Manager be in charge of
-
         opening and closing modem connections.
 
-
-
         network_query() returns true if the CC wants a network connection,
-
             or is currently using one.
-
             NOTE: wait to get false twice (with a few seconds delay)
-
             before closing a connection
 
-
-
         network_available() tells the CC that a connection is available,
-
             and that it should do all the network activity it can.
 
-
-
         These are relevant only on Windows.
 
-
-
         Implementation:
-
         - CLIENT_STATE has a new member, bool want_network_flag.
-
             If the CC tries to create a network connection and
-
             there's no physical connection, it sets this.
-
         - network_query() return true is want_network_flag is set
-
             or there an HTTP_OP.
-
         - network_available() resets all backoff timers
-
             (of PERS_FILE_XFERs and PROJECTs) to zero,
-
             so everything will be retried immediately.
 
-
-
     client/
-
         client_state.C,h
-
         gui_rpc_server.C
-
         http.C,h
-
         net_xfer.C
-
     lib/
-
         gui_rpc_client.C,h
-
         network.C
 
-
-
 David 23 June 2005
-
     - server: handle the new fields
-
         "cpu_efficiency": for each wall-clock second that
-
             a BOINC app runs, how much CPU time does it get?
-
         "duration_correction_factor": ratio between actual CPU time
-
             and FLOPs-based estimate.
-
         1) parse them in scheduler request
-
         2) store them in DB host record
-
         3) use them in estimating result duration
 
-
-
     - show fields in web page for host
 
-
-
     NOTE: this change requires a database update.
-
     See html/ops/db_update.php
 
-
-
     db/
-
         boinc_db.C,h
-
     html/
-
         ops/
-
             db_update.php
-
         inc/
-
             host.inc
-
     sched/
-
         handle_request.C
-
         sched_send.C
-
         server_types.C
 
-
-
 Charlie    23 June 2005
-
     Mac: add a separate icon for Mac menu bar.
-
     
-
     clientgui/
-
         mac/
-
             MacSysMenu.cpp
-
         res/
-
             boinc_mac.xpm (new)
 
-
-
 Janus	23 June 2005
-
    - Added translation functions for cached pages
-
      The data from SQL queries is saved in the cache directory on the server
-
      and is reused to display the information again and again - even in 
-
      different languages.
-
    - Used the above feature to make the top_user page translatable
-
      (could someone please do the work to also make top_teams and top_hosts
-
      translatable like this?)
-
    - Added the new tokens to the english language file
 
-
-
     html/
-
         inc/
-
             user.inc
-
             cache.inc
-
         languages/translations
-
             en.po
-
         user/
-
             top_users.php
 
-
-
 David  23 June 2005
-
     - Add new API calls so that optimized apps can claim credit more accurately:
 
-
-
         boinc_fpops_per_cpu_sec()
-
             Report results of app-specific benchmarks
-
         boinc_fpops_cumulative()
-
             Report total FP operations so far in this result
 
-
-
         These are stored by the API library and passed to the core client
-
         in status messages.
-
         The core client stores them in the RESULT and sends them to server
-
     - scheduling server: assign claimed credit based on
-
         fpops_per_cpu_sec or fpops_cumulative if present
-
     - remove compile warnings
 
-
-
     api/
-
         boinc_api.C,h
-
     client/
-
         acct_mgr.C
-
         client_state.h
-
         client_types.C,h
-
         cs_apps.C
-
         gui_rpc_server.C
-
     db/
-
         boinc_db.h
-
     doc/
-
         api.php
-
     sched/
-
         handle_request.C
-
         sched_shmem.C
-
         server_types.C
 
-
-
 David  24 June 2005
-
     - attempt to fix bug on multiprocessors running Red Hat 9
-
         (and maybe others)
-
         where shared-memory segment names were all returning -1
-
         (and multiple tasks where using same seg!!).
-
         The problem: we were using the path of the init data file
-
         to generate the key (using ftok)
-
         but doing this before creating the file.
 
-
-
     client/
-
         app_start.C
 
-
-
 Rom    24 June 2005
-
     - Initial checkin of Dial-up connection support for service and shared
-
         install states.  Prompting for connect/disconnect requests is now
-
         handled in the manager instead of the CC so the CC won't lock up
-
         when configured to confirm before connect.
 
-
-
         When multiple ISP's are detected but none are defined as the default
-
         another dialog will appear giving you a choice as to which ISP to
-
         use.
 
-
-
         If the manager is hidden then the taskbar will display a balloon
-
         stating that BOINC needs to connect and by opening the BOINC
-
         manager you'll be able to connect up and update all projects.
-
     - Added an 'Update All' button to the projects tab.
-
     - More manager code clean-up
-
     - Make alerts show up as a balloon if the manager is hidden.  Model
-
         dialogs can be annoying when your typing an email or document and
-
         it pops up right in front of the document.  What is even worse is
-
         if you are typing and dismiss the dialog before you have even had a
-
         chance to look at it.  The balloons show up in the lower right hand
-
         corner and automatically go away after 5 seconds or so.
-
     - If alerts already exist in the message queue when you connect up
-
         to a remote computer, ignore them.
 
-
-
     client/
-
         net_xfer.C
-
     clientgui/
-
         BOINCBaseView.cpp
-
         BOINCGUIApp.h
-
         BOINCTaskBar.h
-
         Events.h
-
         MainDocument.cpp, .h
-
         MainFrame.cpp, .h
-
         ViewProjects.cpp, .h
-
         ViewTransfers.cpp
-
         ViewWork.cpp
 
-
-
 David  24 June 2005
-
     - Bug fix in round-robin simulator:
-
         If N is the # of CPUs, and a project has M < N runnable results,
-
         its per_cpu_proc_rate should be scaled by N/M.
-
         (Thanks to John McLeod for identifying this error)
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  24 June 2005
-
 	- Doh!  My checkin earlier today for the Red Hat 9 problem
-
 		was wrong, and screwed things up on all platforms.
-
 		Fixed now, and the Red Hat problem fixed a different way
 
-
-
 	client/
-
 		app_start.C
-
 		win/
-
 			wingui_mainwindow.cpp
 
-
-
 David  24 June 2005
-
     - API library: potential bug:
-
         if the core client sends a "quit" message that is handled
-
         (by the timer handler) while the worker thread is
-
         in the middle of checkpointing,
-
         the result could be an incomplete checkpoint,
-
         which in general screws up the result.
-
         Same problem exists if the app exits due to no CC heartbeat
-
         while a checkpoint is in progress.
 
-
-
         Solution: if boinc_time_to_checkpoint() returns true,
-
         it sets a flag (checkpointing) that suppresses
-
         the handling of process control messages
-
         and the checking of heartbeat timeout.
-
         boinc_checkpoint_completed() clears the flag.
 
-
-
         One consequence of this design:
-
         if boinc_time_to_checkpoint() returns true,
-
         you HAVE to checkpoint immediately.
-
         So don't call boinc_time_to_checkpoint() unless
-
         you're prepared to checkpoint.
 
-
-
     api/
-
         boinc_api.C
 
-
-
 David  25 June 2005
-
     - scheduler: skip over ,  elements
-
         without log message
-
     - API: don't use perror() for pthread errors
 
-
-
     api/
-
         boinc_api.C
-
     sched/
-
         server_types.C
 
-
-
 David  25 June 2005
-
     - Fix to PROJECT::set_rrsim_proc_rate()
-
         (problem identified by John McLeod)
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  25 June 2005
-
     - add an exit_status parameter to ACTIVE_TASK::abort_task.
-
         This may be either ERR_ABORTED_VIA_GUI or ERR_RSC_LIMIT_EXCEEDED
-
         Without this, results aborted for either reason
-
         end up with exit_status = ERR_RESULT_START
-
         (bug reported by Bruce Allen)
 
-
-
     client/
-
         app.h
-
         app_control.C
-
         client_state.C
-
         gui_rpc_server_C
 
-
-
 David  25 June 2005
-
     - add "pessimism factor" of 0.9 to the round-robin simulation
-
         used to determine CPU sched and work fetch policies
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 David  26 June 2005
-
     - scheduler: when handling a reported result,
-
         cap CPU time at now - sent_time.
-
         (from Rattledagger)
 
-
-
         Note: this assumes that applications never use >1 CPU
-
         for non-graphical computation.
-
         Currently this is the case,
-
         but if it changes we need to rethink this check.
 
-
-
     db/
-
         boinc_db.C,h
-
     sched/
-
         handle_request.C
 
 
-
-
-
 David  26 June 2005
-
     - bug fix for the above
 
-
-
     sched/
-
         handle_request.C
 
-
-
 David  26 June 2005
-
     - trigger transitioner when cancel WU, to set file delete
 
-
-
     client/
-
         file_names.C
-
     html/ops
-
         cancel_wu_action.php
 
-
-
 Bruce  27 June 2005
-
     - when using locality scheduler, have transitioner or backend
-
       lib advertise data file when new result is created.
-
     - code organization: create new lib function boinc_touch_file()
-
       from code that was in locality scheduler module.
 
-
-
     lib/
-
         filesys.C
-
         filesys.h
-
     tools/
-
         backend_lib.C
-
     sched/
-
         transitioner.C
-
         sched_locality.C
 
-
-
 David  27 June 2005
-
 	- fix bug in Manager message display
-
 		(can end up showing alerts over and over)
-
 	- acct mgr: remove HTTP_OP from set when op finishes
 
-
-
 	client/
-
 		acct_mgr.C
-
 	clientgui/
-
 		MainDocument.cpp
 
-
-
 David  27 June 2005
-
     - added new function escape_mysql_like_pattern(const char* in, char* out);
-
         if you're going to use a "like X" clause,
-
         call this function to escape the non-wildcard part of X.
-
         If it contains wildcard chars (%, _) this will put
-
         two (2) backslashes before each one,
-
         so that they don't get treated as wildcards
-
     - use the above function in sched_locality.C
-
         so that filename chars and our own __ separators
-
         don't get treated as wildcards
-
     - core client: when looking for account files, skip directories
 
-
-
     client/
-
         cs_account.C
-
     db/
-
         db_base.C,h
-
     sched/
-
         sched_locality.C
-
         
-
 Charlie 28 June 2005
-
     Mac: Adapt code from Bernd Machenschalk to allow science apps to display
-
         application icons in Dock (when displaying graphics) and in Finder.
-
         Created small command-line utility MakeAppIcon_h (built by boinc 
-
         XCode project) which converts a xxx.icns file to app_icon.h header 
-
         file for use with new setMacIcon() api.
-
         Update build instructions with directions for using this new api.
-
         
-
     api/
-
         mac_icon.C (new)
-
         make_app_icon_h.C (new)
-
     doc/
-
         mac_build.html
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         
-
 Bruce 28 June 2005
-
     - Added a php script grant_credit.php.  Running this will grant credit
-
       to users/hosts/teams for workunits that have been cancelled or have
-
       otherwise failed with some problem (error_mask!=0).  The script
-
       can be run multiple times without doing any harm.  Documentation
-
       contained within as a comment.
 
-
-
     html/
-
         ops/
-
             grant_credit.php
-
           
-
 Rom    28 June 2005
-
     - Make the Dial-up functionality Windows only.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         BOINCGUIApp.cpp, .h
-
         DlgOptions.cpp, .h
-
         MainFrame.cpp, .h
 
-
-
 David  28 June 2005
-
 	- manager: fixed messages bug
 
-
-
 	cliengui/
-
 		MainDocument.cpp
 
-
-
 David  28 June 2005
-
     - core client: if no projects on startup,
-
         print messages about how to attach
-
     - default general prefs: increase max CPUs, max disk limits
-
     - remove spurious "fetching work" messages
 
-
-
     client/
-
         cs_scheduler.C
-
         main.C
-
     lib/
-
         prefs.C
 
-
-
 Bruce  28 June 2005
-
     - locality scheduler: make searches over file names distinguish
-
       lower case and upper case
-
     - locality scheduler: when searching for new work using advertised
-
       files, retry ten times before starting a deterministic search.
-
       We should probably modify this to try ALL advertised files in
-
       a random order before moving onto a deterministic search.
 
-
-
     sched/
-
         sched_locality.C
 
-
-
 Rom    28 June 2005
-
     - Additional Dial-up work
-
     - Add space for description and hyperlink access to the
-
         DlgAccountManagerSignup dialog.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgOptions.cpp, .h
-
         DlgAccountManagerSignup.cpp, .h
-
         hyperlink.cpp, .h (Added)
-
         MainFrame.cpp
 
 
-
-
-
 David  28 June 2005
-
 	- Make it so that entering an empty string for the account manager URL
-
 		clears info about existing account manager (URL, login files)
 
-
-
 		NOTE: in the course of debugging this I encountered
-
 		the following;
 
-
-
 		std::string foo;
-
 		...
-
 		foo = "";
 
-
-
 		and after single-stepping throught this (in VC++)
-
 		foo was nonempty (a lengthy GUI-related string of some sort)
 
-
-
 		I eventually threw up my hands and changed the vars in question
-
 		(struct ACCT_MGR_INFO) to char[256], and it works.
-
 		But why didn't std::string work???
-
 	- show both name and URL in acct mgr status dialog
 
-
-
 	client/
-
 		acct_mgr.C,h
-
 		gui_rpc_server.C
-
 	clientgui/
-
 		DlgAccountManagerSignup.cpp
-
 		DlgAccountManagerStatus.cpp,h
-
 		MainFrame.cpp
 
-
-
 David  28 June 2005
-
     - self-extracting archive includes boinc_cmd,
-
         and run_boinc passes cmdline args to core client
-
         (from Bernd Machenschalk)
 
-
-
     sea/
-
         Makefile.am
 
-
-
 David  28 June 2005
-
     - scheduler server: parse duration_correction_factor correctly
-
         (it's not in time_stats)
 
-
-
     sched/
-
         server_types.C,h
 
-
-
 Rom    28 June 2005
-
     - Okay this should be the last round of functional changes for
-
         dial-up functionality, there are probably some more bug fixes
-
         but they should be minor.
 
-
-
       There is now a connections tab in the options dialog where
-
       the preferred network type can be configured as well as several
-
       types of dial-up connection parameters.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgDialupCredentials.cpp, .h (Added)
-
         DlgOptions.cpp, .h
-
         MainFrame.cpp, .h
-
         Makefile.am
 
-
-
 Rom    28 June 2005
-
     - Add UI to the manager that allows the user to specify network activity
-
       states similiar to that of the activity run modes.
 
-
-
       network activity always available
-
       network activity based on preferences
-
       network activity suspended.
 
-
-
     clientgui/
-
         MainFrame.cpp
 
 
-
-
-
 David  28 June 2005
-
 	- add ERR_NO_NETWORK_CONNECTION error code.
-
 		Return this if can't connect to server because no network connection.
-
 	- show boincerror(retval) instead of retval in a couple of messages.
-
 		Should do this everywhere.
 
-
-
 	client/
-
 		net_xfer.C
-
 		scheduler_op.C
-
 	lib/
-
 		error_numbers.h
-
 		util.C
 
-
-
 Rom    29 June 2005
-
     - Bug Fix: Check for update all and hangup conditions every ten seconds instead of
-
       every second.
-
     - Bug Fix: Only perform the update all and update all notification once.
 
-
-
     clientgui/
-
         MainFrame.cpp
 
-
-
 Rom    29 June 2005
-
     - Bug Fix: Reset the notification timers when the modem looses connection in some
-
         random event or we successfully connect to the target network.
-
     - Bug Fix: Post a notification if the network connection disappears out from under
-
         us.
 
-
-
     clientgui/
-
         MainFrame.cpp, .h
 
-
-
 Charlie 30 June 2005
-
     Mac: Added hyperlink.cpp/h to XCode project BOINC Manager target.
-
     Added "#ifdef __WXMSW__" to Dialog manager related calls in DlgOptions.cpp
 
-
-
     clientgui/
-
         DlgOptions.cpp
-
     mac_build/
-
         boinc.pbproj/project.pbxproj (directory & file both removed)
 
-
-
 Rom    30 June 2005
-
     - Bug Fix: Change the method for determining connection status from being event 
-
         driven to polling for the information, for some reason I stopped receiving
-
         CONNECT and DISCONNECT events from wxWidgets.
-
     - Bug Fix: Fix up a few more dial-up connection issues.
-
     - Bug Fix: Change the default value of prefs.confirm_before_connect from false
-
         to true.  In the event that the manager cannot connect up to the core client
-
         we don't want it to get stuck dialing and hanging up every few minutes.
-
     - Revert back to the original Windows icons on Windows.
-
     - Update the dialog template with David's recent changes to the Account Manager
-
         functionality.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgAccountManagerSignup.cpp, .h
-
         DlgAccountManagerStatus.cpp, .h
-
         MainFrame.cpp, .h
-
     lib/
-
         prefs.C
 
-
-
 Rom    1 July 2005
-
     - Remove the major version check from the scheduler.
 
-
-
     sched/
-
         handle_request.C
 
-
-
 Rom    4 July 2005
-
     - Add additional check for the min_core_version so that it also takes into
-
         account the major version as well.
-
     - Sync the schema.sql file with implementation.
 
-
-
     db/
-
         schema.sql
-
     sched/
-
         handle_request.C
-
         
-
 Charlie 4 July 2005
-
     Mac: moved "#include " before other includes as requested 
-
     by Bernd Machenschalk to fix problem building from command-line using make.
-
     Updated installation instructions for Mac advanced GUI on web site.
 
-
-
     clientgui/
-
         BOINCGUIApp.cpp
-
     doc/
-
         mac_advanced.php
 
-
-
 David  5 July 2005
-
 	- Always show the reason for a scheduler RPC: either
-
 		- requested by user
-
 		- results due for reporting
-
 		- fetching work
 
-
-
 		Implementation: add "reason" argument to init_op_project().
-
 		Store in SCHEDULER_OP.
-
 		This eliminates the need for must_get_work.
-
 		Remove init_return_results().
-
 	- handle RPC init errors (by backing off) in init_op_project(),
-
 		NOT in the functions that call it (e.g. init_get_work()).
-
 		We were backing off twice for the same error.
-
 	- network_query GUI RPC: return false if network suspended by user
-
 	- Manager: remove wxASSERT(fBuffer)
-
 		from CViewReousrces::FormatDiskSpace().
-
 		This causes crash if a project has zero disk usage.
-
 		?? Why is the amount of disk called "fBuffer"?
-
 		?? why is a PROJECT* called "resource"?
 
-
-
 	client/
-
 		client_state.C
-
 		cs_scheduler.C
-
 		scheduler_op.C,h
-
 	clientgui/
-
 		ViewResources.cpp
 
-
-
 David  5 July 2005
-
     - prevent infinite loop in web (from Rob Ogilvie)
 
-
-
     html/inc
-
         text_transform.inc
 
-
-
 David  5 July 2005
-
     - API: use signal instead of timer thread,
-
         so that suspend/resume logic will work.
-
         Also: block SIGALRM in graphics thread.
-
         We weren't doing this before,
-
         which could have caused CPU time reporting errors.
 
-
-
         NOTE: this may break things on FreeBSD and OpenBSD.
-
         To remedy, uncomment the #define USE_TIMER_THREAD
 
-
-
     api/
-
         boinc_api.C
-
         graphics_impl.C
 
-
-
 David  5 July 2005
-
     - scheduler: in estimating result duration,
-
         don't divide by resource share fraction.
-
         This assumes round-robin across all projects,
-
         which is no longer necessarily the case.
-
         (From John McLeod)
 
-
-
     sched/
-
         sched_send.C
 
-
-
 Charlie 5 July 2005
-
     Mac: Integrated Hide of BOINCManager with close of main Manager window.  
-
     Closing window hides Manager application, opening window (from menubar 
-
     icon menu or from Dock menu) Shows application.  Hiding or showing 
-
     application closes or opens window.  This eliminates having just the 
-
     manager's menu bar pop up when a foreground application quits.
-
     Disable all application-specific menu items in Dock menu and menubar 
-
     icon menu when a modal dialog is active.  This matches the disabling 
-
     of items in the Manager's regular menus.
-
     Fixed bug where all items in menubar icon menu were disabled, which 
-
     required clicking on the icon repeatedly.
-
     
-
     clientgui/
-
         BOINCGUIApp.cpp
-
         BOINCTaskBar.cpp
-
         MainFrame.cpp, .h
-
         mac/
-
             MacSysMenu.cpp, .h
-
             SystemMenu.m
 
-
-
 Rom    5 July 2005
-
     - Make the projects compatible with Visual Studio 2005 Express
-
     - Bug Fix: Make sure that the manager successfully connected to an
-
         ISP before calling the network_available RPC to the CC.
 
-
-
     client/
-
         client_state.C
-
         client_types.C
-
         main.C
-
         net_xfer.C
-
     client/win/
-
         boinc_cli.rc
-
         boinc_cmd.rc
-
         boinc_dll.rc
-
         boinc_ss.rc
-
         win_screensaver.cpp
-
     clientgui/
-
         DlgAbout.cpp
-
         DlgAccountManagerSignup.cpp
-
         DlgAccountManagerStatus.cpp
-
         DlgAttachProject.cpp
-
         DlgDialupCredentials.cpp
-
         DlgOptions.cpp
-
         DlgSelectComputer.cpp
-
         MainFrame.cpp
-
         stdwx.h
-
     lib/
-
         boinc_win.h
-
         msg_log.C
-
         parse.C
-
         stackwalker_win.cpp
 
-
-
 Rom    6 July 2005
-
     - Another fix that is needed to build BOINC with VS 2005 using the
-
         debug profile.
 
-
-
     lib/
-
         diagnostics.h
 
-
-
 Rom    6 July 2005 (boinc_public)
-
     - Tag for 4.70 release, all platforms
-
       boinc_core_release_4_70
 
-
-
 Charlie 7 July 2005
-
     Mac installer: Installer used to set owner of all installed files 
-
     and directories to 501 (BOINCManager, Core Client, Screen Saver 
-
     and BOINC Data.)  Changed this to set ownership to current user if 
-
     current user is member of group admin, otherwise use first member 
-
     of group admin other than root.  Update installer version number 
-
     to 4.70.
-
     
-
     mac-installer/
-
         PostInstall.cpp
-
         BOINC.pmproj
 
-
-
 David  7 July 2005
-
     - Manager: fix for core client startup on Unix
-
         (From Bernd Machenschalk)
 
-
-
     api/
-
         boinc_api.C
-
     clientgui/
-
         BOINCGUIApp.cpp
 
-
-
 Rom    7 July 2005
-
     - Fix numerious compile warnings when turning on /W4 for the Microsoft
-
         compilers.  This was done with VS 2003.  We are down to 100 or so
-
         warnings from 400 or so.
 
-
-
     client/win/
-
         win_idle_tracker.cpp
-
         win_screensaver.cpp
-
     clientgui/
-
         BOINCTaskBar.cpp
-
         DlgAccountManagerSignup.cpp
-
         DlgAccountManagerStatus.cpp
-
         DlgDialupCredentials.cpp
-
         DlgOptions.cpp
-
         MainFrame.cpp, .h
-
         ViewMessages.cpp
-
         ViewProjects.cpp
-
         ViewResources.cpp
-
         ViewStatistics.cpp
-
         ViewTransfers.cpp
-
         ViewWork.cpp
-
     clientgui/msw/
-
         taskbarex.cpp
-
     lib/
-
         boinc_win.h
-
         diagnostics.C
-
         filesys.C
-
         gui_rpc_client.C
-
         msg_log.h
-
         stackwalker_win.cpp
 
-
-
 Rom    7 July 2005
-
     - Bug Fix: Reduce the amount of time the call to 
-
         wxDialUpManager->IsAlwaysOnline takes by preloading the DLL in memory.
-
     - Bug Fix: Only check for an always on connection every 60 seconds.
-
     - Provide some more information about what various OS's report about the
-
         client machine as part of the message log. Some people are not aware of
-
         what hyperthreading does and how the various operating systems respond
-
         to detecting it.
 
-
-
     client/
-
         client_state.C
-
     clientgui/
-
         MainFrame.cpp, .h
-
         stdwx.h
-
     lib/
-
         hostinfo.h
 
-
-
 Rom    8 July 2005
-
     - Cleanup the Account Manager Status dialog.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgAccountManagerStatus.cpp, .h
-
         MainFrame.cpp
 
-
-
 Rom    8 July 2005
-
     - Fix the issues with enabling precompiled headers on Windows and enable
-
         them.  Compile times on a 3Ghz machine goes from 4 mins and 5 seconds
-
         for all the components that are released to 1 min and 27 seconds.  On
-
         slower machines the performance increase should be more dramatic.
 
-
-
       NOTE: You should choose 'rebuild solution' after sync'ing the source
-
         tree.
 
-
-
       NOTE: If you are using Visual Studio to build your science applications
-
         you'll need to force include boinc_win.h when building libboincapi and
-
         libboinc.
 
-
-
     client/win/
-
         stdafx.h
-
         win_service.cpp
-
     clientgui/
-
         stdwx.h
-
     lib/
-
         boinc_win.h
-
         diagnostics.C
-
         filesys.C
-
         gui_rpc_client.C
-
         network.C
-
         parse.C
-
         prefs.C
-
         stackwalker_win.cpp
-
         util.C
-
     win_build/
-
         BOINCGUI.vcproj
-
         RSAEuro.vcproj
-
         boinc_cli.vcproj
-
         boinc_dll.vcproj
-
         boinc_gui.vcproj
-
         boinc_guirpc_test.vcproj
-
         boinc_ss.vcproj
-
         upper_case.vcproj
 
-
-
 Bruce   10 July 2005
-
     - Add explicity leading path to URLs in a 'show user' function that is
-
       called from one of the ops pages.  Janus, I used URL_BASE rather
-
       than MASTER_URL (what's the distinction?).  Please confirm this.
 
-
-
     html/
-
         inc/
-
             user.inc
 
-
-
 David  13 July 2005
-
     - use doubles for memory size calculation in HPUX,
-
         avoid 32-bit overflow (from Walt Gribben and Lars Bausch)
 
-
-
     client/
-
         hostinfo_unix.C
 
-
-
 David  13 July 2005
-
     - BOINC icons for X11 (from Bernd Machenschalk)
 
-
-
     sea/
-
         Makefile.am
-
         boincmanager.8x8.png
-
         boincmanager.16x16.png
-
         boincmanager.32x32.png
 
-
-
 David  14 July 2005
-
     - Scheduler: update the transition_time of the WU of a sent result
-
         (setting it to the report deadline)
-
         only if the report deadline is less than current transition_time
 
-
-
         This fixes a bug that causes some WUs to go for several days
-
         without enough potentially successful results
-
         (from Bruce Allen)
 
-
-
     sched/
-
         sched_send.C
 
 
-
-
-
 David  14 July 2005
-
     - Improvement on the above.
-
         Set transition time (in SQL) to min of X and its current value.
-
         Avoid overwriting update that occurred
-
         between scheduler's read and update.
 
-
-
     sched/
-
         sched_send.C
 
-
-
 Rom    14 July 2005
-
     - Make the requirements for precompiled headers on Windows optional.
 
-
-
     api/
-
         boinc_api.C
-
         graphics_impl.C
-
         gutil.C
-
         reduce_lib.C
-
         reduce_main.C
-
         windows_opengl.C
-
     client/win/
-
         StdAfx.h
-
     lib/
-
         app_ipc.C
-
         boinc_cmd.C
-
         diagnostics.C
-
         exception.C
-
         filesys.C
-
         gui_rpc_client.C
-
         hostinfo.C
-
         md5_file.C
-
         mem_usage.C
-
         mfile.C
-
         miofile.C
-
         network.C
-
         parse.C
-
         prefs.C
-
         proxy_info.C
-
         shmem.C
-
         util.C
 
-
-
 Bruce  14 July 2005
-
     - Transitioner would not set a new WU transition time less
-
       than 24 hours away, to prevent thrashing.  But this delayed
-
       reissuing of new results.  For example if two results were
-
       issued a hours 17 and 18, and both timed out (no reply). At
-
       time 17+deadline the first would time out and a new result
-
       would be issued.  But then instead of setting the transition
-
       time to 18+deadline it would be set to 18+deadline+1 day.
 
-
-
       To prevent thrashing I have fixed this so that if a transition
-
       time is in the past, I advance it by TWICE the amount it is late,
-
       but never less than 1 minute or more than 1 day.
 
-
-
     - Ops pages: show unsent/in-progress results in purple.  For
-
       unsent results show create time rather than deadline.
 
-
-
     sched/
-
         transitioner.C
-
     html/
-
         inc/
-
             db_ops.inc
 
-
-
  if old results were both issued
 
-
-
 Rom    14 July 2005
-
     - Not all Windows machines support balloons, so if the manager is running on
-
         a machine that does not support balloons display a message box instead.
-
     - Display additional network control options on the taskbar menu.
 
-
-
     clientgui/
-
         BOINCTaskBar.cpp
-
         MainFrame.cpp
 
-
-
 Rom    14 July 2005 (boinc_public)
-
     - Tag for 4.71 release, all platforms
-
       boinc_core_release_4_71
 
-
-
 David  17 July 2005
-
     - changed the semantics of "-one_pass" in the daemons
-
         Old: do one enumeration (typically 1000 items), then exit
-
         New: process items until an enumeration returns empty, then exit.
 
-
-
         This is to support the performance-measurement stuff I'm doing,
-
         and is probably more useful anyway.
-
     - add -sleep_interval x option to feeder (x can be fractional)
-
         (needed for performance measurements)
-
     - add --batch option to scheduler
-
         Makes the scheduler handle an sequence of concatenated requests
-
         (needed for performance measurements)
-
     - compile fixes in client
 
-
-
     client/
-
         app.C
-
         scheduler_op.C
-
     sched/
-
         assimilator.C
-
         db_purge.C
-
         feeder.C
-
         file_deleter.C
-
         main.C
-
         make_work.C
-
         transitioner.C
-
         validator.C
 
-
-
 David  17 July 2005
-
     - scheduler bug fixes for non-CPU-intensive
-
         (from John McLeod)
 
-
-
     client/
-
         cs_scheduler.C
 
-
-
 Rom    17 July 2005
-
     - Windows project file cleanup
-
         Add a library for libboinc and libboinc_api and remove duplicate
-
         compilation from remain projects.
 
-
-
     win_build/
-
         *.vcproj
-
         *.sln
 
-
-
 Rom    18 July 2005
-
     - Enable clipboard functionality on Linux by default.
 
-
-
     /
-
         configure.ac
 
-
-
 Charlie 19 July 2005
-
     Mac: include Carbon.h in stdwx.h instead of MacGUI.pch as 
-
     requested by Bern so command line build (using autoconf / 
-
     make) works without using precompiled header.
-
     Add a "Run Script" Phase to builds of BOINCManager and Core 
-
     Client in XCode project.  This creates a subdirectory named 
-
     SymbolTables under the build directory, and copies the 
-
     BOINCManager and Core Client executables there before they are 
-
     stripped of symbols.  This is useful for analyzing crash reports 
-
     from the field.  We can use the atos command line utility and 
-
     these symbol files to convert addresses from the stack frames to 
-
     symbols and line numbers in source files. 
 
-
-
     clientgui/
-
         stdwx.h
-
         mac/
-
             MacGUI.pch
-
     mac_build/
-
         boinc.pbproj/
-
             project.pbxproj
 
-
-
 David  19 July 2005
-
 	- bug fix in zip code (from Carl C.)
 
-
-
 	zip/
-
 		boinc_zip.cpp
 
-
-
 David  19 July 2005
-
 	- API: support for RGB files (from Tolu)
 
-
-
 	api/
-
         Makefile.am
-
 		gutil.C,h
-
 		texture.C,h (new)
 
-
-
 David  20 July 2005
-
     - db_dump: write nusers, nhosts, nteams, total credit
-
         in tables.xml file
 
-
-
     sched/
-
         db_dump.C
 
-
-
 David  20 July 2005
-
     - commented out some test code from upper_case.C
-
         This seemed to break test_uc.py
-
     - compile fix in zip
 
-
-
     apps/
-
         upper_case.C
-
     lib/
-
         parse.C
-
     zip/
-
         boinc_zip.cpp
 
-
-
 David  20 July 2005
-
     - hosts_user.php: userid arg is present AND have cookie for user,
-
         treat as if logged in
 
-
-
     html/user/
-
         hosts_user.php
 
-
-
 Bruce 21 July 2005
-
     - Sort users list of hosts by last rpc time received and add a
-
       corresponding table column.  David's going
-
       to clean this up to sort by any column.
-
     html/
-
         inc/
-
             host.inc
-
         user/
-
             hosts_user.php
 
-
-
 David  21 July 2005
-
     - Scheduler: if using locality scheduling,
-
         don't attach to shared memory
-
         (hence don't need to run feeder)
 
-
-
     sched/
-
         main.C
 
-
-
 David  21 July 2005
-
     - Doh!! shared memory is needed anyway,
-
         e.g. for app and platform tables
 
-
-
     sched/
-
         main.C
 
-
-
 Rom    21 July 2005
-
     - After a false start here is an update that should allow screen readers
-
         to read something useful.  The wxWidget documentation and sample are
-
         kinda stale and lead you believe that you have to define proxies for
-
         the various controls, but in fact you can enable the context help
-
         system in combination with the normal window name/title scheme and
-
         skip the proxy creation.  What started out being several hundred lines
-
         of code shrunk down to 20 or so lines of code.
 
-
-
     clientgui/
-
         BOINCBaseView.cpp, .h
-
         BOINCGUIApp.cpp
-
         BOINCTaskCtrl.cpp, .h
-
         stdwx.h
-
         ViewMessages.cpp
-
         ViewProjects.cpp
-
         ViewResources.cpp
-
         ViewStatistics.cpp
-
         ViewTransfers.cpp
-
         ViewWork.cpp
 
-
-
 Charlie 21 July 2005
-
     - Remove wxRESIZE_BORDER and wxCLOSE_BOX from several dialog styles so 
-
     modal dialogs are not resizeable and do not have a close box.
-
     NOTE: the Options Dialog is too narrow on the Mac, so I can not yet 
-
     finalize this change for this dialog until Rom fixes it.
-
     - Mac: Fix problems with new "Run Script Phase" (see my 19 July changes.)
-
     Fix bug in menubar icon menu wich appeared only in deployment builds 4.70 
-
     and 4.71; modify code so it is less dependent on exact implementation of 
-
     wxTaskBarIcon's wxDockEventHandler().
-
     
-
     clientgui/
-
         DlgAccountManagerStatus.h
-
         DlgAccountManagerSignup.h
-
         DlgOptions.h
-
         mac/
-
             MacSysMenu.cpp, .h
-
     mac_build/
-
         boinc.pbproj/
-
             project.pbxproj
-
  
-
 Rom    21 July 2005
-
     - Bug Fix: correct the control id's for the taskbar context menu which was
-
         using the control ids used by the main application instead of it's own.
 
-
-
     clientgui/
-
         BOINCTaskBar.cpp
 
-
-
 David  21 July 2005
-
     - use SHM_R|SHM_W instead of 0666 in shmget().
-
         Apparently this is needed for HPUX.
-
         We did this before (Mar 31 2005) and immediately
-
         backed it out, so it's likely to break some other platform.
 
-
-
     lib/
-
         shmem.C
 
-
-
 Rom    21 July 2005
-
     - Update the templates for the dialogs that DialogBlocks uses to maintain
-
         the various dialogs with by removing the resizing flag and close box 
-
         flag.  Making changes directly on the source files without updating the
-
         templates just causes the loss of the change next time DialogBlocks
-
         is loaded.
-
     - Instead of specifically defining which flags are used, use
-
         wxDEFAULT_DIALOG_STYLE which is supposed to contain the defaults on a
-
         per platform basis.
 
-
-
     clientgui/
-
         BOINCGUI.cst (Added)
-
         BOINCGUI.pjd
-
         DlgAbout.cpp, .h
-
         DlgAccountManagerSignup.cpp, .h
-
         DlgAccountManagerStatus.cpp, .h
-
         DlgAttachProject.cpp, .h
-
         DlgDialupCredentials.cpp, .h
-
         DlgOptions.cpp, .h
-
         DlgSelectComputer.cpp, .h
 
-
-
 Rom    21 July 2005
-
     - Start prototyping the new attach to project wizard.
-
       NOTE: It'll only be visible on debug builds for the time being.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         DlgAbout.cpp, .h
-
         Events.h
-
         MainFrame.cpp, .h
-
         Makefile.am
-
         WizAttachProject.cpp, .h
-
     clientgui/res/
-
         attachprojectwizard.xpm
-
     clientgui/res/templates/
-
         wizard.png
-
     win_build/
-
         boincmgr.vcproj
 
-
-
 Charlie 22 July 2005
-
     - Fix reversed checking of Network Activity menu items in taskbar.
-
     - Mac: Update XCode project for use with Wxmac-2.6.1 (added IOKit 
-
     Framework to BOINC Manager target.)
-
     - Update Build instructions for wxMac-2.6.1, more detailed info 
-
     for building libraries and sceince projects.
 
-
-
     clientgui/
-
         BOINCTaskBar.cpp
-
     doc/
-
         mac_build.html
-
     mac_build/
-
         HowToBuildBOINC_XCode.rtf
-
         boinc.pbproj/
-
             project.pbxproj
 
-
-
 Rom    22 July 2005
-
     - Enable scrollbars on the task pane
-
     - Only redraw the website buttons when a selection change event has
-
       occurred with the list pane.
 
-
-
     clientgui/
-
         BOINCBaseView.cpp, .h
-
         BOINCTaskCtrl.cpp, .h
-
         ViewProjects.cpp
 
-
-
 Rom    22 July 2005
-
     - Fix the statistics buttons so that they show up again after the
-
         wxScrollWindow conversion.
-
     - Fix for wireless USB adapters so that connection request events
-
         happen even when InternetGetConnectedState returns a value
-
         indicating that the machine is not connected.
 
-
-
     client/
-
         net_xfer.C
-
     clientgui/
-
         ViewStatistics.cpp
 
-
-
 Rom    22 July 2005 (boinc_public)
-
     - Tag for 4.72 release, all platforms
-
       boinc_core_release_4_72
 
-
-
 David  23 July 2005
-
 	- fix compile warnings on Win
 
-
-
 	lib/
-
 		hostinfo.C
-
 		md5_file.C,h
-
 		miofile.C
-
 		network.C
 
-
-
 David  23 July 2005
-
 	- API: change heartbeat mechanism so that instead of using time(0),
-
 		it uses its own counter (incremented on interrupt).
-
 		This avoid specious heartbeat timeout
-
 		when user resets system clock.
-
 		It should also fix problem where BOINC restarts
-
 		after hibernation, app runs before core client,
-
 		and it gets heartbeat timeout.
-
 	- Core client: add "-no_gui_rpc" cmdline option.
-
 		If present, don't create listening socket for GUI RPC.
-
 		(Useful if bind() doesn't work).
-
 	- shared memory: in shmget() mode, first try 0666;
-
 		if that fails, try SHM_R|SHM_W
-
 		This is just paranoia, in case 21/July checkin
-
 		breaks some platform.
 
-
-
 	api/
-
 		boinc_api.C
-
 	client/
-
 		client_state.C,h
-
 		cs_cmdline.C
-
 		gui_rpc_server.C,h
-
 	lib/
-
 		shmem.C
 
-
-
 Janus 23 July 2005
-
     - API: Compile error in the previous checkin due to undefined
-
         variable interrupt_time. I assume it should be interrupt_count.
-
 	Please change if this isn't right...
 
-
-
     /api/
-
        boinc_api.C
 
-
-
 Rom    24 July 2005
-
     - Fix the control positioning on platforms other than Windows.
 
-
-
     clientgui/
-
         BOINCBaseView.cpp
-
         BOINCTaskCtrl.cpp
-
         ViewMessages.cpp
-
         ViewProjects.cpp
-
         ViewResources.cpp
-
         ViewStatistics.cpp
-
         ViewTransfers.cpp
 
-
-
 David  24 July 2005
-
     - If benchmarks fail (e.g. because an app doesn't exit)
-
         set a flag in state file and rerun on next startup
-
         (from John McLeod)
 
-
-
     client/
-
         app_start.C
-
         client_state.h
-
         cs_benchmark.C
-
         cs_statefile.C
 
-
-
 David  25 July 2005
-
     - API: in start_worker_thread(), use pthread_sigmask()
-
         instead of sigprocmask() to block SIGALRM in the graphics thread.
-
         On Mac OS X, sigprocmask() blocks SIGALRM in all threads,
-
         which is not the intent.
-
         (From Bruce Allen)
 
-
-
     api/
-
         graphics_impl.C
 
 
-
-
-
 David  25 July 2005
-
 	- core client: rewrite account file if GUI URLs change
 
-
-
 	client/
-
 		cs_scheduler.C
 
-
-
 Charlie 25 July 2005
-
     - Mac installer: specifically quit core client if running in addition 
-
     to quitting BOINC Manager, since cc may be running without manager.
-
     
-
     mac_installer/
-
         PostInstall.cpp
 
-
-
 Rom    25 July 2005
-
     - Define the wizard page that'll actually handle the communication
-
         with the project server, or help diagnose a problem if it occurs.
 
-
-
       NOTE: It is currently setup to simulate a proxy configuration error.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         WizAttachProject.cpp
-
         WizAttachProject.h
-
     clientgui/res/
-
         wizfailure.xpm (Added)
-
         wizquestion.xpm (Added)
-
         wizsuccess.xpm (Added)
-
     clientgui/res/templates/
-
         wizfailure.gif (Added)
-
         wizquestion.bmp (Added)
-
         wizsuccess.gif (Added)
 
-
-
 David  26 July 2005
-
 	- Core client: try DL/UL of replicated files
-
 		in URL order listed by project, not random order.
-
 		Einstein@home orders URLs by proximity to client.
-
 		Left in randomization code but commented it out.
-
 	- Shorten host info messages, and move to separate function
-
 		(don't lengthen functions that are too large already)
-
 	- fix small memory leak when using anon platform
 
-
-
 	client/
-
 		client_state.C,h
-
 		client_types.C
-
 		cs_scheduler.C
-
 		cs_statefile.C
 
-
-
 Jeff  26 July 2005
-
 	- Allow multiple assimilators and file_deleters to run via
-
 	  modulus on WU id for the assimilator and WU and result
-
 	  id for the file_deleter.
 
-
-
 	sched/
-
 		assimilator.C
-
 		file_deleter.C
 
-
-
 Rom    26 July 2005
-
     - Provide a mechinism for the localization team to be able to
-
         localize the project defined buttons.
 
-
-
     clientgui/
-
         ViewProjects.cpp
-
         Localization.cpp, .h (Added)
-
     locale/en_US/
-
         BOINC Manager.po, .mo
 
-
-
 David  27 July 2005
-
     - Add code to get swap space size on NetBSD
-
         (from Nikos Ntarmos)
 
-
-
     client/
-
         hostinfo_unix.C
 
-
-
 David  27 July 2005
-
     - fix fairly minor scheduler bug,
-
         in the case where a reported result was not found in the DB,
-
         which caused scheduler reply messages to contain some garbage
 
-
-
         In DB_SCHED_RESULT_ITEM_SET::add_result(),
-
         zero the id of the item added.
-
         That way, if it wasn't found in the database,
-
         it won't be updated or acknowledged
 
-
-
     db/
-
         boinc_db.C
-
     sched/
-
         handle_request.C
 
-
-
 Rom    28 July 2005
-
     - Add a few of the wizard error pages
-
     - Enable the ability to direct error conditions from the welcome page.
-
       NOTE: For trsting only, it'll be removed before we release to alpha.
-
     - Determine which page to show after the project properties page has
-
       done it's thing based on error conditions.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         WizAttachProject.cpp
-
         WizAttachProject.h
 
-
-
 David  28 July 2005
-
     - scheduler: if the  list is present in request,
-
         resend any in-progress results not on the list.
-
         Enabled by 1 in config.xml
-
         (with Bruce Allen)
 
-
-
     sched/
-
         handle_request.C
-
         sched_locality.C
-
         sched_send.C,h
-
         server_types.C,h
 
-
-
 Rom    29 July 2005
-
     - Use a virtual stack to monitor page transitions.  Next and Back buttons
-
       should be fully operational.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         MainFrame.cpp
-
         WizAttachProject.cpp, .h
-
         stdwx.h
 
-
-
 Bruce 29 July 2005
-
     - scheduler: fixed to checkins on 28 July
-
       (1) Put core client version number into wreq BEFORE searching for
-
           an app version. Problem is that reply.wreq.core_client_version was only being set in
-
           send_work(), which was too late for the resend_lost_work() part
-
           of the code.  You might want to move all the initialization of reply.wreq
-
           out of send_work().   The core client version is needed to see if the
-
           app is compatible with it when calling get_app_version().
-
       (2) In retransmitting lost work, do NOT set the deadline to new
-
           values.  Else the result will never time out!  But DO reset
-
           the sent_time, to indicate that result was resent.
-
     - transitioner:
-
           In the transitioner, make the next WU transition time be the min
-
           of deadlines of the in progress results, NOT the min of the
-
           sent_time+delay bound.  Unless a project wants to do dynamic
-
           adjustment of delay bounds for in progress results this should be OK.
-
           CPDN people: I don't think this does any harm for trickles but
-
           you might want to give it a quick look to be 100% sure.
 
-
-
     sched/
-
         sched_send.C
-
         transitioner.C
 
-
-
 Bruce 29 July 2005
-
     - scheduler: don't resend a result to a host if any of the following is true:
-
       [1] WU error flag set
-
       [2] WU already has canonical result
-
       [3] (report_deadline - current_time) < 25% of WU delay bound
-
       If any of these conditions is true, set the report deadline to the
-
       current time and set the WU transition time to the current time.
-
       The transitioner will then 'do the right thing'.
 
-
-
     sched/
-
         sched_send.C
 
-
-
 Charlie 29 July 2005
-
     Mac: #define __WXDEBUG__ only in our code (not in wxWidgets headers) 
-
     in Development version only to allow testing of wizard.  See comments
-
     in MacGUI.pch for details.
-
     
-
         mac/
-
             MacGUI.pch
 
-
-
 Rom    31 July 2005
-
     - Add two new wizard pages, the Account Key page which will be used to help out
-
         projects who have not yet upgraded to the new authentication scheme and the
-
         Account Creation Disabled error page.  If the server properties php page
-
         returns that account creation is disabled, then that page will be displayed.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         WizAttachProject.cpp, .h
 
-
-
 David  31 July 2005
-
 	- Split the GUI RPC code into 3 parts:
-
 		1) the underlying stuff (sockets, buffers)
-
 		2) the RPC themselves (XML write/parse, handlers)
-
 		3) textual output (used only by boinc_cmd)
 
-
-
 	client/
-
 		Makefile.am
-
 		gui_rpc_server.C
-
 		gui_rpc_server_ops.C
-
 		scheduler_op.h
-
 	clientgui/
-
 		Makefile.am
-
 	lib/
-
 		Makefile.am
-
 		gui_rpc_client.C,h
-
 		gui_rpc_client_ops.C
-
 		gui_rpc_client_print.C
-
 	win_build/
-
 		boinc_cli.vcproj
-
 		boinc_ss.vcproj
-
 		boinccmd.vcproj
-
 		boincmgr.vcproj
 
-
-
 David  1 Aug 2005
-
     - support OpenSSL's crypto libary, preparatory to getting rid of RSAEuro.
-
         For now, there's a #define in lib/crypt.h
-
         that lets you select one or the other.
-
         OpenSSL seems to be working, i.e. you can read keys
-
         and verify file signatures produces with RSAEuro.
 
-
-
     lib/
-
         Makefile.am
-
         boinc_cmd.C
-
         crypt.C,h
-
         crypt_prog.C
-
         gui_rpc_client.h
-
         gui_rpc_client_ops.C
-
         gui_rpc_client_print.C
-
         hostinfo.C,h
 
-
-
 Rom    1 Aug 2005
-
     - Some wizard work.
-
     - Fix build breaks.
-
     - Add support for OpenSSL in the Win32 environment.
 
-
-
     clientgui/
-
         BOINCGUI.pjd
-
         MainDocument.cpp, .h
-
         WizAttachProject.cpp, .h
-
     lib/
-
         crypt.h
-
     openssl/
-
         
-
     win_build/
-
         boinc.sln
-
         boinc_cli.vcproj
-
         boincmgr.vcproj
-
         libboinc.vcproj
-
         librsaeuro.vcproj (Removed)
-
     win_build/installerv2/
-
         boinc.ism
 
-
-
 David  1 Aug 2005
-
     - avoid using sprintf() in signal handler
 
-
-
     lib/
-
         boinc_api.C
 
-
-
 David  1 Aug 2005
-
     - add -lcrypto on Unix
 
-
-
     configure.ac
-
 David  1 Aug 2005
 	- hasty bug fixes to the above. still not quite working
-
 	lib/
 		boinc_api.C
+
+Eric	2 Aug 2005
+	- added autoconf macro to check for openssl and set up the USE_RSAEURO or USE_OPENSSL macros in config.h.
+	- modified configure.ac to run this check.
+	
+	configure.ac
+	m4/
+	    check_ssl.m4
+	    
\ No newline at end of file