summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <pgriffis@igalia.com>2020-03-25 00:05:41 -0700
committerPatrick Griffis <pgriffis@igalia.com>2020-09-19 15:41:24 -0700
commit36b7ae15d371515d0a87c3926fcad2b8113457ed (patch)
treebf72a59fe6c91c7fcac70c0b19745c18bc46b0e0
parent685c40044da48b99cd2c8a6c08a1584d18e0d959 (diff)
downloadlibsoup-36b7ae15d371515d0a87c3926fcad2b8113457ed.tar.gz
Make SoupSocket private API
-rw-r--r--docs/reference/libsoup-2.4-sections.txt49
-rw-r--r--libsoup/Soup-2.4.metadata2
-rw-r--r--libsoup/include/soup-installed.h1
-rw-r--r--libsoup/meson.build1
-rw-r--r--libsoup/soup-autocleanups.h1
-rw-r--r--libsoup/soup-server-private.h23
-rw-r--r--libsoup/soup-server.c2
-rw-r--r--libsoup/soup-server.h5
-rw-r--r--libsoup/soup-session-feature.c5
-rw-r--r--libsoup/soup-session-feature.h3
-rw-r--r--libsoup/soup-session.c9
-rw-r--r--libsoup/soup-socket.h15
-rw-r--r--tests/connection-test.c23
-rw-r--r--tests/timeout-test.c8
14 files changed, 44 insertions, 103 deletions
diff --git a/docs/reference/libsoup-2.4-sections.txt b/docs/reference/libsoup-2.4-sections.txt
index 02d1af95..cc4db3b8 100644
--- a/docs/reference/libsoup-2.4-sections.txt
+++ b/docs/reference/libsoup-2.4-sections.txt
@@ -537,55 +537,6 @@ soup_auth_manager_get_type
</SECTION>
<SECTION>
-<FILE>soup-socket</FILE>
-<TITLE>SoupSocket</TITLE>
-SoupSocket
-soup_socket_new
-<SUBSECTION>
-SoupSocketCallback
-soup_socket_connect_async
-soup_socket_connect_sync
-<SUBSECTION>
-soup_socket_listen
-<SUBSECTION>
-soup_socket_start_ssl
-soup_socket_start_proxy_ssl
-soup_socket_is_ssl
-<SUBSECTION>
-soup_socket_disconnect
-soup_socket_is_connected
-<SUBSECTION>
-soup_socket_get_local_address
-soup_socket_get_remote_address
-<SUBSECTION>
-SoupSocketIOStatus
-soup_socket_read
-soup_socket_read_until
-soup_socket_write
-<SUBSECTION>
-SOUP_SOCKET_LOCAL_ADDRESS
-SOUP_SOCKET_REMOTE_ADDRESS
-SOUP_SOCKET_FLAG_NONBLOCKING
-SOUP_SOCKET_IS_SERVER
-SOUP_SOCKET_SSL_CREDENTIALS
-SOUP_SOCKET_TIMEOUT
-SOUP_SOCKET_SSL_FALLBACK
-SOUP_SOCKET_SSL_STRICT
-SOUP_SOCKET_TLS_CERTIFICATE
-SOUP_SOCKET_TLS_ERRORS
-SOUP_SOCKET_TRUSTED_CERTIFICATE
-<SUBSECTION Standard>
-SOUP_SOCKET
-SOUP_IS_SOCKET
-SOUP_TYPE_SOCKET
-soup_socket_get_type
-SOUP_SOCKET_CLASS
-SOUP_IS_SOCKET_CLASS
-SOUP_SOCKET_GET_CLASS
-SoupSocketClass
-</SECTION>
-
-<SECTION>
<FILE>soup-uri</FILE>
<TITLE>SoupURI</TITLE>
SoupURI
diff --git a/libsoup/Soup-2.4.metadata b/libsoup/Soup-2.4.metadata
index 87c11637..c1d3d273 100644
--- a/libsoup/Soup-2.4.metadata
+++ b/libsoup/Soup-2.4.metadata
@@ -33,8 +33,6 @@ Session
.get_features type_arguments="weak Soup.SessionFeature"
.send_async.cancellable#parameter default=null
Session*.new_with_options skip=false
-Socket
- .new skip=false
URI
.set_query_from_fields skip=false
// uri_host_*.* type="Soup.URI"
diff --git a/libsoup/include/soup-installed.h b/libsoup/include/soup-installed.h
index 320e056d..1e1a0ebd 100644
--- a/libsoup/include/soup-installed.h
+++ b/libsoup/include/soup-installed.h
@@ -42,7 +42,6 @@ extern "C" {
#include <libsoup/soup-request-http.h>
#include <libsoup/soup-server.h>
#include <libsoup/soup-session-feature.h>
-#include <libsoup/soup-socket.h>
#include <libsoup/soup-status.h>
#include <libsoup/soup-tld.h>
#include <libsoup/soup-uri.h>
diff --git a/libsoup/meson.build b/libsoup/meson.build
index 4ca0e379..6767372f 100644
--- a/libsoup/meson.build
+++ b/libsoup/meson.build
@@ -175,7 +175,6 @@ soup_introspection_headers = [
'soup-server.h',
'soup-session.h',
'soup-session-feature.h',
- 'soup-socket.h',
'soup-status.h',
'soup-tld.h',
'soup-types.h',
diff --git a/libsoup/soup-autocleanups.h b/libsoup/soup-autocleanups.h
index 9566c4ae..98463080 100644
--- a/libsoup/soup-autocleanups.h
+++ b/libsoup/soup-autocleanups.h
@@ -54,7 +54,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupServer, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupSession, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupSessionAsync, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupSessionFeature, g_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupSocket, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupURI, soup_uri_free)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupWebsocketConnection, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(SoupXMLRPCParams, soup_xmlrpc_params_free)
diff --git a/libsoup/soup-server-private.h b/libsoup/soup-server-private.h
new file mode 100644
index 00000000..102bbc80
--- /dev/null
+++ b/libsoup/soup-server-private.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2020 Igalia S.L.
+ *
+ * This file is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include "soup-server.h"
+
+SoupSocket *soup_client_context_get_socket (SoupClientContext *client);
diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c
index 221c182b..208b0086 100644
--- a/libsoup/soup-server.c
+++ b/libsoup/soup-server.c
@@ -13,7 +13,7 @@
#include <glib/gi18n-lib.h>
-#include "soup-server.h"
+#include "soup-server-private.h"
#include "soup.h"
#include "soup-message-private.h"
#include "soup-misc.h"
diff --git a/libsoup/soup-server.h b/libsoup/soup-server.h
index bf1d7e3b..9caea25d 100644
--- a/libsoup/soup-server.h
+++ b/libsoup/soup-server.h
@@ -193,11 +193,6 @@ const char *soup_client_context_get_auth_user (SoupClientContext *clien
SOUP_AVAILABLE_IN_2_50
GIOStream *soup_client_context_steal_connection (SoupClientContext *client);
-/* Legacy API */
-SOUP_AVAILABLE_IN_2_4
-SOUP_DEPRECATED_IN_2_48
-SoupSocket *soup_client_context_get_socket (SoupClientContext *client);
-
G_END_DECLS
#endif /* __SOUP_SERVER_H__ */
diff --git a/libsoup/soup-session-feature.c b/libsoup/soup-session-feature.c
index 12716a62..7b9a3a83 100644
--- a/libsoup/soup-session-feature.c
+++ b/libsoup/soup-session-feature.c
@@ -74,14 +74,13 @@ request_queued (SoupSession *session, SoupMessage *msg, gpointer feature)
}
static void
-request_started (SoupSession *session, SoupMessage *msg,
- SoupSocket *socket, gpointer feature)
+request_started (SoupSession *session, SoupMessage *msg, gpointer feature)
{
if (soup_message_disables_feature (msg, feature))
return;
SOUP_SESSION_FEATURE_GET_CLASS (feature)->
- request_started (feature, session, msg, socket);
+ request_started (feature, session, msg);
}
static void
diff --git a/libsoup/soup-session-feature.h b/libsoup/soup-session-feature.h
index dd50a4a4..4ce7825f 100644
--- a/libsoup/soup-session-feature.h
+++ b/libsoup/soup-session-feature.h
@@ -31,8 +31,7 @@ typedef struct {
SoupMessage *msg);
void (*request_started) (SoupSessionFeature *feature,
SoupSession *session,
- SoupMessage *msg,
- SoupSocket *socket);
+ SoupMessage *msg);
void (*request_unqueued) (SoupSessionFeature *feature,
SoupSession *session,
SoupMessage *msg);
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 1f08a269..e358df31 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1044,8 +1044,7 @@ soup_session_send_queue_item (SoupSession *session,
"Connection", "Keep-Alive");
}
- g_signal_emit (session, signals[REQUEST_STARTED], 0,
- item->msg, soup_connection_get_socket (item->conn));
+ g_signal_emit (session, signals[REQUEST_STARTED], 0, item->msg);
soup_message_starting (item->msg);
if (item->state == SOUP_MESSAGE_RUNNING)
soup_connection_send_request (item->conn, item, completion_cb, item);
@@ -2616,7 +2615,6 @@ soup_session_class_init (SoupSessionClass *session_class)
* SoupSession::request-started:
* @session: the session
* @msg: the request being sent
- * @socket: the socket the request is being sent on
*
* Emitted just before a request is sent. See
* #SoupSession::request_queued for a detailed description of
@@ -2631,9 +2629,8 @@ soup_session_class_init (SoupSessionClass *session_class)
G_STRUCT_OFFSET (SoupSessionClass, request_started),
NULL, NULL,
NULL,
- G_TYPE_NONE, 2,
- SOUP_TYPE_MESSAGE,
- SOUP_TYPE_SOCKET);
+ G_TYPE_NONE, 1,
+ SOUP_TYPE_MESSAGE);
/**
* SoupSession::request-unqueued:
diff --git a/libsoup/soup-socket.h b/libsoup/soup-socket.h
index a9b61a68..033d0620 100644
--- a/libsoup/soup-socket.h
+++ b/libsoup/soup-socket.h
@@ -56,42 +56,30 @@ typedef void (*SoupSocketCallback) (SoupSocket *sock,
guint status,
gpointer user_data);
-SOUP_AVAILABLE_IN_2_4
GType soup_socket_get_type (void);
-SOUP_AVAILABLE_IN_2_4
SoupSocket *soup_socket_new (const char *optname1,
...) G_GNUC_NULL_TERMINATED;
-SOUP_AVAILABLE_IN_2_4
void soup_socket_connect_async (SoupSocket *sock,
GCancellable *cancellable,
SoupSocketCallback callback,
gpointer user_data);
-SOUP_AVAILABLE_IN_2_4
guint soup_socket_connect_sync (SoupSocket *sock,
GCancellable *cancellable);
-SOUP_AVAILABLE_IN_2_4
gboolean soup_socket_listen (SoupSocket *sock);
-SOUP_AVAILABLE_IN_2_4
gboolean soup_socket_start_ssl (SoupSocket *sock,
GCancellable *cancellable);
-SOUP_AVAILABLE_IN_2_4
gboolean soup_socket_start_proxy_ssl (SoupSocket *sock,
const char *ssl_host,
GCancellable *cancellable);
-SOUP_AVAILABLE_IN_2_4
gboolean soup_socket_is_ssl (SoupSocket *sock);
-SOUP_AVAILABLE_IN_2_4
void soup_socket_disconnect (SoupSocket *sock);
-SOUP_AVAILABLE_IN_2_4
gboolean soup_socket_is_connected (SoupSocket *sock);
-SOUP_AVAILABLE_IN_2_4
GInetSocketAddress *soup_socket_get_local_address (SoupSocket *sock);
-SOUP_AVAILABLE_IN_2_4
GInetSocketAddress *soup_socket_get_remote_address (SoupSocket *sock);
typedef enum {
@@ -101,14 +89,12 @@ typedef enum {
SOUP_SOCKET_ERROR
} SoupSocketIOStatus;
-SOUP_AVAILABLE_IN_2_4
SoupSocketIOStatus soup_socket_read (SoupSocket *sock,
gpointer buffer,
gsize len,
gsize *nread,
GCancellable *cancellable,
GError **error);
-SOUP_AVAILABLE_IN_2_4
SoupSocketIOStatus soup_socket_read_until (SoupSocket *sock,
gpointer buffer,
gsize len,
@@ -119,7 +105,6 @@ SoupSocketIOStatus soup_socket_read_until (SoupSocket *sock,
GCancellable *cancellable,
GError **error);
-SOUP_AVAILABLE_IN_2_4
SoupSocketIOStatus soup_socket_write (SoupSocket *sock,
gconstpointer buffer,
gsize len,
diff --git a/tests/connection-test.c b/tests/connection-test.c
index 27ee74e9..825fd9a9 100644
--- a/tests/connection-test.c
+++ b/tests/connection-test.c
@@ -7,6 +7,7 @@
#include "soup-connection.h"
#include "soup-socket-private.h"
+#include "soup-server-private.h"
#include <gio/gnetworking.h>
@@ -61,9 +62,7 @@ timeout_request_started (SoupServer *server, SoupMessage *msg,
g_signal_handlers_disconnect_by_func (server, timeout_request_started, NULL);
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
sock = soup_client_context_get_socket (client);
- G_GNUC_END_IGNORE_DEPRECATIONS;
readable = g_signal_connect (sock, "readable",
G_CALLBACK (timeout_socket), NULL);
@@ -141,9 +140,7 @@ server_callback (SoupServer *server, SoupMessage *msg,
* the declared Content-Length. Instead, we
* forcibly close the socket at that point.
*/
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
sock = soup_client_context_get_socket (context);
- G_GNUC_END_IGNORE_DEPRECATIONS;
g_signal_connect (msg, "wrote-chunk",
G_CALLBACK (close_socket), sock);
} else if (no_close) {
@@ -161,9 +158,7 @@ server_callback (SoupServer *server, SoupMessage *msg,
if (!strcmp (path, "/timeout-persistent")) {
SoupSocket *sock;
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
sock = soup_client_context_get_socket (context);
- G_GNUC_END_IGNORE_DEPRECATIONS;
setup_timeout_persistent (server, sock);
}
@@ -217,10 +212,11 @@ do_content_length_framing_test (void)
}
static void
-request_started_socket_collector (SoupSession *session, SoupMessage *msg,
- SoupSocket *socket, gpointer user_data)
+request_started_socket_collector (SoupSession *session, SoupMessage *msg, gpointer user_data)
{
SoupSocket **sockets = user_data;
+ SoupConnection *conn = soup_message_get_connection (msg);
+ SoupSocket *socket = soup_connection_get_socket (conn);
int i;
debug_printf (2, " msg %p => socket %p\n", msg, socket);
@@ -395,8 +391,7 @@ do_persistent_connection_timeout_test (void)
}
static void
-cancel_cancellable_handler (SoupSession *session, SoupMessage *msg,
- SoupSocket *socket, gpointer user_data)
+cancel_cancellable_handler (SoupSession *session, SoupMessage *msg, gpointer user_data)
{
g_cancellable_cancel (user_data);
}
@@ -507,8 +502,7 @@ quit_loop (gpointer data)
}
static void
-max_conns_request_started (SoupSession *session, SoupMessage *msg,
- SoupSocket *socket, gpointer user_data)
+max_conns_request_started (SoupSession *session, SoupMessage *msg, gpointer user_data)
{
if (++msgs_done >= MAX_CONNS) {
if (quit_loop_timeout)
@@ -608,10 +602,11 @@ do_max_conns_test (void)
}
static void
-np_request_started (SoupSession *session, SoupMessage *msg,
- SoupSocket *socket, gpointer user_data)
+np_request_started (SoupSession *session, SoupMessage *msg, gpointer user_data)
{
SoupSocket **save_socket = user_data;
+ SoupConnection *conn = soup_message_get_connection (msg);
+ SoupSocket *socket = soup_connection_get_socket (conn);
*save_socket = g_object_ref (socket);
}
diff --git a/tests/timeout-test.c b/tests/timeout-test.c
index 430d5476..5b7685fd 100644
--- a/tests/timeout-test.c
+++ b/tests/timeout-test.c
@@ -1,6 +1,8 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
#include "test-utils.h"
+#include "soup-message-private.h"
+#include "soup-connection.h"
static gboolean slow_https;
@@ -13,12 +15,12 @@ message_finished (SoupMessage *msg, gpointer user_data)
}
static void
-request_started_cb (SoupSession *session, SoupMessage *msg,
- SoupSocket *socket, gpointer user_data)
+request_started_cb (SoupSession *session, SoupMessage *msg, gpointer user_data)
{
SoupSocket **ret = user_data;
+ SoupConnection *conn = soup_message_get_connection (msg);
- *ret = socket;
+ *ret = soup_connection_get_socket (conn);
}
static void