mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-07-11 06:53:16 +00:00
Compare commits
3 Commits
1915d4f79d
...
38a5af1952
Author | SHA1 | Date | |
---|---|---|---|
![]() |
38a5af1952 | ||
![]() |
17be90d8f0 | ||
![]() |
aff6c3fcb1 |
|
@ -610,6 +610,7 @@ get_sol_socket_option(int sockfd, int optname, void *__restrict optval,
|
||||||
uint64_t timeout_us;
|
uint64_t timeout_us;
|
||||||
bool is_linger_enabled;
|
bool is_linger_enabled;
|
||||||
int linger_s;
|
int linger_s;
|
||||||
|
__wasi_fdstat_t sb;
|
||||||
|
|
||||||
switch (optname) {
|
switch (optname) {
|
||||||
case SO_RCVTIMEO:
|
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);
|
error = __wasi_sock_get_broadcast(sockfd, (bool *)optval);
|
||||||
HANDLE_ERROR(error);
|
HANDLE_ERROR(error);
|
||||||
return 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:
|
default:
|
||||||
error = __WASI_ERRNO_NOTSUP;
|
error = __WASI_ERRNO_NOTSUP;
|
||||||
HANDLE_ERROR(error);
|
HANDLE_ERROR(error);
|
||||||
|
|
|
@ -406,12 +406,11 @@ os_socket_addr_resolve(const char *host, const char *service,
|
||||||
|
|
||||||
res = result;
|
res = result;
|
||||||
while (res) {
|
while (res) {
|
||||||
if (addr_info_size > pos) {
|
|
||||||
if (!is_addrinfo_supported(res)) {
|
if (!is_addrinfo_supported(res)) {
|
||||||
res = res->ai_next;
|
res = res->ai_next;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (addr_info_size > pos) {
|
||||||
ret =
|
ret =
|
||||||
sockaddr_to_bh_sockaddr(res->ai_addr, &addr_info[pos].sockaddr);
|
sockaddr_to_bh_sockaddr(res->ai_addr, &addr_info[pos].sockaddr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user