aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud/onedrive
diff options
context:
space:
mode:
authorAlexander Tkachev2016-05-27 22:33:39 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit8aa87815a62117c5fd29b335c8e33b0cbea0da44 (patch)
treec893d5af9c61e35c72f07eb90b4ddd351d525053 /backends/cloud/onedrive
parent1dfa73b8f863972f513d9d04b995cb7316365a8c (diff)
downloadscummvm-rg350-8aa87815a62117c5fd29b335c8e33b0cbea0da44.tar.gz
scummvm-rg350-8aa87815a62117c5fd29b335c8e33b0cbea0da44.tar.bz2
scummvm-rg350-8aa87815a62117c5fd29b335c8e33b0cbea0da44.zip
CLOUD: Fix "global destructor" warning
Plain char * is used instead of Common::String in DropboxStorage and OneDriveStorage's KEY and SECRET.
Diffstat (limited to 'backends/cloud/onedrive')
-rw-r--r--backends/cloud/onedrive/onedrivestorage.cpp28
-rw-r--r--backends/cloud/onedrive/onedrivestorage.h4
2 files changed, 22 insertions, 10 deletions
diff --git a/backends/cloud/onedrive/onedrivestorage.cpp b/backends/cloud/onedrive/onedrivestorage.cpp
index e181fecabb..6f3a283fe6 100644
--- a/backends/cloud/onedrive/onedrivestorage.cpp
+++ b/backends/cloud/onedrive/onedrivestorage.cpp
@@ -37,8 +37,20 @@
namespace Cloud {
namespace OneDrive {
-Common::String OneDriveStorage::KEY; //can't use ConfMan there yet, loading it on instance creation/auth
-Common::String OneDriveStorage::SECRET; //TODO: hide these secrets somehow
+char *OneDriveStorage::KEY; //can't use ConfMan there yet, loading it on instance creation/auth
+char *OneDriveStorage::SECRET; //TODO: hide these secrets somehow
+
+void OneDriveStorage::loadKeyAndSecret() {
+ Common::String k = ConfMan.get("ONEDRIVE_KEY", "cloud");
+ KEY = new char[k.size() + 1];
+ memcpy(KEY, k.c_str(), k.size());
+ KEY[k.size()] = 0;
+
+ k = ConfMan.get("ONEDRIVE_SECRET", "cloud");
+ SECRET = new char[k.size() + 1];
+ memcpy(SECRET, k.c_str(), k.size());
+ SECRET[k.size()] = 0;
+}
OneDriveStorage::OneDriveStorage(Common::String accessToken, Common::String userId, Common::String refreshToken):
_token(accessToken), _uid(userId), _refreshToken(refreshToken) {}
@@ -67,8 +79,8 @@ void OneDriveStorage::getAccessToken(BoolCallback callback, Common::String code)
request->addPostField("refresh_token=" + _refreshToken);
request->addPostField("grant_type=refresh_token");
}
- request->addPostField("client_id=" + KEY);
- request->addPostField("client_secret=" + SECRET);
+ request->addPostField("client_id=" + Common::String(KEY));
+ request->addPostField("client_secret=" + Common::String(SECRET));
request->addPostField("&redirect_uri=http%3A%2F%2Flocalhost%3A12345%2F");
ConnMan.addRequest(request);
}
@@ -186,8 +198,7 @@ Networking::Request *OneDriveStorage::syncSaves(BoolCallback callback) {
}
OneDriveStorage *OneDriveStorage::loadFromConfig(Common::String keyPrefix) {
- KEY = ConfMan.get("ONEDRIVE_KEY", "cloud");
- SECRET = ConfMan.get("ONEDRIVE_SECRET", "cloud");
+ loadKeyAndSecret();
if (!ConfMan.hasKey(keyPrefix + "access_token", "cloud")) {
warning("No access_token found");
@@ -215,7 +226,7 @@ Common::String OneDriveStorage::getAuthLink() {
url += "?response_type=code";
url += "&redirect_uri=http://localhost:12345/"; //that's for copy-pasting
//url += "&redirect_uri=http%3A%2F%2Flocalhost%3A12345%2F"; //that's "http://localhost:12345/" for automatic opening
- url += "&client_id=" + KEY;
+ url += "&client_id="; url += KEY;
url += "&scope=onedrive.appfolder%20offline_access"; //TODO
return url;
}
@@ -226,8 +237,7 @@ void OneDriveStorage::authThroughConsole() {
return;
}
- KEY = ConfMan.get("ONEDRIVE_KEY", "cloud");
- SECRET = ConfMan.get("ONEDRIVE_SECRET", "cloud");
+ loadKeyAndSecret();
if (ConfMan.hasKey("onedrive_code", "cloud")) {
//phase 2: get access_token using specified code
diff --git a/backends/cloud/onedrive/onedrivestorage.h b/backends/cloud/onedrive/onedrivestorage.h
index 858af6c9bf..290abd7926 100644
--- a/backends/cloud/onedrive/onedrivestorage.h
+++ b/backends/cloud/onedrive/onedrivestorage.h
@@ -31,7 +31,9 @@ namespace Cloud {
namespace OneDrive {
class OneDriveStorage: public Cloud::Storage {
- static Common::String KEY, SECRET;
+ static char *KEY, *SECRET;
+
+ static void loadKeyAndSecret();
Common::String _token, _uid, _refreshToken;