1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-10-24 14:53:03 +03:00
Files
libssh2/docs/libssh2_session_handshake.md
Viktor Szakats b889b39945 docs: convert man page sources to "curldown" format
To render in Git webviews as-is, to make it easier to edit, verify,
and to sync up with curl.

- add options to not build the `.3` man pages:
  - autotools: `--disable-docs`
  - cmake: `LIBSSH2_BUILD_DOCS=OFF`
- building `.3` man pages requires Perl after this patch.
- drop `mansyntax` and the shell / `grep` / GNU `man` tool requirements with it.
- scripts and most logic were copied from curl.
- add `cd2nroff` from curl, with edits to relax curl-specific checks.
- used `nroff2cd` (from curl) to convert from `.3` to `.md`. Then
  manually fixed copyrights, inline function references and a couple
  of other things.

Credits-to: Daniel Stenberg

Ref: eefcc1bda4
Ref: https://github.com/curl/curl/pull/12730
Ref: https://github.com/libssh2/www/issues/25#issuecomment-3289431671

Closes #1660
2025-10-09 04:05:38 +02:00

60 lines
1.3 KiB
Markdown

---
c: Copyright (C) The libssh2 project and its contributors.
SPDX-License-Identifier: BSD-3-Clause
Title: libssh2_session_handshake
Section: 3
Source: libssh2
See-also:
- libssh2_session_free(3)
- libssh2_session_init_ex(3)
---
# NAME
libssh2_session_handshake - perform the SSH handshake
# SYNOPSIS
~~~c
#include <libssh2.h>
int
libssh2_session_handshake(LIBSSH2_SESSION *session, libssh2_socket_t socket);
~~~
# DESCRIPTION
*session* - Session instance as returned by libssh2_session_init_ex(3)
*socket* - Connected socket descriptor. Typically a TCP connection
though the protocol allows for any reliable transport and the library will
attempt to use any berkeley socket.
Begin transport layer protocol negotiation with the connected host.
# RETURN VALUE
Returns 0 on success, negative on failure.
# ERRORS
*LIBSSH2_ERROR_SOCKET_NONE* - The socket is invalid.
*LIBSSH2_ERROR_BANNER_SEND* - Unable to send banner to remote host.
*LIBSSH2_ERROR_KEX_FAILURE* - Encryption key exchange with the remote
host failed.
*LIBSSH2_ERROR_SOCKET_SEND* - Unable to send data on socket.
*LIBSSH2_ERROR_SOCKET_DISCONNECT* - The socket was disconnected.
*LIBSSH2_ERROR_PROTO* - An invalid SSH protocol response was received on
the socket.
*LIBSSH2_ERROR_EAGAIN* - Marked for non-blocking I/O but the call would block.
# AVAILABILITY
Added in 1.2.8