diff options
Diffstat (limited to 'protocols/skype')
| -rw-r--r-- | protocols/skype/skype.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/protocols/skype/skype.c b/protocols/skype/skype.c index 248c9da0..6515a801 100644 --- a/protocols/skype/skype.c +++ b/protocols/skype/skype.c @@ -1143,8 +1143,9 @@ static gboolean skype_read_callback(gpointer data, gint fd,  		}  		g_strfreev(lines);  	} else if (st == 0 || (st < 0 && !sockerr_again())) { -		closesocket(sd->fd); +		ssl_disconnect(sd->ssl);  		sd->fd = -1; +		sd->ssl = NULL;  		imcb_error(ic, "Error while reading from server");  		imc_logout(ic, TRUE); @@ -1233,6 +1234,10 @@ static void skype_logout(struct im_connection *ic)  		struct skype_group *sg = (struct skype_group *)g_list_nth_data(sd->groups, i);  		skype_group_free(sg, FALSE);  	} + +	if (sd->ssl) +		ssl_disconnect(sd->ssl); +  	g_free(sd->username);  	g_free(sd->handle);  	g_free(sd); | 
