@@ -220,12 +220,17 @@ int
os_socket_accept(bh_socket_t server_sock, bh_socket_t *sock, void *addr,
unsigned int *addrlen)
{
- *sock = accept(server_sock, addr, addrlen);
-
+ if (addr == NULL) {
+ *sock = accept(server_sock, NULL, NULL);
+ }
+ else {
+ socklen_t len = *addrlen;
+ *sock = accept(server_sock, addr, &len);
+ *addrlen = len;
if (*sock < 0) {
return BHT_ERROR;
}
return BHT_OK;