MinGW
[oweals/gnunet.git] / src / util / network.c
index 5b1fa654d6b0cf65a47e69d6eea9c8e5c9144eb8..e7a276422a0554e513dc0dc934b987ba6f35fbcd 100644 (file)
 
 struct GNUNET_NETWORK_Handle
 {
+#ifndef MINGW
   int fd;
+#else
+  SOCKET fd;
+#endif
 };
 
 
@@ -57,7 +61,7 @@ struct GNUNET_NETWORK_FDSet
 
 #ifdef WINDOWS
   /**
-   * Linked list of handles 
+   * Linked list of handles
    */
   struct GNUNET_CONTAINER_SList *handles;
 #endif
@@ -360,17 +364,21 @@ GNUNET_NETWORK_socket_listen (const struct GNUNET_NETWORK_Handle *desc,
  * Returns GNUNET_NO if no data is available, or on error!
  * @param desc socket
  */
-unsigned int
+ssize_t
 GNUNET_NETWORK_socket_recvfrom_amount (const struct GNUNET_NETWORK_Handle
                                        *desc)
 {
   int error;
-  unsigned int pending;
+  int pending;
 
   /* How much is there to be read? */
+#ifndef WINDOWS
   error = ioctl (desc->fd, FIONREAD, &pending);
-
   if (error == 0)
+#else
+  error = ioctlsocket (desc->fd, FIONREAD, &pending);
+  if (error != SOCKET_ERROR)
+#endif
     return pending;
   else
     return GNUNET_NO;