1
0
forked from fsfw/fsfw

created common OSAL stuff to unify UDP code

This commit is contained in:
2021-03-21 00:30:33 +01:00
parent e44f8bfea3
commit d625642abc
13 changed files with 214 additions and 89 deletions

52
osal/common/TcpIpBase.cpp Normal file
View File

@ -0,0 +1,52 @@
#include "TcpIpBase.h"
#ifdef __unix__
#include <unistd.h>
#endif
TcpIpBase::TcpIpBase() {
closeSocket(serverSocket);
}
TcpIpBase::~TcpIpBase() {
#ifdef _WIN32
WSACleanup();
#endif
}
int TcpIpBase::closeSocket(socket_t socket) {
#ifdef _WIN32
return closesocket(socket);
#elif defined(__unix__)
return close(socket)
#endif
}
int TcpIpBase::getLastSocketError() {
#ifdef _WIN32
return WSAGetLastError();
#elif defined(__unix__)
return errno;
#endif
}
ReturnValue_t TcpIpBase::initialize() {
#ifdef _WIN32
/* Initiates Winsock DLL. */
WSAData wsaData;
WORD wVersionRequested = MAKEWORD(2, 2);
int err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
/* Tell the user that we could not find a usable Winsock DLL. */
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::error << "TmTcWinUdpBridge::TmTcWinUdpBridge: WSAStartup failed with error: " <<
err << std::endl;
#endif
return HasReturnvaluesIF::RETURN_FAILED;
}
#endif
return HasReturnvaluesIF::RETURN_OK;
}