From 1e48be71dd52509398b2f55f34259071c93284f4 Mon Sep 17 00:00:00 2001 From: Geoffrey Merck F4FXL - KC3FRA Date: Wed, 16 Jan 2019 20:41:57 +0100 Subject: [PATCH] Allow to compile without NAT traversal, disabled by default --- Common/G2ProtocolHandler.cpp | 2 ++ Common/G2ProtocolHandler.h | 2 ++ Common/NatTraversalHandler.cpp | 6 +++++- Common/NatTraversalHandler.h | 3 +++ ircDDBGateway/IRCDDBGatewayThread.cpp | 10 ++++++++++ ircDDBGateway/IRCDDBGatewayThread.h | 2 ++ 6 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Common/G2ProtocolHandler.cpp b/Common/G2ProtocolHandler.cpp index fe9d5f6..bc7da4b 100644 --- a/Common/G2ProtocolHandler.cpp +++ b/Common/G2ProtocolHandler.cpp @@ -147,6 +147,7 @@ CAMBEData* CG2ProtocolHandler::readAMBE(in_addr remoteAddress, unsigned int remo return data; } +#if defined(ENABLE_NAT_TRAVERSAL) void CG2ProtocolHandler::traverseNat(const wxString& address) { unsigned char buffer[1]; @@ -158,6 +159,7 @@ void CG2ProtocolHandler::traverseNat(const wxString& address) m_socket.write(buffer, 1, addr, G2_DV_PORT); } +#endif void CG2ProtocolHandler::close() { diff --git a/Common/G2ProtocolHandler.h b/Common/G2ProtocolHandler.h index 088af25..38357e2 100644 --- a/Common/G2ProtocolHandler.h +++ b/Common/G2ProtocolHandler.h @@ -52,7 +52,9 @@ public: CHeaderData* readHeader(in_addr incomingAddress, unsigned int incomingPort); CAMBEData* readAMBE(in_addr incomingAddress, unsigned int incomingPort); +#if defined(ENABLE_NAT_TRAVERSAL) void traverseNat(const wxString& addr); +#endif void close(); diff --git a/Common/NatTraversalHandler.cpp b/Common/NatTraversalHandler.cpp index 052c5d9..8ee9ac0 100644 --- a/Common/NatTraversalHandler.cpp +++ b/Common/NatTraversalHandler.cpp @@ -16,6 +16,8 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#if defined(ENABLE_NAT_TRAVERSAL) + #include "NatTraversalHandler.h" const unsigned int CACHE_SIZE = 500U; @@ -54,4 +56,6 @@ void CNatTraversalHandler::traverseNatG2(const wxString& address) m_g2Handler->traverseNat(address); } } -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/Common/NatTraversalHandler.h b/Common/NatTraversalHandler.h index c5c424d..0069fea 100644 --- a/Common/NatTraversalHandler.h +++ b/Common/NatTraversalHandler.h @@ -16,6 +16,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#if defined(ENABLE_NAT_TRAVERSAL) #ifndef NatTraversalHandler_H #define NatTraversalHandler_H @@ -74,4 +75,6 @@ private: CG2ProtocolHandler* m_g2Handler; }; +#endif + #endif \ No newline at end of file diff --git a/ircDDBGateway/IRCDDBGatewayThread.cpp b/ircDDBGateway/IRCDDBGatewayThread.cpp index a15819a..1b4c0e8 100644 --- a/ircDDBGateway/IRCDDBGatewayThread.cpp +++ b/ircDDBGateway/IRCDDBGatewayThread.cpp @@ -72,7 +72,9 @@ m_dextraPool(NULL), m_dplusPool(NULL), m_dcsPool(NULL), m_g2Handler(NULL), +#if defined(ENABLE_NAT_TRAVERSAL) m_natTraversal(NULL), +#endif m_aprsWriter(NULL), m_irc(NULL), m_cache(), @@ -218,10 +220,12 @@ void CIRCDDBGatewayThread::run() m_g2Handler = NULL; } +#if defined(ENABLE_NAT_TRAVERSAL) if(m_g2Handler != NULL) { m_natTraversal = new CNatTraversalHandler(); m_natTraversal->setG2Handler(m_g2Handler); } +#endif // Wait here until we have the essentials to run while (!m_killed && (m_dextraPool == NULL || m_dplusPool == NULL || m_dcsPool == NULL || m_g2Handler == NULL || (m_icomRepeaterHandler == NULL && m_hbRepeaterHandler == NULL && m_dummyRepeaterHandler == NULL) || m_gatewayCallsign.IsEmpty())) @@ -725,7 +729,9 @@ void CIRCDDBGatewayThread::processIrcDDB() if (!address.IsEmpty()) { wxLogMessage(wxT("USER: %s %s %s %s"), user.c_str(), repeater.c_str(), gateway.c_str(), address.c_str()); m_cache.updateUser(user, repeater, gateway, address, timestamp, DP_DEXTRA, false, false); +#if defined(ENABLE_NAT_TRAVERSAL) m_natTraversal->traverseNatG2(address); +#endif } else { wxLogMessage(wxT("USER: %s NOT FOUND"), user.c_str()); } @@ -741,7 +747,9 @@ void CIRCDDBGatewayThread::processIrcDDB() if (!address.IsEmpty()) { wxLogMessage(wxT("REPEATER: %s %s %s"), repeater.c_str(), gateway.c_str(), address.c_str()); m_cache.updateRepeater(repeater, gateway, address, DP_DEXTRA, false, false); +#if defined(ENABLE_NAT_TRAVERSAL) m_natTraversal->traverseNatG2(address); +#endif } else { wxLogMessage(wxT("REPEATER: %s NOT FOUND"), repeater.c_str()); } @@ -762,7 +770,9 @@ void CIRCDDBGatewayThread::processIrcDDB() if (!address.IsEmpty()) { wxLogMessage(wxT("GATEWAY: %s %s"), gateway.c_str(), address.c_str()); m_cache.updateGateway(gateway, address, DP_DEXTRA, false, false); +#if defined(ENABLE_NAT_TRAVERSAL) m_natTraversal->traverseNatG2(address); +#endif } else { wxLogMessage(wxT("GATEWAY: %s NOT FOUND"), gateway.c_str()); } diff --git a/ircDDBGateway/IRCDDBGatewayThread.h b/ircDDBGateway/IRCDDBGatewayThread.h index 6862b63..11ee4ec 100644 --- a/ircDDBGateway/IRCDDBGatewayThread.h +++ b/ircDDBGateway/IRCDDBGatewayThread.h @@ -93,7 +93,9 @@ private: CDPlusProtocolHandlerPool* m_dplusPool; CDCSProtocolHandlerPool* m_dcsPool; CG2ProtocolHandler* m_g2Handler; +#if defined(ENABLE_NAT_TRAVERSAL) CNatTraversalHandler* m_natTraversal; +#endif CAPRSWriter* m_aprsWriter; CIRCDDB* m_irc; CCacheManager m_cache;