File: gnutls_handshake

package info (click to toggle)
gnutls28 3.3.8-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 51,388 kB
  • sloc: ansic: 191,357; asm: 60,370; sh: 21,457; makefile: 5,257; lisp: 1,531; yacc: 1,254; cpp: 1,155; perl: 199; sed: 16
file content (34 lines) | stat: -rw-r--r-- 1,487 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34




@deftypefun {int} {gnutls_handshake} (gnutls_session_t @var{session})
@var{session}: is a @code{gnutls_session_t}  structure.

This function does the handshake of the TLS/SSL protocol, and
initializes the TLS connection.

This function will fail if any problem is encountered, and will
return a negative error code. In case of a client, if the client
has asked to resume a session, but the server couldn't, then a
full handshake will be performed.

The non-fatal errors expected by this function are:
@code{GNUTLS_E_INTERRUPTED} , @code{GNUTLS_E_AGAIN} , and @code{GNUTLS_E_WARNING_ALERT_RECEIVED} .
The former two interrupt the handshake procedure due to the lower
layer being interrupted, and the latter because of an alert that
may be sent by a server (it is always a good idea to check any
received alerts). On these errors call this function again, until it
returns 0; cf.  @code{gnutls_record_get_direction()}  and
@code{gnutls_error_is_fatal()} .

If this function is called by a server after a rehandshake request
then @code{GNUTLS_E_GOT_APPLICATION_DATA}  or
@code{GNUTLS_E_WARNING_ALERT_RECEIVED}  may be returned.  Note that these
are non fatal errors, only in the specific case of a rehandshake.
Their meaning is that the client rejected the rehandshake request or
in the case of @code{GNUTLS_E_GOT_APPLICATION_DATA}  it might also mean that
some data were pending.

@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, otherwise a negative error code.
@end deftypefun