gnutls_transport_set_pull_timeout_function(3) API function


#include <gnutls/gnutls.h>

void gnutls_transport_set_pull_timeout_function(gnutls_session_t session, gnutls_pull_timeout_func func);


gnutls_session_t session
is a gnutls_session_t type.
gnutls_pull_timeout_func func
a callback function


This is the function where you set a function for gnutls to know whether data are ready to be received. It should wait for data a given time frame in milliseconds. The callback should return 0 on timeout, a positive number if data can be received, and -1 on error. You'll need to override this function if select() is not suitable for the provided transport calls.

As with select(), if the timeout value is zero the callback should return zero if no data are immediately available.

 gnutls_pull_timeout_func is of the form, int (*gnutls_pull_timeout_func)(gnutls_transport_ptr_t, unsigned int ms);

This callback is necessary when gnutls_handshake_set_timeout() or gnutls_record_set_timeout() are set. It will not be used when non-blocking sockets are in use. That is, this function will not operate when GNUTLS_NONBLOCK is specified in gnutls_init(), or a custom pull function is registered without updating the pull timeout function.

The helper function gnutls_system_recv_timeout() is provided to simplify writing callbacks.




Report bugs to <[email protected]>.
Home page:


Copyright © 2001-2016 Free Software Foundation, Inc., and others.
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.