Name

gnutls_record_recv — reads data from the TLS record protocol

Synopsis

#include <gnutls/gnutls.h>
ssize_t gnutls_record_recv( gnutls_session_t session,
  void * data,
  size_t sizeofdata);
 

ARGUMENTS

gnutls_session_t session

is a gnutls_session_t structure.

void * data

the buffer that the data will be read into

size_t sizeofdata

the number of requested bytes

DESCRIPTION

This function has the similar semantics with recv(). The only difference is that it accepts a GnuTLS session, and uses different error codes.

In the special case that a server requests a renegotiation, the client may receive an error code of GNUTLS_E_REHANDSHAKE. This message may be simply ignored, replied with an alert GNUTLS_A_NO_RENEGOTIATION, or replied with a new handshake, depending on the client's will.

If EINTR is returned by the internal push function (the default is recv()) then GNUTLS_E_INTERRUPTED will be returned. If GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN is returned, you must call this function again to get the data. See also gnutls_record_get_direction().

A server may also receive GNUTLS_E_REHANDSHAKE when a client has initiated a handshake. In that case the server can only initiate a handshake or terminate the connection.

RETURNS

the number of bytes received and zero on EOF. A negative error code is returned in case of an error. The number of bytes received might be less than sizeofdata.

REPORTING BUGS

Report bugs to <[email protected]>. GnuTLS home page: http://www.gnu.org/software/gnutls/ General help using GNU software: http://www.gnu.org/gethelp/

SEE ALSO

The full documentation for gnutls is maintained as a Texinfo manual. If the info and gnutls programs are properly installed at your site, the command

info gnutls

should give you access to the complete manual.

COPYRIGHT

Copyright © 2008 Free Software Foundation.

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.