[libsoup/carlosgc/cookies-non-http-uris: 2/2] cookies: allow non-HTTP uris for cookies
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup/carlosgc/cookies-non-http-uris: 2/2] cookies: allow non-HTTP uris for cookies
- Date: Tue, 13 Apr 2021 13:37:39 +0000 (UTC)
commit ff891a6a978481252ea5c87d6aff1a7c42a09727
Author: Carlos Garcia Campos <cgarcia igalia com>
Date: Tue Apr 13 14:31:45 2021 +0200
cookies: allow non-HTTP uris for cookies
It's supported for WebKit and partially allowed by soup 2.4, so better keep
compatibility here.
libsoup/cookies/soup-cookie-jar.c | 2 +-
libsoup/cookies/soup-cookie.c | 12 +++++++-----
libsoup/soup-message.c | 3 +--
3 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/libsoup/cookies/soup-cookie-jar.c b/libsoup/cookies/soup-cookie-jar.c
index afa3bcc1..f98af501 100644
--- a/libsoup/cookies/soup-cookie-jar.c
+++ b/libsoup/cookies/soup-cookie-jar.c
@@ -321,7 +321,7 @@ get_cookies (SoupCookieJar *jar,
priv = soup_cookie_jar_get_instance_private (jar);
- if (!host || !host[0])
+ if (!host)
return NULL;
/* The logic here is a little weird, but the plan is that if
diff --git a/libsoup/cookies/soup-cookie.c b/libsoup/cookies/soup-cookie.c
index f11df16b..2aa3fed9 100644
--- a/libsoup/cookies/soup-cookie.c
+++ b/libsoup/cookies/soup-cookie.c
@@ -175,9 +175,7 @@ parse_one_cookie (const char *header, GUri *origin)
{
const char *start, *end, *p;
gboolean has_value;
- SoupCookie *cookie;
-
- g_return_val_if_fail (origin == NULL || SOUP_URI_IS_VALID (origin), NULL);
+ SoupCookie *cookie;
cookie = g_slice_new0 (SoupCookie);
@@ -394,7 +392,7 @@ soup_cookie_new (const char *name, const char *value,
/**
* soup_cookie_parse:
* @header: a cookie string (eg, the value of a Set-Cookie header)
- * @origin: origin of the cookie, or %NULL
+ * @origin: (nullable): origin of the cookie, or %NULL
*
* Parses @header and returns a #SoupCookie. (If @header contains
* multiple cookies, only the first one will be parsed.)
@@ -414,6 +412,9 @@ soup_cookie_new (const char *name, const char *value,
SoupCookie *
soup_cookie_parse (const char *cookie, GUri *origin)
{
+ g_return_val_if_fail (cookie != NULL, NULL);
+ g_return_val_if_fail (origin == NULL || g_uri_get_host (origin) != NULL, NULL);
+
return parse_one_cookie (cookie, origin);
}
@@ -1061,7 +1062,8 @@ soup_cookie_applies_to_uri (SoupCookie *cookie, GUri *uri)
{
int plen;
- g_return_val_if_fail (SOUP_URI_IS_VALID (uri), FALSE);
+ g_return_val_if_fail (cookie != NULL, FALSE);
+ g_return_val_if_fail (uri != NULL, FALSE);
if (cookie->secure && !soup_uri_is_https (uri))
return FALSE;
diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c
index f642b6c7..d9e9e4f3 100644
--- a/libsoup/soup-message.c
+++ b/libsoup/soup-message.c
@@ -1849,7 +1849,7 @@ soup_message_set_first_party (SoupMessage *msg,
GUri *first_party_normalized;
g_return_if_fail (SOUP_IS_MESSAGE (msg));
- g_return_if_fail (SOUP_URI_IS_VALID (first_party));
+ g_return_if_fail (first_party != NULL);
priv = soup_message_get_instance_private (msg);
first_party_normalized = soup_uri_copy_with_normalized_flags (first_party);
@@ -1912,7 +1912,6 @@ soup_message_set_site_for_cookies (SoupMessage *msg,
GUri *site_for_cookies_normalized = NULL;
g_return_if_fail (SOUP_IS_MESSAGE (msg));
- g_return_if_fail (site_for_cookies == NULL || SOUP_URI_IS_VALID (site_for_cookies));
priv = soup_message_get_instance_private (msg);
if (site_for_cookies) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]