1
0
Fork 0

Fix poll handling

ycs232-kbc
Andy CA6JAU 6 years ago
parent 5a661d80b5
commit 387b5845b9

@ -292,9 +292,10 @@ int CYSFGateway::run()
} }
if (m_ysfNetwork != NULL && m_linkType == LINK_YSF && !m_exclude) { if (m_ysfNetwork != NULL && m_linkType == LINK_YSF && !m_exclude) {
m_ysfNetwork->write(buffer); if (::memcmp(buffer + 0U, "YSFD", 4U) == 0) {
if (::memcmp(buffer + 0U, "YSFD", 4U) == 0) m_ysfNetwork->write(buffer);
m_inactivityTimer.start(); m_inactivityTimer.start();
}
} }
if (m_fcsNetwork != NULL && m_linkType == LINK_FCS && !m_exclude) { if (m_fcsNetwork != NULL && m_linkType == LINK_FCS && !m_exclude) {

@ -148,9 +148,13 @@ void CYSFNetwork::writeUnlink(unsigned int count)
void CYSFNetwork::clock(unsigned int ms) void CYSFNetwork::clock(unsigned int ms)
{ {
unsigned char buffer[BUFFER_LENGTH]; unsigned char buffer[BUFFER_LENGTH];
in_addr address; in_addr address;
unsigned int port; unsigned int port;
m_pollTimer.clock(ms);
if (m_pollTimer.isRunning() && m_pollTimer.hasExpired())
writePoll();
int length = m_socket.read(buffer, BUFFER_LENGTH, address, port); int length = m_socket.read(buffer, BUFFER_LENGTH, address, port);
if (length <= 0) if (length <= 0)
return; return;
@ -158,10 +162,6 @@ void CYSFNetwork::clock(unsigned int ms)
if (m_port == 0U) if (m_port == 0U)
return; return;
m_pollTimer.clock(ms);
if (m_pollTimer.isRunning() && m_pollTimer.hasExpired())
writePoll();
if (address.s_addr != m_address.s_addr || port != m_port) if (address.s_addr != m_address.s_addr || port != m_port)
return; return;

Loading…
Cancel
Save