diff options
Diffstat (limited to 'src/net.cpp')
-rw-r--r-- | src/net.cpp | 28 |
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(); } |