* socket_getsockopt() now supports all boolean SO_* options as well.
* socket_listen() now sets the SO_ACCEPTCONN flag if it succeeds. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18476 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -290,6 +290,22 @@ socket_getsockopt(net_socket *socket, int level, int option, void *value,
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
case SO_ACCEPTCONN:
|
||||
case SO_BROADCAST:
|
||||
case SO_DEBUG:
|
||||
case SO_DONTROUTE:
|
||||
case SO_KEEPALIVE:
|
||||
case SO_OOBINLINE:
|
||||
case SO_REUSEADDR:
|
||||
case SO_REUSEPORT:
|
||||
case SO_USELOOPBACK:
|
||||
{
|
||||
int32 *_set = (int32 *)value;
|
||||
*_set = (socket->options & option) != 0;
|
||||
*_length = sizeof(int32);
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -301,7 +317,11 @@ socket_getsockopt(net_socket *socket, int level, int option, void *value,
|
||||
int
|
||||
socket_listen(net_socket *socket, int backlog)
|
||||
{
|
||||
return socket->first_info->listen(socket->first_protocol, backlog);
|
||||
status_t status = socket->first_info->listen(socket->first_protocol, backlog);
|
||||
if (status == B_OK)
|
||||
socket->options |= SO_ACCEPTCONN;
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user