Skip to content

socket_listen

NAME

socket_listen() - listen for connections on a socket

SYNOPSIS

#include <socket_err.h>

int socket_listen( int s, string listen_callback );

DESCRIPTION

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, MUD, STREAM_TLS, or
STREAM_TLS_BINARY.

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.

For TLS server sockets (STREAM_TLS or STREAM_TLS_BINARY), you must set
the SO_TLS_CERT and SO_TLS_KEY options using socket_set_option() before
calling socket_listen(). The certificate and key files must be in PEM
format. When a client connects, the TLS handshake will be performed
automatically when socket_accept() is called.

RETURN VALUES

socket_listen() returns:

    EESUCCESS on success.

    a negative value indicated below on error.

ERRORS

EEFDRANGE      Descriptor out of range.

EEBADF         Descriptor is invalid.

EESECURITY     Security violation attempted.

EEMODENOTSUPP  Socket mode not supported.

EENOADDR       Socket not bound to an address.

EEISCONN       Socket is already connected.

EELISTEN       Problem with listen.

SEE ALSO

socket_accept(3), socket_connect(3), socket_create(3)