[gnutls-devel] Waiting for input data
jaak.ristioja at cyber.ee
Fri Feb 8 15:40:47 CET 2013
On 08.02.2013 16:38, Tim Ruehsen wrote:
> Am Friday 08 February 2013 schrieb Jaak Ristioja:
>> On 08.02.2013 15:54, Tim Ruehsen wrote:
>>> Maybe this code snippet/example from libmget (License LGPL3+) may help
>>> you: It assumes a non-blocking socket descriptor set by
>>> gnutls_transport_set_ptr(session, (void *)(ssize_t)sockfd);
>> Well I have used (void *)(intptr_t) sockfd, but it doesn't solve the
>> real issue here, it just silences the compiler. When converted back
>> using (int)(intptr_t), it might not compare equal to the original.
> Couldn't you use a pointer to your 'socket'.
> gnutls_transport_set_ptr(session, &sockfd);
> and reading back with
> int sockfd = *(int *)gnutls_transport_get_ptr(session);
> If your sockfd is of type 'int'. If not, use a different type.
No I can't. The variable sockfd might go out of scope or get destroyed
otherwise, effectively invalidating the pointer.
More information about the Gnutls-devel