Updating branch refs/heads/master to 19be3432dc694143084e33630a11a7d2157373d8 (commit) from d271a1a6e341fdc2e94762a747c4120bacdfe81a (commit)
commit 19be3432dc694143084e33630a11a7d2157373d8 Author: Ján Sučan <su...@runbox.com> Date: Sat Aug 31 13:21:43 2013 +0200 Fix recieving data from multiple packets Check if there are unread data in the gnutls buffers, first. gnutls is buffering data from the last packet internally. Therefore, there can be some received data, even if the socket file descriptor is not readable. Thanks to Bron Gondwana for tracing this bug. libmailwatch-core/mailwatch-net-conn.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libmailwatch-core/mailwatch-net-conn.c b/libmailwatch-core/mailwatch-net-conn.c index 785eaf4..8d0d07d 100644 --- a/libmailwatch-core/mailwatch-net-conn.c +++ b/libmailwatch-core/mailwatch-net-conn.c @@ -760,6 +760,13 @@ xfce_mailwatch_net_conn_recv_internal(XfceMailwatchNetConn *net_conn, if(!block) tv.tv_sec = 0; +#ifdef HAVE_SSL_SUPPORT + /* Read data from the gnutls read buffer, first. */ + if (net_conn->is_secure + && (ret = gnutls_record_check_pending(net_conn->gt_session)) > 0) { + break; + } +#endif ret = select(FD_SETSIZE, &rfd, NULL, NULL, &tv); if(ret > 0 && FD_ISSET(net_conn->fd, &rfd)) break; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits