[gnutls-devel] Waiting for input data

Tim Ruehsen tim.ruehsen at gmx.de
Fri Feb 8 15:25:13 CET 2013

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.

That was not the point of my mail, but it is interesting.

If I got you right, your question was: how can I read from a non-blocking 
socket (using gnutls_record_check_pending()).

My answer just said, how I do it.
It might be of help, but maybe not.

If casting from int to void * and back doesn't work on your machine, I would 
be interested in the output of

#include <stdio.h>
void main(void) {
	int x=1;
	void *p=(void *)(ssize_t)x;
	printf("%p %d\n",p,x);
	return 0;

Regards, Tim

More information about the Gnutls-devel mailing list