diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/misc.c | 10 | ||||
| -rw-r--r-- | lib/misc.h | 2 | ||||
| -rw-r--r-- | lib/ssl_gnutls.c | 6 | 
3 files changed, 16 insertions, 2 deletions
| @@ -44,6 +44,8 @@  #include <resolv.h>  #endif +#include "ssl_client.h" +  void strip_linefeed(gchar *text)  {  	int i, j; @@ -590,3 +592,11 @@ char *word_wrap( char *msg, int line_len )  	return g_string_free( ret, FALSE );  } + +gboolean ssl_sockerr_again( void *ssl ) +{ +	if( ssl ) +		return ssl_errno == SSL_AGAIN; +	else +		return sockerr_again(); +} @@ -65,4 +65,6 @@ G_MODULE_EXPORT struct ns_srv_reply *srv_lookup( char *service, char *protocol,  G_MODULE_EXPORT char *word_wrap( char *msg, int line_len ); +G_MODULE_EXPORT gboolean ssl_sockerr_again( void *ssl ); +  #endif diff --git a/lib/ssl_gnutls.c b/lib/ssl_gnutls.c index 221a2862..b964ab49 100644 --- a/lib/ssl_gnutls.c +++ b/lib/ssl_gnutls.c @@ -222,8 +222,10 @@ void ssl_disconnect( void *conn_ )  	closesocket( conn->fd ); -	gnutls_deinit( conn->session ); -	gnutls_certificate_free_credentials( conn->xcred ); +	if( conn->session ) +		gnutls_deinit( conn->session ); +	if( conn->xcred ) +		gnutls_certificate_free_credentials( conn->xcred );  	g_free( conn );  } | 
