diff --git a/DMRDirectNetwork.cpp b/DMRDirectNetwork.cpp index 8bb397f04..4ed871c5a 100644 --- a/DMRDirectNetwork.cpp +++ b/DMRDirectNetwork.cpp @@ -31,6 +31,8 @@ const unsigned int HOMEBREW_DATA_PACKET_LENGTH = 55U; CDMRDirectNetwork::CDMRDirectNetwork(const std::string& address, unsigned int port, unsigned int local, unsigned int id, const std::string& password, bool duplex, const char* version, bool slot1, bool slot2, HW_TYPE hwType, bool debug) : +m_address(address), +m_port(port), m_addr(), m_addrLen(0U), m_id(NULL), @@ -70,9 +72,6 @@ m_beacon(false) assert(id > 1000U); assert(!password.empty()); - if (CUDPSocket::lookup(address, port, m_addr, m_addrLen) != 0) - m_addrLen = 0U; - m_buffer = new unsigned char[BUFFER_LENGTH]; m_salt = new unsigned char[sizeof(uint32_t)]; m_id = new uint8_t[4U]; @@ -122,7 +121,7 @@ void CDMRDirectNetwork::setConfig(const std::string& callsign, unsigned int rxFr bool CDMRDirectNetwork::open() { - if (m_addrLen == 0U) { + if (CUDPSocket::lookup(m_address, m_port, m_addr, m_addrLen) != 0) { LogError("DMR, Could not lookup the address of the DMR Network"); return false; } diff --git a/DMRDirectNetwork.h b/DMRDirectNetwork.h index 896d5e4bf..30ba951d2 100644 --- a/DMRDirectNetwork.h +++ b/DMRDirectNetwork.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015,2016,2017,2018,2020 by Jonathan Naylor G4KLX + * Copyright (C) 2015,2016,2017,2018,2020,2021 by Jonathan Naylor G4KLX * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -58,6 +58,8 @@ class CDMRDirectNetwork : public IDMRNetwork virtual void close(); private: + std::string m_address; + unsigned int m_port; sockaddr_storage m_addr; unsigned int m_addrLen; uint8_t* m_id; diff --git a/Version.h b/Version.h index 8a945730f..6e4502f5e 100644 --- a/Version.h +++ b/Version.h @@ -19,6 +19,6 @@ #if !defined(VERSION_H) #define VERSION_H -const char* VERSION = "20210309"; +const char* VERSION = "20210312"; #endif