aboutsummaryrefslogtreecommitdiff
path: root/src/BootstrapConnection.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-10-16 05:23:12 +0200
committerdec05eba <dec05eba@protonmail.com>2020-08-18 22:56:48 +0200
commitcf5bcde77556847075e6cbdac9426892844ee643 (patch)
treea3bce8388280aa2453c669634427de776520b630 /src/BootstrapConnection.cpp
parentc47870421f189eb98fc66e912693d73fbd8477ee (diff)
Add more state functions
Diffstat (limited to 'src/BootstrapConnection.cpp')
-rw-r--r--src/BootstrapConnection.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/BootstrapConnection.cpp b/src/BootstrapConnection.cpp
index 0237a90..995fdcd 100644
--- a/src/BootstrapConnection.cpp
+++ b/src/BootstrapConnection.cpp
@@ -160,8 +160,13 @@ namespace sibs
{
{
std::lock_guard<std::recursive_mutex> lock(listenerCallbackFuncMutex);
- if(listenCallbackFuncs.find(pubsubKey) != listenCallbackFuncs.end())
- throw PubsubKeyAlreadyListeningException("");
+ auto it = listenCallbackFuncs.find(pubsubKey);
+ if(it != listenCallbackFuncs.end())
+ {
+ Log::warn("BootstrapConnection::listen called on existing listener, overwriting callback function");
+ it->second = callbackFunc;
+ return { pubsubKey };
+ }
listenCallbackFuncs[pubsubKey] = callbackFunc;
}
@@ -246,6 +251,12 @@ namespace sibs
return true;
}
+ bool BootstrapConnection::areWeListeningOnKey(const PubsubKey &pubsubKey)
+ {
+ std::lock_guard<std::recursive_mutex> lock(listenerCallbackFuncMutex);
+ return listenCallbackFuncs.find(pubsubKey) != listenCallbackFuncs.end();
+ }
+
std::vector<std::shared_ptr<DirectConnectionPeer>> BootstrapConnection::getPeers()
{
return connections.getPeers();