| Index: chrome_frame/urlmon_url_request.cc
|
| ===================================================================
|
| --- chrome_frame/urlmon_url_request.cc (revision 35831)
|
| +++ chrome_frame/urlmon_url_request.cc (working copy)
|
| @@ -470,13 +470,28 @@
|
| return E_INVALIDARG;
|
|
|
| *bind_flags = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
|
| +
|
| + bool upload_data = false;
|
| +
|
| if (LowerCaseEqualsASCII(method(), "get")) {
|
| bind_info->dwBindVerb = BINDVERB_GET;
|
| } else if (LowerCaseEqualsASCII(method(), "post")) {
|
| bind_info->dwBindVerb = BINDVERB_POST;
|
| + upload_data = true;
|
| + } else if (LowerCaseEqualsASCII(method(), "put")) {
|
| + bind_info->dwBindVerb = BINDVERB_PUT;
|
| + upload_data = true;
|
| + } else {
|
| + NOTREACHED() << "Unknown HTTP method.";
|
| + status_.set_status(URLRequestStatus::FAILED);
|
| + status_.set_os_error(net::ERR_METHOD_NOT_SUPPORTED);
|
| + EndRequest();
|
| + return E_FAIL;
|
| + }
|
|
|
| - // Bypass caching proxies on POSTs and avoid writing responses to POST
|
| - // requests to the browser's cache.
|
| + if (upload_data) {
|
| + // Bypass caching proxies on POSTs and PUTs and avoid writing responses to
|
| + // these requests to the browser's cache
|
| *bind_flags |= BINDF_GETNEWESTVERSION | BINDF_NOWRITECACHE |
|
| BINDF_PRAGMA_NO_CACHE;
|
|
|
| @@ -487,18 +502,13 @@
|
|
|
| if (get_upload_data(&bind_info->stgmedData.pstm) == S_OK) {
|
| bind_info->stgmedData.tymed = TYMED_ISTREAM;
|
| - DLOG(INFO) << " Obj: " << std::hex << this << " POST request with "
|
| - << Int64ToString(post_data_len()) << " bytes";
|
| + DLOG(INFO) << " Obj: " << std::hex << this << " " << method()
|
| + << " request with " << Int64ToString(post_data_len())
|
| + << " bytes";
|
| } else {
|
| DLOG(INFO) << " Obj: " << std::hex << this
|
| << "POST request with no data!";
|
| }
|
| - } else {
|
| - NOTREACHED() << "Unknown HTTP method.";
|
| - status_.set_status(URLRequestStatus::FAILED);
|
| - status_.set_os_error(net::ERR_INVALID_URL);
|
| - EndRequest();
|
| - return E_FAIL;
|
| }
|
|
|
| return S_OK;
|
|
|