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,