AN_LISTEN(3)

NAME

an_listen - listen for incoming connections on a proxy-capable socket

SYNOPSIS

#include <antinat.h>

int an_listen(ANCONN s);

DESCRIPTION

The an_listen(3) function is used to wait for an incoming connection on a socket that was created earlier and switched into bound mode using the an_bind_tohostname(3) or an_bind_tosockaddr(3) calls. For proxy-based connections, only one incoming connection is allowed on any listening socket. Accepting a connection will use the primary socket for communication and will not create any other socket.

s is a socket previously created with an_new_connection(3), and bound with the an_bind_tohostname(3) or an_bind_tosockaddr(3) calls.

NOTES

Although there is planned support for non-blocking sockets in a future release, this call should be considered a blocking call. A non-blocking socket will be silently (and temporarily) changed to a blocking one to process the connection.

RETURN VALUE

This call returns AN_ERROR_SUCCESS to indicate successful completion.

ERRORS

AN_ERROR_INVALIDARG
    The socket handle is invalid.

AN_ERROR_NETWORK
    A network error occurred attempting to switch to listen mode. See listen for more information on what could cause this to happen.

AN_ERROR_NOTSUPPORTED
    This call cannot be made on the type of socket.

AN_ERROR_ORDER
    This call must be called after a prior successful call to an_bind_tosockaddr(3) or an_bind_tohostname(3).

SEE ALSO

an_accept(3), an_bind_tohostname(3), an_bind_tosockaddr(3), an_new_connection(3)

AUTHOR

Malcolm Smith <malxau@users.sourceforge.net>