From a0cdccd7d4892b993e85275d542e5bfc9674f6b4 Mon Sep 17 00:00:00 2001 From: elupus Date: Tue, 10 May 2011 20:41:12 +0200 Subject: changed: remap WSAGetLastError() errors to errno errors in hts client to avoid ifdef in xbmc --- lib/libhts/net_winsock.c | 32 +++++++++++++++++++++----------- xbmc/filesystem/HTSPSession.cpp | 4 ---- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/libhts/net_winsock.c b/lib/libhts/net_winsock.c index f31dac8a6b..3f540dd03b 100644 --- a/lib/libhts/net_winsock.c +++ b/lib/libhts/net_winsock.c @@ -23,16 +23,26 @@ #include #include #include +#include #include #include #include "msvc.h" #include "net.h" -#define EINPROGRESS WSAEINPROGRESS -#define ECONNRESET WSAECONNRESET -#define ETIMEDOUT WSAETIMEDOUT -#define EAGAIN WSAEWOULDBLOCK + +static int socket_errno() +{ + int error = WSAGetLastError(); + switch(error) + { + case WSAEINPROGRESS: return EINPROGRESS; + case WSAECONNRESET : return ECONNRESET; + case WSAETIMEDOUT : return ETIMEDOUT; + case WSAEWOULDBLOCK: return EAGAIN; + default : return error; + } +} #ifndef MSG_WAITALL #define MSG_WAITALL 0x8 @@ -74,7 +84,7 @@ htsp_tcp_connect_addr(struct addrinfo* addr, char *errbuf, size_t errbufsize, fd = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); if(fd == -1) { snprintf(errbuf, errbufsize, "Unable to create socket: %s", - strerror(WSAGetLastError())); + strerror(socket_errno())); return -1; } @@ -87,8 +97,8 @@ htsp_tcp_connect_addr(struct addrinfo* addr, char *errbuf, size_t errbufsize, r = connect(fd, addr->ai_addr, addr->ai_addrlen); if(r == -1) { - if(WSAGetLastError() == EINPROGRESS || - WSAGetLastError() == EAGAIN) { + if(socket_errno() == EINPROGRESS || + socket_errno() == EAGAIN) { fd_set fd_write, fd_except; struct timeval tv; @@ -111,14 +121,14 @@ htsp_tcp_connect_addr(struct addrinfo* addr, char *errbuf, size_t errbufsize, } if(r == -1) { - snprintf(errbuf, errbufsize, "select() error: %s", strerror(WSAGetLastError())); + snprintf(errbuf, errbufsize, "select() error: %s", strerror(socket_errno())); closesocket(fd); return -1; } getsockopt(fd, SOL_SOCKET, SO_ERROR, (void *)&err, &errlen); } else { - err = WSAGetLastError(); + err = socket_errno(); } } else { err = 0; @@ -316,7 +326,7 @@ htsp_tcp_read(socket_t fd, void *buf, size_t len) int x = recv(fd, buf, len, MSG_WAITALL); if(x == -1) - return WSAGetLastError(); + return socket_errno(); if(x != len) return ECONNRESET; return 0; @@ -352,7 +362,7 @@ htsp_tcp_read_timeout(socket_t fd, char *buf, size_t len, int timeout) ioctlsocket(fd, FIONBIO, &val); x = recv(fd, buf + tot, len - tot, 0); - err = WSAGetLastError(); + err = socket_errno(); val = 0; ioctlsocket(fd, FIONBIO, &val); diff --git a/xbmc/filesystem/HTSPSession.cpp b/xbmc/filesystem/HTSPSession.cpp index 9e7826752b..ef6ece7376 100644 --- a/xbmc/filesystem/HTSPSession.cpp +++ b/xbmc/filesystem/HTSPSession.cpp @@ -28,10 +28,6 @@ #include #include -#ifdef _MSC_VER -#define ETIMEDOUT WSAETIMEDOUT -#endif - extern "C" { #include "libhts/net.h" #include "libhts/htsmsg.h" -- cgit v1.2.3