mirror of
https://github.com/g4klx/DMRGateway
synced 2025-12-22 06:05:36 +08:00
modified for new UDPSocket.cpp
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user