NAME         top

       gnutls_transport_set_pull_timeout_function - API function

SYNOPSIS         top

       #include <gnutls/gnutls.h>

       void gnutls_transport_set_pull_timeout_function(gnutls_session_t
       session, gnutls_pull_timeout_func func);

ARGUMENTS         top

       gnutls_session_t session
                   is a gnutls_session_t type.

       gnutls_pull_timeout_func func
                   a callback function

DESCRIPTION         top

       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. 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, and for calculating the DTLS
       mode timeouts.

       In short, this callback should 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(). For compatibility with
       future GnuTLS versions it is recommended to always set this function
       when a custom pull function is registered.

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

SINCE         top


REPORTING BUGS         top

       Report bugs to <>.
       Home page:

COPYRIGHT         top

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

SEE ALSO         top

       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 

COLOPHON         top

       This page is part of the GnuTLS (GnuTLS Transport Layer Security
       Library) project.  Information about the project can be found at 
       ⟨⟩.  If you have a bug report for this manual
       page, send it to  This page was obtained from the
       tarball gnutls-3.6.2.tar.xz fetched from
       ⟨⟩ on 2018-04-30.  If you discover
       any rendering problems in this HTML version of the page, or you
       believe there is a better or more up-to-date source for the page, or
       you have corrections or improvements to the information in this
       COLOPHON (which is not part of the original manual page), send a mail

gnutls                         gnutl3s._6t.r2ansport_set_pull_timeout_function(3)