ssh2/docs/libssh2_session_startup.3
James Housley 4b8db8c1ab Modify the code to truely support non-blocking. Propogate the EAGAIN error
all the way up to the user interface.  All code modules bug sftp.c have
been completed.

Functions that return an "int", or similar return LIBSSH2CHANNEL_EAGAIN to
indicate some part of the call would block, in non-blocking mode.

Functions that return a structure, like "LIBSSH2_CHANNEL *", return NULL
and set the libssh2 error.  The error can be obtained with either
libssh2_session_last_error() or libssh2_session_last_errno().  Either of
these will return the error code of LIBSSH2_ERROR_EAGAIN if the
call would block, in non-blocking mode.

The current state of a function and some variable are keep in the
structures so that on the next call the operation that would block can
be retried again with the same data.
2007-06-06 12:34:06 +00:00

38 lines
978 B
Groff

.\" $Id: libssh2_session_startup.3,v 1.3 2007/06/06 12:34:07 jehousley Exp $
.\"
.TH libssh2_session_startup 3 "1 June 2007" "libssh2 0.15" "libssh2 manual"
.SH NAME
libssh2_session_startup - begin transport layer
.SH SYNOPSIS
#include <libssh2.h>
int libssh2_session_startup(LIBSSH2_SESSION *session, int socket);
.SH DESCRIPTION
Begin transport layer protocol negotiation with the connected host.
.SH RETURN VALUE
0 on success, \-1 on failure
.SH ERRORS
LIBSSH2_ERROR_SOCKET_NONE
Bad socket provided.
.br
LIBSSH2_ERROR_BANNER_SEND
Error sending banner to remote host.
.br
LIBSSH2_ERROR_KEX_FAILURE
Unable to exchange encryption keys.
.br
LIBSSH2_ERROR_SOCKET_SEND
Unable to ask for ssh-userauth service.
.br
LIBSSH2_ERROR_SOCKET_DISCONNECT
Connection was lost.
.br
LIBSSH2_ERROR_PROTO
Invalid response received from server.
.br
LIBSSH2_ERROR_EAGAIN
Marked for non-blocking I/O but the call would block.
.SH "SEE ALSO"
.BI libssh2_session_free(3),
.BI libssh2_session_init(3)