Upgrade the YSF reflector protocol and use a new .ini file.

This commit is contained in:
Jonathan Naylor 2016-06-01 11:00:25 +01:00
parent f137449ae6
commit 79e006d4b9
15 changed files with 631 additions and 95 deletions

View file

@ -17,6 +17,7 @@
*/
#include "UDPSocket.h"
#include "Log.h"
#include <cassert>
@ -37,7 +38,7 @@ m_fd(-1)
WSAData data;
int wsaRet = ::WSAStartup(MAKEWORD(2, 2), &data);
if (wsaRet != 0)
::fprintf(stderr, "Error from WSAStartup\n");
LogError("Error from WSAStartup");
#endif
}
@ -50,7 +51,7 @@ m_fd(-1)
WSAData data;
int wsaRet = ::WSAStartup(MAKEWORD(2, 2), &data);
if (wsaRet != 0)
::fprintf(stderr, "Error from WSAStartup\n");
LogError("Error from WSAStartup");
#endif
}
@ -77,7 +78,7 @@ in_addr CUDPSocket::lookup(const std::string& hostname)
return addr;
}
::fprintf(stderr, "Cannot find address for host %s\n", hostname.c_str());
LogError("Cannot find address for host %s", hostname.c_str());
addr.s_addr = INADDR_NONE;
return addr;
@ -94,7 +95,7 @@ in_addr CUDPSocket::lookup(const std::string& hostname)
return addr;
}
::fprintf(stderr, "Cannot find address for host %s\n", hostname.c_str());
LogError("Cannot find address for host %s", hostname.c_str());
addr.s_addr = INADDR_NONE;
return addr;
@ -106,9 +107,9 @@ bool CUDPSocket::open()
m_fd = ::socket(PF_INET, SOCK_DGRAM, 0);
if (m_fd < 0) {
#if defined(_WIN32) || defined(_WIN64)
::fprintf(stderr, "Cannot create the UDP socket, err: %lu\n", ::GetLastError());
LogError("Cannot create the UDP socket, err: %lu", ::GetLastError());
#else
::fprintf(stderr, "Cannot create the UDP socket, err: %d\n", errno);
LogError("Cannot create the UDP socket, err: %d", errno);
#endif
return false;
}
@ -127,7 +128,7 @@ bool CUDPSocket::open()
addr.sin_addr.s_addr = ::inet_addr(m_address.c_str());
#endif
if (addr.sin_addr.s_addr == INADDR_NONE) {
::fprintf(stderr, "The local address is invalid - %s\n", m_address.c_str());
LogError("The local address is invalid - %s", m_address.c_str());
return false;
}
}
@ -135,18 +136,18 @@ bool CUDPSocket::open()
int reuse = 1;
if (::setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) == -1) {
#if defined(_WIN32) || defined(_WIN64)
::fprintf(stderr, "Cannot set the UDP socket option, err: %lu\n", ::GetLastError());
LogError("Cannot set the UDP socket option, err: %lu", ::GetLastError());
#else
::fprintf(stderr, "Cannot set the UDP socket option, err: %d\n", errno);
LogError("Cannot set the UDP socket option, err: %d", errno);
#endif
return false;
}
if (::bind(m_fd, (sockaddr*)&addr, sizeof(sockaddr_in)) == -1) {
#if defined(_WIN32) || defined(_WIN64)
::fprintf(stderr, "Cannot bind the UDP address, err: %lu\n", ::GetLastError());
LogError("Cannot bind the UDP address, err: %lu", ::GetLastError());
#else
::fprintf(stderr, "Cannot bind the UDP address, err: %d\n", errno);
LogError("Cannot bind the UDP address, err: %d", errno);
#endif
return false;
}
@ -177,9 +178,9 @@ int CUDPSocket::read(unsigned char* buffer, unsigned int length, in_addr& addres
int ret = ::select(m_fd + 1, &readFds, NULL, NULL, &tv);
if (ret < 0) {
#if defined(_WIN32) || defined(_WIN64)
::fprintf(stderr, "Error returned from UDP select, err: %lu\n", ::GetLastError());
LogError("Error returned from UDP select, err: %lu", ::GetLastError());
#else
::fprintf(stderr, "Error returned from UDP select, err: %d\n", errno);
LogError("Error returned from UDP select, err: %d", errno);
#endif
return -1;
}
@ -201,9 +202,9 @@ int CUDPSocket::read(unsigned char* buffer, unsigned int length, in_addr& addres
#endif
if (len <= 0) {
#if defined(_WIN32) || defined(_WIN64)
::fprintf(stderr, "Error returned from recvfrom, err: %lu\n", ::GetLastError());
LogError("Error returned from recvfrom, err: %lu", ::GetLastError());
#else
::fprintf(stderr, "Error returned from recvfrom, err: %d\n", errno);
LogError("Error returned from recvfrom, err: %d", errno);
#endif
return -1;
}
@ -233,9 +234,9 @@ bool CUDPSocket::write(const unsigned char* buffer, unsigned int length, const i
#endif
if (ret < 0) {
#if defined(_WIN32) || defined(_WIN64)
::fprintf(stderr, "Error returned from sendto, err: %lu\n", ::GetLastError());
LogError("Error returned from sendto, err: %lu", ::GetLastError());
#else
::fprintf(stderr, "Error returned from sendto, err: %d\n", errno);
LogError("Error returned from sendto, err: %d", errno);
#endif
return false;
}