All pastes #749416 Raw Edit

Miscellany

public text v1 · immutable
#749416 ·published 2007-10-25 18:04 UTC
rendered paste body
diff --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__ */