diff options
| -rw-r--r-- | lib/misc.c | 10 | ||||
| -rw-r--r-- | lib/misc.h | 2 | ||||
| -rw-r--r-- | protocols/jabber/io.c | 4 | 
3 files changed, 14 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/protocols/jabber/io.c b/protocols/jabber/io.c index 61cd142e..29561b86 100644 --- a/protocols/jabber/io.c +++ b/protocols/jabber/io.c @@ -119,7 +119,7 @@ static gboolean jabber_write_queue( struct im_connection *ic )  		return TRUE;  	} -	else if( st == 0 || ( st < 0 && !sockerr_again() ) ) +	else if( st == 0 || ( st < 0 && !ssl_sockerr_again( jd->ssl ) ) )  	{  		/* Set fd to -1 to make sure we won't write to it anymore. */  		closesocket( jd->fd );	/* Shouldn't be necessary after errors? */ @@ -230,7 +230,7 @@ static gboolean jabber_read_callback( gpointer data, gint fd, b_input_condition  			}  		}  	} -	else if( st == 0 || ( st < 0 && !sockerr_again() ) ) +	else if( st == 0 || ( st < 0 && !ssl_sockerr_again( jd->ssl ) ) )  	{  		closesocket( jd->fd );  		jd->fd = -1; | 
