diff options
-rw-r--r-- | backends/cloud/manager.cpp | 14 | ||||
-rw-r--r-- | backends/cloud/manager.h | 1 |
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(); |