diff options
author | Patrick Griffis <pgriffis@igalia.com> | 2020-08-31 17:24:21 -0500 |
---|---|---|
committer | Patrick Griffis <pgriffis@igalia.com> | 2020-09-19 15:41:25 -0700 |
commit | 4b43e158799689666bcbe186045ddee356601f1c (patch) | |
tree | 7034aeb51657f2326ce1d7de3876a974b76fb711 /libsoup/content-sniffer | |
parent | 73cd3c7dc4207cacf5eb4311584201bf7133ff0f (diff) | |
download | libsoup-4b43e158799689666bcbe186045ddee356601f1c.tar.gz |
Replace SoupBuffer with GBytes
Diffstat (limited to 'libsoup/content-sniffer')
-rw-r--r-- | libsoup/content-sniffer/soup-content-sniffer-stream.c | 6 | ||||
-rw-r--r-- | libsoup/content-sniffer/soup-content-sniffer.c | 44 | ||||
-rw-r--r-- | libsoup/content-sniffer/soup-content-sniffer.h | 4 |
3 files changed, 30 insertions, 24 deletions
diff --git a/libsoup/content-sniffer/soup-content-sniffer-stream.c b/libsoup/content-sniffer/soup-content-sniffer-stream.c index 4b026e01..465648e5 100644 --- a/libsoup/content-sniffer/soup-content-sniffer-stream.c +++ b/libsoup/content-sniffer/soup-content-sniffer-stream.c @@ -112,7 +112,7 @@ read_and_sniff (GInputStream *stream, gboolean blocking, SoupContentSnifferStreamPrivate *priv = soup_content_sniffer_stream_get_instance_private (sniffer); gssize nread; GError *my_error = NULL; - SoupBuffer *buf; + GBytes *buf; do { nread = g_pollable_stream_read (G_FILTER_INPUT_STREAM (stream)->base_stream, @@ -140,11 +140,11 @@ read_and_sniff (GInputStream *stream, gboolean blocking, } /* Sniff, then return the data */ - buf = soup_buffer_new (SOUP_MEMORY_TEMPORARY, priv->buffer, priv->buffer_nread); + buf = g_bytes_new (priv->buffer, priv->buffer_nread); priv->sniffed_type = soup_content_sniffer_sniff (priv->sniffer, priv->msg, buf, &priv->sniffed_params); - soup_buffer_free (buf); + g_bytes_unref (buf); priv->sniffing = FALSE; return priv->buffer_nread; diff --git a/libsoup/content-sniffer/soup-content-sniffer.c b/libsoup/content-sniffer/soup-content-sniffer.c index 14ff38ae..f5653417 100644 --- a/libsoup/content-sniffer/soup-content-sniffer.c +++ b/libsoup/content-sniffer/soup-content-sniffer.c @@ -86,12 +86,14 @@ typedef struct { static char* sniff_media (SoupContentSniffer *sniffer, - SoupBuffer *buffer, + GBytes *buffer, SoupContentSnifferMediaPattern table[], int table_length) { - const guchar *resource = (const guchar *)buffer->data; - guint resource_length = MIN (512, buffer->length); + + gsize resource_length; + const guchar *resource = g_bytes_get_data (buffer, &resource_length); + resource_length = MIN (512, resource_length); int i; for (i = 0; i < table_length; i++) { @@ -168,7 +170,7 @@ static SoupContentSnifferMediaPattern image_types_table[] = { }; static char* -sniff_images (SoupContentSniffer *sniffer, SoupBuffer *buffer) +sniff_images (SoupContentSniffer *sniffer, GBytes *buffer) { return sniff_media (sniffer, buffer, @@ -223,10 +225,11 @@ static SoupContentSnifferMediaPattern audio_video_types_table[] = { }; static gboolean -sniff_mp4 (SoupContentSniffer *sniffer, SoupBuffer *buffer) +sniff_mp4 (SoupContentSniffer *sniffer, GBytes *buffer) { - const char *resource = (const char *)buffer->data; - guint resource_length = MIN (512, buffer->length); + gsize resource_length; + const char *resource = g_bytes_get_data (buffer, &resource_length); + resource_length = MIN (512, resource_length); guint32 box_size = *((guint32*)resource); guint i; @@ -255,7 +258,7 @@ sniff_mp4 (SoupContentSniffer *sniffer, SoupBuffer *buffer) } static char* -sniff_audio_video (SoupContentSniffer *sniffer, SoupBuffer *buffer) +sniff_audio_video (SoupContentSniffer *sniffer, GBytes *buffer) { char *sniffed_type; @@ -485,12 +488,13 @@ static char byte_looks_binary[] = { /* HTML5: 2.7.4 Content-Type sniffing: unknown type */ static char* -sniff_unknown (SoupContentSniffer *sniffer, SoupBuffer *buffer, +sniff_unknown (SoupContentSniffer *sniffer, GBytes *buffer, gboolean sniff_scriptable) { char *sniffed_type = NULL; - const guchar *resource = (const guchar *)buffer->data; - guint resource_length = MIN (512, buffer->length); + gsize resource_length; + const guchar *resource = g_bytes_get_data (buffer, &resource_length); + resource_length = MIN (512, resource_length); guint i; for (i = 0; i < G_N_ELEMENTS (types_table); i++) { @@ -574,10 +578,11 @@ sniff_unknown (SoupContentSniffer *sniffer, SoupBuffer *buffer, /* MIMESNIFF: 7.2 Sniffing a mislabeled binary resource */ static char* -sniff_text_or_binary (SoupContentSniffer *sniffer, SoupBuffer *buffer) +sniff_text_or_binary (SoupContentSniffer *sniffer, GBytes *buffer) { - const guchar *resource = (const guchar *)buffer->data; - int resource_length = MIN (512, buffer->length); + gsize resource_length; + const guchar *resource = g_bytes_get_data (buffer, &resource_length); + resource_length = MIN (512, resource_length); gboolean looks_binary = FALSE; int i; @@ -628,10 +633,11 @@ skip_insignificant_space (const char *resource, int *pos, int resource_length) } static char* -sniff_feed_or_html (SoupContentSniffer *sniffer, SoupBuffer *buffer) +sniff_feed_or_html (SoupContentSniffer *sniffer, GBytes *buffer) { - const char *resource = (const char *)buffer->data; - int resource_length = MIN (512, buffer->length); + gsize resource_length; + const char *resource = g_bytes_get_data (buffer, &resource_length); + resource_length = MIN (512, resource_length); int pos = 0; if (resource_length < 3) @@ -762,7 +768,7 @@ sniff_feed_or_html (SoupContentSniffer *sniffer, SoupBuffer *buffer) static char * soup_content_sniffer_real_sniff (SoupContentSniffer *sniffer, SoupMessage *msg, - SoupBuffer *buffer, GHashTable **params) + GBytes *buffer, GHashTable **params) { const char *content_type; const char *x_content_type_options; @@ -915,7 +921,7 @@ soup_content_sniffer_new (void) */ char * soup_content_sniffer_sniff (SoupContentSniffer *sniffer, - SoupMessage *msg, SoupBuffer *buffer, + SoupMessage *msg, GBytes *buffer, GHashTable **params) { g_return_val_if_fail (SOUP_IS_CONTENT_SNIFFER (sniffer), NULL); diff --git a/libsoup/content-sniffer/soup-content-sniffer.h b/libsoup/content-sniffer/soup-content-sniffer.h index cc9aa2b9..6931b6e4 100644 --- a/libsoup/content-sniffer/soup-content-sniffer.h +++ b/libsoup/content-sniffer/soup-content-sniffer.h @@ -19,7 +19,7 @@ struct _SoupContentSnifferClass { char* (*sniff) (SoupContentSniffer *sniffer, SoupMessage *msg, - SoupBuffer *buffer, + GBytes *buffer, GHashTable **params); gsize (*get_buffer_size) (SoupContentSniffer *sniffer); @@ -32,7 +32,7 @@ SoupContentSniffer *soup_content_sniffer_new (void); SOUP_AVAILABLE_IN_2_28 char *soup_content_sniffer_sniff (SoupContentSniffer *sniffer, SoupMessage *msg, - SoupBuffer *buffer, + GBytes *buffer, GHashTable **params); SOUP_AVAILABLE_IN_2_28 gsize soup_content_sniffer_get_buffer_size (SoupContentSniffer *sniffer); |