libssh2_channel_forward_listen_ex(3) listen to inbound connections

SYNOPSIS

#include <libssh2.h>

LIBSSH2_LISTENER * libssh2_channel_forward_listen_ex(LIBSSH2_SESSION *session, char *host, int port, int *bound_port, int queue_maxsize);

LIBSSH2_LISTENER * libssh2_channel_forward_listen(LIBSSH2_SESSION *session, int port);

DESCRIPTION

Instruct the remote SSH server to begin listening for inbound TCP/IP connections. New connections will be queued by the library until accepted by libssh2_channel_forward_accept(3).

session - instance as returned by libssh2_session_init().

host - specific address to bind to on the remote host. Binding to 0.0.0.0 (default when NULL is passed) will bind to all available addresses.

port - port to bind to on the remote host. When 0 is passed, the remote host will select the first available dynamic port.

bound_port - Populated with the actual port bound on the remote host. Useful when requesting dynamic port numbers.

queue_maxsize - Maximum number of pending connections to queue before rejecting further attempts.

libssh2_channel_forward_listen(3) is a macro.

RETURN VALUE

A newly allocated LIBSSH2_LISTENER instance or NULL on failure.

ERRORS

LIBSSH2_ERROR_ALLOC - An internal memory allocation call failed.

LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.

LIBSSH2_ERROR_PROTO - An invalid SSH protocol response was received on the socket.

LIBSSH2_ERROR_REQUEST_DENIED - The remote server refused the request.

LIBSSH2_ERROR_EAGAIN - Marked for non-blocking I/O but the call would block.