From f7ef0bbb255176d567a883f5c5cd8820b985c483 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Wed, 4 Nov 2020 12:09:04 +0000 Subject: [PATCH] IPv6 fixes. --- NXDNGateway/Makefile | 2 +- NXDNGateway/NXDNGateway.vcxproj | 8 ++++---- NXDNGateway/NXDNNetwork.cpp | 11 +++++++++-- NXDNGateway/NXDNNetwork.h | 7 ++++--- NXDNGateway/Version.h | 2 +- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/NXDNGateway/Makefile b/NXDNGateway/Makefile index c989240..6c61ce1 100644 --- a/NXDNGateway/Makefile +++ b/NXDNGateway/Makefile @@ -2,7 +2,7 @@ CC = cc CXX = c++ # Use the following CFLAGS and LIBS if you don't want to use gpsd. -CFLAGS = -g -O3 -Wall -DHAVE_LOG_H -std=c++0x -pthread +CFLAGS = -g -O3 -Wall -DHAVE_LOG_H -DUDP_SOCKET_MAX=2 -std=c++0x -pthread LIBS = -lpthread # Use the following CFLAGS and LIBS if you do want to use gpsd. diff --git a/NXDNGateway/NXDNGateway.vcxproj b/NXDNGateway/NXDNGateway.vcxproj index 93b6ed9..6e9f282 100644 --- a/NXDNGateway/NXDNGateway.vcxproj +++ b/NXDNGateway/NXDNGateway.vcxproj @@ -87,7 +87,7 @@ Level3 Disabled - HAVE_LOG_H;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + HAVE_LOG_H;UDP_SOCKET_MAX=2;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) Console @@ -101,7 +101,7 @@ Level3 Disabled - HAVE_LOG_H;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + HAVE_LOG_H;UDP_SOCKET_MAX=2;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) Console @@ -117,7 +117,7 @@ MaxSpeed true true - HAVE_LOG_H;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + HAVE_LOG_H;UDP_SOCKET_MAX=2;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) Console @@ -135,7 +135,7 @@ MaxSpeed true true - HAVE_LOG_H;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + HAVE_LOG_H;UDP_SOCKET_MAX=2;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) Console diff --git a/NXDNGateway/NXDNNetwork.cpp b/NXDNGateway/NXDNNetwork.cpp index fa2b8fb..a039eda 100644 --- a/NXDNGateway/NXDNNetwork.cpp +++ b/NXDNGateway/NXDNNetwork.cpp @@ -26,9 +26,12 @@ CNXDNNetwork::CNXDNNetwork(unsigned int port, const std::string& callsign, bool debug) : m_callsign(callsign), -m_socket(port), +m_socket(), +m_port(port), m_debug(debug) { + assert(port > 0U); + m_callsign.resize(10U, ' '); } @@ -40,7 +43,11 @@ bool CNXDNNetwork::open() { LogInfo("Opening NXDN network connection"); - return m_socket.open(); + bool ret = m_socket.open(0, PF_INET, "", m_port); + if (!ret) + return false; + + return m_socket.open(1, PF_INET6, "", m_port); } bool CNXDNNetwork::writeData(const unsigned char* data, unsigned int length, unsigned short srcId, unsigned short dstId, bool grp, const sockaddr_storage& addr, unsigned int addrLen) diff --git a/NXDNGateway/NXDNNetwork.h b/NXDNGateway/NXDNNetwork.h index 1ce4cde..55a706c 100644 --- a/NXDNGateway/NXDNNetwork.h +++ b/NXDNGateway/NXDNNetwork.h @@ -42,9 +42,10 @@ public: void close(); private: - std::string m_callsign; - CUDPSocket m_socket; - bool m_debug; + std::string m_callsign; + CUDPSocket m_socket; + unsigned int m_port; + bool m_debug; }; #endif diff --git a/NXDNGateway/Version.h b/NXDNGateway/Version.h index 3118d15..c5e390b 100644 --- a/NXDNGateway/Version.h +++ b/NXDNGateway/Version.h @@ -19,6 +19,6 @@ #if !defined(VERSION_H) #define VERSION_H -const char* VERSION = "20201102"; +const char* VERSION = "20201104"; #endif