updated copyright messages for 2013
[deb_libcec.git] / src / lib / platform / posix / os-socket.h
index 036be3f5c2227deffa92ea2250244cf350fb3fdd..7156c752c239c7f1c389572236c6cb539a865906 100644 (file)
@@ -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.
  */
 
 
-#include "../os.h"
-#include "../util/timeutils.h"
+#include "lib/platform/os.h"
+#include "lib/platform/util/timeutils.h"
 #include <stdio.h>
 #include <fcntl.h>
+#include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <netinet/tcp.h>
@@ -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)