modified for new UDPSocket.cpp

This commit is contained in:
SASANO Takayoshi
2020-03-29 20:32:44 +09:00
parent cf038099f2
commit 06ed2e0080

View File

@@ -58,8 +58,6 @@ m_beacon(false)
assert(version != NULL);
CUDPSocket::lookup(address, port, m_address, m_addrlen);
CUDPSocket temp(m_address.ss_family == AF_INET ? "0.0.0.0" : "::", port);
m_socket = temp; // INADDR_ANY or IN6ADDR_ANY_INIT
m_buffer = new unsigned char[BUFFER_LENGTH];
m_salt = new unsigned char[sizeof(uint32_t)];
@@ -305,7 +303,7 @@ void CDMRNetwork::clock(unsigned int ms)
if (m_status == WAITING_CONNECT) {
m_retryTimer.clock(ms);
if (m_retryTimer.isRunning() && m_retryTimer.hasExpired()) {
bool ret = m_socket.open();
bool ret = m_socket.open(m_address.ss_family);
if (ret) {
ret = writeLogin();
if (!ret)
@@ -334,28 +332,7 @@ void CDMRNetwork::clock(unsigned int ms)
// if (m_debug && length > 0)
// CUtils::dump(1U, "Network Received", m_buffer, length);
int valid_addr;
switch (address.ss_family) {
case AF_INET:
struct sockaddr_in *pi4, *pm4;
pi4 = (struct sockaddr_in *)&address;
pm4 = (struct sockaddr_in *)&m_address;
valid_addr = ((pi4->sin_addr.s_addr == pm4->sin_addr.s_addr) &&
(pi4->sin_port == pm4->sin_port));
break;
case AF_INET6:
struct sockaddr_in6 *pi6, *pm6;
pi6 = (struct sockaddr_in6 *)&address;
pm6 = (struct sockaddr_in6 *)&m_address;
valid_addr = (!::memcmp(pi6->sin6_addr.s6_addr, pm6->sin6_addr.s6_addr, sizeof(in6_addr)) &&
(pi6->sin6_port == pm6->sin6_port));
break;
default:
valid_addr = 0;
break;
}
if (length > 0 && valid_addr) {
if (length > 0 && CUDPSocket::match(m_address, address)) {
if (::memcmp(m_buffer, "DMRD", 4U) == 0) {
if (m_debug)
CUtils::dump(1U, "Network Received", m_buffer, length);