Mercurial > pidgin
diff libpurple/protocols/jabber/bosh.c @ 26272:fcee93c74230
BOSH: For authentication purposes, HTTPS is equivalent to a secured JabberStream.
Since we always require the connection from CM to server to be secure, allow
BOSH+HTTPS to pass 'Require SSL/TLS'.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 23 Mar 2009 00:38:20 +0000 |
parents | 31bb0d6e7f7e |
children | 79ca1cf55d9d |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/bosh.c Sun Mar 22 23:44:31 2009 +0000 +++ b/libpurple/protocols/jabber/bosh.c Mon Mar 23 00:38:20 2009 +0000 @@ -216,6 +216,11 @@ g_free(conn); } +gboolean jabber_bosh_connection_is_ssl(PurpleBOSHConnection *conn) +{ + return conn->ssl; +} + void jabber_bosh_connection_close(PurpleBOSHConnection *conn) { jabber_bosh_connection_send_native(conn, PACKET_TERMINATE, NULL); @@ -580,9 +585,18 @@ * with AIM! */ conn->ready = FALSE; - conn->fd = -1; - purple_input_remove(conn->ie_handle); - conn->ie_handle = 0; + if (conn->psc) { + purple_ssl_close(conn->psc); + conn->psc = NULL; + } else if (conn->fd >= 0) { + close(conn->fd); + conn->fd = -1; + } + + if (conn->ie_handle) { + purple_input_remove(conn->ie_handle); + conn->ie_handle = 0; + } if (conn->bosh->pipelining) /* Hmmmm, fall back to multiple connections */ @@ -686,7 +700,7 @@ if (cnt < 0) purple_debug_info("jabber", "bosh read=%d, errno=%d\n", cnt, errno); else - purple_debug_info("jabber", "bosh server closed connection\n"); + purple_debug_info("jabber", "bosh server closed the connection\n"); /* * If the socket is closed, the processing really needs to know about