diff --git a/checkin_notes b/checkin_notes
index 4b789d188a..f432da2c61 100755
--- a/checkin_notes
+++ b/checkin_notes
@@ -7724,3 +7724,17 @@ Rom 8 Aug 2007
clientgui/res/templates/
boincsnooze.ico
boincdisconnect.ico
+
+David 10 Aug 2007
+ - client: timezone reflects daylight savings time (Win)
+ from David Barnard; fixes #334
+ - GUI RPC: add replies for ops that don't return anything
+ - GUI RPC: check args for project_attach
+ - GUI RPC: return error (not blank) if no prefs override file
+ - add error string for ERR_TOO_MANY_EXITS
+
+ client/
+ gui_rpc_server_ops.C
+ hostinfo_win.C
+ lib/
+ str_util.C
diff --git a/checkin_notes_2005 b/checkin_notes_2005
index 643185c55c..b95c5e0f10 100644
--- a/checkin_notes_2005
+++ b/checkin_notes_2005
@@ -1,4 +1,4 @@
-David 1 Jan 2005
+eavid 1 Jan 2005
- Deprecated the bad hash function used for the
upload/download directory hierarchies.
It wasn't uniform.
diff --git a/client/gui_rpc_server_ops.C b/client/gui_rpc_server_ops.C
index eebd2caf04..e5eb81c875 100644
--- a/client/gui_rpc_server_ops.C
+++ b/client/gui_rpc_server_ops.C
@@ -593,8 +593,9 @@ static void handle_get_cc_status(GUI_RPC_CONN* gr, MIOFILE& fout) {
);
}
-static void handle_network_available(char*, MIOFILE&) {
+static void handle_network_available(char*, MIOFILE& fout) {
net_status.network_available();
+ fout.printf("\n");
}
static void handle_get_project_init_status(char*, MIOFILE& fout) {
@@ -637,6 +638,10 @@ static void handle_lookup_account(char* buf, MIOFILE& fout) {
ACCOUNT_IN ai;
ai.parse(buf);
+ if (!ai.url.size() || !ai.email_addr.size() || !ai.passwd_hash.size()) {
+ fout.printf("missing URL, email address, or password\n");
+ return;
+ }
gstate.lookup_account_op.do_rpc(ai);
fout.printf("\n");
@@ -833,6 +838,8 @@ static void handle_get_global_prefs_override(MIOFILE& fout) {
if (!retval) {
strip_whitespace(s);
fout.printf("%s\n", s.c_str());
+ } else {
+ fout.printf("no prefs override file\n");
}
}
@@ -1107,6 +1114,7 @@ int GUI_RPC_CONN::handle_rpc() {
} else if (match_tag(request_msg, "")) {
+ mf.printf("\n");
gstate.read_global_prefs();
gstate.request_schedule_cpus("Preferences override");
gstate.request_work_fetch("Preferences override");
@@ -1125,6 +1133,7 @@ int GUI_RPC_CONN::handle_rpc() {
} else if (match_tag(request_msg, "")) {
+ mf.printf("\n");
read_config_file();
gstate.request_schedule_cpus("Core client configuration");
gstate.request_work_fetch("Core client configuration");
diff --git a/client/hostinfo_win.C b/client/hostinfo_win.C
index d8123a48d1..06d1186007 100644
--- a/client/hostinfo_win.C
+++ b/client/hostinfo_win.C
@@ -87,15 +87,14 @@ struct INTERNALMONITORINFO
// Returns the number of seconds difference from UTC
//
int get_timezone(int& timezone) {
-
TIME_ZONE_INFORMATION tzi;
-
- memset(&tzi, '\0', sizeof(TIME_ZONE_INFORMATION));
-
- GetTimeZoneInformation(&tzi);
-
- timezone = -(tzi.Bias * 60);
-
+ memset(&tzi, 0, sizeof(TIME_ZONE_INFORMATION));
+ DWORD result = GetTimeZoneInformation(&tzi);
+ if (result == TIME_ZONE_ID_DAYLIGHT) {
+ timezone = -(tzi.DaylightBias * 60);
+ } else {
+ timezone = -(tzi.StandardBias * 60);
+ }
return 0;
}
diff --git a/doc/email_lists.php b/doc/email_lists.php
index 391f98c584..4e27d7a6bb 100644
--- a/doc/email_lists.php
+++ b/doc/email_lists.php
@@ -27,36 +27,36 @@ and help for BOINC is available here.
";
list_start();
list_item(
- "boinc_announce",
+ "boinc_announce",
"Announcements of new versions of BOINC client software."
);
list_item(
- "boinc_projects",
+ "boinc_projects",
"For people developing and operating BOINC projects.
Questions and problems involving BOINC API and server software.
Announcements of upgrades and changes.
");
-list_item("boinc_dev",
+list_item("boinc_dev",
"For people developing, debugging or porting the BOINC software
(client, server, and Web).
Do NOT post questions about how to use the software.
");
-list_item("boinc_loc",
+list_item("boinc_loc",
"For people doing non-English translations
of the BOINC GUI or web interfaces.
");
list_item(
- "boinc_stats",
+ "boinc_stats",
"For people developing web sites showing statistics for BOINC projects."
);
-list_item("boinc_cvs",
+list_item("boinc_cvs",
"Summaries of BOINC CVS checkins are posted to this list.
No other posts, please."
);
-list_item("boinc_opt",
+list_item("boinc_opt",
"For people porting and optimizing BOINC applications."
);
-list_item("boinc_helpers",
+list_item("boinc_helpers",
"For BOINC Help Volunteers,
to discuss policies and user problems."
);
diff --git a/lib/str_util.C b/lib/str_util.C
index 2627be28b9..e59b59b672 100755
--- a/lib/str_util.C
+++ b/lib/str_util.C
@@ -676,6 +676,7 @@ const char* boincerror(int which_error) {
case ERR_CHOWN: return "can't change owner";
case ERR_FILE_NOT_FOUND: return "file not found";
case ERR_BAD_FILENAME: return "file name is empty or has '..'";
+ case ERR_TOO_MANY_EXITS: return "application exited too many times";
case 404: return "HTTP file not found";
case 407: return "HTTP proxy authentication failure";
case 416: return "HTTP range request error";