summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2021-05-14 10:34:47 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2021-05-14 10:45:14 +0200
commitfcbbcf20af32744b4b01bc440a321d1a44b56731 (patch)
tree4303749d84d2dda160233608be5a2ffbb48b8a8c
parent27ec68b66ce5719b924d6d6a71adcda7998841d4 (diff)
downloadlibsoup-fcbbcf20af32744b4b01bc440a321d1a44b56731.tar.gz
sniffer: remove unused bytes for sniffing from SoupMessage
It's set by the sniffer but never used. Also remove soup_content_sniffer_get_buffer_size() that is only used by sniffer stream and always returns 512
-rw-r--r--docs/reference/libsoup-3.0-sections.txt1
-rw-r--r--libsoup/content-sniffer/soup-content-sniffer-stream.c14
-rw-r--r--libsoup/content-sniffer/soup-content-sniffer.c27
-rw-r--r--libsoup/content-sniffer/soup-content-sniffer.h12
-rw-r--r--libsoup/soup-message-private.h3
-rw-r--r--libsoup/soup-message.c9
6 files changed, 13 insertions, 53 deletions
diff --git a/docs/reference/libsoup-3.0-sections.txt b/docs/reference/libsoup-3.0-sections.txt
index 2a899a81..50050af0 100644
--- a/docs/reference/libsoup-3.0-sections.txt
+++ b/docs/reference/libsoup-3.0-sections.txt
@@ -746,7 +746,6 @@ soup_cookie_jar_db_get_type
SoupContentSniffer
soup_content_sniffer_new
soup_content_sniffer_sniff
-soup_content_sniffer_get_buffer_size
<SUBSECTION Standard>
SOUP_CONTENT_SNIFFER
SOUP_CONTENT_SNIFFER_CLASS
diff --git a/libsoup/content-sniffer/soup-content-sniffer-stream.c b/libsoup/content-sniffer/soup-content-sniffer-stream.c
index b3e107e9..30a7b372 100644
--- a/libsoup/content-sniffer/soup-content-sniffer-stream.c
+++ b/libsoup/content-sniffer/soup-content-sniffer-stream.c
@@ -34,7 +34,7 @@ typedef struct {
SoupMessage *msg;
guchar *buffer;
- gsize buffer_size, buffer_nread;
+ gsize buffer_nread;
gboolean sniffing;
GError *error;
@@ -42,6 +42,8 @@ typedef struct {
GHashTable *sniffed_params;
} SoupContentSnifferStreamPrivate;
+#define BUFFER_SIZE 512
+
static void soup_content_sniffer_stream_pollable_init (GPollableInputStreamInterface *pollable_interface, gpointer interface_data);
G_DEFINE_TYPE_WITH_CODE (SoupContentSnifferStream, soup_content_sniffer_stream, G_TYPE_FILTER_INPUT_STREAM,
@@ -75,9 +77,6 @@ soup_content_sniffer_stream_set_property (GObject *object, guint prop_id,
switch (prop_id) {
case PROP_SNIFFER:
priv->sniffer = g_value_dup_object (value);
- /* FIXME: supposed to wait until after got-headers for this */
- priv->buffer_size = soup_content_sniffer_get_buffer_size (priv->sniffer);
- priv->buffer = g_malloc (priv->buffer_size);
break;
case PROP_MESSAGE:
priv->msg = g_value_dup_object (value);
@@ -118,15 +117,18 @@ read_and_sniff (GInputStream *stream, gboolean blocking,
GError *my_error = NULL;
GBytes *buf;
+ if (!priv->buffer)
+ priv->buffer = g_malloc (BUFFER_SIZE);
+
do {
nread = g_pollable_stream_read (G_FILTER_INPUT_STREAM (stream)->base_stream,
priv->buffer + priv->buffer_nread,
- priv->buffer_size - priv->buffer_nread,
+ BUFFER_SIZE - priv->buffer_nread,
blocking, cancellable, &my_error);
if (nread <= 0)
break;
priv->buffer_nread += nread;
- } while (priv->buffer_nread < priv->buffer_size);
+ } while (priv->buffer_nread < BUFFER_SIZE);
/* If we got EAGAIN or cancellation before filling the buffer,
* just return that right away. Likewise if we got any other
diff --git a/libsoup/content-sniffer/soup-content-sniffer.c b/libsoup/content-sniffer/soup-content-sniffer.c
index 0b8c6749..7319a7f9 100644
--- a/libsoup/content-sniffer/soup-content-sniffer.c
+++ b/libsoup/content-sniffer/soup-content-sniffer.c
@@ -867,36 +867,11 @@ soup_content_sniffer_sniff (SoupContentSniffer *sniffer, SoupMessage *msg,
return g_strdup (content_type);
}
-/**
- * soup_content_sniffer_get_buffer_size:
- * @sniffer: a #SoupContentSniffer
- *
- * Gets the number of bytes @sniffer needs in order to properly sniff
- * a buffer.
- *
- * Returns: the number of bytes to sniff
- *
- */
-gsize
-soup_content_sniffer_get_buffer_size (SoupContentSniffer *sniffer)
-{
- return 512;
-}
-
-static void
-soup_content_sniffer_got_headers_cb (SoupMessage *msg, SoupContentSniffer *sniffer)
-{
- soup_message_set_bytes_for_sniffing (msg, soup_content_sniffer_get_buffer_size (sniffer));
-}
-
static void
soup_content_sniffer_request_queued (SoupSessionFeature *feature,
SoupMessage *msg)
{
soup_message_set_content_sniffer (msg, SOUP_CONTENT_SNIFFER (feature));
- g_signal_connect (msg, "got-headers",
- G_CALLBACK (soup_content_sniffer_got_headers_cb),
- feature);
}
static void
@@ -904,8 +879,6 @@ soup_content_sniffer_request_unqueued (SoupSessionFeature *feature,
SoupMessage *msg)
{
soup_message_set_content_sniffer (msg, NULL);
-
- g_signal_handlers_disconnect_by_func (msg, soup_content_sniffer_got_headers_cb, feature);
}
static void
diff --git a/libsoup/content-sniffer/soup-content-sniffer.h b/libsoup/content-sniffer/soup-content-sniffer.h
index 19f204d3..7f23b65d 100644
--- a/libsoup/content-sniffer/soup-content-sniffer.h
+++ b/libsoup/content-sniffer/soup-content-sniffer.h
@@ -15,15 +15,13 @@ SOUP_AVAILABLE_IN_ALL
G_DECLARE_FINAL_TYPE (SoupContentSniffer, soup_content_sniffer, SOUP, CONTENT_SNIFFER, GObject)
SOUP_AVAILABLE_IN_ALL
-SoupContentSniffer *soup_content_sniffer_new (void);
+SoupContentSniffer *soup_content_sniffer_new (void);
SOUP_AVAILABLE_IN_ALL
-char *soup_content_sniffer_sniff (SoupContentSniffer *sniffer,
- SoupMessage *msg,
- GBytes *buffer,
- GHashTable **params);
-SOUP_AVAILABLE_IN_ALL
-gsize soup_content_sniffer_get_buffer_size (SoupContentSniffer *sniffer);
+char *soup_content_sniffer_sniff (SoupContentSniffer *sniffer,
+ SoupMessage *msg,
+ GBytes *buffer,
+ GHashTable **params);
G_END_DECLS
diff --git a/libsoup/soup-message-private.h b/libsoup/soup-message-private.h
index 250dac74..9eea56e4 100644
--- a/libsoup/soup-message-private.h
+++ b/libsoup/soup-message-private.h
@@ -104,9 +104,6 @@ SoupClientMessageIO *soup_message_get_io_data (SoupMessage *msg);
SoupContentSniffer *soup_message_get_content_sniffer (SoupMessage *msg);
void soup_message_set_content_sniffer (SoupMessage *msg,
SoupContentSniffer *sniffer);
-void soup_message_set_bytes_for_sniffing (SoupMessage *msg,
- gsize bytes);
-
GInputStream *soup_message_get_request_body_stream (SoupMessage *msg);
void soup_message_set_reason_phrase (SoupMessage *msg,
diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c
index c39522a8..f17bafb9 100644
--- a/libsoup/soup-message.c
+++ b/libsoup/soup-message.c
@@ -72,7 +72,6 @@ typedef struct {
guint msg_flags;
SoupContentSniffer *sniffer;
- gsize bytes_for_sniffing;
SoupHTTPVersion http_version, orig_http_version;
@@ -2330,14 +2329,6 @@ soup_message_set_content_sniffer (SoupMessage *msg, SoupContentSniffer *sniffer)
priv->sniffer = sniffer ? g_object_ref (sniffer) : NULL;
}
-void
-soup_message_set_bytes_for_sniffing (SoupMessage *msg, gsize bytes)
-{
- SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
-
- priv->bytes_for_sniffing = bytes;
-}
-
GInputStream *
soup_message_get_request_body_stream (SoupMessage *msg)
{