aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl_client.h
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2011-11-14 18:43:03 +0800
committerWilmer van der Gaast <wilmer@gaast.net>2011-11-14 18:43:03 +0800
commit80acb6db8133ebd16c3257d33721994ed164ba9f (patch)
tree68775e4feeb4aa81f19524a8389d5a8d7ad91b8b /lib/ssl_client.h
parent03a8f8ec82719512f059fdd2c0dca3bb919b059c (diff)
GnuTLS now also needs ssl_pending() implemented. Bug #860.
Diffstat (limited to 'lib/ssl_client.h')
-rw-r--r--lib/ssl_client.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/ssl_client.h b/lib/ssl_client.h
index d0340840..091335c5 100644
--- a/lib/ssl_client.h
+++ b/lib/ssl_client.h
@@ -62,7 +62,15 @@ G_MODULE_EXPORT void *ssl_starttls( int fd, ssl_input_function func, gpointer da
G_MODULE_EXPORT int ssl_read( void *conn, char *buf, int len );
G_MODULE_EXPORT int ssl_write( void *conn, const char *buf, int len );
-/* See ssl_openssl.c for an explanation. */
+/* Now needed by most SSL libs. See for more info:
+ http://www.gnu.org/software/gnutls/manual/gnutls.html#index-gnutls_005frecord_005fcheck_005fpending-209
+ http://www.openssl.org/docs/ssl/SSL_pending.html
+
+ Required because OpenSSL empties the TCP buffer completely but doesn't
+ necessarily give us all the unencrypted data. Or maybe you didn't ask
+ for all of it because your buffer is too small.
+
+ Returns 0 if there's nothing left, 1 if there's more data. */
G_MODULE_EXPORT int ssl_pending( void *conn );
/* Abort the SSL connection and disconnect the socket. Do not use close()