.\"listen for connections on a socket
.DT
socket_listen
Discworld driver help
socket_listen

Name
.SI 5
socket_listen() - listen for connections on a socket

.EI
Synopsis
.SI 5
.EI
#include <socket.h>
#include <socket_errors.h>

int socket_listen(int s, string listen_callback)

Description
.SP 5 5
To accept connections, a socket is first created with socket_create(3),
the socket is them put into listening mode with socket_listen(3), and
the connections are accepted with socket_accept(3). The socket_listen() call
applies only to sockets of type STREAM or MUD.

The argument listen_callback is the name of a function for the driver to
call when a connection is requested on the listening socket. The listen
callback should follow this format:

void listen_callback(int fd)

Where fd is the listening socket.
.EP
Return values
.SI 5
socket_listen() returns:
.EI
.TP
EESUCCESS on success.
.TP
a negative value indicated below on error.
Errors
.SI 5
.EI
.TP 15
EEFDRANGE
Descriptor out of range.
.TP
EEBADF
Descriptor is invalid.
.TP
EESECURITY
Security violation attempted.
.TP
EEMODENOTSUPP
Socket mode not supported.
.TP
EENOADDR
Socket not bound to an address.
.TP
EEISCONN
Socket is already connected.
.TP
EELISTEN
Problem with listen.
See also
.SI 5
socket_accept(3), socket_connect(3), socket_create(3)
.EI
