소스 검색

Fix NuttX build error after dev/socket was merged (#1517)

YAMAMOTO Takashi 3 년 전
부모
커밋
3d56c8133c
2개의 변경된 파일13개의 추가작업 그리고 2개의 파일을 삭제
  1. 12 2
      core/shared/platform/common/posix/posix_socket.c
  2. 1 0
      core/shared/platform/nuttx/platform_internal.h

+ 12 - 2
core/shared/platform/common/posix/posix_socket.c

@@ -426,7 +426,7 @@ os_socket_getbooloption(bh_socket_t socket, int level, int optname,
     assert(is_enabled);
 
     int optval;
-    int optval_size = sizeof(optval);
+    socklen_t optval_size = sizeof(optval);
     if (getsockopt(socket, level, optname, &optval, &optval_size) != 0) {
         return BHT_ERROR;
     }
@@ -523,15 +523,25 @@ os_socket_get_reuse_addr(bh_socket_t socket, bool *is_enabled)
 int
 os_socket_set_reuse_port(bh_socket_t socket, bool is_enabled)
 {
+#if defined(SO_REUSEPORT) /* NuttX doesn't have SO_REUSEPORT */
     return os_socket_setbooloption(socket, SOL_SOCKET, SO_REUSEPORT,
                                    is_enabled);
+#else
+    errno = ENOTSUP;
+    return BHT_ERROR;
+#endif /* defined(SO_REUSEPORT) */
 }
 
 int
 os_socket_get_reuse_port(bh_socket_t socket, bool *is_enabled)
 {
+#if defined(SO_REUSEPORT) /* NuttX doesn't have SO_REUSEPORT */
     return os_socket_getbooloption(socket, SOL_SOCKET, SO_REUSEPORT,
                                    is_enabled);
+#else
+    errno = ENOTSUP;
+    return BHT_ERROR;
+#endif /* defined(SO_REUSEPORT) */
 }
 
 int
@@ -967,4 +977,4 @@ os_socket_addr_remote(bh_socket_t socket, bh_sockaddr_t *sockaddr)
 
     return sockaddr_to_bh_sockaddr((struct sockaddr *)&addr_storage, addr_len,
                                    sockaddr);
-}
+}

+ 1 - 0
core/shared/platform/nuttx/platform_internal.h

@@ -22,6 +22,7 @@
 #include <unistd.h>
 #include <math.h>
 #include <sys/ioctl.h>
+#include <sys/socket.h>
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <sys/mman.h>