rendered paste bodydiff --git a/loudmouth/lm-connection.c b/loudmouth/lm-connection.c
index 13ae1d3..93c3fa8 100644
--- a/loudmouth/lm-connection.c
+++ b/loudmouth/lm-connection.c
@@ -927,7 +927,7 @@ _lm_connection_starttls_cb (LmMessageHandler *handler,
LmMessage *message,
gpointer user_data)
{
- if (lm_socket_starttls (connection->socket, connection->ssl)) {
+ if (lm_socket_starttls (connection->socket)) {
connection_send_stream_header (connection);
} else {
connection_do_close (connection);
diff --git a/loudmouth/lm-socket.c b/loudmouth/lm-socket.c
index 4b61c7c..bb8989f 100644
--- a/loudmouth/lm-socket.c
+++ b/loudmouth/lm-socket.c
@@ -340,18 +340,13 @@ _lm_socket_ssl_init (LmSocket *socket, gboolean delayed)
}
gboolean
-lm_socket_starttls (LmSocket *socket, LmSSL *ssl)
+lm_socket_starttls (LmSocket *socket)
{
- /* no-op if we're using old-style ssl (so ssl is set up already) */
- if (socket->ssl)
- return TRUE;
+ g_return_val_if_fail (lm_ssl_get_use_starttls(socket->ssl) == FALSE, FALSE);
- socket->ssl = ssl;
return _lm_socket_ssl_init (socket, TRUE);
}
-
-
void
_lm_socket_succeeded (LmConnectData *connect_data)
{
@@ -996,7 +991,7 @@ lm_socket_create (GMainContext *context,
socket->server = g_strdup (server);
socket->port = port;
socket->cancel_open = FALSE;
- socket->ssl = NULL;
+ socket->ssl = ssl;
socket->proxy = NULL;
socket->blocking = blocking;
socket->data_func = data_func;
@@ -1012,8 +1007,7 @@ lm_socket_create (GMainContext *context,
socket->proxy = lm_proxy_ref (proxy);
}
- if (ssl) {
- socket->ssl = lm_ssl_ref (ssl);
+ if (socket->ssl && !lm_ssl_get_use_starttls (socket->ssl)) {
_lm_ssl_initialize (socket->ssl);
}
diff --git a/loudmouth/lm-socket.h b/loudmouth/lm-socket.h
index 2d8287b..2758f6f 100644
--- a/loudmouth/lm-socket.h
+++ b/loudmouth/lm-socket.h
@@ -69,7 +69,7 @@ void lm_socket_unref (LmSocket *socket);
#ifdef HAVE_ASYNCNS
void _asyncns_cancel (LmSocket *socket);
#endif
-gboolean lm_socket_starttls (LmSocket *socket, LmSSL *ssl);
+gboolean lm_socket_starttls (LmSocket *socket);
#endif /* __LM_SOCKET_H__ */