Fix network ports datatype (unsigned int -> unsigned short). UDPSocket: fix old bug using m_port instead of m_port[x].

This commit is contained in:
Daniel Caujolle-Bert 2021-04-25 07:51:01 +02:00
parent 7b1ba5d849
commit ee2d6fd488
No known key found for this signature in database
GPG Key ID: 51AED7171EC00614
23 changed files with 98 additions and 96 deletions

View File

@ -141,9 +141,9 @@ bool CConf::read()
} else if (::strcmp(key, "RptAddress") == 0) } else if (::strcmp(key, "RptAddress") == 0)
m_rptAddress = value; m_rptAddress = value;
else if (::strcmp(key, "RptPort") == 0) else if (::strcmp(key, "RptPort") == 0)
m_rptPort = (unsigned int)::atoi(value); m_rptPort = (unsigned short)::atoi(value);
else if (::strcmp(key, "LocalPort") == 0) else if (::strcmp(key, "LocalPort") == 0)
m_myPort = (unsigned int)::atoi(value); m_myPort = (unsigned short)::atoi(value);
else if (::strcmp(key, "Debug") == 0) else if (::strcmp(key, "Debug") == 0)
m_debug = ::atoi(value) == 1; m_debug = ::atoi(value) == 1;
else if (::strcmp(key, "Daemon") == 0) else if (::strcmp(key, "Daemon") == 0)
@ -173,7 +173,7 @@ bool CConf::read()
m_logFileRotate = ::atoi(value) == 1; m_logFileRotate = ::atoi(value) == 1;
} else if (section == SECTION_NETWORK) { } else if (section == SECTION_NETWORK) {
if (::strcmp(key, "Port") == 0) if (::strcmp(key, "Port") == 0)
m_networkPort = (unsigned int)::atoi(value); m_networkPort = (unsigned short)::atoi(value);
else if (::strcmp(key, "HostsFile1") == 0) else if (::strcmp(key, "HostsFile1") == 0)
m_networkHosts1 = value; m_networkHosts1 = value;
else if (::strcmp(key, "HostsFile2") == 0) else if (::strcmp(key, "HostsFile2") == 0)
@ -183,11 +183,11 @@ bool CConf::read()
else if (::strcmp(key, "ParrotAddress") == 0) else if (::strcmp(key, "ParrotAddress") == 0)
m_networkParrotAddress = value; m_networkParrotAddress = value;
else if (::strcmp(key, "ParrotPort") == 0) else if (::strcmp(key, "ParrotPort") == 0)
m_networkParrotPort = (unsigned int)::atoi(value); m_networkParrotPort = (unsigned short)::atoi(value);
else if (::strcmp(key, "P252DMRAddress") == 0) else if (::strcmp(key, "P252DMRAddress") == 0)
m_networkP252DMRAddress = value; m_networkP252DMRAddress = value;
else if (::strcmp(key, "P252DMRPort") == 0) else if (::strcmp(key, "P252DMRPort") == 0)
m_networkP252DMRPort = (unsigned int)::atoi(value); m_networkP252DMRPort = (unsigned short)::atoi(value);
else if (::strcmp(key, "Static") == 0) { else if (::strcmp(key, "Static") == 0) {
char* p = ::strtok(value, ",\r\n"); char* p = ::strtok(value, ",\r\n");
while (p != NULL) { while (p != NULL) {
@ -205,7 +205,7 @@ bool CConf::read()
if (::strcmp(key, "Enable") == 0) if (::strcmp(key, "Enable") == 0)
m_remoteCommandsEnabled = ::atoi(value) == 1; m_remoteCommandsEnabled = ::atoi(value) == 1;
else if (::strcmp(key, "Port") == 0) else if (::strcmp(key, "Port") == 0)
m_remoteCommandsPort = (unsigned int)::atoi(value); m_remoteCommandsPort = (unsigned short)::atoi(value);
} }
} }
@ -224,12 +224,12 @@ std::string CConf::getRptAddress() const
return m_rptAddress; return m_rptAddress;
} }
unsigned int CConf::getRptPort() const unsigned short CConf::getRptPort() const
{ {
return m_rptPort; return m_rptPort;
} }
unsigned int CConf::getMyPort() const unsigned short CConf::getMyPort() const
{ {
return m_myPort; return m_myPort;
} }
@ -294,7 +294,7 @@ bool CConf::getLogFileRotate() const
return m_logFileRotate; return m_logFileRotate;
} }
unsigned int CConf::getNetworkPort() const unsigned short CConf::getNetworkPort() const
{ {
return m_networkPort; return m_networkPort;
} }
@ -319,7 +319,7 @@ std::string CConf::getNetworkParrotAddress() const
return m_networkParrotAddress; return m_networkParrotAddress;
} }
unsigned int CConf::getNetworkParrotPort() const unsigned short CConf::getNetworkParrotPort() const
{ {
return m_networkParrotPort; return m_networkParrotPort;
} }
@ -329,7 +329,7 @@ std::string CConf::getNetworkP252DMRAddress() const
return m_networkP252DMRAddress; return m_networkP252DMRAddress;
} }
unsigned int CConf::getNetworkP252DMRPort() const unsigned short CConf::getNetworkP252DMRPort() const
{ {
return m_networkP252DMRPort; return m_networkP252DMRPort;
} }
@ -359,7 +359,7 @@ bool CConf::getRemoteCommandsEnabled() const
return m_remoteCommandsEnabled; return m_remoteCommandsEnabled;
} }
unsigned int CConf::getRemoteCommandsPort() const unsigned short CConf::getRemoteCommandsPort() const
{ {
return m_remoteCommandsPort; return m_remoteCommandsPort;
} }

View File

@ -33,8 +33,8 @@ public:
// The General section // The General section
std::string getCallsign() const; std::string getCallsign() const;
std::string getRptAddress() const; std::string getRptAddress() const;
unsigned int getRptPort() const; unsigned short getRptPort() const;
unsigned int getMyPort() const; unsigned short getMyPort() const;
bool getDebug() const; bool getDebug() const;
bool getDaemon() const; bool getDaemon() const;
@ -55,14 +55,14 @@ public:
bool getLogFileRotate() const; bool getLogFileRotate() const;
// The Network section // The Network section
unsigned int getNetworkPort() const; unsigned short getNetworkPort() const;
std::string getNetworkHosts1() const; std::string getNetworkHosts1() const;
std::string getNetworkHosts2() const; std::string getNetworkHosts2() const;
unsigned int getNetworkReloadTime() const; unsigned int getNetworkReloadTime() const;
std::string getNetworkParrotAddress() const; std::string getNetworkParrotAddress() const;
unsigned int getNetworkParrotPort() const; unsigned short getNetworkParrotPort() const;
std::string getNetworkP252DMRAddress() const; std::string getNetworkP252DMRAddress() const;
unsigned int getNetworkP252DMRPort() const; unsigned short getNetworkP252DMRPort() const;
std::vector<unsigned int> getNetworkStatic() const; std::vector<unsigned int> getNetworkStatic() const;
unsigned int getNetworkRFHangTime() const; unsigned int getNetworkRFHangTime() const;
unsigned int getNetworkNetHangTime() const; unsigned int getNetworkNetHangTime() const;
@ -70,14 +70,14 @@ public:
// The Remote Commands section // The Remote Commands section
bool getRemoteCommandsEnabled() const; bool getRemoteCommandsEnabled() const;
unsigned int getRemoteCommandsPort() const; unsigned short getRemoteCommandsPort() const;
private: private:
std::string m_file; std::string m_file;
std::string m_callsign; std::string m_callsign;
std::string m_rptAddress; std::string m_rptAddress;
unsigned int m_rptPort; unsigned short m_rptPort;
unsigned int m_myPort; unsigned short m_myPort;
bool m_debug; bool m_debug;
bool m_daemon; bool m_daemon;
@ -94,21 +94,21 @@ private:
std::string m_logFileRoot; std::string m_logFileRoot;
bool m_logFileRotate; bool m_logFileRotate;
unsigned int m_networkPort; unsigned short m_networkPort;
std::string m_networkHosts1; std::string m_networkHosts1;
std::string m_networkHosts2; std::string m_networkHosts2;
unsigned int m_networkReloadTime; unsigned int m_networkReloadTime;
std::string m_networkParrotAddress; std::string m_networkParrotAddress;
unsigned int m_networkParrotPort; unsigned short m_networkParrotPort;
std::string m_networkP252DMRAddress; std::string m_networkP252DMRAddress;
unsigned int m_networkP252DMRPort; unsigned short m_networkP252DMRPort;
std::vector<unsigned int> m_networkStatic;; std::vector<unsigned int> m_networkStatic;;
unsigned int m_networkRFHangTime; unsigned int m_networkRFHangTime;
unsigned int m_networkNetHangTime; unsigned int m_networkNetHangTime;
bool m_networkDebug; bool m_networkDebug;
bool m_remoteCommandsEnabled; bool m_remoteCommandsEnabled;
unsigned int m_remoteCommandsPort; unsigned short m_remoteCommandsPort;
}; };
#endif #endif

View File

@ -24,7 +24,7 @@
#include <cassert> #include <cassert>
#include <cstring> #include <cstring>
CP25Network::CP25Network(unsigned int port, const std::string& callsign, bool debug) : CP25Network::CP25Network(unsigned short port, const std::string& callsign, bool debug) :
m_callsign(callsign), m_callsign(callsign),
m_socket(), m_socket(),
m_port(port), m_port(port),

View File

@ -26,7 +26,7 @@
class CP25Network { class CP25Network {
public: public:
CP25Network(unsigned int port, const std::string& callsign, bool debug); CP25Network(unsigned short port, const std::string& callsign, bool debug);
~CP25Network(); ~CP25Network();
bool open(); bool open();
@ -44,7 +44,7 @@ public:
private: private:
std::string m_callsign; std::string m_callsign;
CUDPSocket m_socket; CUDPSocket m_socket;
unsigned int m_port; unsigned short m_port;
bool m_debug; bool m_debug;
}; };

View File

@ -48,13 +48,13 @@ CReflectors::~CReflectors()
m_reflectors.clear(); m_reflectors.clear();
} }
void CReflectors::setParrot(const std::string& address, unsigned int port) void CReflectors::setParrot(const std::string& address, unsigned short port)
{ {
m_parrotAddress = address; m_parrotAddress = address;
m_parrotPort = port; m_parrotPort = port;
} }
void CReflectors::setP252DMR(const std::string& address, unsigned int port) void CReflectors::setP252DMR(const std::string& address, unsigned short port)
{ {
m_p252dmrAddress = address; m_p252dmrAddress = address;
m_p252dmrPort = port; m_p252dmrPort = port;
@ -81,7 +81,7 @@ bool CReflectors::load()
if (p1 != NULL && p2 != NULL && p3 != NULL) { if (p1 != NULL && p2 != NULL && p3 != NULL) {
std::string host = std::string(p2); std::string host = std::string(p2);
unsigned int port = (unsigned int)::atoi(p3); unsigned short port = (unsigned short)::atoi(p3);
sockaddr_storage addr; sockaddr_storage addr;
unsigned int addrLen; unsigned int addrLen;
@ -116,7 +116,7 @@ bool CReflectors::load()
unsigned int id = (unsigned int)::atoi(p1); unsigned int id = (unsigned int)::atoi(p1);
if (find(id) == NULL) { if (find(id) == NULL) {
std::string host = std::string(p2); std::string host = std::string(p2);
unsigned int port = (unsigned int)::atoi(p3); unsigned short port = (unsigned short)::atoi(p3);
sockaddr_storage addr; sockaddr_storage addr;
unsigned int addrLen; unsigned int addrLen;

View File

@ -44,8 +44,8 @@ public:
CReflectors(const std::string& hostsFile1, const std::string& hostsFile2, unsigned int reloadTime); CReflectors(const std::string& hostsFile1, const std::string& hostsFile2, unsigned int reloadTime);
~CReflectors(); ~CReflectors();
void setParrot(const std::string& address, unsigned int port); void setParrot(const std::string& address, unsigned short port);
void setP252DMR(const std::string& address, unsigned int port); void setP252DMR(const std::string& address, unsigned short port);
bool load(); bool load();
@ -57,9 +57,9 @@ private:
std::string m_hostsFile1; std::string m_hostsFile1;
std::string m_hostsFile2; std::string m_hostsFile2;
std::string m_parrotAddress; std::string m_parrotAddress;
unsigned int m_parrotPort; unsigned short m_parrotPort;
std::string m_p252dmrAddress; std::string m_p252dmrAddress;
unsigned int m_p252dmrPort; unsigned short m_p252dmrPort;
std::vector<CP25Reflector*> m_reflectors; std::vector<CP25Reflector*> m_reflectors;
CTimer m_timer; CTimer m_timer;
}; };

View File

@ -24,7 +24,7 @@
#include <cassert> #include <cassert>
#include <cstring> #include <cstring>
CRptNetwork::CRptNetwork(unsigned int myPort, const sockaddr_storage& rptAddr, unsigned int rptAddrLen, const std::string& callsign, bool debug) : CRptNetwork::CRptNetwork(unsigned short myPort, const sockaddr_storage& rptAddr, unsigned int rptAddrLen, const std::string& callsign, bool debug) :
m_rptAddr(rptAddr), m_rptAddr(rptAddr),
m_rptAddrLen(rptAddrLen), m_rptAddrLen(rptAddrLen),
m_callsign(callsign), m_callsign(callsign),

View File

@ -27,7 +27,7 @@
class CRptNetwork { class CRptNetwork {
public: public:
CRptNetwork(unsigned int myPort, const sockaddr_storage& rptAddr, unsigned int rptAddrLen, const std::string& callsign, bool debug); CRptNetwork(unsigned short myPort, const sockaddr_storage& rptAddr, unsigned int rptAddrLen, const std::string& callsign, bool debug);
~CRptNetwork(); ~CRptNetwork();
bool open(); bool open();

View File

@ -28,11 +28,12 @@
#if defined(HAVE_LOG_H) #if defined(HAVE_LOG_H)
#include "Log.h" #include "Log.h"
#else #else
#define LogMessage(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#define LogError(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__) #define LogError(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#define LogInfo(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__) #define LogInfo(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#endif #endif
CUDPSocket::CUDPSocket(const std::string& address, unsigned int port) : CUDPSocket::CUDPSocket(const std::string& address, unsigned short port) :
m_address_save(address), m_address_save(address),
m_port_save(port), m_port_save(port),
m_counter(0U) m_counter(0U)
@ -45,7 +46,7 @@ m_counter(0U)
} }
} }
CUDPSocket::CUDPSocket(unsigned int port) : CUDPSocket::CUDPSocket(unsigned short port) :
m_address_save(), m_address_save(),
m_port_save(port), m_port_save(port),
m_counter(0U) m_counter(0U)
@ -79,7 +80,7 @@ void CUDPSocket::shutdown()
#endif #endif
} }
int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_storage& addr, unsigned int& address_length) int CUDPSocket::lookup(const std::string& hostname, unsigned short port, sockaddr_storage& addr, unsigned int& address_length)
{ {
struct addrinfo hints; struct addrinfo hints;
::memset(&hints, 0, sizeof(hints)); ::memset(&hints, 0, sizeof(hints));
@ -87,7 +88,7 @@ int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_
return lookup(hostname, port, addr, address_length, hints); return lookup(hostname, port, addr, address_length, hints);
} }
int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_storage& addr, unsigned int& address_length, struct addrinfo& hints) int CUDPSocket::lookup(const std::string& hostname, unsigned short port, sockaddr_storage& addr, unsigned int& address_length, struct addrinfo& hints)
{ {
std::string portstr = std::to_string(port); std::string portstr = std::to_string(port);
struct addrinfo *res; struct addrinfo *res;
@ -170,7 +171,7 @@ bool CUDPSocket::open(unsigned int af)
return open(0, af, m_address_save, m_port_save); return open(0, af, m_address_save, m_port_save);
} }
bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned int port) bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned short port)
{ {
sockaddr_storage addr; sockaddr_storage addr;
unsigned int addrlen; unsigned int addrlen;
@ -224,7 +225,7 @@ bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std
return false; return false;
} }
LogInfo("Opening UDP port on %u", port); LogInfo("Opening UDP port on %hu", port);
} }
return true; return true;
@ -293,7 +294,7 @@ int CUDPSocket::read(unsigned char* buffer, unsigned int length, sockaddr_storag
LogError("Error returned from recvfrom, err: %d", errno); LogError("Error returned from recvfrom, err: %d", errno);
if (len == -1 && errno == ENOTSOCK) { if (len == -1 && errno == ENOTSOCK) {
LogMessage("Re-opening UDP port on %u", m_port); LogMessage("Re-opening UDP port on %hu", m_port[index]);
close(); close();
open(); open();
} }

View File

@ -46,13 +46,13 @@ enum IPMATCHTYPE {
class CUDPSocket { class CUDPSocket {
public: public:
CUDPSocket(const std::string& address, unsigned int port = 0U); CUDPSocket(const std::string& address, unsigned short port = 0U);
CUDPSocket(unsigned int port = 0U); CUDPSocket(unsigned short port = 0U);
~CUDPSocket(); ~CUDPSocket();
bool open(unsigned int af = AF_UNSPEC); bool open(unsigned int af = AF_UNSPEC);
bool open(const sockaddr_storage& address); bool open(const sockaddr_storage& address);
bool open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned int port); bool open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned short port);
int read(unsigned char* buffer, unsigned int length, sockaddr_storage& address, unsigned int &address_length); int read(unsigned char* buffer, unsigned int length, sockaddr_storage& address, unsigned int &address_length);
bool write(const unsigned char* buffer, unsigned int length, const sockaddr_storage& address, unsigned int address_length); bool write(const unsigned char* buffer, unsigned int length, const sockaddr_storage& address, unsigned int address_length);
@ -63,8 +63,8 @@ public:
static void startup(); static void startup();
static void shutdown(); static void shutdown();
static int lookup(const std::string& hostName, unsigned int port, sockaddr_storage& address, unsigned int& address_length); static int lookup(const std::string& hostName, unsigned short port, sockaddr_storage& address, unsigned int& address_length);
static int lookup(const std::string& hostName, unsigned int port, sockaddr_storage& address, unsigned int& address_length, struct addrinfo& hints); static int lookup(const std::string& hostName, unsigned short port, sockaddr_storage& address, unsigned int& address_length, struct addrinfo& hints);
static bool match(const sockaddr_storage& addr1, const sockaddr_storage& addr2, IPMATCHTYPE type = IMT_ADDRESS_AND_PORT); static bool match(const sockaddr_storage& addr1, const sockaddr_storage& addr2, IPMATCHTYPE type = IMT_ADDRESS_AND_PORT);

View File

@ -24,7 +24,7 @@
const unsigned int BUFFER_LENGTH = 200U; const unsigned int BUFFER_LENGTH = 200U;
CNetwork::CNetwork(unsigned int port) : CNetwork::CNetwork(unsigned short port) :
m_socket(port), m_socket(port),
m_addr(), m_addr(),
m_addrLen(0U) m_addrLen(0U)

View File

@ -26,7 +26,7 @@
class CNetwork { class CNetwork {
public: public:
CNetwork(unsigned int port); CNetwork(unsigned short port);
~CNetwork(); ~CNetwork();
bool open(); bool open();

View File

@ -35,7 +35,7 @@ int main(int argc, char** argv)
return 1; return 1;
} }
unsigned int port = ::atoi(argv[1U]); unsigned short port = (unsigned short)::atoi(argv[1U]);
if (port == 0U) { if (port == 0U) {
::fprintf(stderr, "P25Parrot: invalid port number - %s\n", argv[1U]); ::fprintf(stderr, "P25Parrot: invalid port number - %s\n", argv[1U]);
return 1; return 1;
@ -47,7 +47,7 @@ int main(int argc, char** argv)
return 0; return 0;
} }
CP25Parrot::CP25Parrot(unsigned int port) : CP25Parrot::CP25Parrot(unsigned short port) :
m_port(port) m_port(port)
{ {
CUDPSocket::startup(); CUDPSocket::startup();

View File

@ -22,13 +22,13 @@
class CP25Parrot class CP25Parrot
{ {
public: public:
CP25Parrot(unsigned int port); CP25Parrot(unsigned short port);
~CP25Parrot(); ~CP25Parrot();
void run(); void run();
private: private:
unsigned int m_port; unsigned short m_port;
}; };
#endif #endif

View File

@ -33,7 +33,7 @@
#define LogInfo(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__) #define LogInfo(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#endif #endif
CUDPSocket::CUDPSocket(const std::string& address, unsigned int port) : CUDPSocket::CUDPSocket(const std::string& address, unsigned short port) :
m_address_save(address), m_address_save(address),
m_port_save(port), m_port_save(port),
m_counter(0U) m_counter(0U)
@ -46,7 +46,7 @@ m_counter(0U)
} }
} }
CUDPSocket::CUDPSocket(unsigned int port) : CUDPSocket::CUDPSocket(unsigned short port) :
m_address_save(), m_address_save(),
m_port_save(port), m_port_save(port),
m_counter(0U) m_counter(0U)
@ -80,7 +80,7 @@ void CUDPSocket::shutdown()
#endif #endif
} }
int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_storage& addr, unsigned int& address_length) int CUDPSocket::lookup(const std::string& hostname, unsigned short port, sockaddr_storage& addr, unsigned int& address_length)
{ {
struct addrinfo hints; struct addrinfo hints;
::memset(&hints, 0, sizeof(hints)); ::memset(&hints, 0, sizeof(hints));
@ -88,7 +88,7 @@ int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_
return lookup(hostname, port, addr, address_length, hints); return lookup(hostname, port, addr, address_length, hints);
} }
int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_storage& addr, unsigned int& address_length, struct addrinfo& hints) int CUDPSocket::lookup(const std::string& hostname, unsigned short port, sockaddr_storage& addr, unsigned int& address_length, struct addrinfo& hints)
{ {
std::string portstr = std::to_string(port); std::string portstr = std::to_string(port);
struct addrinfo *res; struct addrinfo *res;
@ -171,7 +171,7 @@ bool CUDPSocket::open(unsigned int af)
return open(0, af, m_address_save, m_port_save); return open(0, af, m_address_save, m_port_save);
} }
bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned int port) bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned short port)
{ {
sockaddr_storage addr; sockaddr_storage addr;
unsigned int addrlen; unsigned int addrlen;
@ -225,7 +225,7 @@ bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std
return false; return false;
} }
LogInfo("Opening UDP port on %u", port); LogInfo("Opening UDP port on %hu", port);
} }
return true; return true;
@ -294,7 +294,7 @@ int CUDPSocket::read(unsigned char* buffer, unsigned int length, sockaddr_storag
LogError("Error returned from recvfrom, err: %d", errno); LogError("Error returned from recvfrom, err: %d", errno);
if (len == -1 && errno == ENOTSOCK) { if (len == -1 && errno == ENOTSOCK) {
LogMessage("Re-opening UDP port on %u", m_port); LogMessage("Re-opening UDP port on %hu", m_port[index]);
close(); close();
open(); open();
} }

View File

@ -46,13 +46,13 @@ enum IPMATCHTYPE {
class CUDPSocket { class CUDPSocket {
public: public:
CUDPSocket(const std::string& address, unsigned int port = 0U); CUDPSocket(const std::string& address, unsigned short port = 0U);
CUDPSocket(unsigned int port = 0U); CUDPSocket(unsigned short port = 0U);
~CUDPSocket(); ~CUDPSocket();
bool open(unsigned int af = AF_UNSPEC); bool open(unsigned int af = AF_UNSPEC);
bool open(const sockaddr_storage& address); bool open(const sockaddr_storage& address);
bool open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned int port); bool open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned short port);
int read(unsigned char* buffer, unsigned int length, sockaddr_storage& address, unsigned int &address_length); int read(unsigned char* buffer, unsigned int length, sockaddr_storage& address, unsigned int &address_length);
bool write(const unsigned char* buffer, unsigned int length, const sockaddr_storage& address, unsigned int address_length); bool write(const unsigned char* buffer, unsigned int length, const sockaddr_storage& address, unsigned int address_length);
@ -63,8 +63,8 @@ public:
static void startup(); static void startup();
static void shutdown(); static void shutdown();
static int lookup(const std::string& hostName, unsigned int port, sockaddr_storage& address, unsigned int& address_length); static int lookup(const std::string& hostName, unsigned short port, sockaddr_storage& address, unsigned int& address_length);
static int lookup(const std::string& hostName, unsigned int port, sockaddr_storage& address, unsigned int& address_length, struct addrinfo& hints); static int lookup(const std::string& hostName, unsigned short port, sockaddr_storage& address, unsigned int& address_length, struct addrinfo& hints);
static bool match(const sockaddr_storage& addr1, const sockaddr_storage& addr2, IPMATCHTYPE type = IMT_ADDRESS_AND_PORT); static bool match(const sockaddr_storage& addr1, const sockaddr_storage& addr2, IPMATCHTYPE type = IMT_ADDRESS_AND_PORT);

View File

@ -129,7 +129,7 @@ bool CConf::read()
m_logFileRotate = ::atoi(value) == 1; m_logFileRotate = ::atoi(value) == 1;
} else if (section == SECTION_NETWORK) { } else if (section == SECTION_NETWORK) {
if (::strcmp(key, "Port") == 0) if (::strcmp(key, "Port") == 0)
m_networkPort = (unsigned int)::atoi(value); m_networkPort = (unsigned short)::atoi(value);
else if (::strcmp(key, "Debug") == 0) else if (::strcmp(key, "Debug") == 0)
m_networkDebug = ::atoi(value) == 1; m_networkDebug = ::atoi(value) == 1;
} }
@ -180,7 +180,7 @@ bool CConf::getLogFileRotate() const
return m_logFileRotate; return m_logFileRotate;
} }
unsigned int CConf::getNetworkPort() const unsigned short CConf::getNetworkPort() const
{ {
return m_networkPort; return m_networkPort;
} }

View File

@ -45,7 +45,7 @@ public:
bool getLogFileRotate() const; bool getLogFileRotate() const;
// The Network section // The Network section
unsigned int getNetworkPort() const; unsigned short getNetworkPort() const;
bool getNetworkDebug() const; bool getNetworkDebug() const;
private: private:
@ -61,7 +61,7 @@ private:
std::string m_logFileRoot; std::string m_logFileRoot;
bool m_logFileRotate; bool m_logFileRotate;
unsigned int m_networkPort; unsigned short m_networkPort;
bool m_networkDebug; bool m_networkDebug;
}; };

View File

@ -24,7 +24,7 @@
#include <cassert> #include <cassert>
#include <cstring> #include <cstring>
CNetwork::CNetwork(unsigned int port, bool debug) : CNetwork::CNetwork(unsigned short port, bool debug) :
m_socket(port), m_socket(port),
m_debug(debug) m_debug(debug)
{ {

View File

@ -26,7 +26,7 @@
class CNetwork { class CNetwork {
public: public:
CNetwork(unsigned int port, bool debug); CNetwork(unsigned short port, bool debug);
~CNetwork(); ~CNetwork();
bool open(); bool open();

View File

@ -356,8 +356,8 @@ void CP25Reflector::dumpRepeaters() const
for (std::vector<CP25Repeater*>::const_iterator it = m_repeaters.begin(); it != m_repeaters.end(); ++it) { for (std::vector<CP25Repeater*>::const_iterator it = m_repeaters.begin(); it != m_repeaters.end(); ++it) {
char buffer[80U]; char buffer[80U];
LogMessage(" %s: %s %u/%u", (*it)->m_callsign.c_str(), LogMessage(" %s: %s %u/%u", (*it)->m_callsign.c_str(),
CUDPSocket::display((*it)->m_addr, buffer, 80U), CUDPSocket::display((*it)->m_addr, buffer, 80U),
(*it)->m_timer.getTimeout(), (*it)->m_timer.getTimeout(),
(*it)->m_timer.getTimeout()); (*it)->m_timer.getTimeout());
} }
} }

View File

@ -28,11 +28,12 @@
#if defined(HAVE_LOG_H) #if defined(HAVE_LOG_H)
#include "Log.h" #include "Log.h"
#else #else
#define LogMessage(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#define LogError(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__) #define LogError(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#define LogInfo(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__) #define LogInfo(fmt, ...) ::fprintf(stderr, fmt "\n", ## __VA_ARGS__)
#endif #endif
CUDPSocket::CUDPSocket(const std::string& address, unsigned int port) : CUDPSocket::CUDPSocket(const std::string& address, unsigned short port) :
m_address_save(address), m_address_save(address),
m_port_save(port), m_port_save(port),
m_counter(0U) m_counter(0U)
@ -45,7 +46,7 @@ m_counter(0U)
} }
} }
CUDPSocket::CUDPSocket(unsigned int port) : CUDPSocket::CUDPSocket(unsigned short port) :
m_address_save(), m_address_save(),
m_port_save(port), m_port_save(port),
m_counter(0U) m_counter(0U)
@ -79,7 +80,7 @@ void CUDPSocket::shutdown()
#endif #endif
} }
int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_storage& addr, unsigned int& address_length) int CUDPSocket::lookup(const std::string& hostname, unsigned short port, sockaddr_storage& addr, unsigned int& address_length)
{ {
struct addrinfo hints; struct addrinfo hints;
::memset(&hints, 0, sizeof(hints)); ::memset(&hints, 0, sizeof(hints));
@ -87,7 +88,7 @@ int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_
return lookup(hostname, port, addr, address_length, hints); return lookup(hostname, port, addr, address_length, hints);
} }
int CUDPSocket::lookup(const std::string& hostname, unsigned int port, sockaddr_storage& addr, unsigned int& address_length, struct addrinfo& hints) int CUDPSocket::lookup(const std::string& hostname, unsigned short port, sockaddr_storage& addr, unsigned int& address_length, struct addrinfo& hints)
{ {
std::string portstr = std::to_string(port); std::string portstr = std::to_string(port);
struct addrinfo *res; struct addrinfo *res;
@ -167,17 +168,17 @@ char* CUDPSocket::display(const sockaddr_storage& addr, char* buffer, unsigned i
switch (addr.ss_family) { switch (addr.ss_family) {
case AF_INET: { case AF_INET: {
struct sockaddr_in* in4 = (struct sockaddr_in*)&addr; struct sockaddr_in* in4 = (struct sockaddr_in*)&addr;
::inet_ntop(AF_INET, &in4, buffer, length); ::inet_ntop(AF_INET, &in4, buffer, length);
::sprintf(buffer + ::strlen(buffer), ":%u", in4->sin_port); ::sprintf(buffer + ::strlen(buffer), ":%u", in4->sin_port);
} }
break; break;
case AF_INET6: { case AF_INET6: {
struct sockaddr_in6* in6 = (struct sockaddr_in6*)&addr; struct sockaddr_in6* in6 = (struct sockaddr_in6*)&addr;
::inet_ntop(AF_INET6, &in6, buffer, length); ::inet_ntop(AF_INET6, &in6, buffer, length);
::sprintf(buffer + ::strlen(buffer), ":%u", in6->sin6_port); ::sprintf(buffer + ::strlen(buffer), ":%u", in6->sin6_port);
} }
break; break;
default: default:
@ -198,7 +199,7 @@ bool CUDPSocket::open(unsigned int af)
return open(0, af, m_address_save, m_port_save); return open(0, af, m_address_save, m_port_save);
} }
bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned int port) bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned short port)
{ {
sockaddr_storage addr; sockaddr_storage addr;
unsigned int addrlen; unsigned int addrlen;
@ -252,7 +253,7 @@ bool CUDPSocket::open(const unsigned int index, const unsigned int af, const std
return false; return false;
} }
LogInfo("Opening UDP port on %u", port); LogInfo("Opening UDP port on %hu", port);
} }
return true; return true;
@ -321,7 +322,7 @@ int CUDPSocket::read(unsigned char* buffer, unsigned int length, sockaddr_storag
LogError("Error returned from recvfrom, err: %d", errno); LogError("Error returned from recvfrom, err: %d", errno);
if (len == -1 && errno == ENOTSOCK) { if (len == -1 && errno == ENOTSOCK) {
LogMessage("Re-opening UDP port on %u", m_port); LogMessage("Re-opening UDP port on %hu", m_port[index]);
close(); close();
open(); open();
} }

View File

@ -46,13 +46,13 @@ enum IPMATCHTYPE {
class CUDPSocket { class CUDPSocket {
public: public:
CUDPSocket(const std::string& address, unsigned int port = 0U); CUDPSocket(const std::string& address, unsigned short port = 0U);
CUDPSocket(unsigned int port = 0U); CUDPSocket(unsigned short port = 0U);
~CUDPSocket(); ~CUDPSocket();
bool open(unsigned int af = AF_UNSPEC); bool open(unsigned int af = AF_UNSPEC);
bool open(const sockaddr_storage& address); bool open(const sockaddr_storage& address);
bool open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned int port); bool open(const unsigned int index, const unsigned int af, const std::string& address, const unsigned short port);
int read(unsigned char* buffer, unsigned int length, sockaddr_storage& address, unsigned int &address_length); int read(unsigned char* buffer, unsigned int length, sockaddr_storage& address, unsigned int &address_length);
bool write(const unsigned char* buffer, unsigned int length, const sockaddr_storage& address, unsigned int address_length); bool write(const unsigned char* buffer, unsigned int length, const sockaddr_storage& address, unsigned int address_length);
@ -63,8 +63,8 @@ public:
static void startup(); static void startup();
static void shutdown(); static void shutdown();
static int lookup(const std::string& hostName, unsigned int port, sockaddr_storage& address, unsigned int& address_length); static int lookup(const std::string& hostName, unsigned short port, sockaddr_storage& address, unsigned int& address_length);
static int lookup(const std::string& hostName, unsigned int port, sockaddr_storage& address, unsigned int& address_length, struct addrinfo& hints); static int lookup(const std::string& hostName, unsigned short port, sockaddr_storage& address, unsigned int& address_length, struct addrinfo& hints);
static bool match(const sockaddr_storage& addr1, const sockaddr_storage& addr2, IPMATCHTYPE type = IMT_ADDRESS_AND_PORT); static bool match(const sockaddr_storage& addr1, const sockaddr_storage& addr2, IPMATCHTYPE type = IMT_ADDRESS_AND_PORT);