aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/cloud/onedrive/onedrivetokenrefresher.cpp12
-rw-r--r--backends/networking/curl/curlrequest.h3
-rw-r--r--backends/networking/curl/networkreadstream.cpp2
-rw-r--r--backends/networking/curl/networkreadstream.h2
4 files changed, 17 insertions, 2 deletions
diff --git a/backends/cloud/onedrive/onedrivetokenrefresher.cpp b/backends/cloud/onedrive/onedrivetokenrefresher.cpp
index 6943d89297..6620c23dc6 100644
--- a/backends/cloud/onedrive/onedrivetokenrefresher.cpp
+++ b/backends/cloud/onedrive/onedrivetokenrefresher.cpp
@@ -25,6 +25,7 @@
#include "backends/cloud/onedrive/onedrivestorage.h"
#include "backends/networking/curl/connectionmanager.h"
#include "backends/networking/curl/curljsonrequest.h"
+#include "backends/networking/curl/networkreadstream.h"
#include "common/config-manager.h"
#include "common/debug.h"
#include "common/json.h"
@@ -56,6 +57,17 @@ void OneDriveTokenRefresher::innerRequestCallback(Networking::JsonResponse pair)
Common::JSONObject result = pair.value->asObject();
if (result.contains("error")) {
//new token needed => request token & then retry original request
+ CurlJsonRequest *streamRequest = (CurlJsonRequest *)pair.request;
+ if (streamRequest) {
+ const Networking::NetworkReadStream *stream = streamRequest->getNetworkReadStream();
+ if (stream) {
+ debug("code %ld", stream->httpResponseCode());
+ }
+ }
+
+ Common::JSONObject error = result.getVal("error")->asObject();
+ debug("code = %s", error.getVal("code")->asString().c_str());
+ debug("message = %s", error.getVal("message")->asString().c_str());
if (pair.request) pair.request->pause();
_retryRequest = pair.request;
delete pair.value;
diff --git a/backends/networking/curl/curlrequest.h b/backends/networking/curl/curlrequest.h
index 5677720b1d..f77dce92c0 100644
--- a/backends/networking/curl/curlrequest.h
+++ b/backends/networking/curl/curlrequest.h
@@ -64,6 +64,9 @@ public:
* @return its NetworkReadStream in NetworkReadStreamResponse.
*/
virtual NetworkReadStreamResponse execute();
+
+ /** Returns Request's NetworkReadStream. */
+ const NetworkReadStream *getNetworkReadStream() const { return _stream; }
};
} //end of namespace Networking
diff --git a/backends/networking/curl/networkreadstream.cpp b/backends/networking/curl/networkreadstream.cpp
index 39316deb7c..8658fc7d17 100644
--- a/backends/networking/curl/networkreadstream.cpp
+++ b/backends/networking/curl/networkreadstream.cpp
@@ -78,7 +78,7 @@ void NetworkReadStream::finished() {
_requestComplete = true;
}
-long NetworkReadStream::httpResponseCode() {
+long NetworkReadStream::httpResponseCode() const {
long responseCode = -1;
if (_easy)
curl_easy_getinfo(_easy, CURLINFO_RESPONSE_CODE, &responseCode);
diff --git a/backends/networking/curl/networkreadstream.h b/backends/networking/curl/networkreadstream.h
index a0c87460cb..14c00a4baa 100644
--- a/backends/networking/curl/networkreadstream.h
+++ b/backends/networking/curl/networkreadstream.h
@@ -80,7 +80,7 @@ public:
*
* @note This method should be called when eos() == true.
*/
- long httpResponseCode();
+ long httpResponseCode() const;
};
} //end of namespace Networking