mirror of
https://github.com/g4klx/ircDDBGateway.git
synced 2026-04-21 06:03:58 +00:00
Update to IPv6.
This commit is contained in:
parent
086e665af8
commit
d617161772
8 changed files with 77 additions and 68 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2011,2013 by Jonathan Naylor G4KLX
|
||||
* Copyright (C) 2011,2013,2020 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
|
||||
|
|
@ -25,8 +25,8 @@ const unsigned int MAX_RETRIES = 3U;
|
|||
|
||||
CTimerControlRemoteControlHandler::CTimerControlRemoteControlHandler(const wxString& address, unsigned int port) :
|
||||
m_socket(wxEmptyString, 0U),
|
||||
m_address(),
|
||||
m_port(port),
|
||||
m_addr(),
|
||||
m_addrLen(0U),
|
||||
m_loggedIn(false),
|
||||
m_retryCount(0U),
|
||||
m_type(TCT_NONE),
|
||||
|
|
@ -38,7 +38,7 @@ m_outLength(0U)
|
|||
wxASSERT(!address.IsEmpty());
|
||||
wxASSERT(port > 0U);
|
||||
|
||||
m_address = CUDPReaderWriter::lookup(address);
|
||||
CUDPReaderWriter::lookup(address, port, m_addr, m_addrLen);
|
||||
|
||||
m_inBuffer = new unsigned char[BUFFER_LENGTH];
|
||||
m_outBuffer = new unsigned char[BUFFER_LENGTH];
|
||||
|
|
@ -52,17 +52,17 @@ CTimerControlRemoteControlHandler::~CTimerControlRemoteControlHandler()
|
|||
|
||||
bool CTimerControlRemoteControlHandler::open()
|
||||
{
|
||||
return m_socket.open();
|
||||
return m_socket.open(m_addr);
|
||||
}
|
||||
|
||||
TC_TYPE CTimerControlRemoteControlHandler::readType()
|
||||
{
|
||||
m_type = TCT_NONE;
|
||||
|
||||
in_addr address;
|
||||
unsigned int port;
|
||||
sockaddr_storage addr;
|
||||
unsigned int addrLen;
|
||||
|
||||
int length = m_socket.read(m_inBuffer, BUFFER_LENGTH, address, port);
|
||||
int length = m_socket.read(m_inBuffer, BUFFER_LENGTH, addr, addrLen);
|
||||
if (length <= 0)
|
||||
return m_type;
|
||||
|
||||
|
|
@ -141,13 +141,13 @@ bool CTimerControlRemoteControlHandler::login()
|
|||
if (m_loggedIn)
|
||||
return false;
|
||||
|
||||
if (m_address.s_addr == INADDR_NONE)
|
||||
if (m_addrLen == 0U)
|
||||
return false;
|
||||
|
||||
::memcpy(m_outBuffer, "LIN", 3U);
|
||||
m_outLength = 3U;
|
||||
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_address, m_port);
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_addr, m_addrLen);
|
||||
if (!ret) {
|
||||
m_retryCount = 0U;
|
||||
return false;
|
||||
|
|
@ -170,7 +170,7 @@ bool CTimerControlRemoteControlHandler::getCallsigns()
|
|||
::memcpy(m_outBuffer, "GCS", 3U);
|
||||
m_outLength = 3U;
|
||||
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_address, m_port);
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_addr, m_addrLen);
|
||||
if (!ret) {
|
||||
m_retryCount = 0U;
|
||||
return false;
|
||||
|
|
@ -199,7 +199,7 @@ bool CTimerControlRemoteControlHandler::sendHash(const unsigned char* hash, unsi
|
|||
m_outLength += length;
|
||||
p += length;
|
||||
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_address, m_port);
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_addr, m_addrLen);
|
||||
if (!ret) {
|
||||
m_retryCount = 0U;
|
||||
return false;
|
||||
|
|
@ -243,7 +243,7 @@ bool CTimerControlRemoteControlHandler::link(const wxString& callsign, RECONNECT
|
|||
m_outLength += LONG_CALLSIGN_LENGTH;
|
||||
p += LONG_CALLSIGN_LENGTH;
|
||||
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_address, m_port);
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_addr, m_addrLen);
|
||||
if (!ret) {
|
||||
m_retryCount = 0U;
|
||||
return false;
|
||||
|
|
@ -262,7 +262,7 @@ bool CTimerControlRemoteControlHandler::logout()
|
|||
m_outLength = 3U;
|
||||
|
||||
for (unsigned int i = 0U; i < 5U; i++) {
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_address, m_port);
|
||||
bool ret = m_socket.write(m_outBuffer, m_outLength, m_addr, m_addrLen);
|
||||
if (!ret) {
|
||||
m_retryCount = 0U;
|
||||
return false;
|
||||
|
|
@ -283,7 +283,7 @@ bool CTimerControlRemoteControlHandler::retry()
|
|||
return false;
|
||||
}
|
||||
|
||||
m_socket.write(m_outBuffer, m_outLength, m_address, m_port);
|
||||
m_socket.write(m_outBuffer, m_outLength, m_addr, m_addrLen);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue