aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 7a1fcc5033..5932f5f8e3 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -5,7 +5,7 @@
#include "db.h"
#include "net.h"
-#include "init.h"
+#include "main.h"
#include "addrman.h"
#include "ui_interface.h"
#include "script.h"
@@ -68,6 +68,28 @@ CCriticalSection cs_vAddedNodes;
static CSemaphore *semOutbound = NULL;
+//
+// Handlers that need to be registered
+//
+static ProcessMessagesHandler fnProcessMessages = NULL;
+static SendMessagesHandler fnSendMessages = NULL;
+static StartShutdownHandler fnStartShutdown = NULL;
+
+void SetProcessMessagesHandler(ProcessMessagesHandler handler)
+{
+ fnProcessMessages = handler;
+}
+
+void SetSendMessagesHandler(SendMessagesHandler handler)
+{
+ fnSendMessages = handler;
+}
+
+void SetStartShutdownHandler(StartShutdownHandler handler)
+{
+ fnStartShutdown = handler;
+}
+
void AddOneShot(string strDest)
{
LOCK(cs_vOneShots);
@@ -1632,8 +1654,8 @@ void ThreadMessageHandler()
// Send messages
{
TRY_LOCK(pnode->cs_vSend, lockSend);
- if (lockSend)
- SendMessages(pnode, pnode == pnodeTrickle);
+ if (lockSend && fnSendMessages)
+ fnSendMessages(pnode, pnode == pnodeTrickle);
}
boost::this_thread::interruption_point();
}