[gssdp/wip/libsoup3: 2/5] Port GSSDP to libsoup3 API
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gssdp/wip/libsoup3: 2/5] Port GSSDP to libsoup3 API
- Date: Mon, 20 Sep 2021 11:32:23 +0000 (UTC)
commit 03f9094636c790f813833f116eb1202d3eced33c
Author: Jens Georg <mail jensge org>
Date: Sun Jul 25 11:44:27 2021 +0200
Port GSSDP to libsoup3 API
libgssdp/gssdp-client.c | 7 +++----
libgssdp/gssdp-resource-browser.c | 16 +++++++---------
libgssdp/gssdp-resource-group.c | 7 +++----
libgssdp/meson.build | 4 ++--
meson.build | 6 +++---
vala/meson.build | 2 +-
6 files changed, 19 insertions(+), 23 deletions(-)
---
diff --git a/libgssdp/gssdp-client.c b/libgssdp/gssdp-client.c
index 105ca5d..8857a00 100644
--- a/libgssdp/gssdp-client.c
+++ b/libgssdp/gssdp-client.c
@@ -1497,7 +1497,7 @@ parse_http_request (char *buf,
return TRUE;
} else {
- soup_message_headers_free (*headers);
+ soup_message_headers_unref (*headers);
*headers = NULL;
g_free (path);
@@ -1528,8 +1528,7 @@ parse_http_response (char *buf,
return TRUE;
} else {
- soup_message_headers_free (*headers);
- *headers = NULL;
+ g_clear_pointer (headers, soup_message_headers_unref);
return FALSE;
}
@@ -1709,7 +1708,7 @@ out:
g_free (ip_string);
- g_clear_pointer (&headers, soup_message_headers_free);
+ g_clear_pointer (&headers, soup_message_headers_unref);
g_clear_object (&address);
if (messages) {
diff --git a/libgssdp/gssdp-resource-browser.c b/libgssdp/gssdp-resource-browser.c
index 7ebc08a..af1a264 100644
--- a/libgssdp/gssdp-resource-browser.c
+++ b/libgssdp/gssdp-resource-browser.c
@@ -878,17 +878,13 @@ resource_available (GSSDPResourceBrowser *resource_browser,
expires = soup_message_headers_get_one (headers, "Expires");
if (expires) {
- SoupDate *soup_exp_time;
- time_t exp_time, cur_time;
+ GDateTime *exp_time;
- soup_exp_time = soup_date_new_from_string (expires);
- exp_time = soup_date_to_time_t (soup_exp_time);
- soup_date_free (soup_exp_time);
+ exp_time = soup_date_time_new_from_http_string (expires);
+ GDateTime *now = g_date_time_new_now_local ();
- cur_time = time (NULL);
-
- if (exp_time > cur_time)
- timeout = exp_time - cur_time;
+ if (g_date_time_compare (now, exp_time) == 1)
+ timeout = g_date_time_difference (now, exp_time) / 1000 / 1000;
else {
g_warning ("Invalid 'Expires' header. Assuming "
"default max-age of %d.\n"
@@ -898,6 +894,8 @@ resource_available (GSSDPResourceBrowser *resource_browser,
timeout = SSDP_DEFAULT_MAX_AGE;
}
+ g_date_time_unref (exp_time);
+ g_date_time_unref (now);
} else {
g_warning ("No 'Cache-Control' nor any 'Expires' "
"header was specified. Assuming default "
diff --git a/libgssdp/gssdp-resource-group.c b/libgssdp/gssdp-resource-group.c
index 66cf508..64451f0 100644
--- a/libgssdp/gssdp-resource-group.c
+++ b/libgssdp/gssdp-resource-group.c
@@ -1012,7 +1012,6 @@ discovery_response_timeout (gpointer user_data)
{
DiscoveryResponse *response = user_data;
GSSDPClient *client;
- SoupDate *date;
char *al, *date_str, *message;
guint max_age;
char *usn;
@@ -1030,9 +1029,9 @@ discovery_response_timeout (gpointer user_data)
usn = construct_usn (response->resource->usn,
response->target,
response->resource->target);
- date = soup_date_new_from_now (0);
- date_str = soup_date_to_string (date, SOUP_DATE_HTTP);
- soup_date_free (date);
+ GDateTime *date = g_date_time_new_now_local ();
+ date_str = soup_date_time_to_string (date, SOUP_DATE_HTTP);
+ g_date_time_unref (date);
message = g_strdup_printf (SSDP_DISCOVERY_RESPONSE,
(char *) response->resource->locations->data,
diff --git a/libgssdp/meson.build b/libgssdp/meson.build
index 074f551..f0bfadb 100644
--- a/libgssdp/meson.build
+++ b/libgssdp/meson.build
@@ -49,7 +49,7 @@ if generic_unix
endif
v = meson.project_version().split('.')
-soversion = 0
+soversion = 1
library_minor = v[0].to_int() * 100 + v[1].to_int()
library_micro = v[2].to_int()
@@ -95,6 +95,6 @@ if get_option('introspection')
symbol_prefix : 'gssdp',
identifier_prefix : 'GSSDP',
export_packages : 'gssdp-1.2',
- includes : ['GObject-2.0', 'Gio-2.0', 'Soup-2.4'],
+ includes : ['GObject-2.0', 'Gio-2.0'],
install: true)
endif
diff --git a/meson.build b/meson.build
index 63278c6..f07b0de 100644
--- a/meson.build
+++ b/meson.build
@@ -39,12 +39,12 @@ conf.set('HAVE_SIOCGIFINDEX', siocgifindex_available)
getipnettable2_available = cc.compiles(files('build-aux/getipnettable2-test.c'), args: '-liphlpapi', name:
'GetIpNetTable2 is available')
conf.set('HAVE_GETIPNETTABLE2', getipnettable2_available)
-
-glib_version = '2.54'
+glib_version = '2.70'
conf.set('GLIB_VERSION_MIN_REQUIRED', 'GLIB_VERSION_@0@'.format(glib_version.underscorify()))
conf.set('GLIB_VERSION_MAX_ALLOWED', 'GLIB_VERSION_@0@'.format(glib_version.underscorify()))
+
# Generate config.h, so all config has to be set up until here
subdir('internal')
@@ -73,7 +73,7 @@ dependencies = [
dependency('glib-2.0', version : '>= ' + glib_version),
dependency('gobject-2.0', version : '>= ' + glib_version),
dependency('gio-2.0', version : '>= ' + glib_version),
- dependency('libsoup-2.4', version : '>= 2.26.1')
+ dependency('libsoup-3.0', version : '>= 3.0')
]
subdir('libgssdp')
diff --git a/vala/meson.build b/vala/meson.build
index c26aca4..df61729 100644
--- a/vala/meson.build
+++ b/vala/meson.build
@@ -1,4 +1,4 @@
vapi = gnome.generate_vapi('gssdp-1.2',
sources : gir.get(0),
- packages : ['gio-2.0', 'libsoup-2.4'],
+ packages : ['gio-2.0'],
install : true)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]