From: Giuseppe Scrivano Date: Sat, 23 Oct 2010 10:34:49 +0000 (+0200) Subject: gnutls: peek blocks until data is available. X-Git-Tag: v1.13~90 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=b38c40b34e086256a10af53a062a276d9cff2921;hp=c5dc4d16646c186218be509d35e20b6a6203b13b gnutls: peek blocks until data is available. --- diff --git a/src/ChangeLog b/src/ChangeLog index 7b8c1772..2175acff 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-10-23 Giuseppe Scrivano + + * gnutls.c (wgnutls_peek): Block until data is available. + 2010-10-21 Giuseppe Scrivano * retr.c (retrieve_url): Do not register HTML files twice. diff --git a/src/gnutls.c b/src/gnutls.c index 17c7c928..440b1aed 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -184,13 +184,14 @@ wgnutls_peek (int fd, char *buf, int bufsize, void *arg) { do { - if (gnutls_record_check_pending (ctx->session) - || select_fd (fd, 0, WAIT_FOR_READ)) - ret = gnutls_record_recv (ctx->session, buf + offset, - bufsize - offset); + ret = gnutls_record_recv (ctx->session, buf + offset, + bufsize - offset); } while (ret == GNUTLS_E_INTERRUPTED); + if (ret < 0) + return ret; + if (ret > 0) { memcpy (ctx->peekbuf + offset, buf + offset,