diff --git a/checkin_notes b/checkin_notes
index b6594e179c..0d30c77708 100755
--- a/checkin_notes
+++ b/checkin_notes
@@ -13522,3 +13522,13 @@ Charlie 19 Dec 2006
option.
mac_build/
setupForBOINC.sh
+
+David 19 Dec 2006
+ - core client: add "" config flag for
+ people with proxies that require HTTP 1.0.
+ Curl's default is 1.1
+
+ client/
+ http_curl.C
+ log_flags.C,h
+ scheduler_op.C
diff --git a/client/http_curl.C b/client/http_curl.C
index 5f1e682a6d..180b9cb63e 100644
--- a/client/http_curl.C
+++ b/client/http_curl.C
@@ -328,8 +328,12 @@ The checking this option controls is of the identity that the server claims. The
curlErr = curl_easy_setopt(curlEasy, CURLOPT_LOW_SPEED_TIME, 300L);
curlErr = curl_easy_setopt(curlEasy, CURLOPT_CONNECTTIMEOUT, 120L);
- // force curl to use HTTP/1.1
- curlErr = curl_easy_setopt(curlEasy, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
+ // force curl to use HTTP/1.0 if config specifies it
+ // (curl uses 1.1 by default)
+ //
+ if (config.http_1_0) {
+ curlErr = curl_easy_setopt(curlEasy, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
+ }
curlErr = curl_easy_setopt(curlEasy, CURLOPT_MAXREDIRS, 50L);
curlErr = curl_easy_setopt(curlEasy, CURLOPT_AUTOREFERER, 1L);
curlErr = curl_easy_setopt(curlEasy, CURLOPT_FOLLOWLOCATION, 1L);
diff --git a/client/log_flags.C b/client/log_flags.C
index 7d1ecf0fcb..9d288f07f6 100644
--- a/client/log_flags.C
+++ b/client/log_flags.C
@@ -151,6 +151,7 @@ void LOG_FLAGS::show() {
CONFIG::CONFIG() {
memset(this, 0, sizeof(CONFIG));
dont_check_file_sizes = false;
+ http_1_0 = false;
save_stats_days = 30;
max_file_xfers = MAX_FILE_XFERS;
max_file_xfers_per_project = MAX_FILE_XFERS_PER_PROJECT;
@@ -172,6 +173,7 @@ int CONFIG::parse_options(XML_PARSER& xp) {
}
else if (xp.parse_int(tag, "save_stats_days", save_stats_days)) continue;
else if (xp.parse_bool(tag, "dont_check_file_sizes", dont_check_file_sizes)) continue;
+ else if (xp.parse_bool(tag, "http_1_0", http_1_0)) continue;
else if (xp.parse_int(tag, "ncpus", ncpus)) continue;
else if (xp.parse_int(tag, "max_file_xfers", max_file_xfers)) continue;
else if (xp.parse_int(tag, "max_file_xfers_per_project", max_file_xfers_per_project)) continue;
diff --git a/client/log_flags.h b/client/log_flags.h
index f8cf646976..6da6003033 100644
--- a/client/log_flags.h
+++ b/client/log_flags.h
@@ -76,6 +76,7 @@ struct LOG_FLAGS {
struct CONFIG {
bool dont_check_file_sizes;
+ bool http_1_0;
int save_stats_days;
int ncpus;
int max_file_xfers;
diff --git a/client/scheduler_op.C b/client/scheduler_op.C
index 350aa1e26d..d1332adfb2 100644
--- a/client/scheduler_op.C
+++ b/client/scheduler_op.C
@@ -824,8 +824,8 @@ int SCHEDULER_REPLY::parse(FILE* in, PROJECT* project) {
#ifdef ENABLE_AUTO_UPDATE
} else if (match_tag(buf, "")) {
retval = auto_update.parse(mf);
-#endif
if (!retval) auto_update.present = true;
+#endif
} else if (strlen(buf)>1){
if (log_flags.unparsed_xml) {
msg_printf(0, MSG_ERROR,