diff options
author | elupus <elupus@xbmc.org> | 2011-05-10 20:41:12 +0200 |
---|---|---|
committer | elupus <elupus@xbmc.org> | 2011-05-10 20:42:02 +0200 |
commit | a0cdccd7d4892b993e85275d542e5bfc9674f6b4 (patch) | |
tree | 67945f037c2df52d7a50cc7fd3176d5fb288dcb6 | |
parent | ca84e5b440ace0357409f53d904c9d26fa507ae6 (diff) |
changed: remap WSAGetLastError() errors to errno errors in hts client to avoid ifdef in xbmc
-rw-r--r-- | lib/libhts/net_winsock.c | 32 | ||||
-rw-r--r-- | 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 <stdlib.h> #include <string.h> #include <stdarg.h> +#include <errno.h> #include <winsock2.h> #include <Ws2tcpip.h> #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 <netinet/in.h> #include <netinet/tcp.h> -#ifdef _MSC_VER -#define ETIMEDOUT WSAETIMEDOUT -#endif - extern "C" { #include "libhts/net.h" #include "libhts/htsmsg.h" |