On 04/10/2013 11:10 PM, Joke de Buhr wrote:
>> Your pull timeout function should return 0 on timeout, a positive number >> if data can be received and -1 on error. I'll make the documentation >> more clear on that, but in your case you should have returned zero >> instead of EAGAIN. > i see the point especially if i would use a traditional select based approach > while waiting for a timeout. > but let's assume: > the handshake timeout isn't set at all. my pull timeout function should never > block. Indeed. It should return 0 when it has no data because it is called with a parameter of 0 ms. > as a consequence the pull_timeout_function() will always get called with an > timeout value of 0. should i return 0 or set gnutls EAGAIN value and return > -1 > if no new data is available? i can't wait using select. the function can't > block. if data is available handshake() or receive() will be called. The pull timeout function is set so gnutls can wait when needed. However in your case (you use non-blocking mode) it should be called with a parameter of 0 ms, so you should return 0 (timeout) when no data are there. That's similar to what select does. > now the handshake() will return a value of GNUTLS_EAGAIN and i use EAGAIN doesn't imply that no data are there. It merely says call me again sometime. That's why you see no action there. regards, Nikos _______________________________________________ Gnutls-help mailing list [email protected] http://lists.gnupg.org/mailman/listinfo/gnutls-help
