aboutsummaryrefslogtreecommitdiff
path: root/src/common/windows
diff options
context:
space:
mode:
authorincrementalist <incrementalist@4c0a9323-5329-0410-9bdc-e9ce6186880e>2007-01-03 23:14:46 +0000
committerincrementalist <incrementalist@4c0a9323-5329-0410-9bdc-e9ce6186880e>2007-01-03 23:14:46 +0000
commitd4e527b7eea7628e305e6ca93cdcb9796060d65a (patch)
treef6b126d057b022b9a597ba4eaeabd49b5a4a3736 /src/common/windows
parentAdd Mac exception handler and generator. Fixes issue #69. Reviewed by mment... (diff)
downloadbreakpad-d4e527b7eea7628e305e6ca93cdcb9796060d65a.tar.xz
Allows the caller of CrashReportSender::SendCrashReport() to determine that
the server rejected a crash report, by changing the return value from a boolean to a tri-state enum. Fixes issue #101. Reviewed by mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@99 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/common/windows')
-rw-r--r--src/common/windows/http_upload.cc14
-rw-r--r--src/common/windows/http_upload.h5
2 files changed, 16 insertions, 3 deletions
diff --git a/src/common/windows/http_upload.cc b/src/common/windows/http_upload.cc
index 59e541f0..2fa48491 100644
--- a/src/common/windows/http_upload.cc
+++ b/src/common/windows/http_upload.cc
@@ -66,7 +66,12 @@ bool HTTPUpload::SendRequest(const wstring &url,
const map<wstring, wstring> &parameters,
const wstring &upload_file,
const wstring &file_part_name,
- wstring *response_body) {
+ wstring *response_body,
+ int *response_code) {
+ if (response_code) {
+ *response_code = 0;
+ }
+
// TODO(bryner): support non-ASCII parameter names
if (!CheckParameters(parameters)) {
return false;
@@ -153,7 +158,12 @@ bool HTTPUpload::SendRequest(const wstring &url,
return false;
}
- bool result = (wcscmp(http_status, L"200") == 0);
+ int http_response = wcstol(http_status, NULL, 10);
+ if (response_code) {
+ *response_code = http_response;
+ }
+
+ bool result = (http_response == 200);
if (result) {
result = ReadResponse(request.get(), response_body);
diff --git a/src/common/windows/http_upload.h b/src/common/windows/http_upload.h
index a23a0f2b..d458eb19 100644
--- a/src/common/windows/http_upload.h
+++ b/src/common/windows/http_upload.h
@@ -63,11 +63,14 @@ class HTTPUpload {
// Only HTTP(S) URLs are currently supported. Returns true on success.
// If the request is successful and response_body is non-NULL,
// the response body will be returned in response_body.
+ // If response_code is non-NULL, it will be set to the HTTP response code
+ // received (or 0 if the request failed before getting an HTTP response).
static bool SendRequest(const wstring &url,
const map<wstring, wstring> &parameters,
const wstring &upload_file,
const wstring &file_part_name,
- wstring *response_body);
+ wstring *response_body,
+ int *response_code);
private:
class AutoInternetHandle;