Rom 4 Jan 2006 - Branding update for GridRepublic client/win/ boinc_cli.rc boinc_cmd.rc boinc_ss.rc clientgui/ AccountInfoPage.cpp, .h BOINCGUIApp.cpp, .h WizardAccountManager.cpp WizardAttachProject.cpp resource.h clientgui/res/ gridrepublic.ico gridrepublic.xpm gridrepublicamwizard.xpm (Added) clientgui/res/ gridrepublic.ico gridrepublicamwizard.bmp (Added) win_build/installerv2/ GridRepublic.ism win_build/installerv2/redist/GridRepublic/ GridRepublic.ico GridRepublic.url Rom 4 Jan 2006 (HEAD) - Tag for 5.3.7 release, all platforms boinc_core_release_5_3_7 David 4 Jan 2006 - replace safe_strncpy() with strlcpy() everywhere. Same semantics, but the former is less efficient. - simplified Bruce's recent fix to escape_string() checkin_notes_2005 (new - Woo Hoo!) api/ boinc_api.C client/win/ hostinfo_win.cpp db/ db_base.C lib/ app_ipc.C diagnostics.C filesys.C language.C parse.C util.C,h sched/ handle_request.C tools/ backend_lib.C David 4 Jan 2006 - scheduler: scan_work_array(): if add_result_to_reply() fails, do NOT reinsert the entry in the array by resetting the "present" flag. We previously cleared this flag, so the array entry may have been refilled by the feeder, and it might be in the CHECKED_OUT state. (from Paul Buck) sched/ sched_array.C Bruce 5 Jan 2006 - Fixed David's mistake in simplifying my fix to escape_string()! db/ db_base.C David 4 Jan 2006 - fixed inefficient unescape_string() db/ db_base.C Bruce 5 Jan 2006 - Fixed new unescape_string(): didn't null terminate string. db/ db_base.C Bruce 6 Jan 2006 - Nasty bug in API lib. See checkin_nodes_2004 December 22. Functions meant to be used from within C should never be declared bool! Fix: change boinc_is_standalone() to return int not bool. Note: some API functions still return bools, but since E@H doesn't use them and I am afraid of doing damage, I have left them alone. api/ boinc_api.C boinc_api.h graphics_impl.h graphics_impl_lib.C Rom 6 Jan 2006 - Branding update for GridRepublic clientgui/ AccountInfoPage.cpp AccountManagerProcessingPage.cpp AccountManagerPropertiesPage.cpp BOINCGUIApp.cpp, .h BOINCGUIApp.rc CompletionPage.cpp, .h MainFrame.cpp resource.h clientgui/res/ gridrepublic2.ico (Added) win_build/installerv2/ GridRepublic.ism win_build/installerv2/redist/GridRepublic/ acct_mgr_url.xml GR_splash.bmp Rom 6 Jan 2006 (HEAD) - Tag for 5.3.8 release, all platforms boinc_core_release_5_3_8 David 6 Jan 2006 - fix unitialized var client/ net_stats.C David 6 Jan 2006 - feeder: exit on database errors. This is a workaround for a problem where the feeder loses its DB connection after 10-20 hours of idleness. With this change, the feeder will exit, and will be restarted by cron. sched/ feeder.C David 6 Jan 2006 - Tweak the account manager system to support "farm managers" that use GUI RPC to control clients. The farm manager needs the GUI RPC port and password of each client. Add an optional element to the acct_mgr_url.xml file, which causes the GUI RPC port and password to be included in account manager RPC requests. (From James Drews) client/ acct_mgr.C,h David 6 Jan 2006 - Change "bool" to "int" in the BOINC API. C and C++ compilers differ in their allocation for bool, making it difficult for C applications (which must be compiled with particular compilers) to use the BOINC API. No such problem for int. (from Bruce Allen) api/ boinc_api.C,h David 8 Jan 2006 - Account manager additions (from Willy de Zutter) - Include in AM request. This is the host CPID sent in the previous AM request. It lets the AM track hosts even when their CPIDs change. - Include in AM request - AM replies can include elements. The contents are printed in the Messages tab. - Print message that AM request has succeeded (or failed) client/ acct_mgr.C,h lib/ hostinfo.C David 9 Jan 2006 - user web: show bbcode correctly for UOTD html/user/ sample_index.php Bruce 9 Jan 2006 - fix bug on page that shows profile for a given user. The total number of posts made by a given user is not shown correctly. The PHP code assumes that this number is given by user.posts. However in html/inc/db_forum.inc, the value of user.posts is NOT incremented each time a user makes a new post (either starting a new thread or replying to an existing one). For the moment, my the fix is to simply scan the database and count the number of posts by the user, to give the right value on the profile page. An alternative fix (which would be less DB intensive, overall) is to (1) fix db_forum.inc so that it properly increments user.posts and then (2) add an update_db.php script entry that correctly sets user.posts by counting the number of posts for each user. html/ inc/ user.inc Rom 9 Jan 2006 (HEAD) - Initial CPDN/BBC branded client client/win/ boinc_cli.rc boinc_cmd.rc boinc_dll.rc boinc_ss.rc clientgui/ AccountInfoPage.cpp BOINCBaseView.cpp, .h BOINCGUIApp.cpp BOINCGUIApp.rc DlgAbout.cpp, .h MainFrame.cpp ViewMessages.cpp ViewProjects.cpp ViewResources.cpp ViewStatistics.cpp ViewTransfers.cpp ViewWork.cpp, .h win_build/ cpdnbbc.sln (added) cpdnbbc_boinc_cli_curl.vcproj (added) cpdnbbc_boinc_dll.vcproj (added) cpdnbbc_boinc_ss.vcproj (added) cpdnbbc_boinccmd.vcproj (added) cpdnbbc_boincmgr_curl.vcproj (added) win_build/installerv2/ CPDNBBC.ism (added) win_build/installerv2/redist/CPDNBBC/ Climate Change Experiment.url (added) project_init.xml Rom 9 Jan 2006 (HEAD) - Tag for 5.3.9 release, all platforms boinc_core_release_5_3_9 Bruce 9 Jan 2006 - Fixes to BOINC zip library from Carl Christensen. Carl says: "I found a problem with boinc_zip; it seems some Linux STL's aren't very nice about classes that are inherited from their objects on multiple use; or huge file lists that we use on CPDN. So I rewrite it to just use "straight" std::string's in a vector. It's fully backwardly compatible and seems to work fine." zip/ boinc_zip.h boinc_zip.cpp David 9 Jan 2006 - changed upper_case so that the -cpu_time option takes an arg: the # of CPU seconds to use. apps/ upper_case.C Charlie 10 Jan 2006 -Mac: Fix minor bugs in internal scripts in XCode 2.2 project. Changes to BOINC Manager to accomodate Rom's changes for branding. clientgui/ BOINCGUIApp.cpp mac/ MacSysMenu.cpp, .h mac_build/ boinc.xcodeproj/ project.pbxproj David 10 Jan 2006 - core client: fix vector erase code in GUI RPC. Thanks to Darrel Holz for finding this. client/ gui_rpc_server.C David 10 Jan 2006 - Add XML option for team lookup web interface html/ inc/ xml.inc user/ team_lookup.php Bruce 11 Jan 2006 - Skip test for excessive CPU time, IF hostid has changed because host has been cloned. If result is resent to the 'new' host then this can make it appear that the result was completed shortly after it was sent. sched/ handle_request.C Charlie 10 Jan 2006 -Mac: Get BrandID from file put inside application bundle by installer. clientgui/ BOINCGUIApp.cpp Bruce 11 Jan 2006 - Documentation: describe boinc_is_standalone() in documentation. doc/ api.php David 11 Jan 2006 - file upload handler: allow upload if offset if < size (this can now happen, since the client skips size check for files < 1 MB) sched/ file_upload_handler.C David 11 Jan 2006 - Core client: add a flow control mechanism for the case where output files are generated faster than they can be uploaded (otherwise we'll fill up the disk). The mechanism: don't start new results for a project that has > 2 uploads in progress. Note: this actually happens with Cunning Plan (5 MB output files, 60 sec CPU) over a DSL line client/ client_types.h cs_apps.C David 11 Jan 2006 - core client: on file upload, always get file size (even if small file). Before the file upload handler checkin earlier today, this was actually a bug: if a client had uploaded part of a small file and then failed, it would never be able to upload the rest. But it was probably a bad idea in the first place, since 1 MB is a large file from the viewpoint of a modem user. client/ file_xfer.C Charlie 10 Jan 2006 -Mac: Mac System Menu uses menubar icon selected by CBrandingScheme::OnInit() . clientgui/ BOINCGUIApp.cpp mac/ MacSysMenu.cpp res/ gridrepublic_mac.xpm (new) David 11 Jan 2006 - Core client: remove "unknown project" from message where general prefs don't come from a known project. They might come from an account manager. (from Willy de Zutter) client/ cs_prefs.C Bruce 12 Jan 2006 - file_upload_handler: log a message when the client is starting an upload from the wrong offset. This problem should gradually go away as users update to more current clients. sched/ file_upload_handler.C David 12 Jan 2006 - Web RPC: fixed bug in am_set_info.php that caused password_hash to not update. (from Willy de Zutter) html/user/ am_set_info.php David 12 Jan 2006 - Initialize user/team/host.expavg_time with current time. This avoids inaccurate initial values for RAC. From Bruce Allen. html/user create_account.php create_account_action.php team_create_action.php sched/ handle_request.C Rom 13 Jan 2006 (HEAD) - Tag for 5.3.10 release, all platforms boinc_core_release_5_3_10 David 13 Jan 2006 - core client: handle HTTP "continue" status. I don't understand what this is, but hopefully this fixes some network problems. (from Ian Hay). client/ http_curl.h net_xfer_curl.C David 14 Jan 2006 - user web: forum fix (from Rob Ogilvie) html/inc/ forum.inc Janus 15 Jan 2006 - web: Fixed a special situation where the caching mechanism used on (amongst others) the frontpage would always refresh from the serverside cache regardless of whether the client had a fresh copy. (from Rob) html/inc/ cache.inc David 14 Jan 2006 - core client: If there's only one potentially runnable project, ask it for work no matter how negative its debt (from Glenn Dill) client/ cs_scheduler.C Rom 15 Jan 2006 - CPDB BBC update clientgui/ AccountInfoPage.cpp, .h BOINCBaseWizard.h BOINCGUIApp.cpp, .h CompletionPage.cpp ProjectProcessingPage.cpp ProjectPropertiesPage.cpp WizardAttachProject.cpp, .h Rom 15 Jan 2006 (HEAD) - Tag for 5.3.11 release, all platforms boinc_core_release_5_3_11 David 15 Jan 2006 - core client: add "-daemon" option (uses daemon() system call to detach from controlling terminal) From Jan Gall client/ cs_cmdline.C main.C David 15 Jan 2006 - GUI RPC: added optional element to elements in GUI RPC replies client/ client_state.h client_types.C scheduler_op.h lib/ gui_rpc_client.h gui_rpc_client_ops.C David 15 Jan 2006 - user web: moved eah_server_status.php and sample_server_status.php from user/ to ops/. These pages have queries that are too slow for big projects like SETI@home. html/ ops/ eah_server_status.php (new) sample_server_status.php (new) user/ eah_server_status.php (removed) sample_server_status.php (removed) server_status.php (removed) David 15 Jan 2006 - user web: add optional team_id argument to team_lookup.php (returns XML description of a particular team) html/ user/ team_lookup.php David 15 Jan 2006 - compile fixes for gcc4.0 client/ gui_rpc_server.C lib/ network.C Bruce 16 Jan 2006 - ops page: add external IP to data shown for host - user host info page: when giving IP data, show both private AND external IP (only for owner of host machine). - user web pages: if can't delete host because there are still results, give clearer error message and link to list of results. - user web pages: in list of hosts, add link to show results if project is configured to show results. html/ inc/ db_ops.inc host.inc user/ host_delete.php David 16 Jan 2006 - compile fix for Win client/ gui_rpc_server.C David 16 Jan 2006 - Call get_host_info() (not just get_filesystem_info()) before each scheduler RPC (from Bruce Allen) client/ cs_scheduler.C David 16 Jan 2006 - add element to account manager RPC request. client/ acct_mgr.C David 16 Jan 2006 - core client: enhancements to duration correction factor (DCF): - on project reset, set DCF to one. - when do CPU benchmarks, scale all DCFs by new/old benchmark (from Josef Segur) client/ client_state.C,h cs_benchmark.C cs_scheduler.C Rom 17 Jan 2006 (HEAD) - Tag for 5.3.12 release, all platforms boinc_core_release_5_3_12 David 17 Jan 2006 - user web: add Mauritius to country list html/inc/ countries.inc David 17 Jan 2006 - Core client error messages: - "task" instead of "result" - Don't include function names in messages - Don't end with \n - Removed files superceded by curl client/ *.C http.C,h (removed) net_xfer.C,h (removed) ssl_http.C,h (removed) ssl_net_xfer.C,h (removed) David 18 Jan 2006 - GUI RPC client lib: add PROJECT::copy() function (copies data, doesn't change vectors) client/ file_xfer.C,h pers_file_xfer.h lib/ gui_rpc_client.h gui_rpc_client_ops.C sched/ handle_request.C David 18 Jan 2006 - If a download isn't complete and gained less than 5 KB, truncate back to the original starting size. This addresses a bug where some proxies append error messages on download failures (reported by Rattledagger) client/ file_xfer.C lib/ error_numbers.h filesys.C,h util.C David 18 Jan 2006 - implement boinc_truncate() for Windows lib/ filesys.C David 18 Jan 2006 - remove #define bool char stuff, and change a couple of functions to return int instead of bool. Rule: if any function is potentially callable from an ANSI C application, don't use bool in its interface, since there's inconsistency in the size of bool between C and C++ compilers api/ graphics_api.h lib/ filesys.C,h David 18 Jan 2006 - added HTTP error codes to boincerror(), since these are sometimes used as return values. client/ http_curl.h pers_file_xfer.C lib/ util.C Rom 19 Jan 2006 - CPDNBBC Update clientgui/ BOINCGUIApp.cpp, .h CompletionPage.cpp MainFrame.cpp win_build/installerv2/redist/CPDNBBC CPDNBBC_splash.bmp David 19 Jan 2006 - feeder/scheduler: try to fix bug where shmem array slots get stuck in "CHECKED_OUT" state. Get rid of this state. Instead, use the PID of the scheduler process that has it checked out (as we're already doing for "reserved" slots) and let the feeder clean up slots checked out by dead processes. - several of the DB enumerate() function were returning 1 or -1 (rather than ERR_DB_NOT_FOUND) when no results. Bad!!! Some programs, including the feeder, treat values other than 0 and ERR_DB_NOT FOUND as fatal DB errors. db/ boinc_db.C sched/ feeder.C sched_array.C sched_shmem.C,h show_shmem.C David 19 Jan 2006 - RSS items should refer to a page that has all news items, not just old ones - Make news item indices permanent html/ inc/ news.inc user/ all_news.php (new) sample_rss_main.php David 20 Jan 2006 - tweak to partial download fix: only truncate file if got >0 new bytes client/ file_xfer.C David 20 Jan 2006 - suppress "Expect: 100 continue" in HTTP header. Apparently this causes problems with some proxies (from Ian Hay) client/ http_curl.C Charlie 20 Jan 2006 -Mac: Changes for Grid Republic: remove BOINCManager from Dock; different plist file for GR; new application icon for GR; screensaver changes for GR. Remove obsolete files from XCode project (net_xfer.C,h, http.C,h, proxy.C,h) Update release script to allow development test builds. Update installer for Grid Republic. client/ mac/ GridRepublic.icns (new) SetVersion.C clientgui/ mac/ mac_saver_module.cpp mac_build/ Info.plist GR_Info.plist (new) boinc.xcodeproj/ project.pbxproj mac_installer/ release_boinc.sh Postinstall.cpp David 20 Jan 2006 - core client: if we change host CPID and we're using an account manager, do scheduler RPCs to all projects, so that the account manager gets a consistent view when it gets host data from the project servers client/ client_state.h cs_scheduler.C David 20 Jan 2006 - Manager: improvements to Statistics tab (from mifistor_x) clientgui/ Events.h ViewStatistics.C,h Charlie 21 Jan 2006 -Mac: Changes for Grid Republic: manager determines branding before launching client; create new release script for GR; GR screen saver displays GR icon in system preferences dialog; data directory is "GridRepublic Data" if a GR install; installing BOINC over an existing GR installation or GR over existing BOINC installation renames data directory and performs other necessary tasks to ensure continued processing of existing work. (But user's screensaver selection is not changed automatically.) clientgui/ BOINCGUIApp.cpp - Set up branding before launching boinc client. mac/ mac_saver_module.cpp gridrepublic.tiff SetVersion.C mac_installer/ release_boinc.sh PostInstall.cpp postinstall postupgrade preinstall (new) preupgrade (new) release_GridRepublic.sh (new) GR-preinstall (new) GR-preupgrade (new) GR-Description.plist (new) GR-Branding (new) GR-ReadMe.rtf (new) mac_build/ GR-InfoPlist.strings (new) GR-ScreenSaver-Info.plist (new) boinc.xcodeproj/ project.pbxproj Bruce 22 Jan 2006 - update_stats program. Fix 'bug of omission' where member counts of teams are calculated but were not written back into the database. Also, change algorithm so that for hosts/teams/users, when the RAC (Recent Average Credit) values have decayed to exactly 0.0 (double precision) then neither expavg_credit nor expavg_time are updated. In this way, by looking at the value of expavg_time, you can see exactly WHEN the RAC decayed to zero. This effectively indicates the 'drop-out-date' for the host/team/user. sched/ update_stats.C Rom 23 Jan 2006 - On Windows use the System Event Notification Service to determine network connectivity instead of using InternetGetConnectedState since it was proving to be unreliable. NOTE: This is a big change on Windows. SENS uses COM as it's communication infrastructure and so therefore boinc.dll now has to be regsvr32'ed before network notification messages will be sent to the client. If, for whatever reason SENS isn't working we'll fall back to InternetGetConnectedState. client/ main.C client/win/ hostinfo_win.cpp clientgui/ AccountManagerPropertiesPage.cpp BOINCGUIApp.cpp, .h MainFrame.cpp ProjectPropertiesPage.cpp clientlib/win/ boinc_dll.cpp, .h (Added) BOINCSENSSink.cpp, .h (Added) Identification.cpp, .h (Added) IdleTracker.cpp, .h (Added) NetworkTracker.cpp, .h (Added) resource.h (Added) SENSLogonSubscriptions.h (Added) SENSNetworkSubscriptions.h (Added) SENSOnNowSubscriptions.h (Added) SENSSubscriptions.h (Added) stdafx.cpp, .h (Added) lib/ network.C, .h win_build/ boinc_dll.vcproj Rom 23 Jan 2006 - Add an File/Exit warning for CPDNBBC so that the users know they will be stopping any executing tasks. - Update the Project and Work views changing 'work' to 'tasks' clientgui/ BOINCGUI.pjd BOINCGUIApp.cpp, .h DlgGenericMessage.cpp, .h (Added) MainFrame.cpp, .h Makefile.am ViewProjects.cpp ViewWork.cpp Charlie 23 Jan 2006 -Mac: Improve GridRepublic release script so it uses sed commands to convert standard BOINC plist, preinstall and preupgrade files for Grid Republic; standard BOINC release script creates preupgrade script by copying preinstall script; these changes eliminate the need for seven files I checked in earlier. Also generalize Grid Republic release script so it can easily be modified for other brands by changing a few variable definitions. Changed name of GR Manager to "GridRepublic Manager" from just "GridRepublic." Restore my change of 1/21/06 which was lost: manager determines branding before launching client. Remove mac_build/Installer-info.plist and replace with mac_build/Installer-info.plist (CVS is case-sensitive). clientgui/ BOINCGUIApp.cpp mac/ SetVersion.C mac_build/ GR_Info.plist (Remove) GR-InfoPlist.strings (Remove) GR-ScreenSaver-Info.plist (Remove) Installer-info.plist (Remove) Installer-info.plist (Add) boinc.xcodeproj/ project.pbxproj mac_installer/ GR-ReadMe.rtf PostInstall.cpp preinstall release_boinc.sh release_GridRepublic.sh preupgrade (Remove) GR-Description.plist (Remove) GR-preinstall (Remove) GR-preupgrade (Remove) David 23 Jan 2006 - Core client: D'oh! When change host CPID, need to notify ALL projects, even the one we just contacted. client/ client_state.h cs_scheduler.C Charlie 23 Jan 2006 -Mac: Add new files DlgGenericMessage.cpp, .h to XCode project . mac_build/ boinc.xcodeproj/ project.pbxproj Rom 24 Jan 2006 - String and graphics changes for CPDNBBC. - Add email address validation to the wizards. clientgui/ AccountInfoPage.cpp BOINCGUIApp.cpp BOINCGUIApp.rc ValidateEmailAddress.cpp, .h (Added) Rom 24 Jan 2006 (HEAD) - Tag for 5.3.14 release, all platforms boinc_core_release_5_3_14 Rom 24 Jan 2006 - Bug Fix: Remove the last line of the function that handles the launching of the wizards on first execution which was causing the manager to switch over to the messages tab no matter if the wizard completed successfully or not. clientgui/ MainFrame.cpp David 24 Jan 2006 - core client: move code that deals with generating new host CPID to the end of handle_scheduler_reply(), after the part that clears sched_rpc_pending and sets min_rpc_time, since if we generate a new host CPID we're going to modify these (to request another RPC). Also: in this case request an immediate scheduler RPC to all projects whether or not we're using an account manager. - core client: if detach from account manager, clear "attached_via_acct_mgr" flag on all projects - database: change type of xml field in msg_to_host and msg_from_host from text (64KB limit) to medium_text (16MB limit, but use at most 256KB) - scheduler: don't print trickle message contents (swamps logfile) (the latter two from Carl Christensen) client/ acct_mgr.C cs_scheduler.C clientgui/ Events.h db/ boinc_db.h schema.sql sched/ handle_request.C David 24 Jan 2006 - core client: statefile read fails if don't find client/ cs_statefile.C Charlie 24 Jan 2006 -Mac: Add new files ValidateEmailAddress.cpp, .h to XCode project. Change conditional compile #ifdef __ppc__ in mac_backtrace.C so library links properly for Intel Macs (but backtrace is disabled). Fix compile error by excluding CPDNBBC client code from Mac builds. Remove obsolete XCode project; update build script to use new project. Set plaform correctly for powerpc-apple-darwin and i686-apple-darwin. clientgui/ BOINCGUIApp.cpp mac/ config.h lib/ mac_backtrace.C mac_build/ BuildMacBOINC.sh boinc.xcodeproj/ project.pbxproj boinc.pbproj/ project.pbxproj (Remove) config.h Rom 24 Jan 2006 - Bug Fix: Fix a blocking compilation issue on the Mac with the new email validation class. clientgui/ ValidateEmailAddress.cpp David 24 Jan 2006 - new FORTRAN-callable function boinc_zip_() (from Juan Perez) api/ boinc_api_fortran.C Rom 25 Jan 2006 - Bug Fix: Fix the wizard so that it can display customized graphics on the welcome page. - Bug Fix: Display the minimum password length in the wizard. - Bug Fix: Add two new pages for dealing with account manager updates and removal from account managers. Text needs some work though. clientgui/ AccountInfoPage.cpp, .h AccountManagerProcessingPage.cpp AccountManagerStatusPage.cpp BOINCBaseWizard.cpp, .h BOINCGUIApp.cpp BOINCWizards.h CompletionErrorPage.cpp CompletionPage.cpp CompletionRemovePage.cpp, .h (Added) CompletionUpdatePage.cpp, .h (Added) NotDetectedPage.cpp ProxyPage.cpp UnavailablePage.cpp WelcomePage.cpp WizardAccountManager.cpp, .h WizardAttachProject.cpp wizardex.cpp David 25 Jan 2006 - core client: add declarations of free_mem() functions (but still comment them out) client/ app.h client_state.h html/user/ am_seti_info.php lib/ util.C David 25 Jan 2006 - add "added_via_acct_mgr" flag to GUI RPC PROJECT structure lib/ gui_rpc_client.h gui_rpc_client_ops.C David 25 Jan 2006 - core client: added "Deferring scheduler requests for X" messages client/ cs_scheduler.C David 25 Jan 2006 - account manager RPC request now lists all projects; is included for those attached via AMS client/ acct_mgr.C David 25 Jan 2006 - Initialize result.batch to workunit.batch This required adding a batch field to TRANSITIONER_ITEM. (for Rosetta@home) Note: if you're using the batch field for anything, you should add indices on it to workunit and/or result db/ boinc_db.C,h tools/ backend_lib.C David 26 Jan 2006 - core client: always use HTTP 1.1 (from Carl Christensen) client/ http_curl.C Rom 26 Jan 2006 - Bug Fix: Overhaul the wizard control creation process. The RAD tool we used broke the process into two parts and arranged things where the bulk of the control creation and text assignment happened during dialog contruction. This causes problems since not all of the relevant data is available at dialog construction, such as account manager name or project name. The new scheme creates all the controls during dialog creation and sets the associated text to null. When the OnPageChanged event is fired we'll go and make all the necessary changes to the control text as well as hide and show the correct controls. clientgui/ Rom 27 Jan 2006 - Bug Fix: The screensaver should properly detect the shortcut for all branded clients. client/win/ boinc_ss.h boinc_ss.rc win_screensaver.cpp, .h Rom 27 Jan 2006 (HEAD) - Tag for 5.3.15 release, all platforms boinc_core_release_5_3_15 David 27 Jan 2006 - server build fix for Mac OS X 10.3 (from Derek Wright) m4/ kc_mysql.m4 David 27 Jan 2006 - Manager: "Website" is still not a word. Don't use exclamation points. clientgui/ AccountInfoPage.cpp AccountManagerPropertiesPage.cpp CompletionRemovePage.cpp CompletionUpdatePage.cpp David 27 Jan 2006 - core client: fix calculation of STD/LTD client/ cs_apps.C David 27 Jan 2006 - core client: various scheduler fixes (from John McLeod) client/ client_state.C,h client_types.C,h cs_prefs.C cs_scheduler.C cs_statefile.C David 27 Jan 2006 - core client: initial checkin of new CPU scheduling code (in a very incomplete state). To enable it, define NEW_CPU_SCHED in a couple of .h files api/ boinc_api_fortran.C client/ client_state.C,h client_types.C,h cs_apps.C cs_scheduler.C Reinhard 30 Jan 2006 - improved _autosetup: * make version-checks more robust if '--version' is not supported * removed libtool-check: libtool is shipped with boinc, this check therefore pointless ./autosetup Charlie 30 Jan 2006 -Mac: XCode project fixes: path to Mac_GUI.cpp; remove GR_Info.plist, add source files CompletionRemovePage.cpp,.h, CompletionUpdatePage.cpp,.h. mac_build/ boinc.xcodeproj/ project.pbxproj Reinhard 30 Jan 2006 - updated boincmgr build for MacOSX: * added Mac_GUI.cpp, MacGUI.pch and Security.Framework clientgui/ Makefile.am MainFrame.cpp Reinhard 30 Jan 2006 - applied Derek Wright's patch to get --enable-release-client working on MacOS10.4 (this simply adds a check for '-lSystemStubs') [can't test this myself on 10.4 right now] ./configure.ac David 30 Jan 2006 - updates to new scheduler code (commented out) client client_state.h client_types.h cs_apps.C David 30 Jan 2006 - back out scheduler changes of 27 Jan. They caused write of statefile in infinite loop in some cases client/ client_state.C,h client_types.C,h cs_apps.C cs_prefs.C cs_scheduler.C cs_statefile.C Rom 30 Jan 2006 - Change the scheme used to select the default item when no other items are selected within a single selection list control. clientgui/ BOINCBaseView.cpp BOINCListCtrl.cpp David 30 Jan 2006 - fixes for LTD calculation (from James Drews) client/ client_types.C,h cs_apps.C Rom 30 Jan 2006 (HEAD) - Tag for 5.3.16 release, all platforms boinc_core_release_5_3_16 Charlie 30 Jan 2006 -Mac: Undo change of 1/20/06 to Info.plist: restore manager to Dock because use of NSUIElement also eliminated menu bar. (Tagged new Info.plist for boinc_core_release_5_3_16.) mac_build/ Info.plist Charlie 31 Jan 2006 -Mac: Remove redundant second link with libwx_mac.a. Fix buildWxMac.sh script to fix wxRegEx problems. Fix bug so a new default item is selected when the old selected item is deleted within a single selection list control. Update release scripts for separate ppc_Deployment build directory. (Tagged changed files for boinc_core_release_5_3_16.) clientgui/ BOINCBaseView.cpp mac_build/ buildWxMac.sh boinc.xcodeproj/ project.pbxproj mac_installer/ release_boinc.sh release_GridRepublic.sh Rom 31 Jan 2006 - Bug Fix: If the wizard is configured for usernames, do not use the email address validator on the account info page. clientgui/ AccountInfoPage.cpp David 31 Jan 2006 - Back out changes to LTD calculation client/ client_types.C,h cs_apps.C David 31 Jan 2006 - add "table stats" web page (from Carl Christensen) html/ inc/ util.inc ops/ sample_table_stats.php David 31 Jan 2006 - user web: remove "pending credit" link from user page html/inc/ user.inc Bruce 31 Jan 2006 - user web: modify David's change just above. Make 'pending credit link display only if 'show_results' enabled in project config.xml file. html/ inc/ user.inc David 31 Jan 2005 - core client: finish logic for recovering from state file write failures. For some reason I'd done the write part but not the read part. write: 1) write "next" 2) rename "current" to "prev" 3) rename "next" to "current" read: if "next" is valid, use it (in case failure between 1 and 2) In principle we should rename "next" to "current" here, but I didn't bother doing this. else if "current" is valid use it (normal case) else if "prev" is valid use it (in case 3) failed and file got deleted) "is valid" means that the file has a tag, followed later by a tag client/ cs_statefile.C Charlie 1 Feb 2006 -Mac: Changes for Intel Macs. clientgui/ MainFrame.cpp mac/ MacGUI.pch res/ mess.xpm proj.xpm result.xpm usage.xpm xfer.xpm mac_build/ boinc.xcodeproj/ project.pbxproj Rom 1 Feb 2006 - Bug Fix: The account manager wizard wasn't actually calling the get_project_config routine and so various account manager specific settings were not being picked up. - Bug Fix: Include the account manager name in the wizard communication dialogs if we have it. - Bug Fix: Account manager errors were no longer being bubbled up to the manager. The manager was declaring everything a success and displaying the success page. - Bug Fix: Add 'Account not Found' to the account manager wizard. - Bug Fix: Don't attempt an account manager rpc until after a proper username and password have been specified. Various attributes in the acct_mgr_url.xml were being nulled out since the handle_reply function wasn't properly detecting the account not found condition, or any condition where only an error number was returned. - Bug Fix: Keep the tab graphics consistant across all the platforms. client/ acct_mgr.C cs_scheduler.C clientgui/ AccountInfoPage.cpp, .h AccountManagerProcessingPage.cpp, .h AccountManagerPropertiesPage.cpp, .h BOINCGUIApp.cpp, .h MainFrame.cpp ProjectProcessingPage.cpp WizardAccountManager.cpp, .h clientgui/res/ mess.xpm proj.xpm result.xpm usage.xpm xfer.xpm lib/ util.C David 1 Feb 2006 - added web RPC for creating teams - on team creation (whether via RPC or web interface) make sure the country name and team type or legitimate html/ inc/ countries.inc team.inc team_types.inc (new) user/ create_team.php (new) team_create_action.php David 1 Feb 2006 - Core client: there's a feature where certain GUI RPCs enable network communication (if it would otherwise be disabled) for 5 minutes or so. This set of RPCs was too large. Restrict it to things like attach/update project etc., for which network communication is clearly required. - core client: parse elements in status messages from apps. I had forgotten to do this. This should finally allow F@h to work with modem users. client/ app.h app_control.C gui_rpc_server_ops.C Rom 2 Feb 2006 - Bug Fix: Always use the ai.email_addr field for the user identifier for both the create_account and lookup_account RPCs. ai.user_name is only used to prepopulate the post account creation setup form. client/ acct_setup.h clientgui/ ProjectProcessingPage.cpp lib/ gui_rpc_client.h Rom 2 Feb 2006 - Setup new menu layout clientgui/ BOINCGUIApp.cpp Events.h MainFrame.cpp, .h WizardAccountManager.cpp, .h Charlie 2 Feb 2006 -Mac: Changes for Universal Binaries. mac_build/ boinc.xcodeproj/ project.pbxproj buildcurl.sh buildjpeg.sh BuildMacBOINC.sh mac_installer/ release_boinc.sh release_GridRepublic.sh Rom 2 Feb 2006 - Update GridRepublic Icons - Add aditional menu item for the task tray when managed via an account manager. clientgui/ BOINCGUIApp.cpp BOINCGUIApp.rc BOINCTaskBar.cpp, .h Events.h clientgui/res/ gridrepublic16.xpm (Added) gridrepublic32.xpm (Added) gridrepublic.ico Rom 2 Feb 2006 (HEAD) - Tag for 5.3.17 release, all platforms boinc_core_release_5_3_17 David 2 Feb 2006 - web RPC: bug fix html/user am_set_info.php David 2 Feb 2006 - core client: small logic error in statefile read (for "prev", use is_valid_statefile() instead of boinc_file_exists()) client/ cs_statefile.C David 2 Feb 2005 - core client: correctly update long-term debt when a project finishes its last result and becomes no longer "potentially runnable". From James Drews. client/ cs_apps.C David 2 Feb 2005 - core client: long-term debt is modified only over potentially runnable projects, but it's averaged and normalized over all projects. client/ cs_apps.C David 3 Feb 2005 - Allow apps to do cleanup when they're aborted. - Add abort_request to BOINC_STATUS structure - API library: handle message - Change boinc_get_status() arg from reference to pointer (for easier FORTRAN interface). This is an API change, but I think only CPDN uses this. - ACTIVE_TASK_SET::poll(): Check for processes that are ABORT_PENDING for more than 5 seconds, and kill them From Carl Christensen, somewhat modified. I changed the way tasks are aborted. The core client can't sleep; that locks up the UI. So we can't sleep 5 seconds waiting for an app to exit after sending it an message (existing apps don't recognize this message). Instead, send it the message, set its state to PROCESS_ABORT_PENDING, and check it from the polling loop 5 seconds later. api/ boinc_api.C,h client/ app.C,h app_control.C David 6 Feb 2005 - compile warning fixes client/ cs_statefile.C gui_rpc_server_ops.C Rom 6 Feb 2006 - Bug Fix: when running as a Windows Service we should use suspend_task/resume_task and suspend_network/resume_network instead of setting the activity states. client/ client_state.h main.C David 6 Feb 2005 - Core client: when we switched to Curl, we lost the code that sets gstate.want_network_flag when name resolution fails. I restored this to the Curl code. - The above is a kludge for detecting lack of physical connection. But name resolution can fail for reasons other than lack of physical connection; e.g. hostname might be bad. So if get name resolution failure, try to contact a reference web site, and only if that also fails set want_network_flag. client/ acct_setup.C client_state.C,h net_xfer_curl.C Charlie 6 Feb 2006 -Mac: Changes for Universal Binaries: when running on an Intel Mac, read mach header of project application to determine if it has Intel native executable or only PowerPC executable. If emulating PowerPC on an Intel Mac, treat the application as not supporting graphics. This works around a crash bug when displaying graphics under PPC emulation. Fix multiple compiler warnings and one error. api/ gutil.C mac_icon.C client/ app.h app_graphics.C app_start.C clientgui/ BOINCBaseView.cpp BOINCGUIApp.cpp ViewStatistics.cpp lib/ mac_backtrace.C shmem.C mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ LoginItemAPI.c David 6 Feb 2006 - Slight refinement to next-earlier checkin. Set want_network_flag only if the request to the reference network site results in a CURLE_COULDNT_RESOLVE_HOST Curl error code. client/ acct_setup.C,h gui_http.C,h David 6 Feb 2006 - try to get rid of gcc4 warnings about virtual destructors - project creation bug fix (from Andre Kerstens) api/ graphics_data.h client/ client_msgs.h lib/ msg_log.h py/Boinc setup_projects.py Charlie 7 Feb 2006 -Mac: Adjust XCode project for David's warnings fix. We now build on Mac with no warnings! mac_build/ boinc.xcodeproj/ project.pbxproj David 7 Feb 2006 - Core client: check for a file "global_prefs_override.xml" that overrides the global prefs obtained from server. This lets people manually tweak prefs on a given host, or develop add-on programs that do so. - Remove programs that tested old HTTP code client/ client_state.C,h test_file_xfer.C (removed) test_http.C (removed) test_net_xfer.C (removed) lib/ prefs.C,h David 7 Feb 2006 - Add GUI RPC for rereading global prefs override file client/ client_state.C,h gui_rpc_server_ops.C lib/ gui_rpc_client.h gui_rpc_client_ops.C David 7 Feb 2006 - remove the "new CPU scheduler" code I added a couple weeks ago (sigh) client/ client_state.h client_types.h cs_apps.C cs_scheduler.C David 7 Feb 2006 - Unravel the CPU scheduler code a little: - split set_scheduler_modes() into two functions, set_scheduler_mode() and set_work_fetch_mode(). - make a separate function, enforce_schedule(), that does the actual starting and stopping of processes client/ client_state.h cs_apps.C cs_scheduler.C Bruce 7 Feb 2006 - Added a script (originally provided by DA, I think) to send mass email to project participants. The script allows one to select the TYPE of user, including 'all', 'active', 'lapsed', 'unsuccessful' and so on. Also appends a 'how to opt out' message at the end. Do NOT use this script without testing it. html/ ops/ mass_email.php index.php David 7 Feb 2006 - Manager: change "Tasks" to "Commands". We're using "Tasks" to mean work now. clientgui/ View*.cpp Charlie 8 Feb 2006 -Mac: Enhance BOINC command-line build script with new options to build only the 3 BOINC libraries (libboinc, gfxlibboinc and api_libboinc), only 2 targets (boinc client and boinc_cmd), or a combination of these two (5 targets). The default is still Build_all, which also builds the BOINC Manager. mac_build/ BuildMacBOINC.sh David 8 Feb 2006 - Move CPU scheduling code to a new file, cpu_sched.C - PHP: use $_POST, not $HTTP_POST_VARS client/ Makefile.am client_state.h cpu_sched.C cs_apps.C cs_scheduler.C html/user/ create_account_action.php win_build/ boinc_cli_curl.vcproj Rom 8 Feb 2006 (HEAD) - Tag for 5.3.18 release, all platforms boinc_core_release_5_3_18 David 8 Feb 2006 - Change the way the manager learns about the core client's network status. Replace the GUI RPC with a new one, It returns: 0 if currently have network connections 1 if need a physical connection 2 if don't have connections, and don't need any client/ acct_setup.C client_state.C,h gui_rpc_server_ops.C net_xfer_curl.C lib/ gui_rpc_client.h gui_rpc_client_ops.C Bruce 9 Feb 2006 - Ops page bug fix from Carl Christensen for manage special users page. html/ ops/ manage_special_users.php Rom 9 Feb 2006 - Integrate BOINC Manager into David's last API change. - Breakout the dial up functionality into its own class. - Increase the refresh rate of the list view to 1 second. - Terminology change in the project tab. credit = work done. clientgui/ BOINCDialupManager.cpp, .h (Added) MainFrame.cpp, .h ViewProjects.cpp Charlie 8 Feb 2006 - Mac: Add backtrace capability for Intel-based Macs. Add new sources BOINCDialupManager.cpp, .h, cpu_sched.C to project. Fix a link error with SETI@home. api/ graphics_data.h lib/ MoreAddrToSym.c,h (Added) mac_backtrace.C,h MoreBacktrace.c,h (Added) mac_build/ boinc.xcodeproj/ project.pbxproj David 10 Feb 2005 - cosmetic client/ client_msgs.h client_types.h cpu_sched.C cs_scheduler.C Charlie 10 Feb 2006 - Mac: Free memory allocated for strings when longer needed. lib/ mac_backtrace.C David 11 Feb 2006 - user web: add links to combined stats sites from user page; reorganize user page. - user web: enable pending credit page as long as config file has html/ inc/ stats_sites.inc (new) user.inc user/ pending.php David 11 Feb 2006 - web tweaks html/inc/ user.inc Rom 13 Feb 2006 - Fix dialup functionality - Numerious fixes for CPDN - Enable dialup on platforms other than Windows. clientgui/ BOINCDialupManager.cpp, .h DlgDialupCredentials.h DlgOptions.cpp, .h DlgSelectComputer.h MainFrame.cpp, .h Rom 13 Feb 2006 (HEAD) - Tag for 5.3.19 release, all platforms boinc_core_release_5_3_19 Rom 13 Feb 2006 - Bug Fix: Fix a possible invalid pointer issue with the taskbar notifications. clientgui/ BOINCTaskBar.cpp David 13 Feb 2006 - core client: changes to the way we check for presence of network connection. Don't check for DNS failures, since these won't show up for ~24 hours in some cases. Instead, if we get any HTTP failure, try an HTTP op to a high-availability URL, and if that fails assume it's because of lack of network. NOTE: this checkin prints lots of messages for debugging client/ acct_setup.C,h client_state.C net_xfer_curl.C David 13 Feb 2006 - make test_uc.py work again test/ testbase.py Rom 13 Feb 2006 - Bug Fix: Fix a few issues that were introduced with the new dial up manager functionality. Variables that were once seperate are now mutually exclusive and so two conditions would never have fired when traversing the state machine. clientgui/ BOINCDialupManager.cpp David 14 Feb 2006 - fix bug that broke account manager attach - removed 2nd arg (CurlError) from handle_reply functions. We were using this to check for DNS failure, but we're not doing this anymore. client/ acct_setup.C,h gui_http.C,h David 14 Feb 2006 - core client: on Windows, use commit mode ("wc") for state file (from Walt Gribben) client cs_statefile.C Rom 14 Feb 2006 - Bug Fix: After any of the wizards have been executed, recreate the menus. - Bug Fix: Call Fit() before setting focus to any of the controls. Fit() messes up the input focus even though the control still seems like it is selected and has focus. - Bug Fix: Disable the detach button when the project is managed via an account manager. This only affects the project tab. - Feature Change: Trim down the number of menu items in the taskbar context menu by making the suspend activities and suspend network acivities menu checkbox items. When the items are checked they are suspended, and when they are unchecked they are set to be based on preferences. clientgui/ AccountInfoPage.cpp AccountKeyPage.cpp BOINCTaskBar.cpp MainFrame.cpp ProjectInfoPage.cpp ProxyPage.cpp ViewProjects.cpp David 14 Feb 2006 - user web: on "Statistics" page, remove the XML mumbo-jumbo. Show a list of all current stats sites, and sites that provide signature images. The central repository for these lists is html/inc/stats_sites.inc html/ doc/ stats_sites.dat (removed) inc/ stats_sites.inc user.inc user/ stats.php David 14 Feb 2006 - Manager: rename menu item from "Update now" to "Synchronize with [name of account manager]". Fixed some spelling/grammar. clientgui/ MainFrame.cpp Rom 14 Feb 2006 - Spec Change: Transfers should be 0% until data is actually transfered. - Spec Change: Warn a user that aborting a file transfer will invalidate a task and report an error. - Add some comments around the Update Now menu item so the localizers know what information is expected and make the string contruction the same as with the other menu items. clientgui/ ViewTransfers.cpp Rom 15 Feb 2005 - Spec Change: Adjust the refresh rate for list view items to 1 second. This was previously done in the constructor for CMainFrame but was later changed in SetFrameListPanelRenderTimerRate() for deal with CPU utilization on Mac's. clientgui/ MainFrame.cpp David 15 Feb 2006 - core client: if socket/bind/listen on the GUI RPC socket fails, sleep for a second and retry; repeat 30 times. This will hopefully deal with situations on Windows where we're running at boot time and network comm doesn't work for a few seconds (resulting in the core client exiting, and the Manager being disconnected). client/ client_state.C David 15 Feb 2006 - Manager: fix menu strings and remove erroneous comments clientgui/ MainFrame.cpp Rom 15 Feb 2006 - Bug Fix: Force a project state update even when we are looking at the tasks tab. Copy the updated project state to the existing global state structure. clientgui/ MainDocument.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.C David 15 Feb 2006 - make crypt_prog work on Windows (from James Drews) lib/ crypt_prog.C Charlie 16 Feb 2006 - Mac: Fix menubar draw bug by calling MacInstallMenuBar(). - Since Quit (Exit) is not in File menu on Mac OSX, don't show File menu unless it contains other items in addition to Exit. - Dialup manager doesn't work on Mac or Linux, so compile it and Options dialog Connections tab only for Windows. - Fix a small bug in release scripts. clientgui/ MainDocument.cpp DlgOptions.cpp mac_installer/ release_boinc.sh release_GridRepublic.sh Rom 16 Feb 2006 - Modify the disk usage and statistics tab icons - Add a worning before the account manager wizard will actually defect from an account manager - Remove CompletionUpdatePage.cpp and CompletionRemovePage.cpp - Remove AccountManagerStatusPage.cpp - Remove trace messages from boinc dll. - Followup Eric's last change that delt with prematurly showing 100% progress for tasks due to rounding with a change to file transfer progress using the same scheme. clientgui/ AccountManagerProcessingPage.cpp BOINCWizards.h CompletionPage.cpp ViewStatistics.cpp, .h ViewTransfers.cpp WelcomePage.cpp WizardAccountManager.cpp, .h CompletionUpdatePage.cpp, .h (Removed) CompletionRemovePage.cpp, .h (Removed) AccountManagerStatusPage.cpp, .h (Removed) clientgui/res/ stats.xpm (Added) usage.xpm clientlib/win/ BOINCSENSSink.cpp NetworkTracker.cpp David 16 Feb 2006 - core client: bug fix (hopefully) for situation where a server or proxy doesn't understand Range: in HTTP header, and sends us the entire file when we just want the tail. Solution: if we asked for a partial transfer, and we got a 200 HTTP return, and the file is bigger than it's supposed to be, trim off the part that was there initially. - remove NET_XFER::strCurlResult, file_read_buf* fields client/ file_xfer.C,h net_xfer_curl.C,h Rom 16 Feb 2006 - Followup Eric's last change that delt with prematurly showing 100% progress for tasks due to rounding with a change to file transfer progress using the same scheme. clientgui/ ViewTransfers.cpp David 16 Feb 2006 - clientgui compile on unix clientgui/ Makefile.am Charlie 17 Feb 2006 - Mac: Remove obsolete files from XCode project (CompletionUpdatePage.cpp, .h, CompletionRemovePage.cpp, .h, AccountManagerStatusPage.cpp, .h) - Remove unused variable pWAP to fix compiler warning. clientgui/ WelcomePage.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Rom 17 Feb 2006 - Bug Fix: Remove the defect account manager functionality from the wizard and put it into it's own routine per David's request. - Bug Fix: Fix the context menu item indentation problem on the task bar. clientgui/ BOINCDialupManager.cpp BOINCTaskBar.cpp MainFrame.cpp David 17 Feb 2006 - Add Visual Studio project file for crypt_prog (from James Drews) win_build/ crypt_prog.vcproj Rom 17 Feb 2006 - Bug Fix: Adjust the dialog title code for both the attach to project wizard and the attach to account manager wizard per David's request. clientgui/ WizardAccountManager.cpp WizardAttachProject.cpp Rom 17 Feb 2006 - Bug Fix: Reset the reminder timers when the user updates something. clientgui/ BOINCDialupManager.cpp, .h MainFrame.cpp, .h ViewProjects.cpp ViewTransfers.cpp David 17 Feb 2006 - user web: restore posts link on public user page (not sure how it got deleted) - minor code cleanup html/ inc/ profile.inc user.inc user/ delete_profile.php David 17 Feb 2006 - core client: remove network_status messages client/ client_state.C Walt 17 Feb 2006 - bug fix: Fix core client crash on startup when an unknown tag is part of XML structure. - core client, GUI RPC: changed persistent file transfers to save the count of bytes transferred. Previously the count was only available when the file transfer was active. -Adds member last_bytes_xferred to PERS_FILE_XFER class. -Adds tag to the XML structure and GUI RPC ops. -GUI RPC op FILE_TRANSFER::parse is changed to get the count of bytes transferred (bytes_xferred) from . client/ pers_file_xfer.C, .h lib/ gui_rpc_client_ops.C Charlie 17 Feb 2006 - Mac: - Fix unused variable compiler warnings. - added MoreAddrToSym.c, h, MoreBacktrace.c, h to Makefile - fixes to Mac build scripts - check in XCode project used by buildWxMac.sh script to build wxMac libraries for BOINC. lib/ Makefile.am clientgui/ BOINCTaskBar.cpp mac_build/ buildcurl.sh buildjpeg.sh BuildMacBOINC.sh buildWxMac.sh setupForBOINC.sh wxMac-BOINC.xcodeproj/ (added) project.pbxproj (added) David 17 Feb 2006 - If statefile doesn't have right platform name, reset all projects. This is intended to deal with the case where someone copies all their files from a Mac/PPC to a Mac/Intel and expects everything to work. (suggested by Charlie Fenton). - minor code cleanup client/ check_state.C client_state.C,h cs_statefile.C http_curl.C Bruce 18 Feb 2006 - User RSS page: make it pass the validation check http://feedvalidator.org/ html/ user/ sample_rss_main.php Charlie 18 Feb 2006 - Mac: - Fix compiler setting which caused bug when building on PowerPC. - Fix compiler errors and crash bug. mac_build/ boinc.xcodeproj/ project.pbxproj client/ client_state.C clientgui/ BOINCTaskBar.cpp MainFrame.cpp David 19 Feb 2006 - user web: show error results with pink background (from Rytis Slatkevicius) html/ inc/ result.inc user/ white.css Bruce 20 Feb 2006 - user web: allow sorting of columns of host data for a given user. I have done this in a general way, which should permit any page to be easily modified to permit sorting by any column. html/ inc/ util.inc host.inc user/ hosts_user.php Charlie 21 Feb 2006 - Mac: Add safety timer to kill application if screensaver hangs. - Improve screensaver display when no graphics: don't display 0.00% when client has not yet returned fraction_done; better message. - Add time/date stamp to backtrace output. - Update ReadMe files for universal binaries and version 5.3.19. client/ app_graphics.C ss_logic.C app.C app.h clientgui/ mac/ mac_saver_module.cpp lib/ mac_backtrace.C mac_installer/ GR-ReadMe.rtf ReadMe.rtf Rom 21 Feb 2006 - Check in new suspend menu code. - Bug Fix: Fix memory leak condition in gui rpc. - Bug Fix: Copy gui_urls from new project class to the old class when updating project stats. - Bug Fix: Make sure the default connection is properly displayed in the connection tab. clientgui/ BOINCTaskBar.cpp, .h Events.h MainFrame.cpp lib/ gui_rpc_client_ops.C Rom 21 Feb 2006 - Spec Change: Add the ability for the ACCOUNT_OUT rpc structure to contain custom project error messages clientgui/ ProjectProcessingPage.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.C Bruce 22 Feb 2006 - User web pages. Make RSS feed type application/xml rather than text/xml. Make RSS feed link permanent guid rather than temporary. - Better caching mechanism for hosts_user.php to prevent malicious user from passing _GET[] strings that would lead to unbounded cache usage. html/ user/ hosts_user.php sample_rss_main.php Charlie 22 Feb 2006 - Mac: Update build instructions and scripts for Intel Macs and Universal Binaries. doc/ mac_build.html mac_build/ HowToBuildBOINC_XCode.rtf setupForBOINC.sh Rom 22 Feb 2006 - Bug Fix: ACCOUNT_OUT::parse should not return after encountering the error_num element. - Bug Fix: Make sure we are looking at the ACCOUNT_OUT messages array instead of the attach to project response. clientgui/ ProjectProcessingPage.cpp lib/ gui_rpc_client_ops.C Rom 22 Feb 2006 - Bug Fix: We seem to be having trouble with sub menus on the Mac. So we will make the Snooze menu item a checkbox menu item and default it to an hour. clientgui/ BOINCTaskBar.cpp, .h Events.h MainFrame.cpp David 22 Feb 2006 - core client: configure Curl to not accept self-signed SSL certificates. Projects that use SSL will have to get SSL certificates from Thawte, Verisign etc. This prevents certain man-in-the-middle attacks. - core client: configure Curl to accept any encoding (including gzip) (both from Kevin Reed, WCG) client/ http_curl.C David 22 Feb 2006 - temporarily back out the above SSL change, since it appears that Curl doesn't have a CA bundle by default, so all SSL connections fail. client/ http_curl.C Rom 22 Feb 2006 - Bug Fix: Close down the OpenGL handles as well as the window handles when boinc_finish() is called. - Bug Fix: Add better power management handling to science applications if they have a lingering graphics window open. api/ boinc_api.C, .h windows_opengl.C Rom 22 Feb 2006 - Code Cleanup - Make S@H enhanced compile again on Windows. clientgui/ AccountManagerProcessingPage.cpp MainFrame.h ProjectProcessingPage.cpp lib/ proxy_info.C Rom 23 Feb 2006 (HEAD) - Tag for 5.3.20 release, all platforms boinc_core_release_5_3_20 Walt 23 Feb 2006 - Bug Fix: last_bytes_xferred was only counting the current bytes transferrred on uploads. client/ pers_file_xfer.C Rom 23 Feb 2006 - Bug Fix: When changing how return values are handled, make sure the callers know about the API change. clientgui/ ProjectProcessingPage.cpp Walt 23 Feb 2006 - Bug Fix: PROJECT::attach_via_acct_mgr flag wasn't being initialized or copied, causing the manager to incorrectly disabled the detach button. Also added the flag to PROJECT::print(). lib/ gui_rpc_client_ops.C gui_rpc_client_print.C Charlie 23 Feb 2006 - Mac: Fix compiler warning. clientgui/ BOINCTaskBar.cpp Rom 23 Feb 2006 - Bug Fix: The new project copy operation instead of replace had the drawback of not deleting a project from the listview after a project detach operaton. lib/ gui_rpc_client.h gui_rpc_client_ops.C Rom 24 Feb 2006 (HEAD) - Tag for 5.3.21 release, all platforms boinc_core_release_5_3_21 David 24 Feb 2006 - remove "gzip" from list of encodings accepted by Curl; having it in the list breaks existing projects that use .gz files and decompress them in the app (e.g. Einstein and CPDN). We can fix this by adding a element in ; I'll do this later. - Remove old HTTP code and data that's deprecated by Curl (e.g. timeout, blocksize stuff; stuff related to parsing URL into host/port/file/) remove commented-out code. - GUI RPC: a elements now includes a rather than a . This change doesn't affect the BOINC Manager, which I believe is the only client of this RPC client/ http_curl.C,h net_xfer_curl.C,h pers_file_xfer.C David 24 Feb 2006 - Scheduler: increment the infeasible count for a result in a slot that cannot be sent to a host because the workunit has already be assigned to a different platform. This helps projects that use homogenous redundancy because once the result is marked infeasible it will be checked for compatibility for a given host first, thus leaving results for workunits that have not yet been assigned free for other hosts. (from Kevin Reed, WCG) sched/ sched_array.C Rom 24 Feb 2006 (HEAD) - Tag for 5.3.22 release, all platforms boinc_core_release_5_3_22 David 24 Feb 2006 - Add new config file options, which are typically used together: (double) If a result claims more credit than this, mark it as invalid (bool) Grant the claimed credit, regardless of what other results for this workunit claimed. These are used by Rosetta@home, which has the unusual property that different instances of the same job can do much different amounts of work, depending on the user's project settings. (from David Kim) sched/ sched_config.C sched_config.h validate_util.C sched/validator.C Charlie 25 Feb 2006 - Mac: Fix a small bug in release scripts which made the zip files larger than necessary. mac_installer/ release_boinc.sh release_GridRepublic.sh Charlie 27 Feb 2006 - Mac: Fix tilde expansion bug in setupForBOINC build script. - Fix bug in buildWxMac build script. - Update build instructions to restore info on adding an icon to a science application. - Fix minor bug in diagnostic error message in setMacRsrcForFile(). doc/ mac_build.html mac_build/ HowToBuildBOINC_XCode.rtf setupForBOINC.sh buildWxMac.sh api/ mac_icon.C Bruce 27 Feb 2006 - User web page to show hosts: check all GET[] values to be sure they are legal/allowed. html/ user/ hosts_user.php Rom 27 Feb 2006 - Bug Fix: Restore the encoding behavior back to 5.2 defaults until we have a better solution in place. client/ http_curl.C Rom 27 Feb 2006 - Expose Windows detection code in the DLL to BOINC proper. clientlib/win/ Identification.cpp Identification.h Walt 27 Feb 2006 - Bug Fix: On Win2k and later, use global mutex so only one instance of the core client runs at a time. client/ main.C cliend/win win_util.h Charlie 28 Feb 2006 - Mac: Get path for setMacPList in a more reilable way. api/ boinc_api.h mac_icon.C x_openGL.C David 28 Feb 2006 - Continuing saga of Curl encodings. It seems like if you call set CURLOPT_ENCODING with any value, even "identity", it will accept any encoding. This breaks projects that do application-level gzip. Solution: if the filename ends with ".gz", don't set CURLOPT_ENCODING. Otherwise set it to "" (accept all). NOTE: I think this supports current requirements (for "deflate" to work, and for app-level gzip to work). At some point I'll implement BOINC-level gzip. - Fix the format of elements within . Need a CR between the last line and the tag. - In the course of testing I found that a with no s will crash the core client. Fixed this. client/ client_types.C file_xfer.C http_curl.C Rom 1 Mar 2006 - Bug Fix: Make detach from account managers work again. - Bug Fix: url encode the lookup account and create account rpcs. Canonicalize the urls before use. client/ acct_setup.C clientgui/ MainFrame.cpp lib/ util.C, .h Rom 1 Mar 2006 (HEAD) - Tag for 5.3.23 release, all platforms boinc_core_release_5_3_23 David 1 Mar 2006 - Core client: don't lose tag from acct mgr URL file when make acct mgr RPC - Core client: make RAM size measurement work on HPUX > 4GB client/ acct_mgr.C hostinfo_unix.C Rom 2 Mar 2006 - Bug Fix: When Windows resumes from hibernation return the application to it's previously desired state instead of blindly resuming it. - Bug Fix: Copy all the project data except the master_url for each project status update. api/ boinc_api.C, .h windows_opengl.C lib/ gui_rpc_client_ops.C Rom 2 Mar 2006 - Further refinements to the core client launch code when the core client has been configured as a service. NOTE: boincmgr.exe now explictly depends on boinc.dll clientgui/ BOINCGUIApp.cpp clientlib/win/ Service.cpp win_build/ boinc.sln boinc_dll.vcproj boincmgr_curl.vcproj David 2 Mar 2006 - core client: is a scheduler RPC is pending to a project, do it even if project is suspended via GUI. This is needed to propagate host CPIDs for GridRepublic. It also seems like the right semantics for update requests via GUI (i.e. Update should override Suspended) client/ cs_scheduler.C David 2 Mar 2006 - core client: tighten up XML parsing. When we use copy_element_contents() or dup_element_contents() and don't find the end tag, that's an error, and probably means we skipped over a bunch of critical elements. Fix places where we ignored this error. - don't do fprintf(stderr) from util functions - have strcatdup() return an error (rather than write to stderr and exit()) if realloc() fails client/ schedule_op.C lib/ gui_rpc_client.C parse.C,h sched/ file_upload_handler.C David 2 Mar 2006 - core client: when host CPID changes, delay the resulting scheduler RPCs by 15 seconds client/ cs_scheduler.C David 3 Mar 2006 - core client: on scheduler RPC, if our host ID is zero, set RPC seqno to zero also. This avoids a bug where the scheduler creates a new host record with rpc_seqno zero, and then on the next RPC creates ANOTHER host record because the client's rpc_seqno is > 0 - core client: propagate host CPID change only if we're using an account manager. client/ cs_scheduler.C David 3 Mar 2006 - scheduler: server-side fix for above bug. If we create a new host record, pretend that the client sent rpc_seqno 0 sched/ handle_request.C David 3 Mar 2006 - On project attach: if PROJECT/app_info.xml exists, don't clear out the project directory. This makes life easier for people who use anonymous platform; they don't have to re-download apps. (suggested by Lars Bausch) - Eliminate the PATH_SEPARATOR symbol. Just use / client/ app.C app_control.C app_start.C cs_account.C cs_statefile.C cs_trickle.C file_names.C lib/ filesys.C,h Walt 3 Mar 2006 - GUI RPC: change to to include files to be transferred that don't have a pers_file_xfer object yet. - Manager: Don't show 'uploading' or 'downloading' unless file transfer is active. client/ cs_statefile.C clientgui/ ViewTransfers.cpp David 5 Mar 2006 - Maybe fix bug where work fetch stopped client/ cs_scheduler.C file_names.h Rom 6 Mar 2006 - Bug Fix: Fix a couple text issues when using an existing account in the wizard clientgui/ AccountInfoPage.cpp CompletionPage.cpp Rom 6 Mar 2006 (HEAD) - Tag for 5.3.24 release, all platforms boinc_core_release_5_3_24 Rom 6 Mar 2006 - Update localization Template locale/client/en_US BOINC Manager.mo BOINC Manager.po David 6 Mar 2006 - add db_dump_spec.xml to source tree (in sched/) and copy it when create new project - Core client: after read_global_prefs_override GUI RPC, request CPU reschedule (in case #CPUs changed) client/ file_names.h gui_rpc_server_ops.C py/Boinc/ setup_project.py sched/ db_dump_spec.xml (new) David 6 Mar 2006 - boinc_cmd: add --read_global_prefs_override command lib/ boinc_cmd.C Rom 7 Mar 2006 - Start the account manager wizard anytime their is an acct_mgr_url.xml file and no credentials. clientgui/ MainFrame.cpp David 7 Mar 2006 - scheduler: add element to reply (Lets clients check that they have the right project URL) - core client: if a project is suspended, and a scheduler RPC fails, clear the sched_rpc_pending flag so we don't keep retrying client/ scheduler_op.C sched/ sched_config.C,h server_types.C David 7 Mar 2006 - core client: print project URL in startup message - core client: is is present in a scheduler reply, and it doesn't match project's master URL, print error messages advising detach/reattach. If there's another project with that URL, tell user to detach them both, since (in the BOINC Manager) there's no way to distinguish them. client/ client_state.C scheduler_op.C,h David 7 Mar 2006 - don't allow attaching a project with same name as existing project client/ cs_scheduler.C scheduler_op.C lib/ error_numbers.C Rom 7 Mar 2006 - Bug Fix: Somewhere along the line, the code to store the account manager login name and password hash was removed from the source tree. Put it back in. client/ acct_mgr.C Rom 7 Mar 2006 - Bug Fix: Choose a password nit for account managers. clientgui/ AccountInfoPage.cpp Rom 6 Mar 2006 (HEAD) - Tag for 5.3.25 release, all platforms boinc_core_release_5_3_25 Rom 9 Mar 2006 - Bug Fix: Don't display the minimum password length when a project has account creation disabled in the attach to project wizard. - Bug Fix: Hide the messages from server static box if there are no messages from the server to report. Instead tell the user to check the messages tab. - Bug Fix: Make the next and back button go back to the account info page when an invalid username or password are used. - Bug Fix: Don't use Next and Back buttons in the Statistics view. Localizers need different text because of the changes in context. - Bug Fix: Don't allow an error message to be localized. - Bug Fix: Where possible use a safer string copy function. Defence in depth and all that. client/ acct_mgr.C clientgui/ AccountInfoPage.cpp CompletionErrorPage.cpp hyperlink.cpp NotFoundPage.cpp ViewStatistics.cpp David 9 Mar 2006 - core client: generate a new host CPID only if we sent a nonzero host ID to the scheduler and it returned a (different) host ID client/ cs_scheduler.C David 9 Mar 2006 - user web: minor fixes html/user/ debug.php (removed) profile_search_action.php user_search_action.php David 9 Mar 2006 - Scheduler: avoid creating redundant host records. If a scheduler request has zero host ID but non-blank host CPID, see if there's a host record in the DB with that CPID; if so, pick the most recent (i.e. largest ID) and use it (rather than creating a new host record). This change means that when you detach/reattach to a project, you won't get a new host record. Woo hoo! sched/ handle_request.C David 9 Mar 2006 - core client: if change host CPID, do immediate notification only of projects managed via account manager client/ cs_scheduler.C Rom 11 Mar 2006 Problem: On Windows it seems like random crashes occur with the science application is trying to shutdown. Cause: When a science application that supports graphics is running on Windows it is generally running with three threads. Worker: normally contains the science package and normally does the bulk of the memory allocations and de-allocations. Graphics: normally just reads what the worker thread has produced and displays it in a graphics window. Memory allocations are normally handled on the stack or as global variables which are only used via the graphics thread. Timer: normally handles the IPC to and from the core client. When the quit request is received from the core client the timer thread would call exit which in turn would cause the C Runtime Library to clean up after itself before calling the ExitProcess Windows API which would actually stop the threads and exit the process. The thread that calls ExitProcess causes the heaps to be freed before the other threads have been stopped. The greater the number of allocations the longer the graphics and worker threads are left running and the greater the chance of touching an address of memory that has been freed. Solution: Instead of calling exit call TerminateProcess. TerminateProcess causes the OS to halt all executing threads at the same time and then starts the shutdown process for the process. api/ boinc_api.C, .h windows_opengl.C David 11 Mar 2006 - Scheduler (see checkin of 9 Mar): When we use a host record based on host CPID (presumably because user detached/reattached) mark all in-progress results as over, client error. This prevents them from being resent. Avoid a situation where a result causes problems on a host, user detaches/reattaches to clear things up, and then the host gets sent the same result again. (from Bruce Allen) sched/ handle_request.C transitioner.C David 13 Mar 2006 - change arg of boinc_init_options() from BOINC_OPTIONS& to BOINC_OPTIONS* (so you can call it from C) api/ boinc_api.C,h graphics_lib.C Walt 13 Mar 2006 - Bug Fix: in boinc_exit(), all platforms, call fflush(NULL) so output buffers get flushed. Moves the call outside the #ifdef. - Bug Fix: Account manager shouldn't be contacted if the network is suspended. This affects the automatic (every hour) connections only. api/ boinc_api.C client/ client_state.C Rom 14 Mar 2006 (HEAD) - Tag for 5.3.26 release, all platforms boinc_core_release_5_3_26 Charlie 14 Mar 2006 - Fix compiler bug due to BOINC_OPTIONS* when using objective-C. api/ boinc_api.h Rom 14 Mar 2006 - Bug Fix: Copy over the account manager url from the rpc to the global account manager structure so that the acct_mgr_url.xml file can be created. client/ acct_mgr.C David 15 Mar 2006 - API: add boinc_get_fraction_done(): call this from graphics thread to get latest fraction done reported by worker thread. api/ boinc_api.C,h David 15 Mar 2006 - core client: if an account manager RPC succeeds, do a scheduler RPC to a project that was attached via the AMS, in case the user updated preferences. - web RPC to set user info: make sure global and project preferences are valid XML (well, at least make sure they have start/end tags) client/ acct_mgr.C html/user/ am_set_info.php Charlie 16 Mar 2006 - Add typedef to BOINC_OPTIONS and BOINC_STATUS so boinc_get_status() and boinc_init_options() declarations compile without errors when using straight C and objective-C with GCC-4.0. api/ boinc_api.h Rom 16 Mar 2006 - Bug Fix: If we detect a condition in which we really can't display graphics, then we should notify the GUI's that graphics are not enabled via the ACTIVE_TASK::write function. client/ app.C client_state.C, .h Bruce 16 March 2006 - Make 'last-modified' and '' entries in RSS feed correctly correspond to the last time the project_news.inc file was modified. html/ user/ sample_rss_main.php Rom 16 Mar 2006 - Bug Fix: Only allow the SENS Event Notification registration to happen on Windows 2000 machines or better. This appears to resolve explorer crashing on Win9x machines during shutdown. clientlib/win/ boinc_dll.cpp NetworkTracker.cpp David 16 Mar 2006 - scheduler: when mark a result as sent, make sure its server_state is what we expected (e.g. UNSENT). This guards against two scheduler instances trying to send the same result at about the same time. (from Bruce Allen) db/ boinc_db.C,h db_base.C,h sched/ sched_resend.C sched_send.C Bruce 16 Mar 2006 - missing return value in David's check-in db/ boinc_db.C David 17 Mar 2006 - fix mysql_affected_rows() problem: needed to include mysql.h db/ boinc_db.C db_base.C Rom 17 Mar 2006 - Bug Fix: Stackwalker was using printf's to describe errors during initialization, so I'm changing them to fprintf(stderr, "") style messages so we can at least get more information about the initialization error. - Bug Fix: In fixing the bug above I noticed that the code to load the dbghelp.dll library wasn't attempting to look in the BOINC installation folder for it when executing as part of the science applications. Check in the BOINC installation directory first then fall back to the search path. - Bug Fix: Treat the about box bitmap the same as the wizard bitmaps which gets rid of the transparent whole where the BOINC splat logo should be. The BBC and GridRepublic logos show up correctly but the BOINC splat logo doesn't want to be seen. I'll take care of that in a following release. clientgui/ DlgAbout.cpp lib/ stackwalker_win.cpp Rom 17 Mar 2006 (HEAD) - Tag for 5.3.27 release, all platforms boinc_core_release_5_3_27 Bruce 17 Mar 2006 - Adding some logging for scheduler fixes from yesterday: log specific message saying when a result is unavilable because aonther scheduler instance grabbed it from under our hands. sched/ sched_send.C sched_resend.C sched_locality.C David 17 Mar 2006 - compile fix (from James Drews) lib/ gui_rpc_client_print.C Rom 17 Mar 2006 - Bug Fix: Allow generic read/write/execute for users in the user group for the shared installation type. win_build/installerv2 BOINC.ism David 17 Mar 2006 - Add and elements to account manager requests; tells the AMS what version of global prefs we have - Add optional tag in elements of account manager replies. This tells the core client to do a scheduler RPC to the project. The account manager should set this when it has updated prefs and wants the core client to get them; put in the element for one of the projects to which prefs were successfully sent. - Core client: remove code (from 15 Mar) that contacts a project after every successful AMS operation. client/ acct_mgr.C,h doc/ acct_mgt.php Rom 17 Mar 2006 - Bug Fix: If graphics have been disabled because the client configuration cannot handle them, then report back to the screensaver that graphics are not available instead of cycling through them. This also reduces the bug surface area for applications who are having problems with application graphics since it avoids spinning up the graphics window even though it cannot be seen. client/ ss_logic.C Bruce 20 Mar 2006 - User web pages: outcome validate error was being reported as unknown. html/ inc/ result.inc Charlie 20 Mar 2006 - Add /Library/Receipts/BOINC.pkg to list of files to remove for uninstall. doc/ mac_advanced.php mac_installer/ GR-ReadMe.rtf ReadMe.rtf David 20 Mar 2005 - If a project's web site is turned off (i.e. if the stop_web file is present) the get_project_config.php script returns a ERR_PROJECT_DOWN error, so that the BOINC Manager's Attach Project Wizard will show a "project not available" message before asking for email/password html/user/ get_project_config.php Walt 20 Mar 2005 - Bug fix: Fix issues with proxy authorization: -libcurl resends 'post' requests when negotiating authorization type with the proxy server, needed curl callback function to rewind the data. -add variables to NET_XFER to save proxy server authorization type. NET_XFER::auth_flag is BOOL, TRUE = proxy server uses authorization NET_XFER::auth_type: 0 = libcurl negotiates auth type ~0 = authorization type libcurl used with proxy client/ http_curl.C,h net_xfer_curl.C,h Rom 21 Mar 2005 - BOINC API: When an application is being aborted, dump the backtraces for the timer, worker, and graphics threads. (Windows Only) This helps with applications that are stuck in an endless loop for some reason. We should no longer need to solicit users with debugging experience to track down these kinds of issues anymore. When the user aborts the workunit the needed data should show up in stderr. From there the user can post a message in the forum and go on about their business. api/ boinc_api.C graphics_impl.C windows_opengl.C lib/ diagnostics.C, .h stackwalker_win.cpp, .h Rom 21 Mar 2005 - Move the structure out of the header into the .C file lib/ diagnostics.C, .h Walt 21 Mar 2005 - Bug Fix: Don't use Range: header when resuming file uploads client/ http_curl.C Rom 21 Mar 2006 (HEAD) - Tag for 5.3.28 release, all platforms boinc_core_release_5_3_28 Rom 21 Mar 2006 - Compile fix for Linux client/ http_curl.C net_xfer_curl.C Charlie 21 Mar 2006 - Mac: fix compiler "unused variable" warning. Please remember to remove unused variables from source files before checking them in. lib/ diagnostics.C David 22 Mar 2006 - API: Added some code for drawing characters in a variety of fonts, sizes, textures etc. Also added font files; you'll need to bundle them with your application. See http://www.opengl.org//resources/code/samples/mjktips/TexFont/TexFont.html From Tolu Aina. api/ texfont.c,h txf_util.C txf/ *.txf Rom 22 Mar 2006 - Make moincmgr compile cleanly on Linux distro's where the wxWidget libraries only come in the Unicode flavor. From: Frank S. Thomas clientgui/ AccountManagerProcessingPage.cpp AccountManagerPropertiesPage.cpp BOINCBaseView.cpp BOINCGUIApp.cpp, .h BOINCTaskBar.cpp DlgAbout.cpp MainDocument.cpp MainFrame.cpp ProjectProcessingPage.cpp ProjectPropertiesPage.cpp ProxyPage.cpp ValidateURL.cpp ViewMessages.cpp ViewProjects.cpp ViewResources.cpp ViewStatistics.cpp, .h ViewTransfers.cpp ViewWork.cpp WizardAccountManager.cpp Rom 22 Mar 2006 - Remove the TerminateProcess kludge and make it part of the default behavior. api/ boinc_api.C, .h Charlie 23 Mar 2006 - Mac: Backtrace now always dumps all threads. User abort calls api/ boinc_api.C lib/ mac_backtrace.C Rom 23 Mar 2006 - Fix the boinc_exit(0) call when an abort happens to boinc_exit(ERR_ABORTED_VIA_GUI). - Remove a duplicated class identifier so that the manager will with g++ 4.1 - Bug Fix: Treat 301 and 302 http status codes as a get_project_config.php error so that the invalid project page comes up, instead of the unavailable page. api/ boinc_api.C clientgui/ BOINCTaskBar.h AccountManagerPropertiesPage.cpp ProjectPropertiesPage.cpp David 23 Mar 2006 - Core client: ignore 0 from apps. If an app is being restarted, and hasn't called boinc_fraction_done() yet, the fraction done will be reported as zero even though the actual fraction done is nonzero. client/ app_control.C David 23 Mar 2006 - make_project: - allow use of .htaccess in cgi-bin - if --project_root is specified, put the key_dir there too (from Eric Myers) tools/ make_project Rom 23 Mar 2006 - Bug Fix: Fix a COM initialization error within BOINC DLL. clientlib/lib/ boinc_dll.cpp Rom 23 Mar 2006 - make_project: - Copy missing images (from Eric Myers) tools/ make_project Walt 23 Mar 2006 - Bug Fix: Multiple load/unloads of boinc.dll messed up the idle detection routine. Removed redundant load/free module code so dll is loaded once in beginning, unloaded at program end. client main.C client/win hostinfo_win.C David 24 Mar 2006 - Let team founders get lists of team members (including their email addresses) via XML RPC. The URL is PROJECT/team_email_list.php?teamid=X&account_key=Y&xml=1 This feature lets cross-project teams more easily get their combined email-address list. It doesn't change BOINC's privacy policy; team founders could always get member email addresses. html/ inc/ xml.inc user/ team_email_list.php Walt 25 Mar 2006 - Cleanup unused code left over from testing, adjust temporary buffer size so error messages don't overflow - BugFix: Fix couple of problems with boinc_cmd: --project command options 'suspend' and 'resume' shown as valid but they weren't being parsed. --file_transfer help text shows options in wrong order client main.C lib boinc_cmd.C Rom 26 Mar 2006 - BOINC API: OpenThread() doesn't exist on Win98 or Win95, so get the thread handle by way of DuplicateHandle() since GetCurrentThread() just returns a -2. api/ boinc_api.C windows_opengl.C Rom 26 Mar 2006 - Bug Fix: Finish the implementation of the "Hide Graphics" button. - Bug Fix: Don't enable the "Copy selected message" button until at least one message is highlighted. client/ gui_rpc_server_ops.C clientgui/ MainDocument.cpp, .h ViewMessages.cpp ViewWork.cpp lib/ boinc_cmd.C gui_rpc_client.h gui_rpc_client_ops.C locale/client/en_US/ BOINC Manager.mo, .po Rom 26 Mar 2006 - Bug Fix: Provide that little extra tid bit of information that might keep somebody from aborting a CPDN task when it is 70% complete and not over due. clientgui/ ViewWork.cpp locale/client/en_US/ BOINC Manager.mo, .po Rom 26 Mar 2006 - Bug Fix: Since we changed over to async connections the manager has been shutting down which ever client is was currently connected to. So wait until we have successfully reconnected to the local BOINC client and verify we are connected to the local BOINC client before sending the quit command. clientgui/ BOINCGUIApp.cpp MainDocument.cpp, .h Rom 27 Mar 2006 - Bug Fix: When choosing a default value for something, use a value that connot be confused with valid data otherwise you might overwrite valid default values setup during object creation. clientgui/ BOINCListCtrl.cpp Rom 27 Mar 2006 - Bug Fix: Make sure that the thread that has caused an exception dumps it's callstack even if it didn't register itself to the diagnostics functions. lib/ diagnostics.C Walt 27 Mar 2006 - Enable some CBOINCDialupManager functions for non MS-Windows platforms. As the auto-dialer doesn't work on these systems, just display a notification box telling the user an Internet connection is needed. clientgui/ MainFrame.cpp BOINCDialupManager.cpp Walt 27 Mar 2006 - Second half of CBOINCDialupManager changes clientgui/ BOINCDialupManager.cpp, h Makefile.am Rom 27 Mar 2006 (HEAD) - Tag for 5.3.29 release, all platforms boinc_core_release_5_3_29 Walt 28 Mar 2006 - Bug Fix: 'Need Internet connection' message wasn't being displayed on non MS-Windows systems. clientgui/ MainFrame.cpp Rom 28 Mar 2006 - Bug Fix: On non-windows systems be sure to call the wxApp::Yield() function to process outstanding window messages when shutting down. This should resolve the issue of CDocument::Poll() not being called on shutdown when a connection to the local BOINC client needs to be reestablished. - Bug Fix: Disable the 'Hide graphics' button for now. clientgui/ BOINCGUIApp.cpp ViewWork.cpp Walt 28 Mar 2006 - Bug Fix: Use alert box for 'need Internet connection' message when manager window is hidden. clientgui/ BOINCDialupManager.cpp Rom 28 Mar 2006 - Bug Fix: Try a different method to notify the local BOINC CC that it needs to shutdown on all platforms. - Bug Fix: Discard notification only events for platforms other than Windows until we can figure out a better way to display them. clientgui/ BOINCGUIApp.cpp MainFrame.cpp Charlie 28 Mar 2006 - Mac: Fix compiler warnings. clientgui/ BOINCDialupManager.cpp ViewWork.cpp Walt 28 Mar 2006 - Bug Fix: Show 'needs Internet connection' dialog only when the manager is the foreground window. Comment out the alert messages until they're implement in non-MS-Windows platforms clientgui/ BOINCDialupManager.cpp Rom 28 Mar 2006 (HEAD) - Tag for 5.3.30 release, all platforms boinc_core_release_5_3_30 Walt 28 Mar 2006 - Bug Fix: Manager window always shows 'active' on MAC, so check whether application has the focus instead. clientgui/ BOINCDialupManager.cpp David 29 Mar 2006 - boinc_cmd: fix boinc_cmd --project X resume and boinc_cmd --project X suspend - user web: RPC to get team membership: if account_key missing, show members but omit email addresses html/ inc/ xml.inc ops/ mass_email.php user/ team_email_list.php lib/ boinc_cmd.C David 30 Mar 2006 - API: move code that uses GLUT character-drawing functions to a separate file (gutil_text.C). This makes it easier for apps to not include GLUT. - API: if you compile gutil.C with -DSANS_JPEGLIB, you won't get any calls to jpeglib functions. api/ gutil.C gutil_text.C Rom 30 Mar 2006 - Make the SENS initialization code non fatal when an error occurs. - Change the Windows installer so that the DLLs that BOINC is dependant on are are contained in a seperate component that is always installed and removed duplicate references from the install type specific components. This shrinks the install package by 2MB. clientlib/win/ boinc_dll.cpp win_build/installerv2/ BOINC.ism David 30 Mar 2006 - Core client: fix nasty crash bug. If a result had a lot of output files, its failure message (originating from X) could exceed 1024 chars. It gets passed up to show_message(), and is copied (by strcpy()) into a 1024-char buffer. Crash! Fixed this by using strlcpy() instead. - Core client: return file errors in a std::string instead of char* - Core client: in generating XML descriptions of file failures, insert X elements only if there's a message. At some point we should replace char[N] with std::string everywhere in the code. Fix-size buffers are crashes waiting to happen. I wish you could sprintf() to a string. client/ client_state.C client_types.C,h main.C Rom 30 Mar 2006 - Bug Fix: Initializing some of the dependant DLLs on Windows was causing us to bump up against the 30 second marker and making the service control manager think something was wrong and kill the BOINC service on boot. I moved the bulk of the initialization code to boinc_main_loop which is called by the service control manager when running as a service. This change will keep this from happening in the future if we take on any more dependencies. client/ main.C clientlib/win/ BOINCSENSSink.cpp Rom 30 Mar 2006 (HEAD) - Tag for 5.3.31 release, all platforms boinc_core_release_5_3_31 Charlie 30 Mar 2006 - Mac: Fix "unused variable" compiler warning. - Mac: "Fix" bug 460: Mac OS X automatically puts a "Preferences" item in the BOINC menu, but we don't use it so it was disabled. This was confusing some users, so hide (delete) this menu item. - Mac: add gutil_text.C to project. client/ main.C clientgui/ MainFrame.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 30 Mar 2006 - API: move GLUT-related includes to a separate file, which is included only from files that need it. api/ boinc_gl.h boinc_glut.h (new) gutil_text.C x_opengl.C Eric 2 Apr 2006 - Added stream memory bandwidth benchmark. Still needs modifications to timing logic and possibly changes to allow multiple threads or processes. This is not yet added to Makefiles or called from the code. client/ stream.C (new) David 3 Apr 2006 - Add script to find results with no corresponding workunit html/ops/ db_cleanse.php Rom 3 Apr 2006 - Bug Fix: When switching from any state to SS_STATUS_ENABLED make sure we set the ss_status back to SS_STATUS_ENABLED. - Bug Fix: Increase the screensaver polling frequency when the screensaver is set to anything other than SS_STATUS_ENABLED. This makes the status messages disappear faster when the graphics app is started again. - Bug Fix: Right justify Work:Progress and Disk:Diskspace list view columns. client/ ss_logic.C client/win/ win_screensaver.cpp clientgui/ ViewResources.cpp ViewWork.cpp David 4 Apr 2006 - back end: have the "dir_hier_path" script create the fanout directory if it's not there. tools/ dir_hier_path.C David 4 Apr 2006 - Finish script to delete orphan results html/ops/ db_cleanse.php David 4 Apr 2006 - core client: define a result's "computation deadline": it's report deadline minus network connect period and minus cpu scheduling period. Use this, rather than report deadline, in CPU scheduling. - take network connect period into account in deciding when results have to be reported (from John McLeod) client/ client_types.C,h cpu_sched.C cs_scheduler.C Rom 5 Apr 2006 - Bug Fix: Set the AccountInfo.cpp control states before attempting to set the text for the controls. Otherwise we'll see text that says 'choose a password' instead of 'password'. clientgui/ AccountInfoPage.cpp Charlie 5 Apr 2006 - Mac: New shell script to sets up Mac to run BOINC Client as a daemon / service. Note: when running as a daemon, the graphics (screensaver and "Show Graphics" button) work only if BOINC's owner is the logged in user. - Added boinc_glut.h to XCode project. mac_build/ boinc.xcodeproj/ project.pbxproj Make_BOINC_Service.sh (new) Rom 5 Apr 2006 - Bug Fix: Change the progress field to display xx.xxx% since some projects use that to debug looping issues. - Bug Fix: In the screensaver make sure that the foreground window is either a screensaver window or a BOINC application window. If another window is the foreground window, shutdown the screensaver. client/win win_screensaver.cpp clientgui/ ViewWork.cpp Rom 6 Apr 2006 - Bug Fix: Add some text about connectivity problems to the proxy into page. - Bug Fix: Remove the code that was keeping the 'Not Found' page from going to the 'Account Info' page. clientgui/ ProxyInfoPage.cpp WizardAccountManager.cpp WizardAttachProject.cpp Rom 6 Apr 2006 (From Frank S. Thomas) - Bug Fix: Allow a connection request to reset a connection attempt to the local computer or another computer. clientgui/ MainDocument.cpp Rom 6 Apr 2006 (From Darrel Holz) - Bug Fix: Fix the Logo display for BOINC when not running as a branded client. clientgui/ DlgAbout.cpp Charlie 7 Apr 2006 - Mac: Fix bug in shell script to sets up Mac to run BOINC Client as a daemon / service. mac_build/ Make_BOINC_Service.sh David 7 Apr 2006 - add graphics to sample app api/ gutil.C txt_util.C apps/ upper_case.C Charlie 7 Apr 2006 - Mac: If launching client as a daemon / service at system startup, retry gethostbyname() for up to 10 seconds if needed, to allow system support to become available. client/ hostinfo_network.C Rom 8 Apr 2006 - Bug Fix: Make stackwalker more useful on Windows by dumping the function pointers and registers for each thread. Cut away all the extra code. lib/ diagnostics.C stackwalker_win.cpp, .h Rom 9 Apr 2006 - Bug Fix: Add a check to stackwalker so that if it detects it is running on Win9x it'll switch over to the Win9x compatible dbghelp.dll. After checking it out, it doesn't require any changes to the stack walker code as it has the 64 bit function exports. So all that was required was just changing which DLL was used to get the function pointers. - Bug Fix: Upgrade to the latest stable debugging tools from Microsoft. lib/ stackwalker_win.cpp win_build/installerv2/redist/Windows/x86/ dbghelp.dll dbghelp95.dll (Added) srcsrv.dll (Added) symsrv.dll (Added) Rom 9 Apr 2006 - Put the infrastructure in place to be able to use Symbol Servers. This is just the basics. Many details need to be worked out. lib/ diagnostics.C, .h stackwalker_win.cpp, .h Rom 10 Apr 2006 - Bug Fix: Fix a crash condition where a result maybe in the list view but may have already been cycled out of the system. There is a brief period of time where the result is being sent back to the scheduler and the user may switch back to the work tab where this crash would occur. clientgui/ ViewWork.cpp Rom 10 Apr 2006 (boinc_core_release_5_4) - Tag for 5.4.0 release, all platforms boinc_core_release_5_4 Charlie 10 Apr 2006 - Extend Mac screensaver safety timer of 21 Feb 2006 to all platforms. (checked this in to both HEAD and boinc_core_release_5_4 branches.) client/ app_graphics.C ss_logic.C app.C app.h Charlie 11 Apr 2006 - Changes to allow building upper_case application on Mac. api/ texfont.c,h txf_util.C,h David 11 Apr 2006 - rename sample en.po so update won't overwrite project's file (from Eric Myers) - use "request" instead of "RPC" in user-visible messages html/languages/project_specific_translations/ en.po (removed) sample_en.po (new) sched/ handle_request.C Rom 11 Apr 2006 - Bug Fix: Account creation controls should be disabled for all account manager code paths, not just update. - Bug Fix: Extend the timeout for the graphics mode ack to 30 seconds in the screensaver poll function to give LHC and CPDN more time to create and display their graphics window when going into screensaver mode. - Bug Fix: Add some extra logic to the screensaver to handle detection of idle user input without needing to be the active window. If the science application window hasn't processed a window message for 5 seconds do an additional check to determine if any mouse or keyboard activity has been detected. If activity has been detected, shutdown the screensaver system. - Bug Fix: Add a please wait message to the screensaver for applications that take a long time before they display their own graphics. client/ ss_logic.C client/win/ boinc_ss.h boinc_ss.rc win_screensaver.cpp, .h clientgui/ AccountInfoPage.cpp Eric K 12 Apr 2006 - Changed some function defines to inlines (i.e. formerly "#define read _read" becomes "static inline read(...) {return read(...);}) These defines were breaking some classes that had methods named read(). - Altered boinc_fopen() to call _fsopen under _WIN32 with the sharing flags set to the most permissive value. This may solve some of the virus scanner locking problems. - Fixed some problems with non-MSC compilers with diagnostics.[Ch] - Added checks for stdint.h and inttypes.h to configure.ac lib/ boinc_win.h filesys.C diagnostics.[Ch] configure.ac Rom 12 Apr 2006 - Bug Fix: Fix a crash on Win9x when leaving the screensaver and password protection is enabled. - Bug Fix: Do not allow the Win9x password dialog to get stuck behind the main screensaver windows, otherwise the only thing you can do is reboot the machine. - Include the thread id with trace statements. client/win/ win_screensaver.cpp, .h lib/ diagnostics.C David 13 Apr 2006 - Add texfont stuff to API makefile - Unix graphics API: when looking for .so graphics file, if it's not a symlink file, prepend "./" to the name so that ldopen() will find it. - diagnostics: don't buffer stderr api/ Makefile.am graphics_lib.C gutil.h texfont.h client/ acct_setup.C html/user/ edit_forum_preferences_action.php lib/ diagnostics.C David 13 Apr 2006 - graphics API: in txf_load_fonts(), use boinc_resolve_filename() so that font files can be in the project dir api/ txf_util.C Rom 13 Apr 2006 - Bug Fix: Adjust the startup sequence on Windows a bit so that the window doesn't flicker. Another perk is that on startup the window won't display itself until it can fully deal with user input. - Define some basic data types for MINGW and CYGWIN clientgui/ BOINCGUIApp.cpp MainFrame.cpp, .h lib/ boinc_win.h Rom 13 Apr 2006 - Bug Fix: Fix a shutdown bug that was causing the manager to wait the full 10 seconds before closing itself. clientgui/ BOINCGUIApp.cpp Charlie 14 Apr 2006 - Mac: OnShow() is not implemented in wxMac-2.6.2, so move code from CMainFrame::OnShow() into new method CMainFrame::SetWindowDimensions(). Call SetWindowDimensions() from CMainFrame::OnShow() and also from Mac-only method CMainFrame::Show(). - Mac: Fix compile errors due to xpm files. - Save main window dimensions on Hide so SaveState can write them even if the window is hidden before application exit. clientgui/ BOINCGUIApp.cpp MainFrame.cpp, .h David 14 Apr 2006 - Core client: change the way that application priority is set on Unix Old: fork/exec app, then setpriority(pid) PROBLEM: race condition. When the app starts, it's initially at regular priority. If it immediately creates another process, the child process has regular priority (and continues to even after the app's priority is lowered). New: fork, lower priority, exec. (From Mike Fleetwood) apps/ upper_case.C client/ app_start.C David 14 Apr 2006 - User web: add Web RPC for setting forum preferences (repurpose existing script) html/user edit_forum_preferences_action.php Rom 14 Apr 2006 - Bug Fix: Apparently Windows and Mac message boxes by default have an OK button and Linux does not. So add wxOK to all the alerts sent. clientgui/ BOINCDialupManager.cpp MainFrame.cpp Rom 15 Apr 2006 - Enable proxy support to retrieve symbols from a web based symbol store. - Enable trace debugging for various components that the Windows debugging environment uses. This only works with tools that can trap OutputDebugString based messages. It is something we may support in a future release. If dbghelp.dll or symsrv.dll ever use their callbacks, that output will be logged to stderr.txt lib/ diagnostics.C stackwalker_win.cpp, .h David 16 Apr 2006 - core client: get rid of min_report_rpc_time client/ client_types.C,h cs_scheduler.C Rom 16 Apr 2006 - Bug Fix: Add cache timestamps for project, task, transfers, statistics, and resources. clientgui/ MainDocument.cpp, .h Rom 16 Apr 2006 - Bug Fix: Include file version informaton in the debugger module list lib/ stackwalker_win.cpp Charlie 17 Apr 2006 - Mac bug fix: If window was never opened, window dimensions were never read from preferences, so SaveState wrote bad values in preferences. - Mac: Don't customize name of BOINC Data directory for branding; change "GridRepublic Manager" to "GridRepublic Desktop; make branding script more robust if there is a space in any file or directory name or path. - Mac: Release scripts automatically update ReadMe version numbers. - Mac: clarify that upgrade warning from older versions applies only to Intel Macs. clientgui/ BOINCGUIApp.cpp MainFrame.cpp mac_installer/ GR-ReadMe.rtf PostInstall.cpp preinstall ReadMe.rtf release_boinc.sh release_GridRepublic.sh doc/ versions.inc Rom 17 Apr 2006 - Clean up the caching scheme used in the manager - Remove the message cache update for all tabs except the messages tab. - Remove the project update from the work tab. Use a new flag being introduced to show if the project has been suspended via GUI. clientgui/ MainDocument.cpp MainFrame.cpp ViewMessages.cpp ViewProjects.cpp ViewResources.cpp ViewStatistics.cpp ViewTransfers.cpp ViewWork.cpp David 17 Apr 2006 - get rid of the versions of xml_escape() and xml_unescape() that take std::string args. These are too inefficient. - boolean constant is "true", not "TRUE" client/ client_types.C lib/ app_ipc.C diagnostics.C parse.C,h proxy_info.C sched/ db_dump.C db_purge.C server_types.C David 17 Apr 2006 - GUI RPC: add an optional tag to elements. This tells the Manager that the project is suspended without having to do a separate get_projects GUI RPC client/ client_types.C lib/ gui_rpc_client.h gui_rpc_client_ops.C Rom 17 Apr 2006 - Use the boolean flag now defined in the result instead of looking it up in the project structure. clientgui/ ViewWork.cpp Walt 17 Apr 2006 - Bug Fix: Fix a problem where it was passing the xml tag line instead of the string to xml_unescape. lib/ proxy_info.C Rom 18 Apr 2006 - Bug Fix: Move the project_suspended_via_gui flag from the client state file write routine to the gui write routine. client/ client_types.C David 18 Apr 2006 - make match_tag(), parse_int(), parse_double() into inlines - remove setlocale() calls from parse_int(), parse_double(). Numbers in XML (including GUI RPCs) are always in standard format. Whoever writes XML (e.g. the Manager) must ensure this. lib/ parse.C,h David 18 Apr 2006 - core client: better messages on network check - unix compile fix client/ acct_setup.C lib/ parse.h Charlie 18 Apr 2006 - Mac: Add texfont.C,h and txf_util.C,h to XCode project for building graphics library; fix compiler warning. api/ texfont.c,h clientgui/ MainFrame.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 18 Apr 2006 - if no physical network connection (gstate.need_physical_connection is set) then don't increment failure count for file transfers and scheduler RPCs. (avoid ending up with 2-week backoff when network is down for a while.) client/ pers_file_xfer.C scheduler_op.C David 18 Apr 2006 - improve network-related messages Add error_msg field to NET_XFER. Put Curl error messages here; print them at a higher level, where we can give the context client/ acct_setup.C net_xfer_curl.C,h scheduler_op.C Rom 18 Apr 2006 - Bug Fix: setlocale is needed in environments where the C runtime library will attempt to use the current locales' numerical formating rules to extract integer or floating point numbers. The core client doesn't observe local formating rules and defaults to the "C" locale. When parsing data from the CC be sure to flip the locale to "C" and return it when your done. lib/ gui_rpc_client_ops.C David 19 Apr 2006 - scheduler: put \n after global and project prefs in reply message; otherwise, if those fields don't have \n, we end up with 2 elements on 1 line and it doesn't parse right. sched/ server_types.C Walt 19 Apr 2006 - Code cleanup: remove duplicate calls to xml_unescape. - Bug Fix: Change HTTP redirect limit to 50 - Bug Fix: Fix problems with socks5 proxys: - Auth negotiation is handled by libcurl, remove that from BOINC - Set connection timeouts to 20 seconds *NOTE* Using socks5 proxies will cause BOINC to block until a connection is made to the end server. BOINC will 'lock up' until the connection attempt completes or times out. client/ http_curl.C lib/ proxy_info.C Rom 19 Apr 2006 - If an application hasn't initialized the diagnostics system, provide reasonable defaults and initialize it for them. This only handles the boinc_init() and boinc_init_graphics() cases. api/ boinc_api.C graphics_api.C lib/ diagnostics.C, .h Rom 19 Apr 2006 - Update dependancies. curl/ openssl/ zlib/ Walt 20 Apr 2006 - Enable network tracing when log_flag is set. Dumps libcurl info messages and http header information. client/ http_curl.C,h Rom 21 Apr 2006 - Bug Fix: Fix the account lookup and get project config rpcs which I broke fixing the setlocale stuff. lib/ gui_rpc_client_ops.C David 21 Apr 2006 - Slight philosophy change in deciding whether network communication is working (e.g. by checking a reference web site when an HTTP operation fails): the core client, not the Manager, is in charge of this. - Eliminate the lookup_website() and lookup_website_poll() GUI RPCs - Add a new possible return value to the "network_status" GUI RPC: 3 means the client is currently trying to access a reference web site. Check back in a few seconds to see the outcome. client/ acct_setup.C,h client_state.C gui_rpc_server_ops.C net_xfer_curl.C lib/ gui_rpc_client.h gui_rpc_client_ops.C David 21 Apr 2006 - use an object constructor/destructor to do setlocale() stuff. Use char* instead of string (??) Coding style: never have the same lines of code appear over and over lib gui_rpc_client.h gui_rpc_client_ops.C Walt 21 Apr 2006 - Bug fix: When tracing network activity, increment trace_id when request is created. All the trace records for that network operation will have the same request number. client/ http_curl.C David 21 Apr 2006 - Kludge to make things work even when a project left out a tag in its GUI URL list. - comment out google/yahoo code in the BOINC Manager. Rom: please finish this job clientgui/ AccountManagerPropertiesPage.cpp BOINCDialupManager.cpp ProjectPropertiesPage.cpp lib/ gui_rpc_client_ops.C Walt 22 Apr 2006 - Bug fix: Don't use NTLM authorization for proxys. client/ http_curl.C David 23 Apr 2006 - core client: add missing \n to error string for failed results client/ client_state.C Rom 24 Apr 2006 - Bug Fix: Fix a connection to a remote machine bug. clientgui/ MainDocument.h Rom 25 Apr 2006 - Bug Fix: Fix for missing includes. client/ cpu_sched.C Rom 25 Apr 2006 - Bug Fix: PPM files need to be closed when we are finished using them or we'll experience a handle leak - Bug Fix: After drawing the PPM bitmap on an OpenGL surface, free the memory. api/ gutil.C Rom 25 Apr 2006 - Bug Fix: Hide everything about a thread if it has been closed to prevent identity information being disclosed as part of the subject line. html/user/ forum_thread.php Walt 26 Apr 2006 - Bug Fix: Save local copy of locale so it gets restored properly later. lib/ gui_rpc_client.h Charlie 27 Apr 2006 -Mac: Change XCode project. build instructions and build scripts to use curl-7.15.3 and to apply Walt's patch to curl-7.15.3/lib/url.c file. doc/ mac_build.html mac_build/ buildcurl.sh buildjpeg.sh setupForBOINC.sh HowToBuildBOINC_XCode.rtf boinc.xcodeproj/ project.pbxproj Rom 27 Apr 2006 - Bug Fix: Create a BOINC Service shutdown custom action for the installer since the installer technology wants to wait until after it has found out which files are in use to shutdown the service. win_build/installerv2/redist/Windows/src/boinccas/ CAShutdownBOINC.cpp, .h (Added) win_build/installerv2/redist/Windows/x86/ boinccas95.dll boinccas.dll Charlie 28 Apr 2006 - Mac: Fix bug of 17 April creating BOINC Data directory. - Change shell script which sets up Mac to run BOINC Client as a daemon / service to launch BOINC only if BOINC Data directory exists. - Flush output of SetVersion and add Run Script phases to XCode project to insure that updated info.plist file with correct version number is put into the BOINC Manager, ScreenSaver, SystemMenu and PostInstall bundles. clientgui/ BOINCGUIApp.cpp Mac/ SetVersion.C mac_build/ Make_BOINC_Service.sh boinc.xcodeproj/ project.pbxproj David 28 Apr 2006 - create_work (both program and function): handle element in WU template file - remove assert() client/ cpu_sched.C html/inc/ stats_sites.inc tools/ backend_lib.C David 28 Apr 2006 - core client: if an input file has set, don't try to download it. This allows apps to use "initialization" files that are large and/or computationally expensive to generate. The app generates the file once, and it will be available (assuming is set) for subsequent workunits. client/ app_start.C cs_apps.C cs_files.C David 28 Apr 2006 - back end: handle in WU file infos. There are for input files that are generated by the app. We don't need to generate MD5, list URLs, etc. - user web: enclose scheduler list in comments (from Roberto Virga) html/user/ sample_index.php tools/ backend_lib.C Rom 28 Apr 2006 (by Frank S. Thomas) - Bug Fix: The shutdown procedure should be passing ANSI strings to the GUI RPC's instead of Unicode strings. - Bug Fix: Remove the --no-unicode flags from configure.ac when trying to determine which wxWidget libraries to use. / configure.ac clientgui/ BOINCGUIApp.cpp David 30 Apr 2006 - API: add all_threads_cpu_time flag to BOINC_OPTIONS for applications that have more than one CPU-intensive thread. Measure the CPU time of whole process, not just worker thread. - Less insistent messages when client has worng URL for project api/ boinc_api.C,h client/ cs_scheduler.C lib/ util.C,h David 1 May 2006 - Web RPC: return flag if user is founder of their team html/user/ am_get_info.php David 1 May 2006 - API: win compile fix api/ boinc_api.C Rom 1 May 2006 - Windows Runtime Debugger Update: New Features: 1. Enumerates and dumps the backtraces for all threads within the process space. 2. Monitors and records data sent to the debugger viewport via OutputDebugStringA and OutputDebugStringW 3. Displays the thread id and process id within the output. 4. Display the topmost window titles, class, processid, and thread id. api/ boinc_api.C graphics_api.C windows_opengl.C clientgui/ stdwx.h lib/ boinc_win.h diagnostics.C, .h diagnostics_win.C (Added) stackwalker_imports.h (Added) stackwalker_win.cpp win_build/ boinc_ss.vcproj boincmgr_curl.vcproj libboinc.vcproj Charlie 1 May 2006 - Mac: Fix bugs when linking with wxMac-2.6.3. clientgui/ mac/ MacSysMenu.cpp Rom 1 May 2006 - Add a commandline option to the screensaver to do a simple RPC so that we can trick the firewall packages into displaying a dialog asking for user approval before the real screensaver ever launches. - Fix the remaining issues with the Windows Runtime Debugger so that it can now trap DBGHELP.DLL and SYMSRV.DLL messages and log them as part of the crash. - Remove some extra verbose messages from stdout and stderr in the client library. client/win/ win_screensaver.cpp clientlib/win/ NetworkTracker.cpp lib/ diagnostics.h diagnostics_win.C Rom 2 May 2006 - Have the BOINC Manager perform the screensaver test everytime is successfully makes a connection to the localhost core client. It executes so fast it doesn't even show up in the process list and if the user ever switches firewall packages it'll at least prevent the machine from going into limbo when the screensaver is spposed to shutdown. clientgui/ BOINCGUIApp.cpp, .h MainFrame.cpp Rom 2 May 2006 - Bug Fix: Calculate the page size after the OnChangedEvent is fired and then set the dialog size. Should keep the wizard pages from clipping the text. - Bug Fix: Change the process execution code to use wxExecute since it is async. If for some reason the old screensaver doesn't get replaced by setup, we don't want to block the main UI thread. clientgui/ BOINCGUIApp.cpp wizardex.cpp David 2 May 2006 - feeder: change the way -allapps work, so that results from different apps alternate in shared memory. This ensures that when an RPC returns >1 result, they'll be for different apps. TODO: make the ratio configurable. - feeder: add -priority_order_create_time: enumerate results by increasing workunit create time - feeder: add -purge_stale X option: removes items that have been in shared memory more than X minutes. - scheduler: parse user project preference for elements of the form N. If any are found, only send the user work for those applications. TODO: document the above All the above from Kevin Reed of World Community Grid sched/ feeder.C sched_send.C,h sched_shmem.h server_types.h show_shmem.C David 2 May 2006 - got the above checkin compiling on linux - server: removed all_apps arg to DB_WORK_ITEM::enumerate() - removed some unused code in client client/ client_state.C client_types.h db/ boinc_db.C,h sched/ feeder.C handle_request.C sched_send.C Walt 2 May 2006 - Display HTTP status message or code when its not 1xx or 2xx. - Add a few more HTTP status messges to boincerror(). client/ net_xfer_curl.C lib/ util.C Rom 3 May 2006 - Bug Fix: To keep the Mac from clipping text in the wizard increase the default width of a wizard page. The width of each character is wider with the Mac fonts. clientgui/ wizardex.cpp David 3 May 2006 - user web: add "previous 20" link to result list page (from Rytis Slatkevicius) - code formatting, comments api/ x_opengl.C html/ user/ results.php inc/ result.inc sched/ feeder.C Rom 4 May 2006 - Bug Fix: Increase the WaitHint from 10 seconds to 30 seconds so the service mode install isn't so jumpy when it takes awhile to shutdown. client/win/ win_service.cpp Charlie 5 May 2006 - Mac: Clean up build scripts for jpeg and curl. mac_build/ buildcurl.sh buildjpeg.sh David 5 May 2006 - web user: fix typo (from David Braun) html/user/ get_project_config.php David 5 May 2006 - GUI RPC sockets need to be close-on-exec (otherwise applications inherit them) - compile fix: change longs to ints client/ gui_rpc_server.C net_xfer_curl.h Rom 8 May 2006 - Windows Runtime Debugger Update: 1. ERR_NESTED_UNHANDLED_EXCEPTIONS no longer exist. 2. Stack overflow conditions no longer cause the exception handling code to blow up. When a thread has an unhandled exception it stores the exception pointer record in the thread list, signals the unhandled exception monitor and then goes to sleep waiting on a mutex that it will never be and to aquire. If any other threads throw an unhandled exception they'll store their exception records and go to sleep. The unhandled exception monitor wakes up when signaled and suspends all the non-excempt threads and proceeds to dump all the information it has aquired on them to stderr. api/ boinc_api.C windows_opengl.C lib/ diagnostics.C, .h diagnostics_win.C, .h error_numbers.h stackwalker_win.cpp util.C Charlie 8 May 2006 - Mac: Add callback glutPassiveMotionFunc(mouse_move) to dismiss screensaver on mouse move when no mouse button is pressed. api/ x_opengl.C Walt 8 May 2006 - Bug fix: DNS lookup when network was unavailable consumed all available CPU. Fix limits times thru loop and adds a short sleep before breaking out of it. client/ client_state.C David 9 May 2006 - Remove the constant MASTER_URL from html/project/project.inc. Instead, use the element from config.xml. - PHP translation code: check for existence of last_compile_timer before getting its mod time (avoid error msg) - small fixes so the web site created by make_project doesn't have broken links and images - updates to sample front page - make_project: copy a few additional files (e.g. graphics, en.po) html/ inc/ email.inc translation.inc util.inc languages/translations/ en.po project.sample/ project.inc user/ intro.php (removed) sample_index.php py/Boinc/ setup_project.py tools/ make_project David 9 May 2006 - core client: remove account mgr "already attached" message client/ acct_mgr.C Rom 10 May 2006 - IsDebuggerPresent first appeared in the Win98 timeframe, dynamically link to it if it is there, otherwise assume that the debugger is not present. lib/ diagnostics_win.C Rom 10 May 2006 - Make the capturing of debugger messages configurable via the registry. Some software that plays music and DVDs is a little to chatty and when we are capturing debugger output it causes the playback software to freak out and become unplayable. lib/ diagnostics_win.C Eric K 11 May 2006 - (pthreads) Put a mutex around the cpu time calculation in boinc_worker_thread_cpu_time(). If called from multiple threads, this would occasionally report the wrong CPU time, which could cause applications to abort. - (unix) Added check of return value from getrusage() and retry on failure. - (WIN32) Added check of return value from timeSetEvent() and retry on failure. - (WIN32) Added timeKillEvent() calls to the boinc_exit() function ensure that timers are freed properly. - Added function boinc_timer_thread_active() function that apps can call to see if the timer thread was properly created. - Added function boinc_worker_timer() that application worker threads can call in their main loop. This function will communicate with the core client if the timer thread was not created. - Added a dummy call to alloca() in LoadJPG to prevent failure of setjmp/longjmp in the case that the frame pointer is optimized away. This should be done on all functions where setjmp is called because on some platforms longjmp will segfault if the frame pointer doesn't exist. Some compilers aren't smart enough to know this. - (WIN32) Added code to the windows exception handler to allow it pass exceptions to the standard C signal handlers in the case where the signal handlers have been overridden. api/ boinc_api.C boinc_api.h gutil.C lib/ diagnostics_win.C Rom 10 May 2006 - Make the BOINC sample uppercase build again. api/ gutil.C lib/ boinc_win.h diagnostics_win.C David 15 May 2006 - make_project: copy example templates to templates/ - removed lib/language* (not used) client/ client_state.C,h file_names.h html/inc/ news.inc stats_sites.inc lib/ language.C,h (removed) Makefile.am py/Boinc/ setup_project.py test/ uc_result tools/ create_work_example Eric K 15 May 2006 - Added check check for alloca.h and memory.h to configure.ac - Added check for alloca and _alloca to configure.ac - Structural change to boinc_worker_timer() to get rid of essentially empty if clause. - (WIN32) set_worker_timer() now checks that interrupt_count is incrementing before assuming success. - Added MINGW32 fix for missing alloca() define to gutil.C - Added MINGW32/Dev-C++ fix for missing fpreset() prototypes to boinc_win.h configure.ac api/ boinc_api.C gutil.C lib/ boinc_win.h Rom 15 May 2006 - Switch the setTimerEvent to using a thread. setTimerEvent has to many restrictions on it which may cause deadlocks if violated. api/ boinc_api.C Charlie 16 May 2006 - Mac: Fix a bug if name of default browser contains spaces. Remove obsolete files language.C,h from XCode project clientgui/ hyperlink.cpp mac_build/ Make_BOINC_Service.sh boinc.xcodeproj/ project.pbxproj Rom 15 May 2006 - Bug Fix: Change the account not found window title to login failed. - Bug Fix: If a login call fails for an account manager turn off using cached credentials for the next login request. - Add a field to the host info structure called accelerators. Right now it just contains the name of the video card(s) in the computer on Windows. In the future it could also contain information such as if CrealSpeed, PCI-X math accelerator, is installed on the system. - Remove what is now dead code in the manager. client/win/ hostinfo_win.cpp clientgui/ AccountManagerProcessingPage.cpp AccountManagerPropertiesPage.cpp, .h NotFoundPage.cpp ProjectPropertiesPage.cpp, .h lib/ hostinfo.C, .h Rom 15 May 2006 - Remove the old BOINC GUI app from the source tree. - Remove the old BOINC client lib from the source tree. client/ file_names.C main.C cient/win/ StdAfx.cpp, .h (Removed) boinc_dll.h (Removed) boinc_dll.rc (Removed) boinc_gui.h (Removed) boinc_gui.rc (Removed) win_idle_tracker.cpp, .h (Removed) win_idle_tracker.def (Removed) win_screensaver.cpp win_util.cpp, .h (Removed) wingui.cpp, .h (Removed) wingui_dialog.cpp, .h (Removed) wingui_listctrl.cpp, .h (Removed) wingui_mainwindow.cpp, .h (Removed) wingui_piectrl.cpp, .h (Removed) wingui_proxydlg.cpp, .h (Removed) wingui_sswindow.cpp, .h (Removed) lib/ util.h win_build/ boinc_gui.vcproj (Removed) Rom 15 May 2006 - Another two files that can be deleted. lib/ exception.C, .h (Removed) Rom 15 May 2006 - Remove some more code that isn't currently used, if we need it it is still in the 5.2 and 5.4 branches. client/win/ cpuid_tbl.cpp, .h (Removed) optBench.hpp (Removed) opt_x86.h (Removed) opt_x86cpu.cpp (Removed) optimize.hpp (Removed) David 16 May 2006 - remove references to exception.C,h - save stat data for 30 days, not 30 records client/ app_graphics.C scheduler_op.C win/ win_screensaver.cpp win_build/ boinc_ss.vcproj libboinc.vcproj Rom 16 May 2006 - Manually perform memory leak detection since we now terminate the process before the memory leak detection stuff kicks in. - Cleanup used diagnostic resources when boinc_exit() is called. api/ boinc_api.C lib/ boinc_win.h diagnostics.C, .h diagnostics_win.C Charlie 16 May 2006 - Mac: Update XCode project, build instructions and build scripts to use wxMac-2.6.3 instead of 2.6.2. Remove obsolete files exception.C,.h from XCode project. - Compile fix: don't #include in stdwx.h if Mac. clientgui/ stdwx.h mac_build/ HowToBuildBOINC_XCode.rtf buildWxMac.sh setupForBOINC.sh boinc.xcodeproj/ project.pbxproj Rom 16 May 2006 - Add a field to host info which contains CPU feature information. client/win/ hostinfo_win.cpp lib/ diagnostics_win.C hostinfo.C, .h Rom 16 May 2006 - Core client needs to still support Win95, so make the processor feature detection code work on Win95. client/win/ hostinfo_win.cpp Rom 16 May 2006 - Bug Fix: When an application is running in standalone mode the missing init file should not cause the diagnostics_init() routine to return an error. - Bug Fix: Prevent the exception handling thread from stalling when the foreground window happens to be from its own process space. If you were single stepping inside of a debugger then the process acted as though it was deadlocked since the debugger had suspended the other threads. - Bug Fix: Initialize the diagnostics library even thuogh an alternate entrypoint might have been used. api/ graphics_api.C lib/ diagnostics.C diagnostics_win.C Rom 19 May 2006 - Add a check for the FPU and add it to the capabilities list for a host. - Bug Fix: Change CreateThread calls to _beginthreadex calls in diagnostics_win.C to avoid having the CRT terminating a thread when it attempt to use fprintf or any other CRT function when memory is running really tight. client/win/ hostinfo_win.cpp lib/ diagnostics.h diagnostics_win.C Rom 19 May 2006 - Add the CPU flags for various flavors of *nix client/ hostinfo_unix.C David 21 May 2006 - core client: change name of configuration file old name: log_flags.xml new name: cc_config.xml format: ... [ N ] - core client: limit on how many days of statistics to save is now configurable (see above) - user web: add "CPU usage limit" preference (soon to be implemented in client) - add wrapper program for existing binaries (not finished) apps/ wrapper.C Makefile.am client/ file_names.h log_flags.C,h main.C scheduler_op.C html/inc/ prefs.inc stats_sites.inc David 21 May 2006 - core client: implement "CPU usage limit" preference - core client: print CPU scheduling messages only if "tasks" log flag is set - core client: mechanisms for suspending activities (idle, time-of-day, explicit control) affect only CPU, not network usage - Manager: fix garbled message about needing network connection client/ app_control.C app_start.C client_state.C,h cs_apps.C cs_prefs.C log_flags.C main.C clientgui/ BOINCDialupManager.cpp lib/ prefs.C,h Rom 21 May 2006 - Translate the process and thread priorities into text. lib/ diagnostics_win.C David 21 May 2006 - core client: move "dont_check_file_sizes" tag out of log flags section of config file client/ cs_files.C log_flags.C,h David 22 May 2006 Support for Microsoft "symstore" mechanism, for getting symbols from a remote server: - core client: add "symstore" element to PROJECT. Parse this from scheduler reply file; store in client state file. Add to app info file that's passed to applications. - API: parse symstore from app init file - server: parse symstore URL from config file; include in scheduler reply client/ app_start.C client_types.C,h scheduler_op.C lib/ app_ipc.C,h hostinfo.h sched/ sched_config.C,h server_types.C Rom 22 May 2006 - Add some additional logging to the unhandled exception filter initialization routine. - If the unhandled exception filter monitor hasn't been created for some reason don't even attempt to signal the thread to do anything just terminate the process with the exception code. If more than one thread crashes at a time let the OS decide who wins the critical section. lib/ diagnostics_win.C David 22 May 2006 - core client: fix logic error involving the "5 minutes of network after GUI RPC" thing. client/ client_state.C Bruce 23 May 2006 - Make backend more robust, to prevent 'stuck' workunits. Now transitioner will not sent the transition_time to INT_MAX UNLESS a canonical result has been found. Otherwise it is set to MAX(ten days, 1.5*delay_bound) in the future. This ensures that the transition will 'see' the workunit again if no canonical result has been found. sched/ transitioner.C David 22 May 2006 - Client: handle "" element in scheduler reply. This tells the client to do another scheduler RPC after X seconds. apps/ wrapper.C client/ client_types.C,h cs_scheduler.C scheduler_op.C,h Rom 22 May 2006 (From Sebastian Masch) - Bug Fix: Keep the CPU capabilities string from growing without bound by initializing the string each time get_processor_capabilities() is called. client/win/ hostinfo_win.cpp Rom 23 May 2006 - Dump process statistics and the time of a crash. - Add some more error logging to the diagnostics startup routines. lib/ diagnostics_win.C Bruce 24 May 2006 - Adding a bit of logging to the scheduler to try and track down a bug that might have been introduced ~ March 11, which is marking some 'in progress' results as 'client error' and triggering the transitioner. - Have scheduler ignore some additional unrecognized tags in sched requests: cache_l[123] and cpu_caps. These appear not to be anywhere in the source code tree or documented anywhere!! sched/ handle_request.C server_types.C Rom 24 May 2006 - Provide a way for an application to specify its symstore even when the core client doesn't yet support symstores. lib/ diagnostics.C, .h David 24 May 2006 - Implement a new XML parsing mechanism, consisting of functions get_tag(), get_int(), get_double(), and get_bool(). These will correctly (and efficiently) parse X and X and X etc. It will parse and and identically. The python-generated XML (e.g. config.xml) is of the form X Currently the new code is used to parse config.xml. Eventually all XML parsing should be done this way. - User web: initialize cpu_usage_limit in prefs html/inc/ prefs.inc lib/ parse.C,h sched/ sched_config.C,h Rom 24 May 2006 - Remove references to the MM Timer stuff. A real thread is now used in its place. api/ boinc_api.C Rom 25 May 2006 - Trap delay load exceptions and dump meaningful messages when a delay load dll fails to load. NOTE: At a minimum projects should flag GDI32.DLL, OPENGL32.DLL, and GLU32.DLL as delay load dlls. If all goes well we'll see more meaningful messages when one of the system graphics dll's fail to load for whatever reason. For those who are building their applications with Visual Studio you can detect the DLL load failure and just disable graphics for that instance of the application. 0xC0000135 = STATUS_DLL_NOT_FOUND 0xC0000139 = STATUS_ENTRYPOINT_NOT_FOUND 0xC0000142 = STATUS_DLL_INIT_FAILED 0xC0000143 = STATUS_MISSING_SYSTEMFILE lib/ diagnostics_win.C, .h David 25 May 2006 - scheduler: add "next_rpc_delay" item to config file. This lets a project tell clients to reconnect after some interval. It's intended to support projects with tight delay bounds (e.g. a few minutes) and therefore need to control the rate of client requests. Currently the delay interval is specified in the config file. This is for testing. Ultimately we'll need a dynamic mechanism. - default cpu_usage_limit is 100, not 1 lib/ prefs.C sched/ sched_config.C,h server_types.C David 25 May 2006 - core client: add optional and elements to scheduler reply. Each is a list of result names. In the first case the results are aborted. In the second case the results are aborted if they haven't started computing yet. NOTE: the scheduler doesn't currently use these. But they're there in case we want them. - added RESULT_ABORTED status code and ERR_ABORTED_BY_PROJECT error number. This eliminates the kludge in which aborted results were classified as RESULT_COMPUTE_ERROR - core client: remove aborted_via_gui field from RESULT. Aborts are now always handled immediately, and recorded in the "state" and "exit_status" fields of RESULT. - Manager: changes to reflect the above client/ app_start.C client_types.C,h cpu_sched.C cs_scheduler.C gui_rpc_server_ops.C scheduler_op.C,h clientgui/ ViewWork.cpp html/inc/ result.inc lib/ error_numbers.h gui_rpc_client.h gui_rpc_client_ops.C result_state.h util.C David 25 May 2006 - compile fixes lib/ gui_rpc_client.h gui_rpc_client_print.C David 25 May 2006 - fixes for result abort logic client/ cs_apps.C clientgui/ ViewWork.cpp David 25 May 2006 - scheduler: if client reports a result, and it currently has state = OVER and outcome != NO_REPLY, then don't change its state or process it further. (from Bruce Allen) sched/ handle_request.C David 26 May 2006 - bug fix in new XML parser - wasn't stripping whitespace from single-line elements - scheduler: parse all elements, even unused ones lib/ parse.C sched/ sched_config.C David 27 May 2006 - Add "invitation code" mechanism for restricting account creation. See http://boinc.berkeley.edu/account_control.php From Eric Myers. - Remove "client_account_creation_disabled" config flag (it was temporary during transition to version 5 software) html/ languages/translations/ en.po user/ create_account.php create_account_action.php create_account_form.php get_project_config.php David 28 May 2006 - Add account manager URL to APP_INIT_DATA structure (so that apps can see what acct mgr is being used, if they want) client/ app_start.C lib/ app_ipc.C,h David 29 May 2006 - Windows version of wrapper apps/ wrapper.C Rom 29 May 2006 - Bug Fix: MinGW doesn't define RVA so define it. - Bug Fix: When building under something other than a Microsoft compiler comment out some of the thread naming code so that other compilers can be happy. At some point we should revisit this as a project who builds with MinGW may need somebody to debug their application with the Debugging Tools for Windows which does understand the thread naming convention. lib/ diagnostics_win.C, .h Rom 29 May 2006 - Bug Fix: Implemented the thread naming code for compilers that do not understand SEH exceptions. lib/ diagnostics_win.C David 30 May 2006 - Transitioner: check return value of process_result_template() (e.g. if upload certificate generation fails) - move wrapper.C to boinc_samples apps/ Makefile.am wrapper.C (removed) tools/ backend_lib.C Rom 29 May 2006 - Bug Fix: Wait until the exception monitor has finished initializing before finishing boinc_diagnostics_init() in case the very next thing the program does is throw an exception. lib/ diagnostics_win.C David 31 May 2006 - database code: the following functions DB_VALIDATOR_ITEM_SET::enumerate() DB_WORK_ITEM::enumerate() were using a left join on (workunit, result) or (result, workunit), then parsing the result in a way that would crash if only one item was present (e.g. if there's a WU without corresponding result, or vice-versa). Solution: replaced "left join" with a "natural join", i.e. select ... from workunit, result where ... db/ boinc_db.C sched/ sched_config.C Bruce 31 May 2006 - scheduler: do a better job of accepting results from host machines which may modify an EXISTING & OVER result in the database. - file_upload_handler: check for 'stop_upload' trigger file in the project root directory. If so, return ERR_TRANSIENT to hosts which attempt uploads. This is the equivalent of 'stop_sched' for the scheduler. (Eric, you may want to check that this is FCGI compatible). db/ boinc_db.C sched/ handle_request.C file_upload_handler.C sched_config.C David 31 May 2006 - Server: new scheme for directory permissions. The scheme assumes that the 'apache' user belongs to the primary group of the project creator (say, 'boinc'). The components are: 1) make_project sets the permissions of various directories (upload, profiles, etc.) to 02770 (set GID). This means that when apache creates a file or directory within that directory, it will be owned by group 'boinc'. 2) The code that creates files and directories uses 0770 permissions, so by default nothing is world-accessible. This fixes a bug where directories and files created by apache (i.e. by the scheduler or file upload handler) are inaccessible to the project creator. (So that, e.g., the file deleter can't delete files) There are other schemes for handling this problem; see http://boinc.berkeley.edu/groups.php but this one is the best, IMHO. - scheduler: if store req/reply messages in files, put them in /tmp, not in cgi-bin/ - document 'stop_upload' doc/ groups.php (new) tool_start.php lib/ filesys.C py/Boinc/ setup_project.py sched/ main.C sched_util.C David 31 May 2006 - Add new GUI RPC : returns 1) network status (same as RPC) 2) flag saying whether a timer-driven account managaer RPC has returned a bad-password error (so Manager can notify user) ... any future status items will be added here - got rid of commented-out RPC client/ acct_mgr.C,h gui_rpc_server_ops.C lib/ gui_rpc_client.h gui_rpc_client_ops.C Rom 1 June 2006 - Bug Fix: boinc_finish() can be called from any thread, so do not close the handle to one of the potiential calling threads from it. NOTE: I haven't found any documentation that states what the expected behavior is for closing the handle to the actively running thread but I don't expect it to be good. api/ boinc_api.C Bruce 1 June 2006 - scheduler: clearer messages to use if refusing to accept a result. - DB purger: make sleep interval a command line option (current 600 secs is still the default value). sched/ db_purge.C handle_request.C David 1 June 2006 - Changes to account manager protocol, to allow account managers to directly manipulate global preferences: 1) request message now includes element, with current global preferences, and their source and mod time 2) request message no longer includes and ; these items are in the new element. 3) reply message now includes optional element. This should be sent only if prefs are newer than those in the request message. 4) reply message now includes optional element. This determines what preferences set is used. client/ acct_mgr.C,h client_state.h cs_prefs.C cs_scheduler.C David 1 June 2006 - wherever xml_escape() is used, make sure the output buffer is at least 6X the size of the input, since the largest expansion is X -> &#NNN; This is a kludge. We should switch to #defined buffer-size params, instead of having 256 and 2048 everywhere. Or we should use std::string everywhere. (but I don't think we can do this, because I've seen repeated performance problems and outright bugs with std::string). client/ client_types.C db/ boinc_db.C lib/ app_ipc.C parse.C proxy_info.C sched/ db_dump.C db_purge.C David 1 June 2006 - don't ignore global prefs override file when handling new prefs from a project (from Ian Hay) client/ acct_mgr.C client_state.C,h cs_prefs.C Charlie 1 June 2006 - Mac: Fix "About BOINC" menu item in Dock when linking with wxMac-2.6.3. clientgui/ BOINCTaskBar.cpp David 2 June 2006 - Code cleanup and logic fixes in general prefs code client/ acct_mgr.C client_state.h cs_apps.C cs_prefs.C cs_scheduler.C Bruce 3 June 2006 - Transitioner: nasty bug in logging, wrong result id/name - Scheduler: clearer logging for debugging purposes - Scheduler: refuse to upload results if DB item is (1) over and (2) validate state init and (3) NOT file_delete==INIT. - Unix package: since BOINC manager now starts client, change message to user after install. (David, please bless addition of file_delete_state to SCHED_RESULT_ITEM.) db/ boinc_db.C boinc_db.h sched/ handle_request.C transitioner.C Bruce 4 June 2006 - HTML ops page: properly display queries containing '<' and '>'. - HTML ops page: close tag in page head. html/ ops/ db_action.php inc/ util_ops.php David 4 June 2006 - add "switcher" program (part of new sandbox scheme) client/ Makefile.am app.C switcher.C (new) Charlie 6 June 2006 - Mac: New helper command-line application SetUpSecurity creates boinc_master and boinc_project users and groups if needed. When complete, this application will also set users, groups and permissions of Manager, Client, etc. to aid debugging during build / debug cycles. clientgui/ mac/ SetupSecurity.cpp (new) mac_build/ boinc.xcodeproj/ project.pbxproj David 6 June 2006 - scheduler: if we think a host has detached (because of zero host ID but existing CPID) marks its in-progress results as NO_REPLY, not CLIENT_ERROR - scheduler: remove special handling for reported results that are OVER/CLIENT_ERROR (with above change, this shouldn't happen) - scheduler: if we can't attach to shared memory, return "Project encountered internal error" to client, not misleading "Project is temporarily shut down for maintenance" - shmem-related functions: call perror() on error - make_project: , not - my email address was hardwired in watchdog.php - ouch! db/ boinc_db.h html/ops/ watchdog.php lib/ shmem.C py/Boinc/ setup_project.py sched/ handle_request.C main.C David 6 June 2006 - boinc_mkdir(): temporarily zero umask so that directories will always be group RW (from Dr. M.F. Somers) - Back end: add optional flag to config.xml. If set, the file deleter won't delete files for workunits or results with positive batch. Use this to preserve files until you're done looking at them (then do a SQL query that zeros or negates the batch numbers for that particular batch). See http://boinc.berkeley.edu/configuration.php client/ client_state.C,h client_types.C lib/ filesys.C sched/ file_deleter.C sched_config.C,h David 6 June 2006 - Scheduler/file upload handler: added optional config.xml items and for specifying log verbosity level for scheduler and file upload handler respectively (from Dr. M.F. Somers) sched/ file_upload_handler.C main.C sched_config.C,h Charlie 6 June 2006 - Mac: Separate out main() from SetUpSecurity so it can be called either standalone from XCode as well as from Installer, Manager or Core Client. CreateBOINCUsersAndGroups() sets default shell of users boinc_master and boinc_project to /sbin/nologin to prevent a security hole by not allowing these users to log in. Make CreateBOINCUsersAndGroups() more robust by retrying each step up to 5 times. Add code to call CreateBOINCUsersAndGroups() from installer. clientgui/ mac/ SecurityUtility.cpp (new) SetupSecurity.h (new) SetupSecurity.cpp mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ postinstall.cpp Rom 7 June 2006 - Finish implementing the BOINCINFO macro which will display trace type statements even in release builds when BOINC_INFOMSGS is defined as a preprocessor define. - Tag each of the control messages and graphics messages with the BOINCINFO macro so we can see what was going on when an application executes. api/ boinc_api.C windows_opengl.C client/ app_graphics.C lib/ boinc_win.h diagnostics.C diagnostics_win.C Charlie 7 June 2006 - Mac: SetUpSecurity sets owner=boinc_master, group=boinc_master and permissions of BOINC Manager bundle and its contents. When run standalone (from XCode), it assists the development / debug cycle by making everything group writable and adds logged in user to group boinc_master. When run from Installer, Manager or Client, makes everything non-writable by owner, group and other for security. clientgui/ mac/ SecurityUtility.cpp SetupSecurity.h SetupSecurity.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 7 June 2006 - make_work: allow multiple -wu_name arguments. Make_work will create copies of these WUs, cyclically sched/ feeder.C make_work.C Charlie 8 June 2006 - Mac: SetUpSecurity sets owner, group and permissions of BOINC Data directory. Put short delays after each step to make it more robust. clientgui/ mac/ SecurityUtility.cpp SetupSecurity.h SetupSecurity.cpp Rom 8 June 2006 - Bug Fix: When the debugger fails to initialize do not attempt to use the other debugger functions. - Bug Fix: Display which functions are not found in dbghelp.dll when one or more are missing. lib/ diagnostics_win.C stackwalker_win.cpp David 8 June 2006 - Add WU items (rsc_fpops_est, rsc_fpops_bound, rsc_memory_bound, rsc_disk_bound) to APP_INIT_DATA structure, so app can knows its own limitations - Added boinc_get_init_data_p(APP_INIT_DATA*), so that plain C apps can get this info api/ boinc_api.C,h client/ app_start.C html/inc/ stats_sites.inc lib/ app_ipc.C,h gui_rpc_client.h sched/ sample_bitwise_validator.C Rom 8 June 2006 - Reduce the amount of duplicate error information when dbghelp.dll fails to be able to find references to symbolic information. - Bug Fix: Fix a sympath parsing issue that will freak out dbghelp.dll lib/ stackwalker_win.cpp Charlie 9 June 2006 - Mac: Reorganize SetUpSecurity for better efficiency. When run standalone (from XCode), SetUpSecurity adds logged in user to group boinc_project in addition to group boinc_master. Change default shell of users boinc_master and boinc_project to /usr/bin/false and set their home directory to /vars/empty; these changes prevent these users from appearing in the Mac's GUI login window. - Fix opening URLs in default browser with wxMac-2.6.3. - Fix compile error in macglutfix.m due to boinc_api.h declaration of boinc_get_init_data_p(). clientgui/ mac/ SetupSecurity.cpp api/ boinc_api.h clientgui/ hyperlink.cpp Rom 9 June 2006 - Bug Fix: After many many many weeks of hunting the 0xc000000d bug I finally hit it. It appears that the timer thread was attempting to shutdown graphics while the graphics thread was still trying to render a frame. The next call to an OpenGL function throws an exception. I had to use WinDBG because Visual Studio wouldn't attach to the process. Another interesting note, for some reason the Unhandled Exception Filter was triggered. Maybe OpenGL installs its own filter? In anycase the solution is remove the graphics thread shutdown code. It was only being used on Windows, and now that we are using TerminateProcess() all the threads will be halted and resources cleaned up which should include OpenGL. api/ boinc_api.C, .h windows_opengl.C David 9 June 2006 - Core client: Linux bug fix. New code to get CPU capabilities was appending rather than replacing. No check for buffer length. Eventually overflowed and crashed client. Notes: - Never use strncpy(). - Never have the same block of code repeated several times (the \n stuff). - Remember these notes - Create all shared mem segs with 0660 protection (affects both server and client) client/ hostinfo_unix.C lib/ shmem.C Bruce 9 June 2006 - Sched code: move function into sched_util; useful for project validation. - Minor E@H specific change sched/ handle_request.C sched_util.[hC] sched_locality.C David 9 June 2006 - Extended checkin-before-last to work for MIPS and Alpha also. Eliminated separate versions of parse_cpuinfo() (see 2nd Note above). MIPS/Alpha people: please verify that it still works client/ hostinfo_unix.C David 9 June 2006 - First pass on reforming the validator framework. OLD: the documents made the task of creating a custom validator seem impossibly daunting. NEW: Defined two frameworks. - A "simple framework" lets you create a custom validator by supplying three simple functions: 1) parse a result 2) compare two parsed results 3) free a parsed results This is based on the "generic_check_set()" code that Karl Chen wrote for the sample bitwise validator; I simplified this, got rid of the function pointers, and moved it to a separate file (validate_util2.C,h) - An "advanced framework" requires you to supply check_set() and check_pair() functions. This sounds simple, but actually is not; see http://boinc.berkeley.edu/validate_logic.txt Note: the check_set() function defined by the simple framework doesn't do everything the above spec says it should; I'll get back to that later. - added lookup_group() and associated error codes (for sandbox) lib/ error_numbers.h util.C,h sched/ Makefile.am handle_request.C sample_bitwise_validator.C sample_trivial_validator.C validate_util.C,h validate_util2.C,h (new) validator_placeholder.C Charlie 9 June 2006 - Changes for sandbox: Renamed global variable boinc_project_gid to g_boinc_project_gid. Change shared memory segment group to g_boinc_project_gid. Set umask to 002 in both client and manager so files are writable by both user and group. Allow access to gui_rpc_auth.cfg by group boinc_master so authorized administrator can create or modify it. client/ app_start.C client_state.C,h client_types.C gui_rpc_server.C main.C clientgui/ BOINCGUIApp.cpp lib/ shmem.C,h David 9 June 2006 - Make boinc_project_id a field of CLIENT_STATE - Fix compile failuer when SANDBOX is not defined - Fix logic error in create_shmem() client/ app_start.C client_state.C,h lib/ shmem.C Bruce 10 June 2006 - When calling project-provided validator functions, populate the WU.rsc_fpops_est field. This can be useful in determining how much credit to assign, and preventing cheating. - file_deleter: if deleting antique files, follow links when finding the files. This allows NFS mounting of the upload directory, pointed to by a symbolic link. DAVID: I was going to be a good guy and document this, but you forgot to check validate_simple.php and validate_advanced.php into CVS (:-). DAVID: your change to create_shmem() broke the sched build. Check my 'fix' to feeder.C to see if this is what you had intended. DAVID: config was not defined in validate_util.C ; I made it extern. Likewise for validate_util2.C. Also messed up includes in latter file. sched/ boinc_db.C feeder.C validate_util.C validate_util2.C file_deleter.C David - tweaks sched/ make_work.C validate_util.C,h validate_util2.C Charlie 11 June 2006 - Change g_boinc_project_gid to gstate.boinc_project_gid in FILE_INFO::set_permissions(). client/ client_state.C David 11 June 2006 - more sandbox stuff, with #ifdef SANDBOX: - make projects/ and slots/ owned by boinc_projects - make link files owned by boinc_projects - add boinc_chown() function client/ app_start.C file_names.C lib/ app_ipc.C error_numberse.h filesys.C,h util.C David 12 June 2006 - Graphics API: change params of boinc_app_mouse_button() and boinc_app_mouse_move() from bool to int (for ANSI C compatibility) api/ graphics_api.h static_graphics.C x_opengl.C David 12 June 2006 - User web: expand the list of message-board rules a bit (no ads, no trolling etc.) Link to a page that describes the moderation policy in more detail. - Add a page (not linked to anywhere) containing instructions for moderators. NOTE: the latter 2 pages are included as samples; you'll want to rename sample_X to X unless you need to customize it. html/ inc/ forum.inc user/ sample_moderation.inc (new) sample_moderator_instructions.inc (new) David 12 June 2006 - API: get rid of boinc_timer_thread_active(), boinc_worker_timer(): either we can create a timer thread, or the app doesn't run. api/ boinc_api.C,h David 12 June 2006 - shuffle #ifdefs for ANSI C compile lib/ filesys.h Charlie 13 June 2006 - more sandbox stuff, with #ifdef SANDBOX. - Mac: Add switcher to XCode project. Update SetUpSecurity to match latest protections spec. client/ app_start.C client_types.C file_names.C gui_rpc_server.C main.C clientgui/ BOINCGUIApp.cpp mac/ SecurityUtility.cpp SetupSecurity.cpp,h mac_build/ boinc.xcodeproj/ project.pbxproj David 13 June 2006 - core client: don't check app disk usage more often than every 5 min (used to be 5*disk interval) - scheduler XML parsing code: handle XML comments (you can now have comments in config.xml) client/ app_control.C lib/ parse.C sched/ sched_config.C David 13 June 2006 - Web RPC: fix bug where am_set_info.php wasn't correctly removing user from team when teamid=0 html/ inc/ team.inc user/ am_set_info.php team_quit_action.php Rom 14 June 2006 - Bug Fix: Fix crashing condition with Unicode BOINC Manager. (From Frank S. Thomas) - Reduce duplicate code in diagnostics.C. - Change screensaver logging mechinisms. client/win/ win_screensaver.cpp clientgui/ MainFrame.cpp lib/ diagnostics.C, .h Rom 14 June 2006 - Reduce duplicate code in diagnostics.C. - Display the detected CPU capabilities for those who want to manually use an optimized application via app_info.xml client/ client_state.C lib/ diagnostics.C, .h Charlie 14 June 2006 - more sandbox stuff, with #ifdef SANDBOX: Change projects, slots directories to boinc_master:boinc_master 0775. Mac: I Manager creates BOINC Data directory set its permissions to 0575. Manager checks ownership and permissions; if incorrect it alerts user and quits. client/ check_security.C (new) file_names.C clientgui/ BOINCGUIApp.cpp mac/ SetupSecurity.cpp,h lib/ util.h mac_build/ boinc.xcodeproj/ project.pbxproj Rom 14 June 2006 - Fix build break in diagnostics.C. lib/ diagnostics.C David 14 June 2006 - core client: implement property for output files (previously it was implemented for input files only). If present, move the file from slot directory to project directory when the result is done. client/ app.h app_control.C app_start.C Rom 14 June 2006 - Bug Fix: Fix crashing condition with Unicode BOINC Manager. (From Frank S. Thomas) clientgui/ ViewTransfers.cpp David 14 June 2006 - tools: dir_hier_path didn't work when the directory already existed. It would create a new directory with a garbage name. - tools: process_wu_template(): this wasn't passing through . Changed it so that it copies any elements it doesn't recognize. sched/ sched_util.C tools/ backend_lib.C dir_hier_path.C David 14 June 2006 - core client: mark aborted results as ready to report (from John McLeod) client/ client_state.C client_types.C hostinfo_unix.C David 14 June 2006 - Windows graphics API: if in screensaver mode, close on any input, even if control key is down api/ windows_opengl.C David 14 June 2006 - core client: sanity check on read statefile: make sure two active tasks don't have the same slot client/ app.C,h Rom 15 June 2006 - Remove the code block that mixes the forum rating restrictions with reporting abuse. - Add the moderators name to all outgoing moderation email - Add the email address that should be used for disputes with moderation. html/inc/ email.inc html/user/ forum_moderate_post_action.php forum_moderate_thread_action.php forum_report_post.php Charlie 15 June 2006 - Mac sandbox: - GDB can't attach to applications which are running as a diferent user or group so it ignores the S_ISUID and S_ISGID permisison bits when launching an application. To work around this, the _DEBUG version of both the Manager and Client use the current user and group, and temporarily change the ownership of the BOINC Data hierarchy if necessary. - Manager and Client call check_security(); deployment versions notify the user and quit if they find a problem with ownership or permissions of either the application or the BOINC Data. - Better setting of _DEBUG and __WXDEBUG__ in Manager and Client builds. client/ check_security.C main.C clientgui/ BOINCGUIApp.cpp mac/ MacGUI.pch SecurityUtility.cpp SetupSecurity.cpp,h lib/ util.h mac_build/ boinc.xcodeproj/ project.pbxproj Eric K 15 June 2006 - The getrusage calls in util.C and boinc_api.C are now protected with the same pthread mutex. - Changed CPU time monitor to prevent CPU time from incrementing faster than real time. lib/ util.[Ch] api/ boinc_api.C David 15 June 2006 - New CPU scheduler: the highlights are: 1) The implementation is better organized, and more or less conforms to the design document (http:/boinc.berkeley.edu/sched.php) In particular, the CPU scheduling policy (what should run) is separated from the enforcement policy (when to preempt). 2) The enforcement policy delays preemption of tasks that haven't checkpointed recently, thus reducing wasted CPU time when apps are removed from memory on preemption. 2) Instead of being either round-robin or EDF, the scheduling policy is now a hybrid: EDF for the projects that currently need it, weighted round-robin among the others if there additional CPUs available. (designed by John McLeod and me; implemented by John) - new log flag "cpu_sched_detail" for details on CPU scheduling client/ app.C,h app_control.C app_start.C client_state.C,h client_types.C,h cpu_sched.C cs_apps.C cs_scheduler.C cs_statefile.C log_flags.C,h Rom 16 June 2006 (HEAD) - Tag for 5.5.1 release, all platforms boinc_core_release_5_5_1 Charlie 16 June 2006 - Mac sandbox: bug fixes client/ check_security.C client_state.C file_names.C main.C clientgui/ BOINCGUIApp.cpp mac/ SetupSecurity.cpp lib/ filesys.C David 16 June 2006 Core client code cleanup: - separate "decide whether to scheduler CPUs" from "schedule CPUs" - rr_misses_deadline() -> rr_simulation() - removed set_X arguments from rr_simulation() - removed RESULT::deadlines_missed, deadline_problem - running_task_sort_pred() not member function - fixed calculation of CPU shortfall client/ client_state.C,h client_types.h cpu_sched.C cs_scheduler.C http_curl.C David 16 June 2006 - API: boinc_report_app_status(): don't access shmem if we're in standalone mode - Web RPC: lookup_account.php can be used to see if an account with given email exists (don't supply passwd_hash) api/ boinc_api.C David 16 June 2006 - initial code for parsing /proc (linux) client/ procinfo_unix.C David 16 June 2006 - Major revision to forum code (from Janus Kristensen) NOTE: this requires running the DB update in ops/db_update.php html/ inc/ cache.inc email.inc forum.inc forum_category.inc (new) forum_dbh.inc (new) forum_forum.inc (new) forum_mainfactory.inc (new) forum_moderators.inc forum_mysql_dbh.inc forum_post.inc (new) forum_std.inc (new) forum_thread.inc (new) forum_user.inc (new) text_transform.inc languages/translations/ en.po ops/ db_update.php user/ edit_forum_preferences_action.php forum_edit.php forum_forum.php forum_index.php (new) forum_moderate_post.php forum_moderate_post_action.php forum_moderate_thread.php forum_moderate_thread_action.php forum_post.php forum_rate.php forum_reply.php forum_report_post.php forum_search.php (new) forum_search_action.php (new) forum_subscribe.php forum_thread.php forum_thread_status.php (new) forum_thread_vote.php (new) white.css Charlie 16 June 2006 - Mac sandbox: - more debugging aids - add SWITCHER_DIR, SWITCHER_FILE_NAME client/ check_security.C file_names.h clientgui/ mac/ SetupSecurity.cpp,h Charlie 17 June 2006 - Mac sandbox: - Fix bugs - ACTIVE_TASK::start launches project app via new switcher app - Client runs projects under different user and group boinc_project. client/ app_start.C check_security.C switcher.C clientgui/ BOINCGUIApp.cpp mac/ SetupSecurity.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Bruce 17 June 2006 - Scheduler: improve message to user if user running anonymous platform and project+app does not support it. sched/ sched_locality.C David 17 June 2006 - core client: code cleanup (from John McLeod) client/ client_state.h cpu_sched.C Bruce 17 June 2006 - Scheduler: populate sreq.host.credit_per_cpu_sec in case project wants to send different work to slow and fast hosts. I'm experimenting with the use of this in the locality scheduler. (David: please check that the one-line change in handle_request.C is globally harmless.) sched/ handle_request.C sched_locality.C (experimental code) Matt 17 June 2006 - User web: - If the flag is in config.xml, the rating +/- links don't show up under posts. - check in forum_rate.php to do the same check (and make sure people are trying to sneakily downrate posts without using the +/- links). - fixed a bug in email.inc where the moderator e-mail address wasn't showing up in "deleted post" e-mails. html/user forum_rate.php html/inc forum.inc email.inc David 18 June 2006 - Don't parse ACTIVE_TASK::scheduler_state from the state file. This isn't carried across runs of BOINC. - Remove ACTIVE_TASK_SET::restart_tasks() and CLIENT_STATE::restart_tasks(): just let the CPU scheduler take care of starting tasks. - If file upload fails because file is missing, don't retry, and show appropriate error message client/ app.C,h app_start.C client_state.C,h cs_apps.C David 19 June 2006 - core client: make cpu_sched_last_check into a static variable of possibly_schedule_cpus(); restart CPU scheduling period on any reschedule (from JM7) - remove unused args, etc. client/ client_state.C,h cpu_sched.C David 19 June 2006 - core client: remove CLIENT_STATE::handle_file_xfer_apps(). Instead, handle this in CLIENT_STATE::update_results(). - core client: rename RESULT::reset_files() to clear_uploaded_flags() client/ client_state.C,h client_types.C,h cpu_sched.C cs_apps.C sched/ update_stats.C David 19 June 2006 - core client: cleanup in CPU scheduling - move make_running_task_heap() into a function. - no NULLs in running_task_heap - renamed long vars to "deadlines_missed" - renamed running_task_sort_pred() to more_preemptable() Renamed args, to avoid calling left argument "rhs" - rewrote unreadably long if() clauses - changed deadlines_missed++ to -- There's still considerable deviation between code and spec. This needs to be eliminated. client/ client_state.h Charlie 19 June 2006 - Mac sandbox: - Better support for development - XCode sets BOINC Manager bundle to current user & group, sets S_ISUID | S_ISGID bits for Client, S_ISGID bit for Manager. - ACTIVE_TASK::start launches project app via new switcher app - Client runs projects under different user and group boinc_project. client/ check_security.C clientgui/ mac/ SetupSecurity.cpp,h mac_build/ boinc.xcodeproj/ project.pbxproj Rom 19 June 2006 (HEAD) - Tag for 5.5.2 release, all platforms boinc_core_release_5_5_2 Charlie 20 June 2006 - Mac: Fix build scripts to not set execute permissions bits inappropriately - Mac sandbox: - Add switcher directory and file to build scripts - Postinstall application changes for SANDBOX - Postinstall application adds BOINC Manager to login startup items for all visible users, not just user currently logged in at install time. - Postinstall application deletes installer's package receipt to permit running installer again. - DoPrivilegedExec uses pipe to determine when command completes. client/ check_security.C clientgui/ mac/ SetupSecurity.cpp mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ release_boinc.sh release_GridRepublic.sh Postinstall.cpp David 20 June 2006 - Add "verify files on app start" option for projects that want to check MD5 and digital signatures of all relevant files each time an app is started (whether this provides any additional security is open to debate) 1) on scheduler, config.xml file has optional element 2) this element is passed in scheduler reply messages and stored in client's client_state.xml file 3) if flag is set, MD5s and/or digital signatures are checked on app startup (both initial and on resumption) - Core client: don't accept self-signed SSL certificates - Validator: changes to "simple framework" to handle transient errors correctly client/ app_start.C client_state.C,h client_types.C,h cpu_sched.C cs_apps.C cs_files.C http_curl.C scheduler_op.C sched/ sched_config.C,h server_types.h validate_util2.C David 20 June 2006 - Debug "verify files on app start" feature - ACTIVE_TASK::start(): call report_result_error() on any error condition; this puts the result in the correct state so that it won't get started again. - CLIENT_STATE::verify_input_files() returns int, not bool client/ app_control.C app_start.C client_state.C,h cs_apps.C David 20 June 2006 - Manager: change menu item to "Attach to account manager" I think it's OK to use "attach" in connection with account managers as well as projects client/ client_state.C clientgui/ MainFrame.cpp David 20 June 2006 - core client: rename RESULT::runnable_soon() to nearly_runnable() - core client: small bug fix in CPU shortfall calculation client/ client_types.C,h cpu_sched.C David 20 June 2006 - core client: it FILE_INFO for output file file has property, gzip it and append .gz to name client/ client_types.C,h cs_apps.C David 20 June 2006 - debugged upload compression feature. I had to change semantics: the filename stays the same after it's compressed. Also: the MD5 and file size are those of the compressed file. client/ client_types.C cs_apps.C win_build/ boinc_cli_curl.vcproj Charlie 20 June 2006 - Fix a crash bug in the client (f.printf had fewer arguments than called for in the format, so attempted access through a bad pointer.) - Fix another permissions typo client/ cs_statefile.C file_names.C Rom 20 June 2006 (HEAD) - Tag for 5.5.3 release, all platforms boinc_core_release_5_5_3 Charlie 21 June 2006 - Mac sandbox: - Installer calls check_security() after creating users and groups and setting owners and permissions for Manager, Client and data; retries up to 5 times if error. - Installer script calls postinstall application twice with different arguments, waits for first call to complete. - Manager and Client report unique error codes from check_security(). client/ check_security.C main.C clientgui/ BOINCGUIApp.cpp mac/ SetupSecurity.cpp,h mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ postinstall postupgrade Postinstall.cpp David 21 June 2006 - core client: fix case where CPU scheduler preempts tasks it doesn't need to. - core client: code cleanup - move deadline messages to a separate function - reduce side-effects of make_running_task_heap() - improve names - file upload handler: don't complain about tag client/ client_state.h cpu_sched.C sched/ file_upload_handler.C Milos 21 June 2006 - Initial checkin on the simple GUI clientgui/ sg_BoincSimpleGUI.cpp, .h (Added) sg_DlgPreferences.cpp, .h (Added) sg_ImageLoader.cpp, .h (Added) sg_SkinClass.cpp, .h (Added) sg_StatImageLoader.cpp, .h (Added) clientgui/common/ wxFlatNotebook.cpp, .h (Added) wxFNBDropTarget.h (Added) wxAnimate.cpp (Added) Rom 21 June 2006 - Bug Fix: Two setup failure logs that were sent to me indicate that the uninstall process didn't clean up the BOINC entry in the service control manager. Check, before attempting to shutdown, BOINC to make sure it is executing or is capable of responding to a ControlService event. win_build/installerv2/redist/Windows/src/boinccas CAShutdownBOINC.cpp boinccas.rc David 21 June 2006 - update_stats: enumerate only users/hosts/teams for which expavg_credit > 0.1. This speeds up the DB query sched/ update_stats.C David 21 June 2006 - core client: added "cpu_sched_debug" log flag; got rid of "cpu_sched_detail" and "sched_cpu_debug" - core client: added "ncpus" config option; if present, the core client will act as if there were N cpus (handy for debugging scheduler stuff) - core client: parse cc_config.xml with the new-style XML parsing functions (reduce restrictions on XML format) client/ client_msgs.C,h cpu_sched.C cs_apps.C cs_scheduler.C log_flags.C,h time_stats.C David 21 June 2006 - core client: add some logging messages to rr_simulation() client/ cpu_sched.C cs_scheduler.C Rom 21 June 2006 (HEAD) - Tag for 5.5.4 release, all platforms boinc_core_release_5_5_4 Rom 21 June 2006 - Bug Fix: Go one step further by ignoring the return value from ControlService. win_build/installerv2/redist/Windows/src/boinccas CAShutdownBOINC.cpp CAShutdownBOINCManager.cpp boinccas.rc win_build/installerv2/redist/Windows/x86 boinccas95.dll boinccas.dll Charlie 21 June 2006 - Mac sandbox: - Fix installer problems creating user and groups on older Mac OS. - The following functions require an administrator password unless the user is a member of group boinc_master: Attach to Project, Detach from Project, Reset Project, Attach to Account Manager, Detach from Account Manager, Update Account Manager, Abort Task, Abort Transfer. - Fix compiler warning in client_types.C. - Define SANDBOX in XCode projects: Client, Manager, Installer. client/ client_types.C clientgui/ MainDocument.cpp,h MainFrame.cpp ViewProjects.cpp ViewTransfers.cpp ViewWork.cpp mac/ Mac_GUI.cpp SetupSecurity.cpp mac_installer/ PostInstall.cpp mac_build/ boinc.xcodeproj/ sproject.pbxproj Walt 22 June 2006 - Change additional includes for xlib.h directory from absolute to relative. win_build/ boinc_cli_curl.vcproj David 22 June 2006 - core client: get rid of the SCOPE_MSG_LOG thing. Too fancy. All messages are now generated using if (log_flags.X) { msg_printf(...); } All messages now appear in the BOINC Manager (if used) and in stdout. Changed things so messages are written only to stdout (not to both stderr and stdout) - core client: broke out scheduling-related messages into new flags: task cpu_sched cpu_sched_debug rr_simulation debt_debug work_fetch_debug also added new "unparsed_xml" flag - scheduler: parse (but ignore) p_capabilities and accelerators in client/ *.C log_flags.h sched/ server_types.C David 22 June 2006 - Fix Win bug where accelerators kept concatenating client/ client_msgs.h win/ hostinfo_win.cpp Rom 22 June 2006 - Check in the default certificate CA's so curl can use them. curl/ ca-bundle.crt win_build/ boinc_post_bld_rules.cmd win_build/installerv2/ BOINC.ism David 22 June 2006 - added curl_easy_setopt(curlEasy, CURLOPT_CAINFO, "ca-bundle.crt"), which tells Curl where to find CA bundle. SSL to WCG now works. client/ http_curl.C David 22 June 2006 - core client: parse all log flags (I forgot); print rr_simulation messages only if shortfall is nonzero (from John McLeod) client/ cpu_sched.C log_flags.C Charlie 22 June 2006 - Mac sandbox: - Because memberd is available only on OS 10.4, do not call it under OS 10.3.x and require logout after installation to resynchronize group membership tables. clientgui/ mac/ SetupSecurity.cpp SetVersion.C mac_installer/ PostInstall.cpp Rom 23 June 2006 - Hooked up the simple GUI into the overall manager infrastructure. NOTE: The manager now has dependancies on libpng and zlib to handle skin graphics. NOTE: This hasn't been tested on any platform other than Windows. clientgui/ BOINCBaseFrame.cpp, .h (Added) BOINCDialupManager.cpp BOINCGUIApp.cpp, .h BOINCTaskBar.cpp Events.h MainDocument.cpp MainFrame.cpp, .h sg_BoincSimpleGUI.cpp, .h sg_DlgPreferences.cpp, .h sg_ImageLoader.cpp sg_SkinClass.cpp, .h sg_StatImageLoader.cpp, .h stdwx.h win_build/ boincmgr_curl.vcproj David 23 June 2006 - core client: write messages on app checkpoint if task_debug log flag is set client/ app-control.C log_flags.h David 23 June 2006 - core client: - fix bug in printing argv on task startup (Unix) - changed message: "misses deadline" -> "projected to miss deadline" - parse version in scheduler reply, and show it if log_flags.sched_ops - cpu_usage_limit must be in (0..1] client/ app_start.C cpu_sched.C cs_apps.C cs_prefs.C cs_scheduler.C scheduler_op.C,h lib/ prefs.C util.C David 23 June 2006 - core client: - removed Apple-specific retry logic in get_local_network_info() - made get_local_network_info() a member of HOST_INFO - in 1-sec poll loop, if don't have a domain name, call get_local_network_info() again (on some systems, gethostbyname() takes a few minutes to work) client/ client_state.C hostinfo_network.C hostinfo_unix.C win/ hostinfo_win.cpp lib/ hostinfo.h Rom 23 June 2006 - Move document initialization code to the base class so both GUI's can initialize the CC connection at startup. - Enable the inter-component alert system for the simple GUI. Displays dialogs if the GUI is open, otherwise display a ballon in the taskbar. clientgui/ BOINCBaseFrame.cpp, .h MainFrame.cpp, .h sg_BoincSimpleGUI.cpp, .h David 23 June 2006 - core client: fiddle with messages client/ client_state.C cpu_sched.C cs_scheduler.C gui_rpc_server.C Rom 23 June 2006 - Enable the dialup and idle tracking systems for the simple GUI. clientgui/ BOINCBaseFrame.cpp, .h MainFrame.cpp, .h Rom 23 June 2006 - Enable the wizards for initial startups. clientgui/ sg_BoincSimpleGUI.cpp.cpp, .h Rom 23 June 2006 - Rename MainFrame.cpp, .h to AdvancedFRrame.cpp, .h - Rename CMainFrame to CAdvancedFrame clientgui/ AdvancedFrame.cpp, .h (Added) BOINCGUIApp.cpp MainFrame.cpp, .h (Removed) ViewMessages.cpp ViewProjects.cpp ViewStatistics.cpp ViewTransfers.cpp ViewWork.cpp win_build/ boincmgr_curl.vcproj Rom 23 June 2006 - Remove deprecated files clientgui/ DlgDialupCredentials.cpp, .h (Removed) David 26 June 2006 - API: removed boinc_using_cpu() and boinc_not_using_cpu(). The client's CPU scheduler doesn't support apps switching back and forth, and is unlikely to in the near future. So it's misleading to have it in the API. - API/core client: added APP_INIT_DATA::resource_share_fraction. This tells an application its resource share relative to runnable projects (0..1). - core client: removed ACTIVE_TASK::non_cpu_intensive. api/ boinc_api.C,h client/ app.C,h app_control.C app_start.C cpu_sched.C lib/ app_ipc.C,h Walt 26 June 2006 - Remove references to deprecated files DlgDialupCredentials.cpp, h. clientgui/ BOINCDialupManager.cpp Makefile.am win_build boincmgr_curl.vcproj David 26 June 2006 - Propagate application "user friendly name" through scheduler RPC, into client state, and through GUI RPC to Manager client/ client_types.C,h cs_files.C lib/ gui_rpc_client.h gui_rpc_client_ops.C sched/ server_types.C David 26 June 2006 - Add support for "project files". These are files that are downloaded to all clients attached to that project, but are not associated with an app version, WU or result. Example: graphics files for use by the BOINC Manager. - Scheduling server: look for "project_files.xml" in project dir. If found, include it verbatim in scheduler replies. Intended to describe "project files" - core client: parse list of project files in scheduler reply or client state file. Create corresponding FILE_INFO and FILE_REF. Write list to client state file. When a project file finishes downloading, create link file(s) for it. client/ client_types.C,h cs_account.C cs_statefile.C scheduler_op.C sched/ main.C,h server_types.C,h Charlie 27 June 2006 - Mac sandbox: - Create wrapper "BOINC Installer" application, with installer package inside its bundle. Wrapper determines whether a logout will be needed, sets installer package Info.plist file accordingly, and opens the package to launch the standard Mac installer. clientgui/ mac/ SetVersion.C mac_installer/ Installer.cpp (new) PostInstall.cpp release_boinc.sh release_GridRepublic.sh mac_build/ Installer-Info.plist PostInstall-Info.plist (new) boinc.xcodeproj/ project.pbxproj David 27 June 2006 - core client: debug 'project files" feature - core client: bad message on HTTP file-not-found client/ client_state.C client_types.C cs_statefile.C file_xfer.C David 27 June 2006 - core client: put stderr output in a CDATA block, so it doesn't break XML parsers if it has < client/ client_state.C client_types.C proxy.C,h (removed) David 27 June 2006 - Add new GUI RPC get_simple_gui_info(): returns list of projects and active results. client/ client_state.h cs_statefile.C gui_rpc_server_ops.C lib/ boinc_cmd.C gui_rpc_client.h gui_rpc_client_ops.C gui_rpc_client_print.C Charlie 27 June 2006 - Mac: update XCode project for changed files. mac_build/ boinc.xcodeproj/ project.pbxproj Rom 27 June 2006 - Enable the Simple GUI only if the define SIMPLEGUI exists. clientgui/ AdvancedFrame.cpp BOINCGUIApp.cpp, .h Charlie 27 June 2006 - Mac: Changes to compile Simple GUI. (Mac and Linux do not support colored backgrounds in menu items.) clientgui/ BOINCGUIApp.cpp sg_StatImageLoader.cpp mac/ MacSysMenu.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 27 June 2006 - CPU sched fix (minutes*60) From John McLeod client/ cpu_sched.C David 27 June 2006 - don't print errors for gethostbyname() failure client/ hostinfo_network.C Charlie 27 June 2006 - Create branch boinc_core_release_5_6 Charlie 28 June 2006 - Mac: Documentation changes for Mac sandbox. - Fix bug in GR release script. doc/ mac_build.html mac_build/ HowToBuildBOINC_XCode.rtf mac_installer/ GR-ReadMe.rtf ReadMe.rtf release_GridRepublic.sh Rom 28 June 2006 - Hook up the simple gui info rpc to the document and populate existing data structures. - Create build configurations for building the simple GUI since it is now turned off by default. - When clearing out a gui rpc result structure, make sure the pointers are nulled out. clientgui/ MainDocument.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.C win_build/ boinc.sln boinc_cli_curl.vcproj boinc_dll.vcproj boinc_ss.vcproj boinccmd.vcproj boincmgr_curl.vcproj libboinc.vcproj David 28 June 2006 - core client: remove the NET_XFER class. This represented a layer (asynch transfers to/from sockets) that doesn't exist anymore; Curl subsumes it. Anything still used in NET_XFER was moved to HTTP_OP. (from Carl Christensen) client/ client_state.C,h cs_prefs.C http_curl.C,h net_stats.C,h net_xfer_curl.C,h (removed) win_build/ boinc_cli_curl.vcproj David 28 June 2006 - core client: fix Unix build, and mild code cleanup: - removed HTTP_OP::do_file_io, io_done, and io_ready (not used anymore) - removed unused values of HTTP_STATE_* - removed extern decls from main.C (include .h file instead!) client/ Makefile.am http_curl.C,h main.C Rom 28 June 2006 - Bug Fix: make sure the same frame is not initialized twice. clientgui/ BOINCGUIApp.cpp Charlie 28 June 2006 - Mac: Documentation changes for Mac sandbox. - Fix bug in GR release script. doc/ mac_build.html mac_build/ HowToBuildBOINC_XCode.rtf mac_installer/ GR-ReadMe.rtf ReadMe.rtf release_GridRepublic.sh Charlie 29 June 2006 - Mac: Mac sandbox fixes to run as non-admin user. - Set S_IXOTH permission for switcher application, slot subdirectories, project subdirectories. - Add setprojectgrp helper application; use it instead of chown to set files and directories to group boinc_project. client/ app_start.C check_security.C client_types.C file_names.C,h setprojectgrp.C (added) switcher.C mac_installer/ release_boinc.sh release_GridRepublic.sh clientgui/ mac/ SetupSecurity.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 30 June 2006 - fixes for Windows/cygwin compile (from Carlos Orellana) lib/ crypt_prog.C filesys.C David 30 June 2006 - core client: ACTIVE_TASK::supports_graphics(): return false if process isn't executing. (prevent GUI from showing "show graphics" button for results with no process, or suspended process) - core client: on Windows command-line, when you close the window, quit_client() gets called, but control never returns to boinc_main_loop(), so gstate.quit_activities() (and other cleanup stuff) isn't called, so apps don't exit. If you then start the core client again in the next 30 sec, and exit quickly, another copy of apps gets started, which waits to acquire slot lock, then decides it's in standalone mode and opens a graphics window! Very confusing. I fixed this by moving all the cleanup code to a separate functions (finalize()) and calling this directly from quit_client(). By the way, why is main.C such a toxic waste dump? client/ app_graphics.C main.C David 30 June 2006 - message tweaks client/ app.h client_state.C scheduler_op.C Charlie 30 June 2006 - Mac: Mac sandbox fixes: - Set, check nested slot and project directory permissions recursively. - Make Switcher directory non-writable. - Update security documentation. - better handling of locale directories. - boinc_mkdir makes directories world-executable. - Bump version to 5.5.5 for release to alpha test. version.h client/ check_security.C client_types.C file_names.C clientgui/ mac/ SetupSecurity.cpp doc/ sandbox.php lib/ filesys.C Charlie 1 July 2006 (branch boinc_core_release_5_6) - Tag for 5.5.5 release, Macinitosh with sandbox only boinc_core_release_5_5_5 David 1 July 2006 - user web: moved forum-related email functions to a new file; small bug fixes in forum moderation code - changed db/schema.sql to match new forum code - user web: html/project/project.inc must now have define("FORUM_MODERATION_EMAIL_USER_ID", "N") to specify who reports get sent to (the ID of an existing account) db/ schema.sql html/ inc/ email.inc forum_email.inc (new) user/ edit_forum_preferences_form.php forum_moderate_post_action.php forum_moderate_thread_action.php forum_post.php forum_reply.php forum_report_post.php David 2 July 2006 - AMS RPC: fix bug that incorrectly removed people from their team (found by Willy de Zutter) html/user/ am_set_info.php Charlie 3 July 2006 - Mac: Mac sandbox: don't set S_ISUID bit for setprojectgrp helper application. client/ check_security.C clientgui/ mac/ SetupSecurity.cpp doc/ sandbox.php Charlie 3 July 2006 - Mac: Fix compile error (add #include " to http_curl.C). - Fix compiler warning - Merge XCode project changes for suimple gui and for sandbox. client/ http_curl.C clientgui/ AdvancedFrame.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 4 July 2006 - Mac sandbox: Manager doesn't create BOINC Data directory if it doesn't exist when using SANDBOX security. clientgui/ BOINCGUIApp.cpp mac/ SetupSecurity.cpp Rom 5 July 2006 - Add Suspend a Disconnect icons to the taskbar for when the client is snoozing and disconnected. - Refreshed Simple GUI clientgui/ AdvancedFrame.cpp BOINCBaseFrame.cpp BOINCGUIApp.cpp, .h BOINCTaskBar.cpp, .h sg_BoincSimpleGUI.cpp, .h sg_StatImageLoader.cpp, .h clientgui/res/ boincdisconnect.xpm (Added) boincsnooze.xpm (Added) clientgui/res/templates/ icondisconnect.ico (Added) iconsnooze.ico (Added) David 5 July 2006 - server: added a PHP script for doing customized mass emails See http://boinc.berkeley.edu/mass_email.php - user web: project preferences: show privacy and venue items before project-specific preferences db/ boinc_db.h html/ inc/ email.inc prefs.inc ops/ mass_email_script.php (new) user/ opt_out.php (new) prefs.php prefs_edit_form.php Rom 5 July 2006 - Bug fixes to previous check-in and code cleanup. clientgui/ AdvancedFrame.cpp BOINCTaskBar.cpp, .h David 5 July 2006 - core client: fix bug where we write past the end of benchmark_desc array if ncpus increases (from Don Mullis) client/ cs_benchmark.C Charlie 6 July 2006 - Mac sandbox: boinc_delete_file(), clean_out_dir(), boinc_rmdir () all call remove_project_owned_file_or_dir() which uses switcher helper application to remove subdirectories created & owned by projects. - Add License (GPL) to source files where missing. client/ check_security.C file_names.C,h setprojectgrp.C switcher.C lib/ filesys.C,h mac_installer/ release_boinc.sh release_GridRepublic.sh Charlie 6 July 2006 Mac: integrate task tray icon changes, fix compile errors. clientgui/ BOINCGUIApp.cpp BOINCTaskBar.cpp,h mac/ MacSysMenu.cpp,h David 6 July 2006 - server: added new result outcome CLIENT_DETACHED. When we get an RPC suggesting that the client has detached and reattached, we set its results to OVER and CLIENT_DETACHED. Results in this state are generally treated the same as NO_REPLY. - updated PHP functions to include the above; got rid of redundant functions db/ boinc_db.h html/inc/ db_ops.inc result.inc sched/ handle_request.C transitioner.C David 6 July 2006 - core client: use fcntl() instead of lockf() or flock() to lock files. It's POSIX, hence more portable. (from Bruce Allen) configure.ac lib/ filesys.C David 6 July 2006 - user web: in "allow email" form, show source address of emails so users can let them through spam filter html/inc/ prefs.inc Rom 7 July 2006 - Only display the suspended icon in the taskbar if the activity runmode is set to never. clientgui/ BOINCTaskBar.cpp David 7 July 2006 - tweaks and typos client/ http_curl.C,h scheduler_op.C lib/ gui_rpc_client.C py/Boinc/ setup_project.py sched/ sched_array.C sea/ make-sea.sh David 9 July 2006 - core client: improved log message for debts client/ cpu_sched.C David 9 July 2006 - core client: improve "RPC succeeded" message client/ cs_scheduler.C scheduler_op.C David 9 July 2006 - core client: instead of calling compute_work_requests() every 5 seconds (in scheduler_rpc_poll()), call it at startup, and thereafter every 10 minutes or whenever something happens that could change work requests. (from John McLeod) client/ client_state.C,h cpu_sched.C cs_apps.C cs_scheduler.C gui_rpc_server_ops.C scheduler_op.C David 9 July 2006 - core client: keep track of the "outages" (periods when BOINC hasn't run) in the last 60 days. This will be used in the work fetch policy. (from John McLeod) client time_stats.C,h Matt 10 July 2006 I did this already once, but for some reason the code got lost, so.. - User web: - If the flag is in config.xml, the rating +/- links don't show up under posts. - check in forum_rate.php to do the same check (and make sure people are trying to sneakily downrate posts without using the +/- links). html/user forum_rate.php html/inc forum.inc David 11 July 2006 - Feeder: an option so that apps have a "weight" (floating-pt) that determines the proportions of work items inserted by the feeder. I.e. if app 1 has weight .5 and app 2 has weight 1.5, then we'll send 3 times as many results for app 2 as app 1 - Feeder/scheduler: add an option "-reliable N": This tags work items whose workunits are older than N days as "need_reliable", so that the scheduler can try to send them to "reliable" hosts (those with expavg_credit > 70) In no case send a "need_reliable" result to a host with zero total credit. - Feeder, with homogeneous redundancy: when add a result with a sibling that's already sent (or on a collision, if we learn that this is the case) increment its infeasible_count. This causes it to be sent quicker. It's better to have the array full of results that are not already committed to a platform. - validator: add -sleep_interval cmdline arg - Add TRANSITIONER_ITEM::res_received_time (Nothing currently uses this - should we remove??) NOTE: this update requires a database change: see html/ops/db_update.php (from Kevin Reed) db/ boinc_db.C,h schema.sql html/ops/ db_update.php sched/ feeder.C sched_array.C sched_send.C sched_shmem.C,h server_types.h show_shmem.C validator.C David 11 July 2006 - core client: fix bug where the first log flag in the list was getting skipped over. This was due to a design flaw in the new XML parsing code. To work around this, I changed the format of the cc_config.xml file so that options are enclosed in ... client/ app.C cs_statefile.C log_flags.C,h lib/ parse.C Milos 11 July 2006 - Simple GUI Refresh clientgui/ sg_BoincSimpleGUI.cpp, .h sg_DlgPreferences.cpp, .h sg_ImageLoader.cpp, .h sg_SkinClass.cpp, .h sg_StatImageLoader.cpp, .h sg_ViewTabPage.cpp, .h (Added) David 11 July 2006 - core client, Windows: don't call finalize() in quit_client(); quit_client() is run in a different thread, apparently, and we can't safely do anything in that thread. Instead, have it set a flag telling the main thread to exit, then do a sleep loop until the main thread has exited. (Windows... you gotta love it). client/ main.C Rom 12 July 2006 - Bug Fix: Remove extra waiting loop for Win9x based platforms when shutting down a console window now that quit_client() does the waiting. client/ main.C David 12 July 2006 - core client: fix bug where sym links for project files weren't getting written (missing fclose()) - core client: fix crash on project detach (PROJECT object was being referenced after it was deleted) client/ client_types.C gui_rpc_server_ops.C David 12 July 2006 - added a linux makefile for core client client/ Makefile.linux (new) David 12 July 2006 - core client: fix bug that disabled work fetch (from John McLeod) client/ cs_scheduler.C David 12 July 2006 - core client: work-fetch bug fixes (from John McLeod) client/ Makefile.linux client_state.C,h cpu_sched.C cs_apps.C cs_scheduler.C David 13 July 2006 - core client: adjust_debts() returns if elapsed time < 1 client/ cpu_sched.C David 13 July 2006 - Change mass email script so that files are in html/ops/mass_email/, and HTML files are optional - compile fix html/ops/ mass_email_script.php lib/ filesys.h David 13 July 2006 - server: add script for doing "email reminders" to failed and lapsed user. - core client: fix bug where, if cc_config.xml is present but doesn't specify save_stats_days, it's zero (rather than the correct default of 30). - user web: remove SETI@home-specific text from translate.php client/ log_flags.C html/ ops/ remind.php user/ translate.php David 14 July 2006 - core client: clean up related to host venue and project preferences. Old: store host venue in account file, and use it when parsing account file to get the right venue-specific prefs. This is bad because the account file is not supposed to containt host-specific info, and the venue is host-specific. New: venue is stored in client state file, as part of project. On initial parse of account file, elements are skipped. Later, after client state file has been read, account files projects with non-empty host_venue are read again, this time looking for the selected element and ignoring the rest. Has this fixed any bugs? Maybe yes, maybe no. But the logic is simpler now. client/ client_state.C,h client_types.C,h cs_account.C cs_scheduler.C David 17 July 2006 - core client: close GUI RPC listening socket on exit client/ client_state.C cs_apps.C gui_rpc_server.C,h sched/ trickle_handler.C David 17 July 2006 - moved stuff related to network status out of CLIENT_STATE and into a new class, NET_STATUS. client/ acct_setup.C client_state.C,h cs_account.C cs_scheduler.C gui_rpc_server_ops.C http_curl.C net_stats.C,h pers_file_xfer.C scheduler_ops.C lib/ app_ipc.C Charlie 17 July 2006 - Fix lost changes from July 3 merge of simple gui and sandbox XCode projects. mac_build/ boinc.xcodeproj/ project.pbxproj David 17 July 2006 - added function url_to_project_dir() in lib/ (for manager) - moved escape_project_url() from client/ to lib/ client/ file_names.C,h lib/ app_ipc.h util.C,h Charlie 17 July 2006 - Mac: Disable "Show Graphics" button and screensaver graphics when client running as a daemon (bug 119); show warning dialog if user presses "Show Graphics" button during remote RPC (bug 517). - Mac: client sets gstate.executing_as_daemon if real user ID == 0 (i.e., if launched by root). (Effective uid is boinc_master.) - Added SS_STATUS_DAEMONALLOWSNOGRAPHICS for daemon case; Mac screensaver shows different message for daemon case. client/ client_state.C main.C ss_logic.C,h clientgui/ ViewWork.cpp /mac/ mac_saver_module.cpp lib/ gui_rpc_client.h Charlie 18 July 2006 - Mac: If /Library/StartupItems/boinc/boinc is present to run Client as a daemon, Manager waits up to 10 seconds for daemon to launch. - Improve shell script for setting up Mac to run BOINC Client as a daemon: add support for stop function. clientgui/ BOINCGUIApp.cpp mac_build/ Make_BOINC_Service.sh David 18 July 2006 - admin web: removed links to update_*.php scripts. These should be run as periodic tasks. Also, they are intended to run as the admin user, not as Apache. html/ inc/ stats_sites.inc ops/ index.php David 18 July 2006 - added scripts to convert to and from the ownership/protection used by the new sandboxing system (Unix) sea/ insecure.sh secure.sh Charlie 18 July 2006 - If bind fails, display errno on non_Win32 systems instead of -1. client/ gui_rpc_server.C Charlie 19 July 2006 -Mac: PostInstall.app repeatedly attempts to bind to BOINC RPC socket address as user boinc_master until the address becomes available, so BOINC Client will run properly when launched after installation. - Fix XCode project script phases which were copying wrong info.plist files into PostInstall.app. - If creating users and/or groups on OS < 10.3.9, installer requires a system restart. mac_installer/ Installer.cpp PostInstall.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 19 July 2006 - make test_uc.py work again: - request work fetch when master URL fetch completed - set CGI and file upload handler debugging mode in test - use cc_config.xml instead of log_flags.xml - use min_sendwork_interval = 0 if test - added some work fetch messages - core client: only do "platform change" logic if there was an original platform client/ client_state.C cs_scheduler.C scheduler_op.C py/Boinc/ setup_project.py test/ cc_config.xml (new) log_flags.xml (removed) testbase.py Charlie 20 July 2006 - Mac: Reverse change of 8 May 2006: remove mouse_move() routine and callback glutPassiveMotionFunc(mouse_move). This did not help screensaver on OS 10.3.x Macs respond to mouse moves, but did cause a confilct with Wacom tablet drivers (screensaver graphics quit immediately on starting.) api/ x_opengl.C Bruce 20 July 2006 - On-line scheduler logs (readable by project participants): increase the efficiency of the script that produces these log files by eliminating un-necessary grepping of cgi.log.0 tools/ makelog.sh David 20 July 2006 - Added sample files for mass emails and reminder emails html/ops/ mass_email_script.php remind.php mass_email/ sample_current_html sample_current_subject sample_current_text sample_failed_html sample_failed_subject sample_failed_text sample_lapsed_html sample_lapsed_subject sample_lapsed_text remind_email/ sample_failed_html sample_failed_subject sample_failed_text sample_lapsed_html sample_lapsed_subject sample_lapsed_text David 20 July 2006 - core client: added "app_msg_debug" log flag. Shows you shared-memory messages from apps client/ app_control.C log_flags.C,h David 20 July 2006 - core client: fix crash if client state file has for a project with no account file. Also shuffled logic of state file parsing to reduce indentation client/ cs_statefile.C David 20 July 2006 - core client: fix crash if use flag, and some GUI RPC reply is long (> 8K chars) client/ gui_rpc_server_ops.C Rom 20 July 2006 - Fix build break in the simple GUI when building for the Mac. Using itoa is overkill anyway. clientgui/ sg_ViewTabPage.cpp Rom 20 July 2006 - Enabled all warnings for the Visual Studio compiler. It currently displayes 200 warning across the BOINC client package. win_build/ boinc_cli_curl.vcproj boinc_dll.vcproj boinc_ss.vcproj boinccmd.vcproj boincmgr_curl.vcproj libboinc.vcproj Charlie 21 July 2006 -Mac: Update HEAD branch XCode Project to include seven new files for Simple GUI. mac_build/ boinc.xcodeproj/ project.pbxproj Rom 21 July 2006 - Change document work function prototypes to be view agnostic. - Fix numerious warnings in the manager. Down to 50 from 120. clientgui/ AccountInfoPage.cpp AccountKeyPage.cpp AccountManagerInfoPage.cpp AccountManagerProcessingPage.cpp AccountManagerPropertiesPage.cpp AdvancedFrame.cpp AlreadyAttachedPage.cpp AlreadyExistsPage.cpp BOINCBaseFrame.cpp BOINCBaseWizard.cpp BOINCGUIApp.cpp BOINCTaskBar.cpp CompletionErrorPage.cpp CompletionPage.cpp DlgSelectComputer.cpp MainDocument.cpp, .h NoInternetConnectionPage.cpp NotDetectedPage.cpp NotFoundPage.cpp ProjectInfoPage.cpp ProjectProcessingPage.cpp ProjectPropertiesPage.cpp ProxyInfoPage.cpp ProxyPage.cpp sg_BoincSimpleGUI.cpp sg_DlgPreferences.cpp sg_ImageLoader.cpp sg_StatImageLoader.cpp sg_ViewTabPage.cpp, .h UnavailablePage.cpp ValidateURL.cpp ViewProjects.cpp ViewResources.cpp ViewTransfers.cpp ViewWork.cpp, .h WelcomePage.cpp WizardAccountManager.cpp WizardAttachProject.cpp lib/ gui_rpc_client.C Rom 21 July 2006 - Bug Fix for Linux: On some linux distro's a mime type database is detected and has an entry to a browser that isn't even installed on the system. When a participant clicks on a link or button that would normally open a browser nothing happens. Our message box isn't even displayed since an entry existed in the mime types database. Try to actually execute the browser commandline to determine if the mime type database is correct. If that throws an error check to see if BROWSER is defined as an envitronment variable, since that is the next closest thing to a standard Linux has, and if that fails try firefox, mozilla, konqueror. clientgui/ hyperlink.cpp Charlie 21 July 2006 - Mac: Fix minor screensaver bugs from 17 July change. If no graphics are available, screensaver updates progress display egery 5 seconds instead of every 15 seconds. - MacGLUTFix calls [myWindow setDocumentEdited: NO] to clear "unsaved" indicator in graphics window close button (from Tim Wilson_Brown.) - Replace "exit" with "return" in shell scripts (from Tim Wilson_Brown.) api/ macglutfix.m clientgui/ /mac/ mac_saver_module.cpp mac_build/ buildWxMac.sh buildcurl.sh buildjpeg.sh setupForBOINC.sh Charlie 22 July 2006 -Mac: Installer checks for a file nologinitems.txt in BOINC Data directory. If present, delete LoginItems for users listed in this file (one user name per line), so that BOINC Manager won't launch automatically when these users log in. This is a tool for system administrators. mac_installer/ Postinstall.cpp David 22 July 2006 - core client (Win): remove quitRequestEvent (not used) - core client: ACTIVE_TASK::kill_task(): call cleanup_task() (to free shared mem) after killing process client/ app.C app_control.C app_start.C David 22 July 2006 - made the BOINC user survey (and potentially any page on the BOINC site) translatable doc/ docutil.php poll.inc poll.php poll_data.inc html/inc translations.inc languages/translations/en.po (new) David 24 July 2006 - poll translation fixes doc/ poll_my_result.php (new) languages/translations/ en.po Charlie 24 July 2006 - Mac sandbox: don't set or require user boinc_master to be a member of group boinc_project (i.e., do not add group boinc_project to user boinc_master's supplementary groups list.) client/ check_security.C clientgui/ mac/ SetupSecurity.cpp doc/ sandbox.php mac_installer/ Installer.cpp Charlie 24 July 2006 - Mac: Overlay the Dock icon with Suspend and Disconnected icon badges to match the system menu icon. This method avoids the need to create separate 128X128 Suspend and Disconnected icons for each brand. clientgui/ BOINCTaskBar.cpp res/ macsnoozebadge.xpm (Added) macdisconnectbadge.xpm (Added) Rom 25 July 2006 - Bug Fix: Mac compiler handles std::string a little differently than Windows. clientgui/ sg_ViewTabPage.cpp ViewWork.cpp Rom 25 July 2006 - Bug Fix: Reduce screensaver flicker by only updating the display every ten seconds. I tried to use a double buffer, but for whatever reason it didn't actually help. It might have had something to do with having three displays though. In any case, once every ten seconds is fine. client/win/ win_screensaver.cpp, .h Charlie 25 July 2006 - Mac Sandbox: make most (but not all) files world-readable (needed for simple gui, third-party add-ons, etc.) - Revise security diagram to clarify use of executable permission bits. - Minor code cleanup in PostInstal.cpp. clientgui/ mac/ SetupSecurity.cpp doc/ sandbox.php mac_installer/ Postinstall.cpp David 25 July 2006 core client fixes: - fix bug where interrupted downloads failed with checksum error. This was because we were comparing the HTTP status with 200. But partial transfer success is 206. (bug was introduced in June 28 checkin) - on startup, make sure that all files that are supposed to be present actually are. Otherwise set status to NOT_PRESENT, so that they'll be downloaded again. - on reset, clear project_files and user_files vectors - project files: parse and save md5 checksum. Note: this is a placeholder; I'll change it to full FILE_INFO later. client/ client_state.C,h client_types.C cs_files.C file_xfer.C http_curl.C David 25 July 2006 - fixes to Linux sandbox scripts (from Charlie) - new translation files - user web: restore alphabetic order in country list html/inc/ countries.inc languages/translations/ *.po sea/ insecure.sh secure.sh David 25 July 2006 - core client and scheduler RPC: change the XML notation for project files. Instead of using a new and poorly-designed notation, just use the existing and structures, and their associated parsing/writing code. See http://boinc.berkeley.edu/gui_urls.php client/ client_types.C,h cs_account.C cs_files.C cs_scheduler.C cs_statefile.C scheduler_op.C David 25 July 2006 - core client: when md5'ing a file, put the size in local var rather than into the FILE_INFO client/ cs_files.C Charlie 25 July 2006 (HEAD) - Mac: Create separate targets for simple-gui and non-simple-gui Managers so that we can build release versions from the Head branch. mac_build/ boinc.xcodeproj/ project.pbxproj Rom 25 July 2006 (HEAD) - Tag for 5.5.9 release, all platforms. boinc_core_release_5_5_9 Charlie 26 July 2006 (HEAD - all changes tagged for boinc_core_release_5_5_9) - Don't add "Switch to Simple GUI" to File menu if SIMPLEGUI not defined. - In security shell scripts, added quotation marks and braces around variables holding file names or paths for safety in case names contain spaces. - Added GPL to security shell scripts. - Added recursive function to set executable permissions for nested directories. - In security shell scripts, display the directory when requesting confirmation. If BOINC Client is not found, assume it is the wrong directory and exit. These safety features are needed because the script will do serious damage to the system if the user forgot to cd to the correct directory. - Mac: Created shell scripts for setting up security in ssytems with stand-alone BOINC Client (i.e., no Manager.) - Removed redundant line of code in SetupSecurity.cpp. clientgui/ AdvancedFrame.cpp mac/ SetupSecurity.cpp mac_build/ Mac_SA_Insecure.sh (new) Mac_SA_Secure.sh (new) sea/ insecure.sh secure.sh Charlie 26 July 2006 - Mac: add options to daemon script for stand-alone client. mac_build/ Make_BOINC_Service.sh Walt 26 July 2006 - Fix clientgui compile on Linux clientgui/ Makefile.am Makefile.linux.fedora Makefile.linux.suse Makefile.linux.ubuntu Charlie 27 July 2006 - Mac: Mac_SA_Secure.sh script adds logged in user to groups boinc_master and boinc_project. - New web page describing Macintosh system administrator tools; update references from existing pages. clientgui/ mac_build/ Mac_SA_Insecure.sh Mac_SA_Secure.sh doc/ mac_admin_tools.php (new) mac_advanced.php bare_core.php auto_start.php Charlie 28 July 2006 - Sandbox: change #ifdefs so Manager and Client call check_security() for all platforms if SANDBOX is enabled. Check_security() should be compatible with Linux and all UNIX, but Win32 may need different code. - Mac: Grid Republic release script uses clientgui/res/gridrepublic.icns for application icon instead of client/mac/gridrepublic.icns (which was a duplicate), in preparation for deleting the long-obsolete client/mac/ directory from CVS. client/ main.C clientgui/ BOINCGUIApp.cpp mac_installer/ release_GridRepublic.sh David 28 July 2006 - core client: don't show scheduler version number if it wasn't returned. - user web: add support for 'friend-to-friend' emails client/ cs_scheduler.C scheduler_op.C html/ ops/ffmail/ sample_html sample_subject sample_text user/ ffmail_action.php ffmail_form.php David 28 July 2006 - user web: tweak f2f email - forums: help desk is separate html/user/ ffmail_action.php ffmail_form.php forum_index.php David 28 July 2006 - core client: bug fixes for project file mechanism - clear project_file list before parsing it - set fip->is_project_file (otherwise link won't get created) client/ client_types.C cs_trickle.C David 28 July 2006 - f2f email: don't show form if project hasn't created a mail template - email tools: create email directories on project creation html/user/ ffmail_form.php py/Boinc/ setup_project.py David 29 July 2006 - core client: limit backoff to 24 hours client/ scheduler_op.h David 30 July 2006 - core client: parse in elements (not relevant to client, but don't want error message) client/ client_types.C Charlie 31 July 2006 - Mac: use separate 8-bit mask for Dock badge anti-aliasing. clientgui/ BOINCTaskBar.cpp res/ macbadgemask.xpm (Added) macsnoozebadge.xpm macdisconnectbadge.xpm Bruce 31 July 2006 - Documentation on doc/ project_options.php Charlie 1 Aug 2006 - Sandbox: extend security to all UNIX and Linux platforms. To enable this feature, add the compiler flag -DSANDBOX and add check_security.C to the source file list for both Manager and Client. - Manager and Client both accept command-line argument -insecure which runs without special boinc users and groups. Both Manager and Client check owners and permissions and refuse to run unless they are set correctly for the selected secure or insecure mode. If Manager is called with -insecure, it runs the Client with -insecure. - Added code to Mac_SA_Secure.sh and Mac_SA_Insecure.sh scripts. client/ app_start.C check_security.C client_state.C client_types.C cs_cmdline.C file_names.C gui_rpc_server.C main.C clientgui/ BOINCGUIApp.cpp,h MainDocument.cpp mac/ Mac_GUI.cpp mac_saver_module.cpp lib/ boinc_cmd.C filesys.C util.h mac_build/ Mac_SA_Insecure.sh Mac_SA_Secure.sh mac_installer/ PostInstall.cpp Rom 1 Aug 2006 - Fix build breaks on Windows client/ file_names.C main.C clientgui/ BOINCGUIApp.C lib/ boinc_cmd.C util.C Rom 1 Aug 2006 - Bug Fix: Fix the code that recreates the taskbar icon if explorer dies. clientgui/msw/ taskbarex.cpp David 1 Aug 2006 - API: don't repeatedly call getrusage() in worker_signal_handler(). api/ boinc_api.C David 1 Aug 2006 - forum fixes (from Eric Myers, Willy de Zutter) html/ inc/ forum.inc text_transform.inc languages/ cs.po de.po ja.po lt.po ru.po user/ white.css David 1 Aug 2006 - forum fix: moderator can only edit their own posts html/ inc/ forum.inc Walt 1 Aug 2006 - API: add support for freeGLUT api/ x_opengl.C Charlie 1 Aug 2006 - Mac sandbox: added Dev_noSandbox and Deploy_noSandbox build styles to XCode project for testing ability to build without -DSANDBOX. - Mac sandbox: check_security() uses PersistentFGets() for better reliability, deletes newline from path if present. - Fix compile errors in non-SANDBOX builds. - Remove unused variables (compiler warning) in x_opengl.C. api/ x_opengl.C client/ check_security.C client_state.C clientgui/ mac/ mac_saver_module.cpp lib/ util.C mac_installer/ PostInstall.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 2 Aug 2006 - core client: fix CPU throttling mechanism. - Range is 0..100, not 0..1 - ACTIVE_TASK::prempt(): don't set scheduler_state (that's not the job of this layer) - core client: fiddle with messages "task" should show you when results start and end (always 2 messages per result) "task_debug" shows every suspend/resume/checkpoint "cpu_sched_debug" shows the results selected by scheduler (more fiddling still needed) client/ app_control.C app_start.C cpu_sched.C cs_prefs.C lib/ prefs.C David 2 Aug 2006 - Reminder email: checked in SETI@home examples, just to make things more concrete. Other projects had better change these before use, or they'll look fairly clueless. - core client: clarified meaning of "episode" in comments client/ app.h html/ops/ remind_email/* Rom 2 Aug 2006 - Bug Fix: McAfee Internet Suite 8 now interjects McProxy.exe into the boincmgr.exe <-> boinc.exe communication stream. Normally it wouldn't be a problem except that McProxy.exe automatically returns success for a connect request even if the target isn't available. This lead the manager to believe that the CC had already been started. We now do a simple get screensaver mode request which is not password protected to verify that boinc.exe is listening on the other end. clientgui/ BOINCGUIApp.cpp David 2 Aug 2006 - core client: attempted fix for benchmarks running right away and preventing contact to account manager for new users client/ client_state.C David 2 Aug 2006 - API: removed 3.1 second sleep on startup. - core client: fixed significant bug in CPU scheduler: was preempting apps too soon in some cases (from N. Hoffmann and J. McLeod) api/ boinc_api.C client/ client_state.h cpu_sched.C cs_apps.C Rom 2 Aug 2006 - After successfully attaching to an account manager, display a balloon to reassure the participant that everything is fine. clientgui/ AdvancedFrame.cpp David 3 Aug 2006 - Don't run benchmarks at startup when user has in global prefs override client/ client_state.C,h cs_apps.C David 3 Aug 2006 - make download page translatable (from Komori) doc/ download.php languages/translation/ en.po Rom 3 Aug 2006 (HEAD) - Tag for 5.5.10 release, all platforms boinc_core_release_5_5_10 Rom 3 Aug 2006 - Roll back which version of libCurl we use on Windows to 7.15.3. NOTE: We believe this will resolve some of the newly discovered crashing issues, we'll revisit using the newer libCurl after the new simple GUI is released. curl/mswin/x86/bin/ libcurl.dll-7.15.4 (added) libcurl.pdb-7.15.4 (added) libcurl.dll libcurl.pdb David 4 Aug 2006 - User web: direct forum links to the right BOINC Wiki address html/inc/ text_transform.inc David 4 Aug 2006 - core client: more log messages, and possible fix to CPU scheduling problem client/ cpu_sched.C David 6 Aug 2006 - core client: probable fix to CPU sched problems (from John McLeod) client/ cpu_sched.C David 6 Aug 2006 - renamed schedule_result() to get_task() client/ client_state.h cpu_sched.C cs_apps.C David 6 Aug 2006 - core client: enable graphics for an app if it's scheduler state is "scheduled" (rather than if it's actually running) - change project files to Visual Studio 2005 format (Rom: please check in 2003-format files with _2003.vcproj names) client/ app_graphics.C win_build/ boinc.sln boinc_cli_curl.vcproj boinc_dll.vcproj boinc_ss.vcproj boinccmd.vcproj boincmgr_curl.vcproj libboinc.vcproj David 6 Aug 2006 - GUI RPC: get_activity_state() returns the reasons for suspension, not just flags (so that can show "throttle" messages) client/ client_state.C,h gui_rpc_server_ops.C clientgui/ MainDocument.cpp,h lib/ gui_rpc_client.h gui_rpc_client_ops.C David 6 Aug 2006 - 2nd part of the above clientgui/ BOINCTaskBar.cpp MainDocument.cpp ViewTransfers.cpp ViewWork.cpp lib/ gui_rpc_client.h David 7 Aug 2006 - Add GUI RPCs for reading and writing the general prefs override file. Note: these pass the raw XML, not a parsed structure; that's because only some of the prefs may be overridden. It's up to the GUI to decide what semantics to provide, i.e. how to mix local and web-based preferences. Probably the easiest approach is to make it "either/or", i.e. write all prefs to the override file, and provide a "user network prefs" checkbox in the GUI, which clears the override file. client/ gui_rpc_server_ops.C lib/ gui_rpc_client.h gui_rpc_client_ops.C Rom 7 Aug 2006 (HEAD) - Tag for 5.5.11 release, all platforms boinc_core_release_5_5_11 Walt 8 Aug 2006 - Adjust messages so the text wraps inside the window instead of running off the edge. clientgui/ AccountManagerInfoPage.cpp ProjectInfoPage.cpp WelcomePage.cpp David 8 Aug 2006 - User web: add "banish" feature for message boards. Moderators can banish users for 2 weeks, during which time they can't post or rate. NOTE: this requires a database update. See html/ops/db_update.php html/ inc/ forum.inc forum_email.inc forum_moderators.inc forum_user.inc ops/ db_update.inc user/ forum_moderate_post.php forum_moderate_post_action.php forum_post.php forum_reply.php forum_report_post.php moderation.php white.css David 8 Aug 2006 - send email to user, not moderator html/ inc/ forum_email.inc David 8 Aug 2006 - don't send elements in scheduler request. Too much text, and I don't think schedulers will ever need this level of detail (longest outage probably sufficient) client/ time_stats.C David 8 Aug 2006 - bug fix html/user/ forum_moderate_post_action.php David 8 Aug 2006 - core client: fix CPU scheduling but that would cause idle CPU after suspending a task - compile fix for VS2005 api/ gutil_text.C client/ cpu_sched.C Walt 8 Aug 2006 - Bugfix: On unicode builds on Linux,wasn't displaying project name when detaching from project. clientgui/ ViewProjects.cpp David 9 Aug 2006 - bug fixes in forum code html/ inc/ db_forum.inc forum_email.inc forum_forum.inc translation.inc user/ forum_forum.php white.css David 9 Aug 2006 - user web: "Change password" -> "Forgot password?" in login form html/inc/ util.inc David 10 Aug 2006 - add certificate authority bundle file to linux release client/ cpu_sched.C sea/ Makefile.am David 10 Aug 2006 - core client: choose_version_num(): fix bug that could happen if two projects have app with same name (from Josef Segur) client/ client_state.h cs_apps.C cs_scheduler.C Milos 10 Aug 2006 - Updated Simple GUI code to reflect new design - Skins folder contains new images as well and also new skin.xml files clientgui/ sg_* Walt 10 Aug 2006 - Remove taskbar icon on Linux so the manager exits properly clientgui/ BOINCGUIApp.cpp Walt 10 Aug 2006 - Tag for 5.5.12 release, all platforms boinc_core_release_5_5_12 David 10 Aug 2006 - major revision of work-fetch policy; may fix bugs where client starves. Also an improved version of my 10/8 scheduler fix. (from John McLeod) client/ app_control.C client_state.C client_types.C cpu_sched.C cs_apps.C cs_scheduler.C gui_rpc_server_ops.C David 11 Aug 2006 - GUI RPC: add task and network suspend reasons to the structure returned by get_cc_status(). Future items should be put in this structure rather than adding a new RPC. Old RPCs (network_status() and get_activity_state()) have been left in to avoid breaking current add-ons. They have been marked as deprecated and will be removed 12/06. - Manager: if task is suspended, say why client/ gui_rpc_server_ops.C net_stats.C clientgui/ BOINCTaskBar.cpp MainDocument.cpp,h ViewTransfers.cpp ViewWork.cpp lib/ error_numbers.h gui_rpc_client.h gui_rpc_client_ops.C Milos 11 Aug 2006 - Added suport for importing images from skin for Flat Notebook Added additional routine to check for Skin validity. Skin validity is also checked now when different skin choosen. If skin is not valid no skin will be changed. clientgui/ sg_BoincSimpleGUI.cpp sg_ProjectsComponent.cpp sg_SkinClass.h clientgui/common wxFlatNotebook.cpp clientgui/skins/default && WorldCommunityGrid skin.xml David 11 Aug 2006 - GUI RPC: change things so most of the read-only RPCs don't require authorization for local access client/ gui_rpc_server_ops.C lib/ error_numbers.h Walt 11 Aug 2006 - Bug fix: remove references to TaskBarIcon for Linux compiles. Should fix the SIGSEGVs that were reported. clientgui/ AdvancedFrame.cpp BOINCGUIApp.h David 11 Aug 2006 - DB: the type of forum_preferences.special_user was changed from integer to char(8) in db_update.php, but we forgot to make the same change in schema.sql. Fixed this (actually made it char(12) to allow expansion) Any projects created since Jan 2005: check the type of this field. If it's integer, change it to char(12) not null default ''. Otherwise your message-board moderation features won't work. - Show quotes correctly in profile text - fixes to admin web interface (from Christian Beer) db/ schema.sql html/inc/ db_ops.inc profile.inc Rom 13 Aug 2006 - Fix thread creation failures on Win9x machines when applications are built with DevC++/MinGW. (From Josef W. Segur) api/ boinc_api.C lib/ diagnostics_win.C David 13 Aug 2006 - User web: multi-column option for displaying venue-specific prefs - User web: value-checking on prefs (from Christian Beer) NOTE TO PROJECTS: if you deploy this code and use project-specific prefs, you'll have to modify your project_specific_prefs.inc to support the error-checking and multi-column features html/ inc/ prefs.inc prefs_col.inc (removed) translation.inc util.inc project.sample/ project_specific_prefs.inc user/ add_venue.php (new) add_venue_action.php (removed) add_venue_form.php (removed) prefs.php prefs_edit.php (new) prefs_edit_action.php (removed) prefs_edit_form.php (removed) prefs_remove.php white.css David 14 Aug 2006 - GUI RPC: added new RPCs get_global_prefs_override_struct(GLOBAL_PREFS&) and set_global_prefs_override_struct(GLOBAL_PREFS&) Note: these are useful only when ALL prefs are being specified in the override file, as there's no provision for "undefined" values in the structs. html/inc/ util.inc lib/ gui_rpc_client.h gui_rpc_client_ops.C Walt 14 Aug 2006 - Fix compile errors on Linux clientgui/ AdvancedFrame.cpp Rom 14 Aug 2006 - Bug Fix: The application class should determine whether to show or hide a frame based on the parameters passed to the application. Frames should not show or hide themselves without user interaction. clientgui/ BOINCGUIApp.cpp Walt 14 Aug 2006 - Bug fix: fix boincmgr so it exits when X on window is clicked clientgui/ BOINCBaseFrame.cpp David 14 Aug 2006 - user web: change build_uotd_page() to match the SETI@home convention (that verification=1 means it's a UOTD candidate) but let project define its own criteria. - user web: fix bug that caused errors in profile_screen_form.php - core client: removed unused functions set_work_fetch_mode() and should_get_work(); renamed retval (???) to non_cpu_intensive_needs_work; show urgency as string instead of number; changed type of compute_work_requests() to bool client/ client_state.h cs_scheduler.C html/ inc/ profile.inc uotd.inc ops/ profile_screen_form.php David 14 Aug 2006 - user web: on second thought: if 1 is in the config file, use the right queries for both screening and UOTD selection. Leave in the option for custom queries in both places. html/ inc/ uotd.inc ops/ profile_screen_form.php Rom 14 Aug 2006 - Tag for 5.5.13 release, all platforms boinc_core_release_5_5_13 Charlie 15 Aug 2006 - Fix compiler warnings. client/ cpu_sched.C cs_scheduler.C David 15 Aug 2006 - core client: removed message - Manager: changed one wxDateTime to double (should change all) client/ cs_scheduler.C clientgui/ MainDocument.cpp,h Rom 15 Aug 2006 - lib: Fix missing case for MIOFILE where MIOFILE.printf didn't know how to handle memory buffers. It was calling vfprintf with a null file handle and crashed. lib/ miofile.C Bruce 15 Aug 2006 - scheduler: improved message to client for clarity sched/ sched_locality.C Walt 15 Aug 2006 - Bug fix: in Linux activity menu radio buttons worked as one group instead of the two groups defined. Use wxMenu::Append for the separator instead of AppendSeparator. clientgui/ AdvancedFrame.cpp David 15 Aug 2006 - GUI RPC: tested and fixed bugs in the set_global_prefs_override() get_global_prefs_override(), set_global_prefs_override_struct() and get_global_prefs_override_struct() GUI RPCs. Sorry about that, Milos and Kevin! - Scheduler: added code that makes homogeneous redundancy work with Mac/Intel (which reports its p_vendor as 'i386' rather than 'Intel'). Without this, Mac/Intels get "platform not supported' messages even if project has added platform and app_versions. client/ gui_rpc_server_ops.C lib/ boinc_cmd.C gui_rpc_client_ops.C sched/ sched_hr.C David 16 Aug 2006 - GUI RPC: set_global_prefs_override(): if arg is empty string, delete prefs override file - improved comments in CPU sched code client/ cs_scheduler.C gui_rpc_server_ops.C Charlie 17 Aug 2006 - Mac: Add support for hostinfo p_capabilities. For PowerPC Macs. this just sets the string to "AltiVec" if AltiVec available. For Intel Macs, this is a string of multiple 3-character values, including MMX, SSE, SSE2, SSE3 when supported. - Initialize glut_is_freeglut=false for Mac, to avoid warning message to stderr from calling glutGet(GLUT_VERSION). api/ x_opengl.C client/ hostinfo_unix.C Milos 17 Aug 2006 - changed the way wxFlatNotebook is initialized when there is no work present. Added routing to intialize notebook to default values.Introduced Freeze() and Thaw() to avoid flicker and drawing in corner when noptebook initlaized - Changed bg for preferences dialog for text to be more readable It also detect if we are using local or global preferences. clientgui/ sg_BoincSimpleGUI.cpp,h sg_DlgPreferences.cpp,h sg_ProjectsComponent.cpp Rom 17 Aug 2006 - Bug Fix: Keep both the global state and the updated tasks records in sync within the simple GUI. clientgui/ MainDocument.cpp, .h sg_BoincSimpleGUI.cpp Charlie 17 Aug 2006 -Mac: Fixed a bug in check_security() when ID of group boinc_master != ID of user boinc_master. - Mac: XCode project sets S_ISUID and S_ISGID permission bits for stand-alone client to aid in debugging. - Update obsolete screensaver test code in ss_logic.C. client/ check_security.C ss_logic.C mac_build/ boinc.xcodeproj/ project.pbxproj Rom 18 Aug 2006 - boincmgr - Add support for detecting an authenticator via a "Setup" cookie from the projects master URL. With this, and the project_init.xml file specified for a customized installer will allow for a handsfree install scenario. project_init.xml just needs to contain the project name and master url, the website sets a cookie named "Setup" with the desired authenticator and a reasonable timeout, like 30 minutes, and the attach to project wizard will automatically attach to the project and get work. NOTE: This only works if the participant is using Internet Explorer. clientgui/ ProjectProcessingPage.cpp WizardAttachProject.cpp, .h clientlib/win/ AuthenticatorDetection.cpp, .h stdafx.h win_build/ boinc_dll.vcproj boinc_dll_2003.vcproj Rom 18 Aug 2006 - Initialize scratch scheduler/work fetch variables when PROJECT structs are created. client/ client_types.C cs_scheduler.C Milos 18 Aug 2006 - Added additional images to both skins. Main background has been changed as well.(logos) Reading and writing to override global preferences enabled from Preferences dialog. Created new component ClientStateIndicator for showing state in gui. Split initiation in main class to workunit view and project view. Also added logic for showing state clientgui/ sg_ViewTabPage.cpp,h sg_SkinClass.h sg_ProjectsComponent.cpp sg_DlgPreferences.cpp,h sg_ClientStateIndicator.cpp,h sg_BoincSimpleGUI.cpp,h client/skins/.../ skin.xml client/skins/.../graphic conn_ind.png error_image.png state_ind_bg.png simplegui_bg.png Charlie 19 Aug 2006 -Mac: Fixed a bug in setMacIcon() associated with sandbox security; FSpSetFInfo() was getting a permission error trying to set the kHasCustomIcon bit in the Finder flags, preventing the custom icon from appearing. Use FSSetCatalogInfo() instead of FSpSetFInfo() as recommended by Apple (FSpSetFInfo is deprecated.) api/ mac_icon.C David 20 Aug 2006 - _autosetup: the check_version function doesn't correctly handle version strings that begins with 0, such as the pkg-config version 0.15. This is due to that checking if a value is a number it is assumed that the number is more than 0. check_version also assumes that 1.10 is lower than 1.9 since it does a string comparison. (from Egon Larsson) _autosetup html/inc/ translation.inc Charlie 21 Aug 2006 -Mac: Work around screensaver SETI@home crash bug seen on Intel Macs which apparently occurs in GLUT destructors; use glutHideWindow() and glutShowWindow() instead of glutDestroyWindow() and glutCreateWindow() to close and open existing window. This is similar to implementation for FreeGLUT on Linux. - Mac: When closing graphics window, remember its size and position; restore window's size and position after exiting screensaver, or if user closes and reopens the window. Presently implemented only for Mac, and retains information only while application remains in memory. - Mac: Show window only after a successful call to throttled_app_render(); this eliminates ugly flashes, especially when switching to MODE_WINDOW from MODE_FULLSCREEN; also avoids momentary display of old image when screensaver restarts which made image appear to "jump." Presently implemented only for Mac api/ macglutfix.m x_opengl.C David 21 Aug 2006 - Manager: make axis labels uniform in Statistics tab (from Mifistor) clientgui/ ViewStatistics.cpp Rom 21 Aug 2006 - Remove the suppression of the "Expect: 100 continue" in HTTP header. This bug fix from Ian Hay was originally to fix some proxy issues. We do not know which proxy issues it actually fixes, we are waiting on some follow-up from Ian. In the mean time this should allow NTLM auth on an HTTP post operation. client/ http_curl.C David 21 Aug 2006 - server: check for benchmark weightings in 0..1 - User and admin web: small fixes html/ inc/ db_ops.inc user/ head_20.png (removed) img/ head_20.png (added) py/Boinc/ setup_project.py sched/ sched_config.C David 21 Aug 2006 - new XML parser (class XML_PARSER). This replaces the one checked in May 24 2006, which had a design flaw. The new one parses XML of any structure and format; i.e. it works even if software other than BOINC generated the XML. Currently this is used only for parsing sched config file and client config file. TODO: use it everywhere. client/ log_flags.C,h lib/ parse.C,h sched/ sched_config.C Janus 22 Aug 2006 - Avatars now stay when users edit their forum preferences - Changed the Q&A pages to use the new search facility instead of Google (unless ours doesn't find anything) - Added CVS auto tracking to some files - Improved visual layout of forum prefs page - If a user forgets to make a title for a post the post content is no longer simply deleted. Instead a warning is shown. - page_head and page_tail are now overridable (for easier integration with a non-BOINC environment) - Small set of HTML4.01 transitional fixes html/inc/ util.inc html/user/ edit_forum_preferences_form.php forum_post.php forum_help_desk.php David 22 Aug 2006 - Manager: small simplification (from Mifistor) clientgui/ ViewStatistics.cpp Rom 22 Aug 2006 - Tag for 5.5.14 release, all platforms boinc_core_release_5_5_14 David 22 Aug 2006 - Core client: change variable names to conform to new terminology (see comment at top of cpu_sched.C): adjust_debts_last_time => debt_interval_start PROJECT::wall_cpu_time_this_period => wall_cpu_time_this_debt_interval total_wall_cpu_time_this_period => total_wall_cpu_time_this_debt_interval ACTIVE_TASK::cpu_time_at_last_sched => debt_interval_start_cpu_time ACTIVE_TASK::episode_start_wall_time => run_interval_start_wall_time client/ app.C,h app_start.C client_state.C,h client_types.C,h cpu_sched.C cs_apps.C David 22 Aug 2006 - change XML_PARSER to take a MIOFILE* instead of a FILE*. This allows it to be used anywhere in BOINC. client/ log_flags.C lib/ miofile.C,h parse.C,h sched/ sched_config.C sea/ insecure.sh Walt 22 Aug 2006 - Manager: Add text to tooltips for buttons on statictics panel. Linux version was showing a small empty box. clientgui/ ViewStatistics.cpp Rom 22 Aug 2006 - Bug Fix: Use InetnetGetCookie instead of InternetGetCookieEx so that we are backwards compatible with all Windows versions that are spported. clientlib/win/ AuthenticatorDetection.cpp stdafx.h David 22 Aug 2006 - Change new XML parser to prevent buffer overrun on string parsing - User web: fix bug in moving post from one thread to another (from David Kim) client/ log_flags.C html/inc/ forum_post.inc lib/ parse.C,h prefs.C sched/ sched_config.C Rom 22 Aug 2006 - Tag for 5.5.15 release, all platforms boinc_core_release_5_5_15 David 23 Aug 2006 - removed "max_memory_nbytes, "proc_priority", "cpu_affinity", "run_minimized" and "run_on_startup" from global prefs; not used anywhere. client/ cs_cmdline.C lib/ boinc_cmd.C prefs.C,h David 23 Aug 2006 - core client: various changes to the CPU scheduler, mostly to fix: 1) on cold start (no projects), when attaching to 1st project, the client would do an RPC not asking for work, then would back off for 10 minutes (for SETI@home; this is a project param) until the next RPC, which would actually get work. 2) On the 2nd RPC, the work fetch calculation would generate some INF#00s (due to divide by zero) and would end up requesting 1 second. Also, some code cleanup. - rr_simulation(): get rid of arguments. Always treat nearly runnable results as if they were runnable. The code was sort of doing this anyway - rr_simulation(): get rid of divide by zero. If total resource share is zero, use 1 instead of p->resource_share/total resource share. - rr_simulation(): remove *ncpus from calculation of pbest->work_request - remove per_cpu_proc_rate arg from set_rrsim_proc_rate() - use project->get_project_name() instead of project->name (works for brand-new projects also) - define function work_buf_min() so you don't have to type global_prefs.work_buf_min_days * SECONDS_PER_DAY all the time - define overall_cpu_frac() so you don't have to type time_stats.on_frac * blah blah GENERAL PRINCIPAL: if there's anything complex that appears repeatedly, make it a function!! - Win project file: remove base64.C, crypt.C (these are in libboinc) client/ client_state.h client_types.h cpu_sched.C cs_scheduler.C log_flags.C win_build/ boinc_cli_curl.vcproj Kevin 23 Aug 2006 - Fixed various errors and reorganized code in the Simple GUI clientgui/ sg_BoincSimpleGUI.cpp sg_BoincSimpleGUI.h sg_ClientStateIndicator.cpp sg_ClientStateIndicator.h sg_ProgressBar.cpp sg_ProjectsComponent.cpp sg_SkinClass.cpp sg_SkinClass.h sg_ViewTabPage.cpp Rom 23 Aug 2006 - Remove the restriction where the simple gui RPC only returned active tasks. client/ client_state.h cs_statefile.C gui_rpc_server_ops.C David 23 Aug 2006 - user web: prefs fix html/inc/ prefs.inc Kevin 24 Aug 2006 - Enhancements to the simple gui -- Messages button will now alternate between black and red when alert messages have been recieved -- Additional client states are now shown when no work tabs are available such as 'downloading work' clientgui/ MainDocument.cpp sg_BoincSimpleGUI.cpp sg_BoincSimpleGUI.h sg_ClientStateIndicator.cpp sg_ClientStateIndicator.h sg_ProjectsComponent.cpp sg_ProjectsComponent.h sg_SkinClass.cpp David 24 Aug 2006 - Core client: change the sequence of events for first-time use, with the goal of not running CPU benchmarks until user has attached to project and started to run first result. Sequence is: 1) manager requests get_project_config, polls until done 2) manager calls lookup_account or create_account, polls until done 3) manager calls project_attach. core client sets CPU specs to default values (1 GFLOPS), sets project work_request to 1 second, does scheduler RPC 4) Manager poll finishes 5) core client starts CPU benchmarks The above is enforced by: - only run benchmarks if there's a nontentative project - if RPC reason is INIT, set work_request to 1 - after successful RPC, set work_request to zero - Core client: PROJECT::sched_rpc_pending is now an int that encodes the reason we need to do a sched RPC. The actual reason is now shown, not always "Requested by user". client/ acct_mgr.C client_state.C,h client_types.C,h cs_account.C cs_benchmark.C cs_cmdline.C cs_scheduler.C gui_rpc_server_ops.C scheduler_op.C,h David 24 Aug 2006 - core client: is cpu_sched_debug log flag is set, show messages when duration correction factor is changed - more detailed rr_simulation messages - on CPU benchmark completion, scale DCFs only if original benchmark is real (not 1 GFLOPS estimate) client/ client_types.C cpu_sched.C cs_benchmark.C cs_scheduler.C Rom 24 Aug 2006 - Tag for 5.5.16 release, all platforms boinc_core_release_5_5_16 Charlie 25 Aug 2006 (HEAD - all changes tagged for boinc_core_release_5_5_16) - Mac: install ca-bundle.crt file in BOINC Data folder, and include it with comman line distribution. mac_installer/ release_boinc.sh release_GridRepublic.sh Charlie 25 Aug 2006 - Fix compiler warning. clientgui/ MainDocument.cpp Kevin 25 Aug 2006 - Enhancements to the simple gui -- Project icons that are downloaded after the BSG is started will be displayed when they become available -- Make sure that the first tab is the selected tab when the BSG is opened -- The 'currently running' indicator is now properly added and removed as different results are started and stopped -- The percent displayed now includes one decimal place clientgui/ sg_BoincSimpleGUI.cpp sg_BoincSimpleGUI.h sg_ProjectsComponent.cpp sg_ProjectsComponent.h sg_StatImageLoader.cpp sg_StatImageLoader.h sg_ViewTabPage.cpp sg_ViewTabPage.h Charlie 26 Aug 2006 -Mac: Add a comment; remove bogus Mac-only code from restart() in x_opengl.C. api/ x_opengl.C Janus 27 Aug 2006 - show_user.php is now translation capable and uses the object cache (when accessed throught the web frontend). This should fix the issues where the page appears in another language than the selected one. - Simplification: Now only allow people to do userid lookups using the id of a user instead of the authenticator (when in XML mode people can still use the authenticator) html/user/ show_user.php Charlie 28 Aug 2006 -Mac: Implement standard Mac shortcut command-W for closing main Manager window (requires adding "Close Window" to File menu.) clientgui/ AdvancedFrame.cpp,h Events.h David 28 Aug 2006 - Detection of memory usage now works on Windows. You can find the amount of RAM (working set) and page file spaced used by each running BOINC app, and by all non-BOINC apps. Currently this isn't used for anything. If you set the flag in cc_config.xml, it will print memory stats every 10 seconds. TODO: get this working for Linux/Mac client/ app.C log_flags.C,h lib/ procinfo.h procinfo_win.h win_build/ boinc_cli_curl.vcproj Rom 28 Aug 2006 - Bug Fix: Fix missing screensaver condition. - Bug Fix: Lookup project structure directly instead of looking up the project by way of the result. client/win/ boinc_ss.h boinc_ss.rc win_screensaver.cpp, .h clientgui/ ViewWork.cpp Rom 28 Aug 2006 (Forked from HEAD) - Branch boinc_core_release_5_6 created for the BOINC 5.6 client release. Charlie 28 Aug 2006 (HEAD and boinc_core_release_5_6_0 tag) - Mac: Clear S_ISUID and S_ISGID permission bits from standalone Client when releasing, to eliminate warning when users try to copy it. End users of standalone Client need to run Mac_SA_Secure.sh script, which will set these bits. - Fix compile error for non_windows systems (calls to proc_info*) mac_installer/ release_boinc.sh release_GridRepublic.sh client/ app.C David 29 Aug 2006 (all changes to core client) - fixed bug where, if a GUI_HTTP op failed (e.g. initial lookup of project) the HTTP op to the reference site would immediately fail because GUI_HTTP.state is not IDLE at this point. Instead, set a need_to_contact_reference_site flag, and start the op later when GUI_HTTP.state is IDLE. - more messages for http_debug log flag - changed net_xfer_debug to http_xfer_debug - added network_status_debug log flag client/ http_curl.C log_flags.C,h net_stats.C,h lib/ util.C,h David 29 Aug 2006 core client: - replace have_tentative_project variable with a function - log message for project shortfall in no-result case client/ client_state.C,h client_types.C cpu_sched.C cs_account.C cs_scheduler.C scheduler_op.C David 29 Aug 2006 - lots more debug messages in RR simulator - fixed small bug in RR sim (last_active_size => last_project_active_size) - change meaning of time_debug log flag; it prints messages related to on_frac etc. client/ cpu_sched.C log_flags.h time_stats.C Rom 29 Aug 2006 - Bug Fix: Remove google and yahoo detection code from the wizard in the manager - Bug Fix: Remove network detection code the wizard in the manager by replacing it with the get_cc_status RPC. - Bug Fix: Clean up the parsing logic for the get_cc_status rpc. clientgui/ ProjectPropertiesPage.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.C David 29 Aug - core client: CPU sched bug fix from JM7 client/ cpu_sched.C David 30 Aug 2006 - core client: work fetch bug fix from JM7 client/ cs_scheduler.C Bruce 30 Aug 2006 - ops pages, missing client state value html/ inc/ db_ops.inc Rom 31 Aug 2006 - Bug Fix: Be sure to clear the PROJECT_CONFIG structure before reuse. Not all elements in the project config xml are required. - Bug Fix: Re-enable needed controls when account creation goes from disabled to enabled because of a project URL change. clientgui/ AccountInfoPage.cpp AccountManagerPropertiesPage.cpp ProjectPropertiesPage.cpp, .h David 31 Aug 2006 - Manager: if project doesn't allow account creation, say so, and don't show yes/no radio buttons NOTE: it still doesn't work right if you try alpha first, and then cplan. clientgui/ AccountInfoPage.cpp David 31 Aug 2006 - GUI RPC: add a new exchange_versions() RPC to get core client version. Other RPCs no longer exchange version info. Client library still parses version info from get_state() so you can find version of clients that predate this change. - Core client: the http_op_retval is now always a BOINC (ERR_*) code (not, e.g. an HTTP status code) Specific errors are returned for DNS lookup failure, connection failure, and file not found. This is documented in http_curl.h - GUI RPCs that poll HTTP operation completion now return the above error codes also. client/ gui_rpc_server_ops.C httl_curl.C,h lib/ error_numbers.h gui_rpc_client.C,h gui_rpc_client_ops.C util.C Walt 31 Aug 2006 - Add process memory info for Linux. lib/ procinfo_unix.C (new) Makefile.am Rom 31 Aug 2006 - Bug Fix: You have to show controls that you previously hidden the last time the wizard page was viewed when one of the state variables change. - Deprecate and GUI RPC's as that functionality has been rolled into . Update BOINC Manager in the dozen or so places that check the activity and network modes. client/ gui_rpc_server_ops.C clientgui/ AccountInfoPage.cpp AdvancedFrame.cpp BOINCTaskBar.cpp MainDocument.cpp, .h sg_ProjectsComponent.cpp ViewTransfers.cpp ViewWork.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.C David 31 Aug 2006 - Fix Makefiles so that "install" installs needed files (from Frank Thomas) Makefile/am client/ gui_rpc_server.C lib/ Makefile.am Rom 31 Aug 2006 - Bug Fix: Only show password confirmation controls when the create account radio button is selected. - Hook up new return codes to the project and account manager wizards. clientgui/ AccountInfoPage.cpp AccountManagerPropertiesPage.cpp, .h ProjectPropertiesPage.cpp David 31 Aug 2006 - manager: say "choose password" only if user is picking new password. otherwise say "enter password". - manager: if user leaves email address blank, ask for email address, not account key clientgui/ AccountInfoPage.cpp Walt 31 Aug 2006 - Bug Fix: Need to close directory after reading it. - Enable flag in Linux client app.C lib/ procinfo_unix.C Rom 31 Aug 2006 - Bug Fix: Forcing a global state refresh now causes the client to update the state right then and there. This should fix the app version friendly name flicker problem. clientgui/ MainDocument.cpp, .h sg_BoincSimpleGUI.cpp ViewWork.cpp Charlie 1 Sep 2006 (HEAD and boinc_core_release_5_6_1 tag) - Removed wxLogTrace call which crashes BOINC Manager on Mac. (The compiler gave a warning about this statement.) - Mac: Minor fix to XCode build script: extract symbol table file only if product has not already been stripped. clientgui/ MainDocument.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 1 Sep 2006 - Aargh! A recent Manager bug (run-mode selection acting weird) was because the core client and the Manager had different #defines for always/auto/never: one used 0/1/2 and the other used 1/2/3. There were a number of accidents of this sort waiting to happen, i.e. the same #defines cut-and-pasted into 2 different files. To keep this from ever happening again, I added a new file (lib/common_defs.h) that includes all #defines and enums shared among different BOINC components (client/Manager, screensaver/client, client/server etc.). This replaces result_state.h. In principle error_numbers.h should be merged into this file but this would required too much editing so I didn't do it. - Linux compile fix client/ app.h client_msgs.h client_state.C,h client_types.h cs_cmdline.C cs_prefs.C gui_rpc_server.h gui_rpc_server_ops.C http_curl.h log_flags.C main.C ss_logic.h clientgui/ MainDocument.h lib/ app_ipc.h boinc_cmd.C common_defs.h (new) error_numbers.h gui_rpc_client.C,h gui_rpc_client_ops.C procinfo_unix.C results_state.h (removed) util.C sched/ server_types.h David 1 Sep 2006 - Get things to compile on Win. The above fix seems to work. client/win/ win_screensaver.cpp clientgui/ ViewMessages.cpp sg_DlgMessages.cpp sg_ProjectsComponents.cpp David 1 Sep 2006 - make scripts work with sh sea/ insecure.sh secure.sh David 1 Sep 2006 - Manager: in projects tab, show when an RPC is pending (and - added bonus - say why) Thanks to Paul (A.K.A. The Gas Giant) for not letting this slip through the cracks The problem: a while back I changed sched_rpc_request from bool to int in the client; neglected to change it in GUI RPC and Manager also client/ acct_mgr.C cs_account.C cs_cmdline.C cs_scheduler.C gui_rpc_server_ops.C scheduler_ops.C,h clientgui/ ViewProjects.cpp lib/ common_defs.h gui_rpc_client.h gui_rpc_client_ops.C util.C,h Bruce 4 Sept 2006 - Ops pages: modify to include new client state outcome (aborted) html/ inc/ db_ops.inc David 4 Sept 2006 - core client: added a couple of rr_simulation messages - user web: removed SETI@home text from sample project.inc client/ cpu_sched.C cs_scheduler.C html/project.sample/ project.inc lib/ app_ipc.C Charlie 5 Sep 2006 - Mac changes for new common_defs.h, removed results_state.h. clientgui/ mac/ mac_saver_module.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 5 Sept 2006 - change run-mode #defines to match old ones lib/ common_defs.h David 5 Sept 2006 - first pass at enforcing RAM limits: - if computer is in use (kbd/mouse input) BOINC will use at most half of RAM (i.e. it won't run a set of apps whose working set size exceeds RAM/2) _ if computer is not in use, BOINC will use at most all of RAM (it won't run a set of apps whose WSS exceeds RAM) This is pretty lame. For example, in case 2 BOINC will run any set of programs, since by definitions their WSs all fit in RAM (they may be thrashing). So we need to do some thinking/experimenting. - Fix HTTP bug that affects 64-bit compiles (from Pav Lucistnik) api/ boinc_api.C client/ app.C,h app_control.C client_state.h cpu_sched.C cs_prefs.C http_curl.h html/user/ show_user.php David 5 Sept 2006 - don't print too-much-memory messages - compile fix client/ app_control.C clientgui/ ViewProjects.cpp Walt 5 Sept 2006 - compile fix for Linux unicode build clientgui/ ViewProjects.cpp David 6 Sept 2006 - compile warning fix client/ time_stats.C David 6 Sept 2006 - Manager: if project allows account creation only on web site, show appropriate text in attach-project wizard clientgui/ AccountInfoPage.cpp David 6 Sept 2006 - Renamed html/user/get_project_config.php to sample_get_project_config.php this avoids overwriting a project-modified version. - Fixed the "parse_config" script. html/user/ get_project_config.php sample_get_project_config.php py/Boinc/ setup_project.py tools/ parse_config David 6 Sept 2006 - Web RPCs: clean up error returns. All web RPCs now return N xxx in the case of an error. Both fields are always supplied, and in most cases they're both meaningful. - Web RPCs: make sure that return message is always XML. For example: if db_init() failed, we used to return an (HTML) error page. Instead: use db_init_xml() instead. Also, change get_str(), get_int() etc. so that if we're generating XML (i.e. if xml_header() has been called) an XML error is generated. - user web: check for the existence of ../project/donations.inc before trying to read it html/ inc/ forum_user.inc user.inc util.inc xml.inc user/ am_get_info.php am_set_host_info.php am_set_info.php create_account.php create_team.php lookup_account.php show_user.php team_email_list.php team_lookup.php lib/ error_numbers.h David 6 Sept 2006 - core client: scheduling bug fix: the definitions of "nearly runnable" were slightly different for project and result. This could lead to a rare situation where rr_simulation() would generate huge cpu shortfalls. (from John McLeod) client/ client_types.C,h David 7 Sept 2006 - added program to test rr_simulation() client/ rrsim_test.C David 7 Sept 2006 - core client: print log flags at start of log client/ client_state.C log_flags.C,h David 7 Sept 2006 - core client: change log message writes to conform to docs. "task": write when app starts or finishes a result (i.e. two messages per result, period) "cpu_sched": write when core client starts, resumes, suspends, or quits an app (i.e. show the CPU scheduler's actions) "cpu_sched_debug": show the internal logic of the CPU scheduler "task_debug": show details of process birth and death (e.g. exit status, signals) client/ app_control.C app_start.C cpu_sched.C David 7 Sept 2006 - remove some (but not all) compile warnings on Win/VS (no functional changes) client/ app.C app_control.C client_state.C client_types.C cpu_sched.C gui_rpc_server_ops.C http_curl.C log_flags.C main.C lib/ filesys.C parse.C David 7 Sept 2006 - core client: for debugging messages, include the name of the flag that enables the message. This makes the messages longer but should make then more usable when several flags are set. client/ *.C David 8 Sept 2006 - core client: frustrating attempt to get page fault rate on Windows. It turns out that the "page fault count" reported by Windows includes "soft" page faults that don't read from disk. A typical process gets hundreds or thousands of these per second. There doesn't seem to be a way to get a count of real page faults. In any case: I added PROCINFO to the ACTIVE_TASK structure, eliminating the need for the vm_nbytes and rss_bytes fields. Note: the reason I'm worrying about this is: suppose an OS defines a process's "working set" as the amount of RAM it currently has. Then all running apps will appear to fit in RAM, and our goal of avoiding thrashing will fail. I was looking at page fault rate as a way to get around this. However: I ran across a note that says that Windows defines "working set" as "the amount of memory needed for the process to run efficiently". If that's the case, we don't need to worry about page fault rate. client/ app.C,h app_control.C cpu_sched.C lib/ procinfo.h procinfo_win.C win_build/ boinc_cli_curl.vcproj David 8 Sept 2006 - Web RPCs: return correct error codes html/ inc/ xml.inc user/ am_set_info.php create_account.php create_team.php David 8 Sept 2006 - manager: if client_account_creation_disabled is set, don't go to the account key page. Everything related to account keys can now be removed from the manager. - manager: removed redundant text on User Information page - manager: don't refer to "Messages Tab" (or any other tab) in the wizard; don't exist in simple GUI clientgui/ AccountInfoPage.cpp CompletionErrorPage.cpp ProjectPropertiesPage.cpp Kevin 8 Sept 2006 - BSG: - Resolved some remaining bugs that prevented display of project information for newly attached projects - The show graphics button will only be displayed when graphics can actually be displayed - Added additional states to explain why no work is running (ex: benchmarks running). - The drop down for project gui urls will now be updated when the list of GUI urls for the project become available - Detaching from a project no longer causes the app to minimize to the system tray clientgui/ sg_BoincSimpleGUI.cpp sg_ClientStateIndicator.cpp sg_ClientStateIndicator.h sg_ImageButton.cpp sg_ImageButton.h sg_ProjectsComponent.cpp sg_ProjectsComponent.h sg_StatImageLoader.cpp sg_StatImageLoader.h sg_ViewTabPage.cpp David 8 Sept 2006 - core client: fix the mechanism that allows network access for 5 minutes if it's needed to carry out a user-initiated GUI RPC (e.g. attaching to a project). This situation allows network access even if the user has set network mode to "never". Otherwise, if you try to attach to a project, the manager sits there for 60 seconds, then responds with "network failure" or something like that. I suppose another solution would be for the manager to notice that network is suspended, and not let you try to attach to a project. But this way is more user-friendly, I think. Renamed gui_rpcs.got_recent_rpc() to recent_rpc_needs_network(); Renamed last_rpc_time to time_of_last_rpc_needing_network. Shuffled order of RPCs in gui_rpc_server_ops.C; this is critical to things working. - manager: check for ERR_DB_NOT_FOUND in return codes from web RPCs - manager: parse error message in ACCOUNT_OUT correctly client/ client_state.C gui_rpc_server.C,h gui_rpc_server_ops.C clientgui/ AccountManagerProcessingPage.cpp ProjectProcessingPage.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.C David 8 Sept 2006 - core client, Unix: change syslog() call so message is INFO rather than EMERGENCY (from Evandro Menezes) client/ main.C David 8 Sept 2006 - Manager: handle client_account_creation_disabled flag correctly clientgui/ AccountInfoPage.cpp David 9 Sept 2006 - Manager: make Statistics tab text translatable clientgui/ ViewStatistics.cpp David 9 Sept 2006 - XML parser: add function for parsing std::string lib/ parse.C,h Bruce 10 Sept 2006 - For computing and tracking a host's average credit/cpu_time I have inserted a new averaging function update_credit_per_cpu_sec() into lib/util.C. This function should be called from validator.C, and then the value of credit_per_cpu_sec should be exported by db_dump.C in the host_id.gz stats file. David, Eric, if you could check the code and logic here I would be grateful. This is currently disabled in validator.C with a #ifdef macro. I won't enable it until we've agreed on this. lib/ util.C util.h sched/ db_dump.C validator.C David 11 Sept 2006 - core client: code to get mem usage should now work on all versions of Windows (it's a no-op on 9X, ME) lib/ procinfo_win.C David 11 Sept 2006 - API: fix bug in parsing global prefs. GLOBAL_PREFS::parse_override() was calling xp.parse_start(), which is wrong because in some cases (e.g. parsing app init data file) the start tag has already been parsed. Principle: only call xp.parse_start() if you're the function that actually opens the file. - convert parsing of global preferences to use new XML parser - core client: print error message if can't parse cc_config.xml client/ cs_prefs.C log_flags.C lib/ app_ipc.C gui_rpc_client_ops.C prefs.C,h David 11 Sept 2006 - API bug fix lib/ app_ipc.C David 11 Sept 2006 - XML parser bug fix (from Urs Echternacht) lib/ parse.C Rom 11 Sept 2006 - Bug Fix: Keep one second disk writes from happening on the OnRender() function of the advanced frame. GTK2 appears to emulate user activity when setting a control's state programtically which in turn causes the set_*_mode rpc functions which in turn causes the state file to be flagged as dirty. clientgui/ AdvancedFrame.cpp, .h Kevin 12 Sept 2006 - BSG - Modify skin.xml format to be more readable - Add additional check to a skin.xml file to ensure that it is valid before attempting to display clientgui/ sg_SkinClass.cpp David 12 Sept 2006 - Core client and account manager protocol: account manager replies can include a ... element. It is stored in the acct_mgr_login.xml file, and returned verbatim in subsequent account manager RPCs. This is intended to allow account managers to send a string analogous to BOINC's account key, identifying the user and/or host on subsequent RPCs. This overrides the name/password, and allows RPCs to continue working even if the user changes name/password on the AMS site. NOTE: the contents of are arbitrary XML. Can contain other elements, and can have newlines. Doing this required switching all AMS-related XML parsing to use the new XML parser. So now AMS replies don't have any XML formatting restrictions. Woo-hoo! - XML_PARSER: added element_contents() method to parse stuff that may contain tags (like ) client/ acct_mgr.C,h lib/ parse.C,h David 12 Sept 2006 - user web: $n -> ITEMS_PER_PAGE html/user top_teams.php top_users.php David 12 Sept 2006 bugs that affect newly-created projects: - remove outdated forum_sample_index.php (just use forum_index.php) - include util.inc in project.inc - create_forums.php is a script, not a web page html/ ops/ create_forums.php project.sample/ project.inc user/ forum_sample_index.php (removed) py/Boinc/ setup_project.py Kevin 14 Sept 2006 - BSG - Modify the way the the skin.xml is read and stored - Added a bit of trace logging - Modified the preferences dialogue so that changing the skin is a seperate action from changing local settings - Fixed some bugs that were causing the BSG to crash clientgui/ sg_BoincSimpleGUI.cpp sg_DlgPreferences.cpp/h sg_ProgressBar.cpp sg_ProjectsComponent.cpp sg_SkinClass.cpp/h sg_StaticLine.cpp/h Kevin 14 Sept 2006 - BSG - Fixed issue with connection failure dialogue being repeatedly displayed - BSG now calls CBOINCBaseFrame::RestoreState() and CBOINCBaseFrame::SaveState() clientgui/ sg_BoincSimpleGUI.cpp/h Walt 14 Sept 2006 -Get page_fault_count for process in Linux lib/ procinfo_unix.C Kevin 15 Sept 2006 - BSG - Changed skin file so that most images are obtained from the skin class clientgui/ sg_BoincSimpleGUI.cpp/h sg_ClientStateIndicator.cpp/h sg_DlgMessages.cpp/h sg_DlgPreferences.cpp/h sg_ImageButton.cpp/h sg_ImageLoader.cpp/h sg_ProgressBar.cpp/h sg_ProjectsComponent.cpp/h sg_SkinClass.cpp/h sg_StatImageLoader.cpp/h sg_ViewTabPage.cpp/h clientgui/common wxFlatNotebook.cpp/h Kevin 15 Sept 2006 - BSG - Changed references to bitmaps to refer to the skin object - Fixed a bug that caused the BSG to crash when switching from Work Display -> No Work -> Work Display clientgui/ sg_BoincSimpleGUI.cpp/h sg_ClientStateIndicator.cpp/h sg_DlgMessages.cpp/h sg_DlgPreferences.cpp/h sg_ProgressBar.cpp/h sg_ProjectsComponent.cpp/h sg_SkinClass.cpp/h sg_ViewTabPage.cpp/h Rom 17 Sept 2006 - Clean up some of the dialup logic. - Make sure that only one dialog can be displayed at a time. clientgui/ BOINCBaseFrame.cpp BOINCDialupManager.cpp, .h Walt 18 Sept 2006 - Compile fixes for Linux clientgui/ BOINCDialupManager.cpp David 18 Sept 2006 - core client: bug in config file error message printfs client/ log_flags.C Eric K 18 Sept 2006 - Fixed stack corruption that occurs if stderr contains a c format code. Bug reported by Nicolas Alvarez. client/ client_types.C Charlie 19 Sept 2006 - Mac: Add process memory info for Mac, using a pipe to ps command. Does not set the page_fault_count, user_time or kernel_time fields in PROCINFO struct. See comments in procinfo_mac.C for other values of possible interest that are avaiable from ps command. - Fix compiler warning in http_curl.C. client/ http_curl.C lib/ procinfo_mac.C (new) mac_build/ boinc.xcodeproj/ project.pbxproj David 19 Sept 2006 - update account-created email - user web: use $_POST instead of $_HTTP_POST_VARS. The latter doesn't work in PHP 5 (from Christian Beer) html/ inc/ email.inc ops/ make_fake_tables.php (removed) migrate_tables.php (removed) mungetest.php (removed) user/ edit_forum_preferences_action.php David 19 Sept 2006 - removed references to Janus' 'download network', which he's phasing out. Instead, just keep a list of addons in doc/addons.php html/ inc/ download.inc (removed) download_network.inc (removed) user/ download_network.php (removed) sample_index.php Walt 20 Sept 2006 - Bug fix: fix task status text when the manager connects to an older client that doesn't support . clientgui/ ViewWork.cpp Charlie 21 Sept 2006 - Mac: fix compiler warning. - Mac: Set PROCINFO user_time to cpu time from ps command; use rsz instead of rss for working_set_size; set page_fault_count to pagein value from ps command. Unfortunately, none of these selectors work correctly in OS X version of ps command: pagein, majflt and minflt. - Mac: modify release script to include these files in distribution: switcher/switcher, switcher/setprojectgrp, Mac_SA_Secure.sh and Mac_SA_Insecure.sh. - Mac: improvements to Mac_SA_Secure.sh, Mac_SA_Insecure.sh scripts. clientgui/ BOINCDialupManager.cpp lib/ procinfo_mac.C mac_installer/ release_boinc.sh mac_build/ Mac_SA_Insecure.sh Mac_SA_Secure.sh Charlie 25 Sept 2006 - Mac: Use pipe to new helper application AppStats instead of 'ps' command to get process info for project applications and their descendants. On OS X, most of this info is available only to the super-user, so AppStats runs setuid root (as do 'ps' and 'top'.) This allows us to completely fill in PROCINFO struct. - Mac: Also set host_info.m_swap in procinfo_setup(), because sysctl(vm.vmmeter) doesn't work on OS X, so hostinfo_unix.C function HOST_INFO::get_host_info() can't get total swap space. client/ app_stats_mac.C (new) check_security.C file_names.h hostinfo_unix.C clientgui/ mac/ SetupSecurity.cpp lib/ procinfo_mac.C mac_installer/ release_boinc.sh release_GridRepublic.sh mac_build/ Mac_SA_Insecure.sh Mac_SA_Secure.sh boinc.xcodeproj/ project.pbxproj David 25 Sept 2006 - core client, Mac: if file ownership not secure, describe -insecure option in error message client/ main.C David 25 Sept 2006 - revise forum post rules to include 'kid friendly' html/inc/ forum.inc Eric K 26 Sept 2006 - new functions in util.[Ch] remove_duplicate_words(char * or string &). removes duplicate words from a space or comma delimited string. lib/ util.[Ch] David 26 Sept 2006 - user web: if user has a compound language (like en-us) in their list, and there's a translation file for the base language (en), use it. html/inc/ translation.inc Eric K 26 Sept 2006 - Changes to configure.ac Added check for header sys/auxv.h (Solaris) Added check for function getisax() (Solaris 10) Added check for libcups (MacOS command line build) Added check for libSystemStubs (MacOS command line build) configure.ac David 26 Sept 2006 - fix FCGI compile error lib/ miofile.h Kevin 25 Sept 2006 - BSG - Fixed an bug that prevented the message dialogue from closing when the X button was clicked. - Add a link to the home page for all projects in the drop down - Change label in menu in the advanced view read 'Switch to Simple View' - Fix bug that occurs when the notebook is rendered while a dialogue box is open clientgui/ AdvancedFrame.cpp sg_BoincSimpleGUI.cpp/h sg_DlgMessages.cpp sg_ProjectsComponent.cpp sg_StatImageLoader.cpp sg_ViewTabPage.cpp/h Charlie 26 Sept 2006 - Mac: AppStats helper application gets info only for descendants of BOINC, which substantially improves speed & efficiency. (PROCINFO totals for other processes are not currently used anywhere.) - Mac: Set host_info.m_swap to total free disk space, because OS X uses all of the available space on the machineÕs boot partition for swap space if needed. client/ app_stats_mac.C hostinfo_unix.C David 27 Sept 2006 - fix compile of FCGI scheduler and file upload handler NOTE: I did this by manually putting in a #ifdef _USING_FCGI_ in miofile.C I don't understand why this was necessary. lib/ miofile.C,h parse.C sched/ Makefile.am Kevin 27 Sept 2006 - BSG - Fix bug that caused an occasional error in the BSG when switching skins clientgui/ sg_BoincSimpleGUI.cpp sg_ProgressBar.cpp/h Charlie 27 Sept 2006 - Mac: Use full-duplex pipes so AppStats helper application can stay open for better efficiency. Note: the code in app_stats_mac.C and procinfo_mac.C uses standard BSD calls and so should work for any BSD Unix system (BSD 4.3 or above). - Mac: Update host_info.m_swap on each PROCINFO update. - Comment out bogus memory usage exceeded message if mem_usage_debug log flag is set. client/ app_control.C app_stats_mac.C lib/ procinfo_mac.C Kevin 27 Sept 2006 - BSG - Add support for additional file types for the skin (GIF and ICO - in addition to the BMP, XPM and PNG that were already available) - Remember where the BSG was positioned last time it was open - Position the messages dialogue so that the most recent message is displayed - Add text to the preferences dialogue - Reduce size of some of the skin images clientgui/ BOINCGUIApp.cpp sg_BoincSimpleGUI.cpp sg_DlgMessages.cpp sg_DlgPreferences.cpp Charlie 28 Sept 2006 - Mac: Add safety features and fix bugs in procinfo_setup(). lib/ procinfo_mac.C David 28 Sept 2006 - user web: add page for "Certificate of Computation" (mostly borrowed from SETI@home; needs to be customized by the project) html/ inc/ cert.inc (new) user/ cert1.php (new) sample_index.php David 28 Sept 2006 - Change first line of various scripts from #!/usr/local/bin/php (which seems to be Solaris-specific) to #!/usr/bin/php (which seems to be more standard) It would be nice to have this not hardwired. One solution would be to omit the first line (make these files into PHP files rather than scripts) and require the tags in config.xml to specify the PHP path. But this would disrupt some projects, so I'll defer this. html/ops/ db_update.php update_forum_activities.php update_profile_pages.php update_uotd.php watchdogs.php wd_nresults_changing.php David 28 Sept 2006 - Redo the above, using #!/usr/bin/env php (suggested by Eric Myers) html/ops/ db_update.php update_forum_activities.php update_profile_pages.php update_uotd.php watchdogs.php wd_nresults_changing.php Kevin 29 Sept 2006 - BSG - Changed workunit area to use a static image rather then an animiated gif - Center the image within the space and resize it dyanmically if necessary to fit within the allocated space - Fix bug that makes sure that the BSG will be displayed on the screen if the values of the previous location are corrupted for some reason clientgui/ BOINCGUIApp.cpp sg_BoincSimpleGUI.cpp sg_DlgMessages.cpp sg_DlgPreferences.cpp David 29 Sept 2006 - include cpu_usage_limit in prefs XML (in get_state GUI RPC reply, and in app init file) lib/ prefs.C Rom 1 Oct 2006 - Update libcurl for Windows to version 7.15.5 so that curl can handle bandwidth throttling. curl/ David 2 Oct 2006 - Add code that sets upload/download bandwidth limits using new Curl functions. Curl's limits are per connection. So whenever we make a new connection or close an old one, and the prefs have a limit defined, divide it uniformly among connections in that direction and call libCurl to set the limit. client/ file_xfer.C,h gui_http.C http_curl.C,h David 2 Oct 2006 - core client: bug fix in bandwidth-limiting code - core client bug fix: when reset or detach a project, sometimes would get a crash when deleting FILE_INFOs. This is because instead of iter = foo.erase(iter); we just had foo.erase(iter); Clean up all code to always use the former. client/ app.C client_state.C cpu_sched.C file_xfer.C http_curl.C,h pers_file_xfer.C David 2 Oct 2006 - core client: implement memory management system, as described in http://boinc.berkeley.edu/memory.h - core client: fix erroneous speed calculation when a file xfer is resumed TODO: - export memory usage into to apps - change scheduler to use memory prefs client/ app.h app_control.C client_state.h cpu_sched.C cs_prefs.C http_curl.C,h lib/ prefs.C,h procinfo.h procinfo_win.C Charlie 2 Oct 2006 - Mac: Changes for libcurl 7.15.5. mac_build/ buildcurl.sh HowToBuildBOINC_XCode.rtf boinc.xcodeproj/ project.pbxproj David 3 Oct 2006 - API: pass working set size and max WSS from core client to app. This lets "memory-aware" applications change their memory usage (e.g. by disabling/enabling graphics) in response to changing requirements. - User web: add preferences for max RAM usage while busy and idle - Do WSS averaging at higher level api/ boinc_api.C,h client/ app.C html/inc/ prefs.inc lib/ procinfo_unix.C procinfo_win.C David 3 Oct 2006 - core client: memory management bug fixes and debug messages - core client: include memory-related info (wss, max_wss) in heartbeat messages to apps - core client: change memory-related messages to use MB notation - core client: remove old bandwidth-limiting code Intermediate checkin. Still to do: - save/restore smoothed WSS - change RR simulator to reflect memory management client/ app.C app_control.C cpu_sched.C cs_prefs.C http_curl.C,h lib/ prefs.C util.h win_build/ boinc_cli_curl.vcproj David 3 Oct 2006 - core client: save/restore smoothed WSS api/ boinc_api.C client/ app.C html/inc/ prefs.inc David 3 Oct 2006 - In a situation where project A as a result that uses too much RAM to run right now, and is in deadline trouble, the work-fetch policy wouldn't get more work, even if project B has small-RAM jobs. This is bad. Fix (kludge): rr_simulator() doesn't count a result as being a deadline miss if it uses too much RAM to run right now. - Changes to compute_work_requests(): - if a contactable non-CPU-intensive project needs work, return immediately - use p->rr_sim_deadlines_missed, NOT p->deadlines_missed (the latter is a temp variable, with no defined value at this point) client/ client_state.h cpu_sched.C cs_scheduler.C David 3 Oct 2006 - core client: fixed bug that could cause Curl to be passed a null pointer (bandwidth limiting) client/ file_xfer.C http_curl.C,h David 3 Oct 2006 - core client and manager: set things up so that if a result isn't running because it requires too much RAM, an appropriate message ("Waiting for memory") is shown in the Manager client/ app.C,h cpu_sched.C clientgui/ ViewWork.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.C gui_rpc_client_print.C Charlie 4 Oct 2006 - Mac: Update XCode project for simple gui (new files, etc.) mac_build/ boinc.xcodeproj/ project.pbxproj David 4 Oct 2006 - scheduler: if request has RAM usage limits preferences, take them into account in deciding whether to send work. Return appropriate message depending on whether 1) machine doesn't have enough RAM period, or 2) machine has enough RAM, but limits are too low - XML parser: fix bug where empty string () wasn't being parsed correctly lib/ parse.C sched/ sched_send.C server_types.C,h David 4 Oct 2006 - core client: initialize ACTIVE_TASK::too_large (eliminate spurious "waiting for memory" message) client/ app.C David 4 Oct 2006 - db_dump: fix crashing bug - XML parser: fix yet another bug lib/ parse.C sched/ db_dump.C Charlie 4 Oct 2006 - Mac: Update XCode project for simple gui. mac_build/ sg_Info.plist (new) boinc.xcodeproj/ project.pbxproj Charlie & Rom 4 Oct 2006 Rom fixed a Mac compiler error in SimpleGUI code. clientgui/ sg_ViewTabPage.cpp Kevin 5 Oct 2006 - BSG - Changed workunit area to use a static image rather then an animiated gif - Center the image within the space and resize it dyanmically if necessary to fit within the allocated space - These changes should have been checked in with my changes on Sept 29 clientgui/ sg_ImageButton.cpp sg_ViewTabPage.cpp/h David 6 Oct 2006 There's a problem with the current global prefs design: A client has two different forms of global prefs: - the "master prefs", which are stored on disk (in global_prefs.xml), which have a mod time, and which can include elements. - the "working prefs", which are formed by taking the master prefs (using the venue variant for this host) and then modifying it by the contents of the prefs override file. The working prefs determine what the core client actually does, i.e. how much memory/disk it uses. When the client makes a scheduler RPC, the request message includes global prefs, which are used for two purposes: 1) so that the scheduler can take the prefs into account in making scheduling decisions; 2) to propagate preferences between projects, so that users see consistent prefs, and can edit them on any project site. The problem is: for 1), the scheduler needs the working prefs. For 2), it needs the master prefs. Currently the client sends the master prefs. So in some cases, scheduling decisions are now based on the wrong information. Fix: include both master prefs and working prefs in request msg. New server logic: if request message includes P = else if req msg includes if newer than DB P = else P = DB prefs use P for sched decisions If request message includes , and mod time is later than DB version, and email hash is the same, update DB Reply: if DB prefs have later mod time than P send DB prefs in reply ----------------------- - prefs: bandwidth limits default to zero (unenforced) rather than 1e12 lib/ prefs.C,h sched/ handle_request.C sched_send.C server_types.C,h David 6 Oct 2006 Client-side part of above fix, and support for "host-specific" global preferences - include in scheduler requests. In combination with the above server changes, this will fix the design problem described above. - include in scheduler requests only if master prefs are not host-specific. When a host with host-specific prefs talks to an old scheduler, the scheduler won't know its current prefs. This problem will go away as projects upgrade their software. - if we get in a scheduler RPC reply, ignore it if it's from an old server (pre-5.7) and we have host-specific prefs client/ app_control.C cs_scheduler.C David 6 Oct 2006 - core client: add the ability to hardwire the host venue. Put X in your global_prefs_override.xml file (outside the element) client/ cs_prefs.C David 9 Oct 2006 - core client: when parsing list of project files in sched reply, delete the old sym link files first client/ client_types.C David 9 Oct 2006 - Manager: add code that shows disk usage (total and project) as pie chart rather than text. From Frank Weiler clientgui/ Events.h ViewResources.cpp,h common/ wxPieCtrl.cpp,h (new) win_build/ boincmgr_curl.vcproj Rom 9 Oct 2006 - Prepare for the default skin to be embedded within the BOINC manager. clientgui/res/skins/default clientgui/res/templates/skins clientgui/skins/default David 9 Oct 2006 - core client: when parsing project files, delete old symlink files only on scheduler RPC (not when read state file) client/ client_types.C,h cs_statefile.C scheduler_op.C David 9 Oct 2006 - debug the above client/ client_types.C,h cs_scheduler.C cs_statefile.C Kevin 9 Oct 2006 - BSG - Make sure project section renders even if the manager cannot connect to the core client - Eliminate dual timer issue if you change skins and have a slide show running - Extend the wxFlatNotebook and moved all code related to the notebook and workunits into the new class (WorkunitNotebook) - Change the height of the BSG to 570 pixels (from 600) - Change the display area for the slide show to eliminate black border except where required by text for show graphics. New dimensions are width = 290, height = 126 - Check for updated slideshows after a project RPC and any files finish downloading clientgui/ sg_BoincSimpleGUI.cpp/h sg_ClientStateIndicator.cpp sg_ProjectsComponent.cpp sg_StatImageLoader.cpp/h sg_ViewTabPage.cpp/h Charlie 10 Oct 2006 - Mac: Update XCode project for wxPieCtrl. NOTE: new ViewResources.cpp causes very serious crash on Mac (totally crashes system, requires restarting computer.) wxPieCtrl web site says it has been tested only for wxMSW and wxGTK. So as a temporary workaround I have added "#ifndef __WXMAC__" in 2 places in ViewResources.cpp - Mac: Update release scripts to include COPYRIGHT and COPYING LGPL files in distributions. clientgui/ ViewResources.cpp mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ release_boinc.sh Postinstall.cpp David 11 Oct 2006 - core client: add project dir to LD_LIBRARY_PATH env var when running apps on Linux. This is a first step towards letting apps dynamically link to .so files without having to use to put them in the slot dir. NOTE: not quite there yet; need to avoid creating symlink file in slot dir. - core client: bug fix so that output file references with set are handled correctly. - core client: #ifdef Curl bandwidth-limit calls (workaround until I can get libcurl 7.15.5 installed on isaac) client/ app_start.C http_curl.C sched/ trickle_handler.C Kevin 11 Oct 2006 - BSG - Pause slide show for workunits that are not running - Add message to space below slide show images to explain status of the workunit (running, paused) - Fixed bug that sometimes caused slide shows to not load properly when first downloaded or after they have been updated by the project - Prevent workunit name from overflowing the side of BSG - Play with tabs to make the selected tab stand out - Fixed bug which caused a crash when switching between simple and advanced views - Fixed a significant memory leak - Eliminate some compiler warnings clientgui/ sg_BoincSimpleGUI.cpp/h sg_ClientStateIndicator.cpp sg_ImageButton.cpp/h sg_ProjectsComponent.cpp sg_SGUIListControl.cpp/h sg_StatImageLoader.cpp sg_ViewTabPage.cpp/h Charlie 11 Oct 2006 - Fix compiler warnings and errors. - Changes to wxPieCtrl to fix crashes, compiler warnings on Mac. client/ app_start.C http_curl.C clientgui/ ViewResources.cpp common/ wxPieCtrl.cpp,h David 12 Oct 2006 - scheduler: fix bug that prevented prefs propagation sched/ handle_request.C David 12 Oct 2006 - core client: keep track of (per project): - the last time a scheduler RPC finished - the last time the final project file download finished These are not maintained in the state file; i.e. when the core client starts up, they'll be zero until the respective event occurs. - Include these in the GUI RPCs that return projects (i.e. get_simple_gui_info(), get_state(), get_project_status()) client/ client_types.C,h cs_files.C cs_scheduler.C lib/ gui_rpc_client.h gui_rpc_client_ops.C gui_rpc_client_print.C Charlie 12 Oct 2006 - More fixes to wxPieCtrl for Mac. clientgui/ ViewResources.cpp common/ wxPieCtrl.cpp,h Rom 12 Oct 2006 - Bug Fix: CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE are apart of an enum and not a preprocessor define. Check for compatibility by using LIBCURL_VERSION_NUM instead. - Bug Fix: When switching from the simple GUI to the advanced GUI be sure to restore the window size correctly. client/ http_curl.C clientgui/ AdvancedFrame.cpp Rom 13 Oct 2006 - If we have received the authenticator via a setup cookie then run the wizard in a completely automated fashion. Only stop if there was an error. clientgui/ BOINCBaseWizard.cpp, .h CompletionPage.cpp WizardAttachProject.cpp Kevin 16 Oct 2006 - BSG - Update Project GUI urls when a rpc has completed with a project - Update User Stats when a rpc has completed with a project - Update project slide show when new downloads have been received from the project clientgui/ sg_BoincSimpleGUI.cpp sg_ProjectsComponent.cpp/h sg_StatImageLoader.cpp/h sg_ViewTabPage.cpp/h David 16 Oct 2006 - removed db/mysql.h. Not sure why it was there, but apparently it caused big problems for projects using MySQL 5 (reported by Carl C) db/ mysql.h (removed) Charlie 16 Oct 2006 - New colors for wxPieCtrl from Frank Weiler. clientgui/ ViewResources.cpp,h Rom 16 Oct 2006 - Bug Fix: Benchmarks should be run using an idle thread priority instead of the normal thread priority. client/ cs_benchmark.C Charlie 17 Oct 2006 - Additional fixes for wxPieCtrl from Frank Weiler. clientgui/ ViewResources.cpp common/ wxPieCtrl.cpp Matt 17 Oct 2006 - Updated forum code so that only project administrators can banish users, not moderators html/ user/ forum_moderate_post_action.php inc/ forum.inc forum_moderators.inc Kevin 18 Oct 2006 - BSG - Added a state to inform the user when the client is communicating with a project - Added a 'change' button to the preferences to change just the skin - Fixed bug that caused the skin to crash when a invalid skin was selected - Do not flash the 'messages' between red and black for messages that arrive while the messages dialogue is open - Set the selected tab when the BSG is first opened to be a workunit that is currently running clientgui/ sg_ClientStateIndicator.cpp/h sg_DlgPreferences.cpp sg_ProjectsComponent.cpp/h sg_SkinClass.cpp/h sg_ViewTabPage.cpp David 18 Oct 2006 - let project show addons page with their own header/footer html/user/ download_network.php Rom 18 Oct 2006 - Bug Fix: Fix license snafus api/ reduce_main.C David 18 Oct 2006 - fix line endings clientgui/ ViewResources.cpp,h Rom 18 Oct 2006 - Bug Fix: Change the regex that validates email addresses in the manager to a 5 star rated expression. See http://regexlib.com/REDetails.aspx?regexp_id=328 clientgui/ ValidateEmailAddress.cpp Kevin 18 Oct 2006 - BSG - Modify the pause/resume button to correctly set both execution and network settings clientgui/ sg_ProjectsComponent.cpp David 19 Oct 2006 - core client: if can't rename state file, show "check permissions" message - user web: certificate numeric units off by 1000 (from Carl C) client/ cs_statefile.C html/inc/ cert.inc Rytis 19 Oct 2006 - user web: allow account creation via an RPC when invitation code is required. html/ user/ create_account.php inc/ xml.inc David 19 Oct 2006 - project back end: add mechanism so that PHP scripts can be run from the 'start' script in a way that works with both PHP4 and PHP5. To run html/ops/update_profile_pages.php, for example, put run_in_ops update_profile_pages.php in your config.xml file entry. (run_in_ops is a script that lives in bin/, cds into ../html/ops, and executes its args) py/Boinc/ setup_project.py tools/ run_in_ops (new) Rom 19 Oct 2006 - Bug Fix: Last regex didn't work right. Reverting back to the regex before yesterday's bug fix and just adding in the other valid characters. What a pain in the butt. clientgui/ ValidateEmailAddress.cpp Rom 19 Oct 2006 - Bug Fix: When a BOINC rename operation failed we were returning -1 no matter what the real error code was. rename only returns a -1 and then you are supposed to lookup the real error code by using errno. - Add some additional information to the message log in case a state file rename operation fails. - Tweak boinc_rename, boinc_mkdir, boinc_rmdir, boinc_delete, and boinc_copy so that they return Win32 error codes instead of just -1. We can now use the windows_error_string and windows_format_error_string functions when those fail to give us and the community more useful information about what has gone wrong. - Log additional information in case a rename operation fails for account_*.xml files and stat files. client/ cs_account.C cs_statefile.C lib/ filesys.C Rom 20 Oct 2006 - MGR: CBrandingScheme is now dead. All references in the advanced GUI have been changed to CSkinManager. Simple GUI to follow. clientgui/ <*.cpp> David 20 Oct 2006 - core client: if remote_hosts.cfg is present, reread it (and resolve host names) on each GUI RPC connection, in case IP addresses have changed client/ client_state.h gui_rpc_server.C lib/ filesys.C David 20 Oct 2006 - Output files can be tagged as "optional". If the application doesn't generate an optional output file, the client treats it as normal (i.e. doesn't flag it as an error) NOTES: 1) to make an output file optional, put in its element in the result template file 2) clients earlier than 5.8 don't recognize this attribute; they will mark results as "compute error" if any of their output files are missing client/ client_types.C,h cs_apps.C David 20 Oct 2006 - user web: use regexp-based check for email validity (from Frank Thomas) - user web: on CPU throttle preference, say that it works only with 5.6+ html/inc/ email.inc prefs.inc David 20 Oct 2006 - fix potential buffer overrun in db_dump.C (from Carl) sched/ db_dump.C Charlie 21 Oct 2006 - Mac: FIx new compile error by including "BOINCBaseFrame.h". - Added SkinManager.cpp to XCode project. clientgui/ mac/ MacSysMenu.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 21 Oct 2006 - Server: apps can be labeled as "beta", and jobs for them will be sent only to users with "1" in their project preferences. This lets you do application testing without creating a separate project, which has advantages both for you (1 projects instead of 2) and for testers (their testing gives them points in your main project) - Scheduler: refined the criteria for "reliable" hosts to which old results are sent, and added a param for reducing delay bound when sending results to reliable hosts - add -sleep_interval option to assimilator - move -reliable flag from feeder - add to sched config: reliable_min_avg_credit reliable_min_avg_turnaround reliable_time reliable_reduced_delay_bound (from Kevin Reed) NOTES: updating your server software to this version or later requires a small database change (see html/ops/db_update.php) db/ boinc_db.C,h lib/ parse.C sched/ assimilator.C feeder.C sched_array.C sched_config.C,h sched_locality.C sched_send.C,h server_types.h David 21 Oct 2006 - small cleanups to the above db/ boinc_db.C,h schema.sql html/ops/ db_update.php py/Boinc/ database.py sched/ sched_send.C server_types.h Rom 22 Oct 2006 - MGR: CSkinClass is now dead. All references in the simple GUI have been changed to CSkinManager. - Cleaned up a bunch of warnings. clientgui/ <*.cpp> Charlie 21 Oct 2006 - Mac: Removed sg_SkinClass.cpp/h from XCode project. - Fixed incorrect assignments of m_iconApplicationDisconnectedIcon and m_iconApplicationSnoozeIcon. clientgui/ SkinManager.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 22 Oct 2006 - scheduler: rename "reliable_min_avg_turnaround" to "reliable_max_avg_turnaround" - add some doc for new reliable-host scheme sched/ sched_config.C,h sched_send.C David 23 Oct 2006 - core client: AMS replies can include elements in elements. These override the resource shares reported by projects. Account managers can thus provide host-level control of resource share. client/ acct_mgr.C,h client_state.C client_types.C,h David 23 Oct 2006 - core client: limit # of simultaneous net xfers to 8 - core client: if there was an HTTP error on download, we were truncating the file back to its original size because of fear that "error-reporting HTML may have been appended" (I'm not sure if this actually every happens). In any case, I changed to logic so that, on HTTP error, we remove at most 5KB from the end of the file. - removed SkinManager.cpp from VS2005 project file client/ cs_files.C file_xfer.C http_curl.C win_build/ boincmgr_curl.vcproj David 24 Oct 2006 - core client: use CPU shortfall instead of time_until_work_done() in a couple of places; should slightly improve work fetch client/ cs_scheduler.C html/inc/ prefs.inc David 24 Oct 2006 - core client: when get new global prefs, enforce network bandwidth limits (in case they changed) client/ cs_prefs.C Rom 25 Oct 2006 - MGR: Both the simple GUI and advanced GUI respond to skin changes - MGR: Skins can now include different languages. Searches for the canonical locale id first (pt_BR) and then will fall back to the root language (pt). If both fail it'll try english before loading the default resources. - MGR: Wizards can now use skinned resources clientgui/ BOINCBaseFrame.cpp, .h BOINCGUIApp.cpp, .h DlgOptions.cpp Events.h sg_BoincSimpleGUI.cpp, .h sg_DlgMessages.cpp sg_DlgPreferences.cpp, .h sg_ProjectsComponent.cpp, .h sg_SGUIListControl.cpp SkinManager.cpp, .h stdwx.h David 25 Oct 2006 - core client: added config options for max # file transfers, global and per_project client/ cs_files.C file_xfer.h log_flags.C,h Rom 25 Oct 2006 - MGR: Fix crashing bug where the simple GUI is the initial state and the skin just finished loading. After a new skin is loaded the ReloadSkin event is fired so each frame needs to make sure it doesn't try to deref it's own null pointers. clientgui/ sg_BoincSimpleGUI.cpp, .h David 25 Oct 2006 - User web: added support for "run beta applications" preference. This is enabled if project has $project_has_beta = true; in its html/project/project_specific_prefs.inc file. html/ inc/ prefs.inc user/ add_venue.php prefs_edit.php project_specific_prefs.inc.sample sched/ sched_send.C Rom 25 Oct 2006 - MGR: Check to see if the clientindictor timer pointer is valid before stopping and deleting it. clientgui/ BOINCGUIApp.cpp sg_BoincSimpleGUI.cpp, .h sg_ClientStateIndicator.cpp Kevin 25 Oct 2006 - MSG: Fixed issues with BSG (pointer issues) clientgui/ sg_BoincSimpleGUI.cpp/h sg_ClientStateIndicator.cpp Rom 25 Oct 2006 - MGR: Make sure that after we clear out all the old skin resources we at least reset the skin name back to the one the user wants, otherwise we'll end up with a blank combo box item. clientgui/ sg_BoincSimpleGUI.cpp SkinManager.cpp, .h David 26 Oct 2006 - core client: fix a couple of bugs that could cause the host to use the wrong venue when reading prefs Also, print log message showing host location client/ cs_prefs.C cs_scheduler.C Kevin 26 Oct 2006 - MGR: * Fire ReloadSkin after changing to the default skin (this properly redraws the * Move all logic for reloading a project/stat icon into the StatImageLoader class * Fix bug that prevented the default stat icons from being updated with reskining clientgui/ sg_ProjectsComponent.cpp/h sg_StatImageLoader.cpp/h SkinManager.cpp, .h Rom 27 Oct 2006 - MGR: Use the new (2.6) ::wxLaunchDefaultBrowser API to launch the users default web browser, we should get better results with it. - MGR: Add 'CPU throttle' to the preferences dialog. - MGR: Add 'run on battery' to the preferences dialog. - MGR: Fix reading and storing all preference values - MGR: Add web customized values to the list of selections for any of the user configurable settings. - MGR: Partial Fix for Large Font/High DPI issues. Now we just have to figure out if we want the dialog to grow or the text to shrink. clientgui/ hyperlink.cpp sg_DlgPreferences.cpp, .h sg_ProjectsComponent.cpp sg_StaticLine.cpp, .h sg_StaticText.cpp, .h (Added) sg_ViewTabPage.cpp SkinManager.cpp stdwx.h win_build/ boincmgr_curl_2003.vcproj Rytis 27 Oct 2006 - user web: allow team founder position to be transfered to another team member in case the original founder is missing. Also updating "your account" page to show multiple teams if the user is the founder of more than one. NOTE: requires DB update (html/ops/db_update.php). html/ user/ team_change_founder_action.php team_change_founder_form.php team_founder_transfer_action.php (new) team_founder_transfer_form.php (new) inc/ inc/email.inc inc/team.inc inc/user.inc ops/ db_update.php db/ schema.sql constraints.sql Kevin 27 Oct 2006 - MGR: * Fix bug that caused the workunit icon to flash when the cpu throttle is utilized clientgui/ sg_ViewTabPage.cpp Charlie 27 Oct 2006 - Mac: Fix bug that prevented screensaver from launching BOINC client properly under sandbox security if manager is not running. - Mac: added sg_StaticText.cpp,.h to XCode project. clientgui/ mac/ mac_saver_module.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Rom 27 Oct 2006 - MGR: Adjust the preferences dialog so that the change and clear buttons can be removed. People are just pre-programmed to look for buttons on the right-hand side or bottom of the dialog to save changes. With the new scheme there will just be a save and cancel button. NOTE: The dialog looks a little funky right now, but that should be cleared up soon. - MGR: Make sure we don't try and load the skin we have already loaded. clientgui/ sg_DlgPreferences.cpp, .h sg_StaticLine.cpp SkinManager.cpp Rom 27 Oct 2006 - Tag for 5.7.0 release, all platforms boinc_core_release_5_7_0 Rom 27 Oct 2006 - MGR: Okay, last fixup to the preferences dialog. Had to change the static group box into just a regular static text control with a larger font since I couldn't figure out a way to make the text area transparent. The "Use custom preferences" check box is kind of a fake check box, the check box itself is real, but the text off to the right is a static text control. Trying to make the check box transparent was like beating your head against the wall, I got as far as initial display being transparent and a complete redraw cased it to be transparent, but moving the mouse over the label caused a 1 pixel shift in the display of text which caused it to blur. clientgui/ BOINCGUI.pjd sg_CustomControls.cpp, .h (Added) sg_DlgPreferences.cpp, .h sg_ProjectsComponent.cpp, .h sg_ViewTabPage.cpp, .h sg_StaticLine.cpp, .h (Removed) sg_StaticText.cpp, .h (Removed) Charlie 28 Oct 2006 - Mac: Fix bugs in screensaver when launching BOINC Client with branding: - BOINC Data directory name does not change with branding. - If screensaver can't locate BOINC Manager bundle using creator and bundle ID, get branding file from BOINC Data directory. - Branded (Grid Republic) installer places a copy of Branding file in BOINC Data directory for use by screensaver. - PostInstall app removes Branding file from BOINC Data directory if performing an unbranded intall. - Update XCode project for added and removed source files. clientgui/ mac/ mac_saver_module.cpp mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ PostInstall.cpp release_GridRepublic.sh David 28 Oct 2006 - back end: add function get_output_file_paths() for getting the paths of multiple output files. lib/ common_defs.h sched/ validate_util.C,h Rom 28 Oct 2006 - MGR: Enlarge the combo boxes on the preferences on the preferences dialog so that they'll be able to contain the right text even on David's notebook. - MGR: Fix the static text box associcated with the "Use custom preferences" checkbox so that clicking on it checks/unchecks the the checkbox. - MGR: Only change the background color to Magenta in debug builds so that we don't flicker during control repaints on release builds. clientgui/ sg_CustomControls.cpp, .h sg_DlgPreferences.cpp, .h sg_ProjectsComponent.cpp Rom 28 Oct 2006 - MGR: Implement lazy loads for Simple GUI resources to try and speed things up. clientgui/ SkinManager.cpp, .h Rom 29 Oct 2006 - MGR: If the background image is smaller than the perferences dialog it'll center the background image on the dialog. If the background image is larger than the dialog it'll take a chunk out of the center of the bitmap and paint that on the dialog. clientgui/ sg_DlgPreferences.cpp Charlie 29 Oct 2006 - Added link to Mac Installer page under "Installing BOINC" on "Participating" page. doc/ participate.php Rom 29 Oct 2006 - MGR: Remove the change and clear buttons from the SkinManager. - MGR: Fix the transparency problem for the Cancel, Close, and Save buttons. - MGR: Fix the transparency problem for the active task icon. - MGR: Fix a problem with a full repaint of the preferences dialog, it would paint part of the dialog with the default grey color. clientgui/ sg_BoincSimpleGUI.cpp sg_CustomControls.cpp, .h sg_ViewTabPage.cpp, .h SkinManager.cpp, .h Rom 29 Oct 2006 - MGR: When the skin changes, have the taskbar update its icon set. - MGR: Code cleanup for various Simple GUI classes. clientgui/ BOINCGUIApp.cpp, .h BOINCTaskBar.cpp, .h sg_BoincSimpleGUI.cpp sg_ProjectsComponent.cpp, .h sg_StatImageLoader.cpp, .h SkinManager.cpp Charlie 29 Oct 2006 - Mac: fix some Mac-specific Simple GUI bugs. - NOTE: wxNO_BORDER is not a valid style argument for wxBitmapButton constructors; use wxBU_NOAUTODRAW instead. - Mac: Don't run confirmation dialog on QUIT AppleEvent so dialog doesn't prevent logout / shutdown. - Mac: fix crash on Mac when creating SG preferences dialog: create window before setting background color. clientgui/ AdvancedFrame.cpp, h BOINCBaseFrame.cpp, .h BOINCGUIApp.cpp, .h BOINCTaskBar.cpp sg_BoincSimpleGUI.cpp sg_DlgMessages.cpp sg_DlgPreferences.cpp sg_ProjectsComponent.cpp mac/ MacSysMenu.cpp, h SystemMenu.m mac_build/ boinc.xcodeproj/ project.pbxproj Rom 30 Oct 2006 - MGR: Fix another round of window height, width, top, left, maximize, minimize issues on Windows. - MGR: Consolidate all window save and restore state to two functions instead of four, for all platforms. NOTE: Charlie, could you look over the changes for the Mac? I think I got them right. clientgui/ AdvancedFrame.cpp, .h David 30 Oct 2006 - API: moved the __HrLoadAllImportsForDll() calls out of boinc_samples/uppercase/uppercase.C (what were they doing there??) and put them into a function boinc_graphics_possible(). Applications that can potentially do graphics should call this, and if it returns false don't try to do graphics (this means the needed DLLs are not there (Win) or the DISPLAY env var is not set (Unix)) - API: make the graphics callbacks (e.g. mouse movement) C++ rather than C functions. This was breaking the example applications (upper_case). Bruce et al: if this causes problems, let me know. - API, X graphics: use fprintf(stderr) instead of app_debug_msg(0 api/ boinc_api.C graphics_api.h x_opengl.C html/inc/ team.inc Rom 30 Oct 2006 - MGR: Wizard "Account Info" page, fix the control sizing problems when changing between new account vs. existing account. In the future use Layout() instead of Fit(). clientgui/ AccountInfoPage.cpp Rom 20 Oct 2006 - MGR: Use a buffered device context to draw the background on the preferences dialog which reduces the amount of flicker even further. - MGR: Make sure the workunit text does not exceed the tab area when using large fonts. clientgui/ sg_DlgPreferences.cpp sg_ViewTabPage.cpp, .h Charlie 29 Oct 2006 - Mac: Work around Simple GUI problem drawing background bitmaps on Erase events; use a wxStaticBitmap instead. - Mac: more changes to XCode project to better build Simple GUI. clientgui/ BOINCGUIApp.cpp sg_BoincSimpleGUI.cpp, h sg_DlgPreferences.cpp, h mac_build/ boinc.xcodeproj/ project.pbxproj Kevin 31 Oct 2006 (Boo!) - MGR: Modify how the project icons are displayed. Fix multiple bugs and only allocate space for the arrows if they are needed. clientgui/ sg_ProjectsComponent.cpp/h sg_StatImageLoader.cpp/h Kevin 31 Oct 2006 (Spooky!) - MGR: Change button behavior so that it uses the wxBU_AUTODRAW setting. This causes buttons to look more 'button' like when clicked. clientgui/ sg_ProjectsComponent.cpp/h sg_StatImageLoader.cpp/h David 31 Oct 2006 - Win compile fixes client/ cs_files.C win_build/ boincmgr_curl.vcproj David 31 Oct 2006 - scheduler: parse mod_time correctly from global prefs - user web: max CPUs defaults to 16 html/inc/ prefs.inc util.inc sched/ server_types.C Rom 31 Oct 2006 - MGR: Remove CB_SORT style bit for first combo box. clientgui/ sg_DlgPreferences.cpp Kevin 31 Oct 2006 - MGR: Changed the wu tab back to using wxPaintDC from wxBufferedPaintDC. The buffered version caused a noticable delay in rendering the display. clientgui/ sg_ViewTabPage.cpp Kevin 31 Oct 2006 - MGR: Fixed bug that prevented recently downloaded stat icons from being displayed clientgui/ sg_StatImageLoader.cpp/h Rom 31 Oct 2006 - MGR: When the background skinned image is too small in the preferences dialog, scale it up. clientgui/ sg_DlgPreferences.cpp David 31 Oct 2006 - user web: use existing DB init function for forums too html/inc/ forum_mysql_dbh.inc David 31 Oct 2006 - compile fix: include mysql.h, not mysql/mysql.h db/ db_base.C Kevin 31 Oct 2006 - MGR: Changed the way that active_task_state clientgui/ sg_ViewTabPage.cpp Rom 31 Oct 2006 - Update the curl distro for windows to include the SOCKS 5 Auth path Walt put together. curl/ Rom 31 Oct 2006 - Tag for 5.7.1 release, all platforms boinc_core_release_5_7_1 Charlie 1 Nov 2006 - Mac: Work around Simple GUI hang due to bug in Mac version of wxBufferedDC.GetTextExtent(). - Mac: Fix transparent text. - Mac: Fix Message dialog background. - Mac: more changes to XCode project to better build Simple GUI. clientgui/ sg_CustomControls.cpp, .h sg_DlgMessages.cpp sg_ViewTabPage.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Kevin 1 Nov 2006 - MGR: Finally fixed the problems with the active task icon displaying properly when the cpu throttle is being utilized clientgui/ sg_ViewTabPage.cpp Rom 1 Nov 2006 - MGR: The preferences override struct feature should observe locale conventions. lib/ gui_rpc_client_ops.C David 1 Nov 2006 - core client: check error returns in Win code to find app memory usage. client/ app.C lib/ procinfo_win.C David 1 Nov 2006 - core client: attempt to fix bug where core client locks up when aborting jobs. If a job is aborted, and its 5-second grace period elapses, mark it as PROCESS_ABORTED so that we'll remove its ACTIVE_TASK record. Also, if a GetExitCodeProcess() call fails, mark it as PROCESS_ABORTED. client/ app.C app_control.C David 1 Nov 2006 - core client: account manager reply parsing was broken client/ acct_mgr.C Rom 1 Nov 2006 - CC: Somebody kernel side is fooling around with return values from NtQuerySystemInformation, this caused us to get stuck in a loop. Cache the buffer size and restore it if the API zeros it out. That way we'll be able to double it correctly before the next call. - CC: Set the initial buffer size for NtQuerySystemInformation to 128k from the original 32k. lib/ procinfo_win.C Rom 1 Nov 2006 - MGR: Fix the MB -> GB translation bug for disk usage. clientgui/ sg_DlgPreferences.cpp Rom 31 Oct 2006 - Tag for 5.7.2 release, all platforms boinc_core_release_5_7_2 Charlie 2 Nov 2006 - Mac: Fix more bugs on Main SimpleGUI window. clientgui/ sg_ImageButton.cpp sg_ProjectsComponent.cpp sg_ViewTabPage.cpp, h David 2 Nov 2006 - manager: tone down colors in disk display clientgui/ ViewResources.cpp David 2 Nov 2006 - Added a function GLOBAL_PREFS::write_subset() that writes XML for a selected subset of prefs (for simple GUI prefs dialog) lib/ prefs.C,h David 2 Nov 2006 - core client: get rid of attempts to keep track of network connected fraction, since we don't have a reliable way of seeing if there's a physical connection client/ time_stats.C lib/ network.C Charlie 2 Nov 2006 - Mac SimpleGUI: Move project icon popup menus down 40 pixels so they are not obscured by tooltip (Mac only.) - Mac SimpleGUI: Don't select each tab as it is added. This caused problems at launch if there were more tabs than fit at once and BOINC was suspended, because tab was not visible for currently displayed page. The result was that tabs did not respond to mouse clicks until after arrow key was pressed to refresh the tabs. - Fix Mac compiler warnings. client/ http_curl.C prefs.C clientgui/ sg_StatImageLoader.cpp sg_ProgressBar.cpp sg_ProjectsComponent.cpp sg_ViewTabPage.cpp David 2 Nov 2006 - core client: don't print errors in prefs venues html/ inc/ team.inc user/ top_teams.php lib/ prefs.C Rom 3 Nov 2006 - MGR: The preferences dialog should only allow somebody to override settings that they have changed. - MGR: Adjust the advanced view resources tab so that it'll use the free and total space on a remote pc instead of calling the wxWidget GetFreeDiskSpace API. clientgui/ sg_DlgPreferences.cpp, .h ViewResources.cpp lib/ boinc_cmd.C gui_rpc_client.h gui_rpc_client_ops.C Charlie 3 Nov 2006 - Mac: Rework Exit Confirmation logic so dialog is presented when user exits Manager from system tray icon or any other means. Rewrote dialog text to be more clear, and changed it back to a fixed string because strings read in from skins.xml file are not easily localized. The project and application names are still read from skins.xml and inserted in dialog text. Note to Rom: I guarded al references to m_strExitMessage with " #if 0" rather than removing them so you can easily restore them if you feel it is important to have it customizable for branding at the expense of easier localization. clientgui/ AdvancedFrame.cpp, h BOINCBaseFrame.cpp, h BOINCGUIApp.cpp, h BOINCTaskBar.cpp sg_BoincSimpleGUI.cpp SkinManager.cpp, .h David 3 Nov 2006 - GUI RPC: change RPC so it returns the total and free disk space, as well as per-project usage. This allows GUIs to display total/free disk for remote systems - Manager: get total/free disk from RPC info, not WxWidgets calls - Manager: change function names to make more sense client/ gui_rpc_server_ops.C clientgui/ MainDocument.cpp,h ViewResources.cpp lib/ boinc_cmd.C gui_rpc_client.h gui_rpc_client_ops.C gui_rpc_client_print.C David 3 Nov 2006 - debug the above clientgui/ MainDocument.cpp,h ViewResources.cpp,h David 3 Nov 2006 - build fix for Gentoo Makefile.incl David 3 Nov 2006 - fix gcc compile warnings client/ acct_mgr.C,h lib/ boinc_cmd.C parse.C,h David 3 Nov 2006 - Manager: improvements to Statistics tab 1) wxPaintDC changed on wxBufferedPaintDC - no flicker when redraw 2) CPaintStatistics::OnLeftMouseDown() - select project (now it work only in "One project" mode) 3) save/read "last" settings (Mode View, Type Statistic ,Project). I used CViewStatistics::OnSaveState(wxConfigBase* pConfig) and CViewStatistics::OnRestoreState(wxConfigBase* pConfig) (from Mifistor) clientgui/ ViewStatistics.cpp,h David 3 Nov 2006 - server tools: change a few programs to support the convention that any programs intended to be run manually (e.g., start, get_file, create_work, dir_hier_path) are to be run in the project root directory (i.e., they look for config.xml in the current directory) - update_versions: create the reread_db trigger file in current dir, not parent sched/ delete_file.C get_file.C request_file_list.C send_file.C show_shmem.C tools/ update_versions Rom 3 Nov 2006 - MGR: Fixup the exit message and get rid of the call to sprintf, our xml parsing technologies keep track of their buffers and don't overflow. If somebody does try to overflow the buffer a null string is the result. - MGR: The new skin manager does know how to deal with localization. - MGR: Bring the email validator inline with the php email validation regular expression. (From Frank S. Thomas) clientgui/ BOINCGUIApp.cpp SkinManager.cpp, .h ValidateEmailAddress.cpp David 3 Nov 2006 - User web: remove "team account create" mechanism; Since accounts are created via GUI, this is no longer relevant. html/ inc/ team.inc user/ clone.php (removed) team.php Rytis 4 Nov 2006 - User web: allow emails to be sent to multiple moderators when a post is reported in the forums. NOTE: requires project.inc update with a new moderator email list value. html/ inc/ forum_email.inc project.sample/ project.inc David 4 Nov 2006 - Fix systemic bug where clean-install client requests work before doing benchmarks, and uses default benchmarks, which are extremely low (1e7 flops). The scheduler says "you're not fast enough" and tells it to back off for an extremely long time (20% of its estimated_delay, as calculated based on the low benchmarks). Fixed this by: 1) client: change default benchmarks to 1e9 (1 GFLOPS) 2) server: don't request backoff in this case - This led to an examination of server-requested backoff. In some cases the server was requesting ridiculous backoff. E.g. if a client didn't have enough available RAM (a function of both actual RAM and RAM-related prefs) it would always request a 48-hour backoff. The naive user changes their prefs, and then waits for 47.9 hours. I think it's better to err on the side of not requesting backoff, and relying on the client's exponential backoff in situations where it asks for work and doesn't get any. Also, the backoff values were hardwired throughout the scheduler source code - bad programming practice. So, I collected all the backoff values as #defines in main.h. Mostly these are the same, but for the case where we didn't send work because of CPU/disk/mem inadequacy, the server now doesn't request additional backoff (i.e., rely on the client's backoff mechanism) client/ cs_benchmark.C sched/ handle_request.C main.h sched_locality.C sched_send.C Charlie 5 Nov 2006 - MGR: Fix new Exit Confirmation Dialog bugs: - Use Fit() not Layout(), which did not work on Windows or Mac. - Use printf project & application name substitution only for default exit message; custom exit messages neither want nor need it. - Remove bogus test Exit Confirmation Message from WCG skin.xml file. - Modal dialogs should not be resizable on Mac. - MGR: Use a wxPanel for background of SG Dialogs because using EraseBackground events to paint background directly to a window doesn't work on the Mac. The extra panel allows the same centering logic to work on both Windows and Mac. Adjusted font sizes in Preferences dialog for Mac. clientgui/ BOINCGUIApp.cpp DlgGenericMessage.h sg_BoincSimpleGUI.cpp, h sg_ClientStateIndicator.cpp, h sg_DlgMessages.cpp, h sg_DlgPreferences.cpp, h sg_ProjectsComponent.cpp, h sg_SGUIListControl.cpp, h SkinManager.cpp skins/ World Community Grid/ skin.xml David 6 Nov 2006 - BOINC web site: change the way the add-ons page works doc/ addons.php addon_data.php html/inc/ team.inc Rom 6 Nov 2006 - MGR: Fix build breaks on Windows. clientgui/ sg_BoincSimpleGUI.cpp sg_ProjectsComponent.cpp David 6 Nov 2006 - core client: if sched_op_debug flag is set, show delay requests from server - core client: set too_large flag whenever job is too big to run now (so "Waiting for memory" will be shown in manager) client/ cpu_sched.C cs_scheduler.C Rom 6 Nov 2006 - Initialize the default values for GLOBAL_PREFS_MASK to false. Object's without constructors are initialized to the default values defined/redefined in the environment. wxWidgets redefines bools' default to value to true when running under a debug build. lib/ prefs.C, .h David 6 Nov 2006 - MIOFILE buffer variant wasn't doing output correctly; would overwrite instead of appending. Caused simple GUI prefs dialog to not work. client/ gui_rpc_server_ops.C lib/ gui_rpc_client.C gui_rpc_client_ops.C miofile.C,h Rom 6 Nov 2006 - MGR: When deciding if two combo box's values are the same convert them to there native data type and compare those as well. Sometimes comparing just the strings isn't enough. clientgi/ sg_DlgPreferences.cpp Rom 6 Nov 2006 - MGR: When caching data, make sure it is cached to the right location. clientgui/ sg_DlgPreferences.cpp, .h David 6 Nov 2006 - compile fix sched/ validate_util.C Rom 6 Nov 2006 - MGR: After implementing preference masking we ended up in a situation where we were comparing what values to override against the values specified in a previous override. If only one value was changed on the second interation all other values were forgotten. The new logic is to compare the current selected dialog values against the current global preferences to decide what is stored in the preferences override file. clientgui/ sg_DlgPreferences.cpp David 7 Nov 2006 - validate_util.C: fix tag ("file_info", not "file") - MIOFILE: when we're reading from a buffer, make it a const char* instead of char*. Doing this requires limiting ungetc() to push only the character that was previously read (which is OK). - scheduler: removed SCHED_SHMEM& arg from wu_is_infeasible() - fix compile warnings lib/ gui_rpc_client_ops.C miofile.C,h parse.C,h sched/ handle_request.C sched_array.C sched_locality.C sched_send.C,h server_types.C,h validate_util.C Rom 7 Nov 2006 - MGR: David and I got our wires cross, the global prefs mask is now set for all values in the preferences dialog when the selection has been made to override anything. clientgui/ sg_DlgPreferences.cpp, .h David 7 Nov 2006 - core client: call request_work_fetch() whenever a process becomes contactable (i.e. when its min_rpc_time times out). This can avoid 10-minute periods of waiting for the work fetch function to get called Implementation: add bool PROJECT::possibly_backed_off; set to true in set_min_rpc_time(); check for timeout in check_project_timeout() client/ client_state.C,h client_types.C,h cpu_sched.C cs_scheduler.C lib/ miofile.C David 8 Nov 2006 - core client: change XML parser to handle tags of the form , treating it as (i.e. skip the space) lib/ parse.C Kevin 8 Nov 2006 - BSG: Add tool tip to slide show when graphics are available - BSG: Remove workunit name - BSG: Formatting changes to text on main screen - BSG: Re-arrange the layout on the main screen David 8 Nov 2006 - API: move is_graphics_possible() from boinc_api.C to graphics_lib.C api/ boinc_api.C graphics_lib.C David 8 Nov 2006 - make_work: when duplicating a WU, don't bother creating hard links to 'duplicate' its input files on the server. Send different file names to the client (so they'll download again) but use the same URL. This fixes a bug where, on some filesystems, there's a limit of 32K hard links to a file. Only use make_work to duplicate a WU with "nodelete" in its name; this ensures that neither the WU nor its input files will get deleted out from under you. sched/ file_deleter.C make_work.C David 8 Nov 2006 - core client: work fetch fixes for non-CPU-intensive projects (from John McLeod) client/ cs_scheduler.C David 9 Nov 2006 - core client: ignore zero benchmark results client/ client_state.h cs_benchmark.C David 9 Nov 2006 - manager: fix URL for help clientgui/ AdvancedFrame.cpp ViewResources.cpp David 9 Nov 2006 - manager: fix regexp for email address check (remove / at start and end). clientgui/ ValidateEmailAddress.cpp Kevin 9 Nov 2006 - BSG: Fix bug that didn't allow the messages window to close when the red X was clicked - BSG: Added better text to status messages and tooltips - BSG: Increased slide show timer to 10 seconds clientgui/ sg_DlgMessages.cpp sg_ImageButton.cpp sg_ProjectsComponent.cpp sg_ViewTabPage.cpp David 9 Nov 2006 Core client: - request CPU reschedule and work fetch when global prefs change, since RAM limits may have changed, work_buf_min_days might have changed, etc. This fixes (I hope) a bug reported by Heinrich Feldmueller - do enforce_schedule() and compute_work_requests() every 60 seconds, as a safety net in case we forgot to trigger it in some case. Doesn't hurt - should be a fraction of a millisecond. - do a CPU reschedule on transitions from host busy to host idle, since RAM usage limits might have changed - a few more log messages for cpu_sched_debug client/ cpu_sched.C cs_prefs.C cs_scheduler.C Rytis 10 Nov 2006 - User web: forum thread locking. NOTE: requires DB update. html/ inc/ forum.inc forum_thread.inc user/ forum_forum.php forum_reply.php forum_moderate_thread_action.php forum_thread.php ops/ db_update.php David 10 Nov 2006 - GUI RPC: extended set_run_mode() and set_network_mode() to take an additional "duration" argument. If duration is zero, the mode becomes permanent. Otherwise, the mode takes effect but after "duration" seconds the client reverts to the last permanent mode. By moving the timeout into the core client, the Manager (or other GUIs) can provide a "snooze" feature without the danger of perma-snooze if the Manager crashes or exits. - core client: added MODE class which encapsulates the above logic. Also fixed names, e.g. "MODE run_mode" replaces "int user_run_request". - GUI RPC: added task_mode_perm and network_mode_perm fields to CC_STATUS. This lets the GUI see if core client is snoozing (i.e. if task_mode != task_mode_perm) - GUI RPC: removed deprecated get_run_mode(), get_network_mode(), network_status(), and get_activity_state() RPCs client/ acct_mgr.C app_start.C client_state.C,h client_types.C,h cs_cmdline/C cs_prefs.C cs_statefile.C gui_rpc_server_ops.C main.C html/inc/ translation.inc lib/ boinc_cmd.C common_defs.h gui_rpc_client.h gui_rpc_client_ops.C David 10 Nov 2006 - Get the above to work on Win; fix compile warnings client/ app_control.C main.C win/ hostinfo_win.cpp clientgui/ MainDocument.cpp ViewStatistics.cpp David 10 Nov 2006 - core client: condition Curl speed-limit error message on http_debug client/ http_curl.C Rom 14 Nov 2006 - MGR: Get rid of the transparent 5px gap around the background image. - MGR: Store the preferences override and mask for later use. - MGR: Fix message dialog title. - MGR: Incorporate new default background image and adjust the WCG skin file to match. clientgui/ sg_DlgMessages.cpp, .h sg_DlgPreferences.cpp, .h SkinManager.cpp, .h lib/ app_ipc.C boinc_cmd.C gui_rpc_client.h gui_rpc_client_ops.C prefs.C, .h Rom 14 Nov 2006 - Tag for 5.7.3 release, all platforms boinc_core_release_5_7_3 David 14 Nov 2006 - scheduler: fix bug that caused global prefs not to get sent - changed user friendly platform names in default project.xml sched/ handle_request.C tools/ projects.xml David 14 Nov 2006 - core client: put if() around "compute_work_request(): start" msg client/ cs_scheduler.C Rom 15 Nov 2006 - MGR: Add "Anytime" to the list of start times for the simple preferences dialog. - MGR: Fix instructions when a connection failure happens. - MGR: Let the core client manage the snooze timer. Changes for both the advanced gui and simple gui. clientgui/ AdvancedFrame.cpp BOINCBaseFrame.cpp BOINCTaskBar.cpp, .h MainDocument.cpp, .h sg_DlgPreferences.cpp, .h sg_ProjectsComponent.cpp, .h Rom 16 Nov 2006 - MGR: Handle the clear preferences case better by setting the mask flags to false instead of just calling set preferences override with an empty string. - MGR: Make sure we grab the correct localized dialog name during construction. clientgui/ sg_DlgPreferences.cpp, .h Rom 16 Nov 2006 - MGR: Revamp the messages dialog so that it is resizable. - MGR: Remember the size of the various message columns. - MGR: Remember the size of the dialog. - MGR: Add clipboard functionality. - MGR: Cleanup code in various other places. clientgui/ AdvancedFrame.cpp sg_DlgMessages.cpp, .h sg_DlgPreferences.cpp, .h sg_ProjectsComponent.cpp sg_SGUIListControl.cpp, .h Rom 16 Nov 2006 - MGR: Change points to credits. clientgui/ sg_StatImageLoader.cpp Rom 16 Nov 2006 - Tag for 5.7.4 release, all platforms boinc_core_release_5_7_4 Charlie 17 Nov 2006 - MGR: Fix restore of SG Message Dialog size and position on Mac: call RestoreState() _after_ calling GetSizer()->Fit(), GetSizer()->SetSizeHints() and Center(). - Mac MGR: Adjust position of SG Message Dialog buttons on Mac so Close button doesn't overlap window's grow icon - MGR: Save state if close box on SG Message Dialog window frame clicked. - MGR: Fix crashing bug if Exit selected from System Tray icon (Quit on Mac) while SG Message Dialog is open. - Mac MGR: Fix ToolTip / Help Message for Mac: substitute "command key" for "control key". clientgui/ sg_DlgMessages.cpp, h sg_ProjectsComponent.cpp ViewMessages.cpp Bruce 19 Nov 2006 - server: file_deleter would turn off -delete_antiques if it encountered a stale .nfs* lockfile which was more than 60 days older than the oldest WU. This should not happen! After these modifications, antique deletion will not be turned off, but a CRITICAL error message will be logged. sched/ file_deleter.C Charlie 19 Nov 2006 - MGR: Fix windows compile errors. - Mac: Ignore Quit AppleEvents if a modal dialog is open (to prevent crashes if the user selects Quit from the Manager's Dock menu.) clientgui/ BOINCGUIApp.cpp sg_ProjectsComponent.cpp ViewMessages.cpp Rom 20 Nov 2006 - Update the Windows SKU detection code so that it can identify Win2k3 R2, tell the difference between Vista and Longhorn Server, IA32/IA64, and AMD64 - MGR: Remove the last code path which might still call InternetGetConnectedState. - Reenable the network detection stuff if the newer IsNetworkAlive API can be found. client/win/ hostinfo_win.cpp clientlib/win/ NetworkTracker.cpp lib/ network.C David 20 Nov 2006 - GUI RPC: return task and network mode delays in get_cc_status(). This tells the GUI how long the current snooze is going to last. client/ client_types.C,h gui_rpc_server_ops.C lib/ gui_rpc_client.h gui_rpc_client_ops.C David 20 Nov 2006 - core client: fix win compile warnings client/ app_start.C cs_cmdline.C win/ win_service.cpp Rom 20 Nov 2006 - MGR: Move the switch to simple GUI menu item to the View menu. clientgui/ AdvancedFrame.cpp Rom 20 Nov 2006 - MGR: Display the hand cursor when the mouse hovers over the BSG link bitmaps. - MGR: When the suspend reason is becuase of CPU throttling do not display a balloon showing that we are suspended. clientgui/ BOINCTaskBar.cpp sg_CustomControls.cpp, .h sg_ProjectsComponent.cpp David 20 Nov 2006 - core client: fix a bug in the shared-memory message passing code. Each message channel has a one-message buffer in shared mem. The send_msg() function checks if this is full. If not it puts the message there. If so it stores the message in a queue. Once a second, a poll function moves a message from the queue to the buffer (if it's empty). What's wrong with this? (let's not always see the same hands). Well, the send_msg() needs to handle the situation where there's a message in the queue but none in the buffer. This results in a bug in the CPU throttling mechanism that can cause a task to sleep forever. - core client: a SECOND significant bug in the shmem msg passing code. In general, the API library consumes at most one message per second from a given channel. That means that if you write more than one message/sec (even for a short period) it creates a queue that never goes away. If you write more than one message/sec indefinitely, it creates an unbounded queue. At this point, the only channel that uses queuing and can have more than one msg/sec is process control (because of CPU throttling). I put in kludge that handles this case: if we want to send a and there's already a in the queue, remove the and don't send anything. And conversely. - core client: to debug all the above, added and log flags. Also added some commented-out printfs in the API library. NOTE: in the course of debugging this I realized that, in the Windows version of the API, and message result in calls to SuspendThread() and ResumeThread(), which inc and dec a "suspend counter". ResumeThread() decrements the counter, and resumes the thread only if the counter is then zero. This makes the process-control message-passing scheme fragile. If for some reason you send two s and a , the net result is suspended. At some point we should change to API to do the right thing. api/ boinc_api.C client/ app.C app_control.C log_flags.C,h lib/ app_ipc.h