gnutls_transport_set_pull_timeout_function - 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

       As with select(), if the timeout value is zero the callback should return
       zero if no data are immediately available. The special value
       GNUTLS_INDEFINITE_TIMEOUT indicates that the callback should wait
       indefinitely for data.

        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, under TLS1.3 and for enforcing the
       DTLS mode timeouts when in blocking mode.

       For compatibility with future GnuTLS versions this callback must be set
       when a custom pull function is registered. The callback will not be used
       when the session is in TLS mode with non-blocking sockets. That is, when
       GNUTLS_NONBLOCK is specified for a TLS session in gnutls_init().

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


       Report bugs to <>.
       Home page:

       Copyright © 2001-2020 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.

       The full documentation for gnutls is maintained as a Texinfo manual.  If
       the /usr/share/doc/gnutls/ directory does not contain the HTML form visit

gnutls                             gnutls1transport_set_pull_timeout_function(3)