Compare commits

...

2 Commits

Author SHA1 Message Date
YAMAMOTO Takashi
1915d4f79d
Merge aff6c3fcb1 into 9e92f5ebe1 2025-07-10 12:43:53 +09:00
YAMAMOTO Takashi
aff6c3fcb1 lib-socket: implement getsockopt(SOL_SOCKET,SO_TYPE)
cf. https://github.com/bytecodealliance/wasm-micro-runtime/issues/4456
2025-07-08 10:58:59 +09:00

View File

@ -610,6 +610,7 @@ get_sol_socket_option(int sockfd, int optname, void *__restrict optval,
uint64_t timeout_us;
bool is_linger_enabled;
int linger_s;
__wasi_fdstat_t sb;
switch (optname) {
case SO_RCVTIMEO:
@ -662,6 +663,22 @@ get_sol_socket_option(int sockfd, int optname, void *__restrict optval,
error = __wasi_sock_get_broadcast(sockfd, (bool *)optval);
HANDLE_ERROR(error);
return error;
case SO_TYPE:
assert(*optlen == sizeof(int));
error = __wasi_fd_fdstat_get(sockfd, &sb);
HANDLE_ERROR(error);
switch (sb.fs_filetype) {
case __WASI_FILETYPE_SOCKET_DGRAM:
*(int *)optval = SOCK_DGRAM;
break;
case __WASI_FILETYPE_SOCKET_STREAM:
*(int *)optval = SOCK_STREAM;
break;
default:
errno = __WASI_ERRNO_NOTSOCK;
return -1;
}
return 0;
default:
error = __WASI_ERRNO_NOTSUP;
HANDLE_ERROR(error);