crash-reporter: Make use of list_proxies to send crashes via a proxy when appropriate
BUG=chromium-os:6828
TEST=Manually ran crash_sender to make sure it would run curl with appropriate --proxy option. Manually ran curl using proxies from "http://proxyconfig.corp.google.com/wpad.dat". Ran a modified crash_sender manually to make sure it passed the appropriate "--proxy" arguments correctly.
Review URL: http://codereview.chromium.org/6802003
Change-Id: Ie1414fca1a7dbc265d8aad0eea32a736a5d30d54
diff --git a/crash_reporter/crash_sender b/crash_reporter/crash_sender
index 10fdf37..21bd488 100644
--- a/crash_reporter/crash_sender
+++ b/crash_reporter/crash_sender
@@ -68,6 +68,9 @@
# Temp directory for this process.
TMP_DIR=""
+# Path to list_proxies.
+LIST_PROXIES="/usr/bin/list_proxies"
+
lecho() {
logger -t "${TAG}" "$@"
}
@@ -258,11 +261,18 @@
return 1
fi
+ # Read in the first proxy, if any, for a given URL. NOTE: The
+ # double-quotes are necessary due to a bug in dash with the "local"
+ # builtin command and values that have spaces in them (see
+ # "https://bugs.launchpad.net/ubuntu/+source/dash/+bug/139097").
+ local proxy="`${LIST_PROXIES} -quiet "${url}" | head -1`"
+ # if a direct connection should be used, unset the proxy variable.
+ [ "${proxy}" = "direct://" ] && proxy=
local report_id="${TMP_DIR}/report_id"
local curl_stderr="${TMP_DIR}/curl_stderr"
set +e
- curl "${url}" \
+ curl "${url}" ${proxy:+--proxy "$proxy"} \
--capath "${RESTRICTED_CERTIFICATES_PATH}" --ciphers HIGH \
-F "prod=${CHROMEOS_PRODUCT}" \
-F "ver=${chromeos_version}" \