X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fposix%2Fos-socket.h;h=7156c752c239c7f1c389572236c6cb539a865906;hb=103eb041ef46f322b3c374da47feabab6c378004;hp=7539aab3e6289e91ab594704399e04ddecebe67f;hpb=b0a5e4fc9b66620b00f937f7e9a406bf22aaaf1d;p=deb_libcec.git diff --git a/src/lib/platform/posix/os-socket.h b/src/lib/platform/posix/os-socket.h index 7539aab..7156c75 100644 --- a/src/lib/platform/posix/os-socket.h +++ b/src/lib/platform/posix/os-socket.h @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -36,6 +36,7 @@ #include "lib/platform/util/timeutils.h" #include #include +#include #include #include #include @@ -86,7 +87,7 @@ namespace PLATFORM { FD_ZERO(&port); FD_SET(socket, &port); - int returnv = select(socket + 1, NULL, &port, NULL, tv); + ssize_t returnv = (ssize_t)select(socket + 1, NULL, &port, NULL, tv); if (returnv < 0) { *iError = errno; @@ -145,7 +146,7 @@ namespace PLATFORM FD_ZERO(&port); FD_SET(socket, &port); - int32_t returnv = select(socket + 1, &port, NULL, NULL, tv); + ssize_t returnv = (ssize_t)select(socket + 1, &port, NULL, NULL, tv); if (returnv == -1) { @@ -172,6 +173,20 @@ namespace PLATFORM return iBytesRead; } + + inline int SocketIoctl(socket_t socket, int *iError, int request, void* data) + { + if (socket == INVALID_SOCKET_VALUE) + { + *iError = EINVAL; + return -1; + } + + int iReturn = ioctl(socket, request, data); + if (iReturn < 0) + *iError = errno; + return iReturn; + } //@} // TCP @@ -228,7 +243,7 @@ namespace PLATFORM { if (iTimeoutMs > 0) { - int iPollResult = poll(&fds, 1, iTarget - iNow); + int iPollResult = poll(&fds, 1, (int)(iTarget - iNow)); if (iPollResult == 0) { *iError = ETIMEDOUT; @@ -305,7 +320,7 @@ namespace PLATFORM pfd.events = POLLOUT; pfd.revents = 0; - int iPollResult = poll(&pfd, 1, iTimeout); + int iPollResult = poll(&pfd, 1, (int)iTimeout); if (iPollResult == 0) *iError = ETIMEDOUT; else if (iPollResult == -1)