Create log_platform_error() utility function

This commit is contained in:
Aaro Altonen 2020-07-31 12:42:18 +03:00
parent 693c5331c3
commit 66a4c2a412
13 changed files with 43 additions and 41 deletions

View File

@ -8,6 +8,7 @@
#include <cstdio>
#include <cstdarg>
#include <cstring>
#include <string>
// TODO constexpr??
@ -69,3 +70,29 @@ static inline void win_get_last_error(void)
#define LOG_WARN(fmt, ...) uvgrtp_debug(LOG_LEVEL_WARN, fmt, ##__VA_ARGS__)
#define LOG_INFO(fmt, ...) uvgrtp_debug(LOG_LEVEL_INFO, fmt, ##__VA_ARGS__)
#endif
static inline void log_platform_error(const char *aux)
{
#ifdef __linux__
if (aux) {
LOG_ERROR("%s: %s %d\n", aux, strerror(errno), errno);
} else {
LOG_ERROR("%s %d\n", strerror(errno), errno);
}
#else
wchar_t *s = NULL;
FormatMessageW(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPWSTR)&s, 0, NULL
);
if (aux) {
LOG_ERROR("%s: %s %d\n", aux, s, WSAGetLastError());
} else {
LOG_ERROR("%s %d\n", s, WSAGetLastError());
}
LocalFree(s);
#endif
}

View File

@ -107,11 +107,7 @@ static rtp_error_t __fragment_receiver(uvg_rtp::receiver *receiver)
int sret = ::select(socket.get_raw_socket() + 1, &read_fds, nullptr, nullptr, &t_val);
if (sret < 0) {
#ifdef __linux__
LOG_ERROR("select failed: %s!", strerror(errno));
#else
win_get_last_error();
#endif
log_platform_error("select(2) failed");
return RTP_GENERIC_ERROR;
}
@ -230,11 +226,7 @@ rtp_error_t uvg_rtp::generic::frame_receiver(uvg_rtp::receiver *receiver)
int sret = ::select(socket.get_raw_socket() + 1, &read_fds, nullptr, nullptr, &t_val);
if (sret < 0) {
#ifdef __linux__
LOG_ERROR("select failed: %s!", strerror(errno));
#else
win_get_last_error();
#endif
log_platform_error("select(2) failed");
return RTP_GENERIC_ERROR;
}

View File

@ -145,11 +145,7 @@ rtp_error_t __hevc_receiver(uvg_rtp::receiver *receiver)
int sret = ::select(socket.get_raw_socket() + 1, &read_fds, nullptr, nullptr, &t_val);
if (sret < 0) {
#ifdef __linux__
LOG_ERROR("select failed: %s!", strerror(errno));
#else
win_get_last_error();
#endif
log_platform_error("select(2) failed");
return RTP_GENERIC_ERROR;
}

View File

@ -19,9 +19,8 @@ std::string uvg_rtp::hostname::get_hostname()
char buffer[NAME_MAXLEN];
DWORD bufCharCount = NAME_MAXLEN;
if (!GetComputerName((TCHAR *)buffer, &bufCharCount)) {
win_get_last_error();
}
if (!GetComputerName((TCHAR *)buffer, &bufCharCount))
log_platform_error("GetComputerName() failed");
return std::string(buffer);
#else
@ -43,7 +42,7 @@ std::string uvg_rtp::hostname::get_username()
DWORD bufCharCount = NAME_MAXLEN;
if (!GetUserName((TCHAR *)buffer, &bufCharCount)) {
win_get_last_error();
log_platform_error("GetUserName() failed");
return "";
}

View File

@ -17,9 +17,8 @@ uvg_rtp::context::context()
WSADATA wsd;
int rc;
if ((rc = WSAStartup(MAKEWORD(2, 2), &wsd)) != 0) {
win_get_last_error();
}
if ((rc = WSAStartup(MAKEWORD(2, 2), &wsd)) != 0)
log_platform_error("WSAStartup() failed");
#endif
uvg_rtp::random::init();

View File

@ -81,12 +81,7 @@ rtp_error_t uvg_rtp::media_stream::init_connection()
socket_t socket = socket_.get_raw_socket();
if (bind(socket, (struct sockaddr *)&bind_addr, sizeof(bind_addr)) == -1) {
#ifdef __linux__
LOG_ERROR("Bind failed: %s!", strerror(errno));
#else
LOG_ERROR("Bind failed!");
win_get_last_error();
#endif
log_platform_error("bind(2) failed");
return RTP_BIND_ERROR;
}
} else {

View File

@ -93,8 +93,7 @@ rtp_error_t uvg_rtp::zrtp_msg::commit::send_msg(socket_t& socket, sockaddr_in& a
data_buf.len = len_;
if (WSASendTo(socket, &data_buf, 1, NULL, 0, (const struct sockaddr *)&addr, sizeof(addr), nullptr, nullptr) == -1) {
win_get_last_error();
log_platform_error("WSASendTo() failed");
return RTP_SEND_ERROR;
}
#endif

View File

@ -102,8 +102,7 @@ rtp_error_t uvg_rtp::zrtp_msg::confirm::send_msg(socket_t& socket, sockaddr_in&
data_buf.len = len_;
if (WSASendTo(socket, &data_buf, 1, NULL, 0, (const struct sockaddr *)&addr, sizeof(addr), nullptr, nullptr) == -1) {
win_get_last_error();
log_platform_error("WSASendTo() failed");
return RTP_SEND_ERROR;
}
#endif

View File

@ -126,8 +126,7 @@ rtp_error_t uvg_rtp::zrtp_msg::dh_key_exchange::send_msg(socket_t& socket, socka
data_buf.len = len_;
if (WSASendTo(socket, &data_buf, 1, nullptr, 0, (const struct sockaddr *)&addr, sizeof(addr), nullptr, nullptr) == -1) {
win_get_last_error();
log_platform_error("WSASendTo() failed");
return RTP_SEND_ERROR;
}
#endif

View File

@ -51,8 +51,7 @@ rtp_error_t uvg_rtp::zrtp_msg::error::send_msg(socket_t& socket, sockaddr_in& ad
data_buf.len = len_;
if (WSASendTo(socket, &data_buf, 1, NULL, 0, (const struct sockaddr *)&addr, sizeof(addr), nullptr, nullptr) == -1) {
win_get_last_error();
log_platform_error("WSASendTo() failed");
return RTP_SEND_ERROR;
}
#endif

View File

@ -96,8 +96,7 @@ rtp_error_t uvg_rtp::zrtp_msg::hello::send_msg(socket_t& socket, sockaddr_in& ad
data_buf.len = len_;
if (WSASendTo(socket, &data_buf, 1, NULL, 0, (const struct sockaddr *)&addr, sizeof(addr), nullptr, nullptr) == -1) {
win_get_last_error();
log_platform_error("WSASendTo failed");
return RTP_SEND_ERROR;
}
#endif

View File

@ -49,8 +49,7 @@ rtp_error_t uvg_rtp::zrtp_msg::hello_ack::send_msg(socket_t& socket, sockaddr_in
data_buf.len = len_;
if (WSASendTo(socket, &data_buf, 1, NULL, 0, (const struct sockaddr *)&addr, sizeof(addr), nullptr, nullptr) == -1) {
win_get_last_error();
log_platform_error("WSASendTo() failed");
return RTP_SEND_ERROR;
}
#endif

View File

@ -76,7 +76,7 @@ rtp_error_t uvg_rtp::poll::poll(std::vector<uvg_rtp::socket>& sockets, uint8_t *
int ret = ::select((int)sockets.size(), &read_fds, nullptr, nullptr, &t_val);
if (ret < 0) {
win_get_last_error();
log_platform_error("select(2) failed");
return RTP_GENERIC_ERROR;
} else if (ret == 0) {
set_bytes(bytes_read, 0);