summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <pgriffis@igalia.com>2020-08-24 16:42:52 -0700
committerPatrick Griffis <pgriffis@igalia.com>2020-09-19 15:41:24 -0700
commitc8a211c04ee8f6c87a797f0f756360916e737325 (patch)
tree8991027260cdde73581a84f6706e090c63222234
parent1618e3a53539b32b435d7c7a00bb4b84418d6224 (diff)
downloadlibsoup-c8a211c04ee8f6c87a797f0f756360916e737325.tar.gz
Remove hostname arg from soup_socket_start_proxy_ssl()
The socket already stores the remote connectable which has the hostname.
-rw-r--r--libsoup/soup-connection.c7
-rw-r--r--libsoup/soup-socket-private.h2
-rw-r--r--libsoup/soup-socket.c36
-rw-r--r--libsoup/soup-socket.h1
4 files changed, 11 insertions, 35 deletions
diff --git a/libsoup/soup-connection.c b/libsoup/soup-connection.c
index fb6eac40..df2cdb59 100644
--- a/libsoup/soup-connection.c
+++ b/libsoup/soup-connection.c
@@ -374,7 +374,7 @@ socket_connect_complete (GObject *object, GAsyncResult *result, gpointer user_da
priv->proxy_uri = soup_socket_get_http_proxy_uri (sock);
if (priv->ssl && !priv->proxy_uri) {
- soup_socket_handshake_async (sock, priv->remote_uri->host,
+ soup_socket_handshake_async (sock,
g_task_get_cancellable (task),
socket_handshake_complete, task);
return;
@@ -468,7 +468,6 @@ soup_connection_connect_sync (SoupConnection *conn,
if (priv->ssl && !priv->proxy_uri) {
if (!soup_socket_handshake_sync (priv->socket,
- priv->remote_uri->host,
cancellable, error))
return FALSE;
}
@@ -506,7 +505,7 @@ soup_connection_start_ssl_sync (SoupConnection *conn,
g_return_val_if_fail (SOUP_IS_CONNECTION (conn), FALSE);
priv = soup_connection_get_instance_private (conn);
- if (soup_socket_handshake_sync (priv->socket, priv->remote_uri->host,
+ if (soup_socket_handshake_sync (priv->socket,
cancellable, error)) {
soup_connection_event (conn, G_SOCKET_CLIENT_COMPLETE, NULL);
return TRUE;
@@ -544,7 +543,7 @@ soup_connection_start_ssl_async (SoupConnection *conn,
task = g_task_new (conn, cancellable, callback, user_data);
- soup_socket_handshake_async (priv->socket, priv->remote_uri->host,
+ soup_socket_handshake_async (priv->socket,
cancellable, start_ssl_completed, task);
}
diff --git a/libsoup/soup-socket-private.h b/libsoup/soup-socket-private.h
index cd1ed736..9384de58 100644
--- a/libsoup/soup-socket-private.h
+++ b/libsoup/soup-socket-private.h
@@ -25,11 +25,9 @@ gboolean soup_socket_connect_finish_internal (SoupSocket *sock,
GError **error);
gboolean soup_socket_handshake_sync (SoupSocket *sock,
- const char *host,
GCancellable *cancellable,
GError **error);
void soup_socket_handshake_async (SoupSocket *sock,
- const char *host,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index b7b41b5d..b876b6a8 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -66,7 +66,7 @@ enum {
typedef struct {
GInetSocketAddress *local_addr, *remote_addr;
- GSocketConnectable *remote_connectable;
+ GSocketConnectable *remote_connectable;
GIOStream *conn, *iostream;
GSocket *gsock;
GInputStream *istream;
@@ -1132,7 +1132,7 @@ listen_watch (GObject *pollable, gpointer data)
finish_socket_setup (new);
if (new_priv->ssl_creds) {
- if (!soup_socket_start_proxy_ssl (new, NULL, NULL)) {
+ if (!soup_socket_start_proxy_ssl (new, NULL)) {
g_object_unref (new);
return TRUE;
}
@@ -1258,7 +1258,6 @@ soup_socket_accept_certificate (GTlsConnection *conn, GTlsCertificate *cert,
static gboolean
soup_socket_setup_ssl (SoupSocket *sock,
- const char *ssl_host,
GCancellable *cancellable,
GError **error)
{
@@ -1275,18 +1274,15 @@ soup_socket_setup_ssl (SoupSocket *sock,
if (!priv->is_server) {
GTlsClientConnection *conn;
- GSocketConnectable *identity;
- identity = g_network_address_new (ssl_host, 0);
conn = g_initable_new (g_tls_backend_get_client_connection_type (backend),
cancellable, error,
"base-io-stream", priv->conn,
- "server-identity", identity,
+ "server-identity", priv->remote_connectable,
"database", priv->ssl_creds,
"require-close-notify", FALSE,
"use-ssl3", priv->ssl_fallback,
NULL);
- g_object_unref (identity);
if (!conn)
return FALSE;
@@ -1349,21 +1345,7 @@ soup_socket_setup_ssl (SoupSocket *sock,
gboolean
soup_socket_start_ssl (SoupSocket *sock, GCancellable *cancellable)
{
- SoupSocketPrivate *priv = soup_socket_get_instance_private (sock);
- char *hostname = NULL;
- gboolean ret;
-
- if (G_IS_NETWORK_ADDRESS (priv->remote_connectable))
- hostname = g_strdup (g_network_address_get_hostname (G_NETWORK_ADDRESS (priv->remote_connectable)));
- else if (G_IS_INET_SOCKET_ADDRESS (priv->remote_connectable)) {
- GInetAddress *addr = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (priv->remote_connectable));
- hostname = g_inet_address_to_string (addr);
- } else
- g_assert_not_reached ();
-
- ret = soup_socket_setup_ssl (sock, hostname, cancellable, NULL);
- g_free (hostname);
- return ret;
+ return soup_socket_setup_ssl (sock, cancellable, NULL);
}
/**
@@ -1378,21 +1360,20 @@ soup_socket_start_ssl (SoupSocket *sock, GCancellable *cancellable)
* Return value: success or failure
**/
gboolean
-soup_socket_start_proxy_ssl (SoupSocket *sock, const char *ssl_host,
+soup_socket_start_proxy_ssl (SoupSocket *sock,
GCancellable *cancellable)
{
- return soup_socket_setup_ssl (sock, ssl_host, cancellable, NULL);
+ return soup_socket_setup_ssl (sock, cancellable, NULL);
}
gboolean
soup_socket_handshake_sync (SoupSocket *sock,
- const char *ssl_host,
GCancellable *cancellable,
GError **error)
{
SoupSocketPrivate *priv = soup_socket_get_instance_private (sock);
- if (!soup_socket_setup_ssl (sock, ssl_host, cancellable, error))
+ if (!soup_socket_setup_ssl (sock, cancellable, error))
return FALSE;
soup_socket_event (sock, G_SOCKET_CLIENT_TLS_HANDSHAKING, priv->conn);
@@ -1425,7 +1406,6 @@ handshake_async_ready (GObject *source, GAsyncResult *result, gpointer user_data
void
soup_socket_handshake_async (SoupSocket *sock,
- const char *ssl_host,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
@@ -1436,7 +1416,7 @@ soup_socket_handshake_async (SoupSocket *sock,
task = g_task_new (sock, cancellable, callback, user_data);
- if (!soup_socket_setup_ssl (sock, ssl_host, cancellable, &error)) {
+ if (!soup_socket_setup_ssl (sock, cancellable, &error)) {
g_task_return_error (task, error);
g_object_unref (task);
return;
diff --git a/libsoup/soup-socket.h b/libsoup/soup-socket.h
index 033d0620..16c289e5 100644
--- a/libsoup/soup-socket.h
+++ b/libsoup/soup-socket.h
@@ -72,7 +72,6 @@ gboolean soup_socket_listen (SoupSocket *sock);
gboolean soup_socket_start_ssl (SoupSocket *sock,
GCancellable *cancellable);
gboolean soup_socket_start_proxy_ssl (SoupSocket *sock,
- const char *ssl_host,
GCancellable *cancellable);
gboolean soup_socket_is_ssl (SoupSocket *sock);