CLOUD: Make OneDriveStorage::download() work fine
Well, it takes two API calls instead of one now, but there are no problems with expired token because of it. This commit changes Storage::streamFile() to pass NetworkReadStream * through callback.
This commit is contained in:
parent
24007c029b
commit
83b349a033
13 changed files with 77 additions and 36 deletions
|
@ -30,7 +30,7 @@
|
|||
|
||||
namespace Networking {
|
||||
|
||||
CurlRequest::CurlRequest(DataCallback cb, const char *url):
|
||||
CurlRequest::CurlRequest(DataCallback cb, Common::String url):
|
||||
Request(cb), _url(url), _stream(0), _headersList(0) {}
|
||||
|
||||
CurlRequest::~CurlRequest() {
|
||||
|
@ -38,7 +38,7 @@ CurlRequest::~CurlRequest() {
|
|||
}
|
||||
|
||||
void CurlRequest::handle() {
|
||||
if (!_stream) _stream = new NetworkReadStream(_url, _headersList, _postFields);
|
||||
if (!_stream) _stream = new NetworkReadStream(_url.c_str(), _headersList, _postFields);
|
||||
|
||||
if (_stream && _stream->eos()) {
|
||||
if (_stream->httpResponseCode() != 200)
|
||||
|
@ -71,13 +71,13 @@ void CurlRequest::addPostField(Common::String keyValuePair) {
|
|||
_postFields += "&" + keyValuePair;
|
||||
}
|
||||
|
||||
NetworkReadStream *CurlRequest::execute() {
|
||||
Cloud::Storage::RequestReadStreamPair CurlRequest::execute() {
|
||||
if (!_stream) {
|
||||
_stream = new NetworkReadStream(_url, _headersList, _postFields);
|
||||
_stream = new NetworkReadStream(_url.c_str(), _headersList, _postFields);
|
||||
ConnMan.addRequest(this);
|
||||
}
|
||||
|
||||
return _stream;
|
||||
return Cloud::Storage::RequestReadStreamPair(_id, _stream);
|
||||
}
|
||||
|
||||
} //end of namespace Networking
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue