aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/cloud/manager.cpp14
-rw-r--r--backends/cloud/manager.h1
2 files changed, 13 insertions, 2 deletions
diff --git a/backends/cloud/manager.cpp b/backends/cloud/manager.cpp
index 959f395243..13f23b8e6e 100644
--- a/backends/cloud/manager.cpp
+++ b/backends/cloud/manager.cpp
@@ -22,12 +22,13 @@
#include "backends/cloud/manager.h"
#include "backends/cloud/dropbox/dropboxstorage.h"
+#include "backends/cloud/onedrive/onedrivestorage.h"
#include "common/config-manager.h"
-#include "onedrive/onedrivestorage.h"
+#include "common/random.h"
namespace Cloud {
-Manager::Manager(): _currentStorageIndex(0) {}
+Manager::Manager(): _currentStorageIndex(0), _deviceId(0) {}
Manager::~Manager() {
//TODO: do we have to save storages on manager destruction?
@@ -40,6 +41,15 @@ void Manager::init() {
bool offerDropbox = false;
bool offerOneDrive = true;
+ if (!ConfMan.hasKey("device_id", "cloud")) {
+ Common::RandomSource source("Cloud Random Source");
+ _deviceId = source.getRandomNumber(UINT_MAX - 1);
+ ConfMan.setInt("device_id", _deviceId, "cloud");
+ ConfMan.flushToDisk();
+ } else {
+ _deviceId = ConfMan.getInt("device_id", "cloud");
+ }
+
if (ConfMan.hasKey("storages_number", "cloud")) {
int storages = ConfMan.getInt("storages_number", "cloud");
for (int i = 1; i <= storages; ++i) {
diff --git a/backends/cloud/manager.h b/backends/cloud/manager.h
index 6eaf17bc91..f472b80ae3 100644
--- a/backends/cloud/manager.h
+++ b/backends/cloud/manager.h
@@ -31,6 +31,7 @@ namespace Cloud {
class Manager: public Common::CloudManager {
Common::Array<Storage *> _storages;
uint _currentStorageIndex;
+ uint _deviceId;
public:
Manager();