linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #04695
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2652: connectivity detection fixes
------------------------------------------------------------
revno: 2652
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Tue 2011-10-25 20:07:46 +0200
message:
connectivity detection fixes
modified:
dcpp/ClientManager.cpp
dcpp/ConnectivityManager.cpp
dcpp/ConnectivityManager.h
dcpp/SettingsManager.h
dcpp/Util.cpp
win32/HubFrame.cpp
win32/Mapper_MiniUPnPc.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/ClientManager.cpp'
--- dcpp/ClientManager.cpp 2011-10-20 14:14:24 +0000
+++ dcpp/ClientManager.cpp 2011-10-25 18:07:46 +0000
@@ -19,17 +19,18 @@
#include "stdinc.h"
#include "ClientManager.h"
-#include "ShareManager.h"
-#include "SearchManager.h"
+#include "AdcHub.h"
#include "ConnectionManager.h"
+#include "ConnectivityManager.h"
#include "CryptoManager.h"
#include "FavoriteManager.h"
+#include "File.h"
+#include "NmdcHub.h"
+#include "SearchManager.h"
+#include "SearchResult.h"
+#include "ShareManager.h"
#include "SimpleXML.h"
#include "UserCommand.h"
-#include "SearchResult.h"
-#include "File.h"
-#include "AdcHub.h"
-#include "NmdcHub.h"
namespace dcpp {
@@ -605,7 +606,7 @@
}
bool ClientManager::isActive() const {
- return SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_FIREWALL_PASSIVE;
+ return CONNSETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_FIREWALL_PASSIVE;
}
const CID& ClientManager::getMyPID() {
=== modified file 'dcpp/ConnectivityManager.cpp'
--- dcpp/ConnectivityManager.cpp 2011-10-22 16:41:13 +0000
+++ dcpp/ConnectivityManager.cpp 2011-10-25 18:07:46 +0000
@@ -35,14 +35,14 @@
{
}
-const string& ConnectivityManager::get(SettingsManager::StrSetting setting) const {
+const string& ConnectivityManager::get(SettingsManager::StrSetting setting, bool useDefault) const {
if(BOOLSETTING(AUTO_DETECT_CONNECTION)) {
auto i = autoSettings.find(setting);
if(i != autoSettings.end()) {
return boost::get<const string&>(i->second);
}
}
- return SettingsManager::getInstance()->get(setting);
+ return SettingsManager::getInstance()->get(setting, useDefault);
}
int ConnectivityManager::get(SettingsManager::IntSetting setting) const {
@@ -83,9 +83,10 @@
SettingsManager::BIND_ADDRESS, SettingsManager::BIND_ADDRESS6, SettingsManager::INCOMING_CONNECTIONS };
std::for_each(settings, settings + sizeof(settings) / sizeof(settings[0]), [this](int setting) {
if(setting >= SettingsManager::STR_FIRST && setting < SettingsManager::STR_LAST) {
- autoSettings[setting] = string();
+ auto s = static_cast<SettingsManager::StrSetting>(setting);
+ autoSettings[setting] = SettingsManager::getInstance()->isDefault(s) ? string() : SettingsManager::getInstance()->getDefault(s);
} else if(setting >= SettingsManager::INT_FIRST && setting < SettingsManager::INT_LAST) {
- autoSettings[setting] = 0;
+ autoSettings[setting] = SettingsManager::getInstance()->getDefault(static_cast<SettingsManager::IntSetting>(setting));
}
});
=== modified file 'dcpp/ConnectivityManager.h'
--- dcpp/ConnectivityManager.h 2011-10-22 16:41:13 +0000
+++ dcpp/ConnectivityManager.h 2011-10-25 18:07:46 +0000
@@ -51,7 +51,8 @@
class ConnectivityManager : public Singleton<ConnectivityManager>, public Speaker<ConnectivityManagerListener>
{
public:
- const string& get(SettingsManager::StrSetting setting) const;
+ /// @param useDefault return an empty string if the value hasn't been configured (rather than the SettingsManager default).
+ const string& get(SettingsManager::StrSetting setting, bool useDefault = true) const;
int get(SettingsManager::IntSetting setting) const;
void set(SettingsManager::StrSetting setting, const string& str);
@@ -87,7 +88,7 @@
unordered_map<int, boost::variant<int, string>> autoSettings;
};
-#define CONNSETTING(k) SettingsManager::getInstance()->get(SettingsManager::k)
+#define CONNSETTING(k) ConnectivityManager::getInstance()->get(SettingsManager::k)
} // namespace dcpp
=== modified file 'dcpp/SettingsManager.h'
--- dcpp/SettingsManager.h 2011-10-22 16:41:13 +0000
+++ dcpp/SettingsManager.h 2011-10-25 18:07:46 +0000
@@ -206,6 +206,14 @@
isSet[key] = true;
}
+ const string& getDefault(StrSetting key) const {
+ return strDefaults[key - STR_FIRST];
+ }
+
+ int getDefault(IntSetting key) const {
+ return intDefaults[key - INT_FIRST];
+ }
+
void setDefault(StrSetting key, string const& value) {
strDefaults[key - STR_FIRST] = value;
}
=== modified file 'dcpp/Util.cpp'
--- dcpp/Util.cpp 2011-10-22 16:41:13 +0000
+++ dcpp/Util.cpp 2011-10-25 18:07:46 +0000
@@ -553,7 +553,7 @@
}
string Util::getLocalIp() {
- auto bindAddr = CONNSETTING(BIND_ADDRESS);
+ const auto& bindAddr = ConnectivityManager::getInstance()->get(SettingsManager::BIND_ADDRESS, false);
if(!bindAddr.empty()) {
return bindAddr;
}
=== modified file 'win32/HubFrame.cpp'
--- win32/HubFrame.cpp 2011-10-22 16:41:13 +0000
+++ win32/HubFrame.cpp 2011-10-25 18:07:46 +0000
@@ -23,11 +23,12 @@
#include <dcpp/AdcHub.h>
#include <dcpp/ChatMessage.h>
#include <dcpp/ClientManager.h>
+#include <dcpp/ConnectionManager.h>
+#include <dcpp/ConnectivityManager.h>
+#include <dcpp/FavoriteManager.h>
#include <dcpp/LogManager.h>
+#include <dcpp/SearchManager.h>
#include <dcpp/User.h>
-#include <dcpp/FavoriteManager.h>
-#include <dcpp/ConnectionManager.h>
-#include <dcpp/SearchManager.h>
#include <dcpp/version.h>
#include <dcpp/WindowInfo.h>
@@ -735,7 +736,7 @@
int image = identity.isBot() ? WinUtil::USER_ICON_BOT : identity.isAway() ? WinUtil::USER_ICON_AWAY : WinUtil::USER_ICON;
image *= WinUtil::USER_ICON_MOD_START * WinUtil::USER_ICON_MOD_START;
- if(SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_FIREWALL_PASSIVE &&
+ if(CONNSETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_FIREWALL_PASSIVE &&
!identity.isBot() && !identity.isTcpActive() && !identity.supports(AdcHub::NAT0_FEATURE))
{
// Users we can't connect to
=== modified file 'win32/Mapper_MiniUPnPc.cpp'
--- win32/Mapper_MiniUPnPc.cpp 2011-10-22 16:41:13 +0000
+++ win32/Mapper_MiniUPnPc.cpp 2011-10-25 18:07:46 +0000
@@ -38,7 +38,7 @@
if(!url.empty())
return true;
- auto bindAddr = CONNSETTING(BIND_ADDRESS);
+ const auto& bindAddr = ConnectivityManager::getInstance()->get(SettingsManager::BIND_ADDRESS, false);
UPNPDev* devices = upnpDiscover(2000, bindAddr.empty() ? nullptr : bindAddr.c_str(), 0, 0, 0, 0);
if(!devices)