summaryrefslogtreecommitdiff
path: root/libsoup/soup-message-headers.c
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2014-11-30 10:10:20 -0500
committerDan Winship <danw@gnome.org>2015-03-01 10:36:27 -0500
commita3ce28bad9e072a5dce786224b390110743e65d2 (patch)
treee946fdfc860382ba852143e06380085087435c2f /libsoup/soup-message-headers.c
parent6a95b6de15c150adfd959553a19aeaef8261deb1 (diff)
downloadlibsoup-a3ce28bad9e072a5dce786224b390110743e65d2.tar.gz
soup-message-headers: add new APIs
Add soup_message_headers_get_header_type(), soup_message_headers_header_contains(), and soup_message_headers_header_equals().
Diffstat (limited to 'libsoup/soup-message-headers.c')
-rw-r--r--libsoup/soup-message-headers.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
index f4a69d46..23738a1e 100644
--- a/libsoup/soup-message-headers.c
+++ b/libsoup/soup-message-headers.c
@@ -110,6 +110,22 @@ soup_message_headers_free (SoupMessageHeaders *hdrs)
G_DEFINE_BOXED_TYPE (SoupMessageHeaders, soup_message_headers, soup_message_headers_copy, soup_message_headers_free)
/**
+ * soup_message_headers_get_headers_type:
+ * @hdrs: a #SoupMessageHeaders
+ *
+ * Gets the type of headers.
+ *
+ * Return value: the header's type.
+ *
+ * Since: 2.50
+ **/
+SoupMessageHeadersType
+soup_message_headers_get_headers_type (SoupMessageHeaders *hdrs)
+{
+ return hdrs->type;
+}
+
+/**
* soup_message_headers_clear:
* @hdrs: a #SoupMessageHeaders
*
@@ -320,6 +336,59 @@ soup_message_headers_get_one (SoupMessageHeaders *hdrs, const char *name)
}
/**
+ * soup_message_headers_header_contains:
+ * @hdrs: a #SoupMessageHeaders
+ * @name: header name
+ * @token: token to look for
+ *
+ * Checks whether the list-valued header @name is present in @hdrs,
+ * and contains a case-insensitive match for @token.
+ *
+ * (If @name is present in @hdrs, then this is equivalent to calling
+ * soup_header_contains() on its value.)
+ *
+ * Return value: %TRUE if the header is present and contains @token,
+ * %FALSE otherwise.
+ *
+ * Since: 2.50
+ **/
+gboolean
+soup_message_headers_header_contains (SoupMessageHeaders *hdrs, const char *name, const char *token)
+{
+ const char *value;
+
+ value = soup_message_headers_get_list (hdrs, name);
+ if (!value)
+ return FALSE;
+ return soup_header_contains (value, token);
+}
+
+/**
+ * soup_message_headers_header_equals:
+ * @hdrs: a #SoupMessageHeaders
+ * @name: header name
+ * @value: expected value
+ *
+ * Checks whether the header @name is present in @hdrs and is
+ * (case-insensitively) equal to @value.
+ *
+ * Return value: %TRUE if the header is present and its value is
+ * @value, %FALSE otherwise.
+ *
+ * Since: 2.50
+ **/
+gboolean
+soup_message_headers_header_equals (SoupMessageHeaders *hdrs, const char *name, const char *value)
+{
+ const char *internal_value;
+
+ internal_value = soup_message_headers_get_list (hdrs, name);
+ if (!internal_value)
+ return FALSE;
+ return !g_ascii_strcasecmp (internal_value, value);
+}
+
+/**
* soup_message_headers_get_list:
* @hdrs: a #SoupMessageHeaders
* @name: header name