Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gupnp for openSUSE:Factory checked in at 2026-05-30 22:55:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gupnp (Old) and /work/SRC/openSUSE:Factory/.gupnp.new.1937 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gupnp" Sat May 30 22:55:32 2026 rev:89 rq:1355931 version:1.6.10 Changes: -------- --- /work/SRC/openSUSE:Factory/gupnp/gupnp.changes 2026-03-27 16:49:23.295119867 +0100 +++ /work/SRC/openSUSE:Factory/.gupnp.new.1937/gupnp.changes 2026-05-30 22:56:58.857431178 +0200 @@ -1,0 +2,10 @@ +Sun May 24 07:20:15 UTC 2026 - Bjørn Lie <[email protected]> + +- Update to version 1.6.10: + + Context: + - Reuse allocated TCP socket from GSSDP Client for web server + - Do not leak GError in ACL handler + + Fix IPv6 host header validation +- Temp disable tests, currently times out. + +------------------------------------------------------------------- Old: ---- gupnp-1.6.9.tar.xz New: ---- gupnp-1.6.10.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gupnp.spec ++++++ --- /var/tmp/diff_new_pack.uyTheG/_old 2026-05-30 22:56:59.745467615 +0200 +++ /var/tmp/diff_new_pack.uyTheG/_new 2026-05-30 22:56:59.749467779 +0200 @@ -21,7 +21,8 @@ %define sover 1.6 Name: gupnp -Version: 1.6.9 +Version: 1.6.10 +###FIXME### Reenable tests, disabled ver 1.6.10, https://gitlab.gnome.org/GNOME/gupnp/-/work_items/92 Release: 0 Summary: Implementation of the UPnP specification License: LGPL-2.1-or-later @@ -40,7 +41,7 @@ BuildRequires: pkgconfig(gmodule-2.0) >= 2.66 BuildRequires: pkgconfig(gobject-2.0) >= 2.66 BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.6.4 -BuildRequires: pkgconfig(gssdp-1.6) >= 1.6.2 +BuildRequires: pkgconfig(gssdp-1.6) >= 1.6.5 BuildRequires: pkgconfig(libsoup-3.0) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(uuid) @@ -129,8 +130,9 @@ # The test cannot be completed on loongarch64 due to architectural limitations %ifnarch loongarch64 -%check -%meson_test || (%meson_test) +# Tests temp disabled, https://gitlab.gnome.org/GNOME/gupnp/-/work_items/92 +%dnl %check +%dnl %meson_test || (%meson_test) %endif %files -n libgupnp-%{soname} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.uyTheG/_old 2026-05-30 22:56:59.785469256 +0200 +++ /var/tmp/diff_new_pack.uyTheG/_new 2026-05-30 22:56:59.789469420 +0200 @@ -1,6 +1,6 @@ -mtime: 1774255903 -commit: f8a3d3e02414b8dc5eb76edf06c6928d2f170afbc0302b2ee5c054f960b3fb75 +mtime: 1780051875 +commit: 0102eaa32245b40f459802f589c800962730a1ddd84c52005490088efa7a9401 url: https://src.opensuse.org/GNOME/gupnp -revision: f8a3d3e02414b8dc5eb76edf06c6928d2f170afbc0302b2ee5c054f960b3fb75 +revision: 0102eaa32245b40f459802f589c800962730a1ddd84c52005490088efa7a9401 projectscmsync: https://src.opensuse.org/GNOME/_ObsPrj ++++++ _service ++++++ --- /var/tmp/diff_new_pack.uyTheG/_old 2026-05-30 22:56:59.813470405 +0200 +++ /var/tmp/diff_new_pack.uyTheG/_new 2026-05-30 22:56:59.817470569 +0200 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual"> <param name="url">https://gitlab.gnome.org/GNOME/gupnp.git</param> <param name="scm">git</param> - <param name="revision">gupnp-1.6.9</param> + <param name="revision">gupnp-1.6.10</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">gupnp-?(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-05-29 12:51:15.000000000 +0200 @@ -0,0 +1,5 @@ +*.obscpio +*.osc +_build.* +.pbuild +osc-collab.* ++++++ gupnp-1.6.9.tar.xz -> gupnp-1.6.10.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/.gitlab-ci/ci.template new/gupnp-1.6.10/.gitlab-ci/ci.template --- old/gupnp-1.6.9/.gitlab-ci/ci.template 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/.gitlab-ci/ci.template 2026-05-23 22:47:08.000000000 +0200 @@ -4,10 +4,10 @@ - '/.gitlab-ci/tags.yml' - project: "Infrastructure/freedesktop-ci-templates" file: "templates/fedora.yml" - ref: "e195d80f35b45cc73668be3767b923fd76c70ed5" + ref: "{{template_ref}}" - project: "Infrastructure/freedesktop-ci-templates" file: "templates/ci-fairy.yml" - ref: "e195d80f35b45cc73668be3767b923fd76c70ed5" + ref: "{{template_ref}}" - component: "gitlab.gnome.org/GNOME/citemplates/release-service@master" inputs: dist-job-name: build-{{targets["dist"]}} @@ -50,19 +50,6 @@ else echo "Not a merge request" ; fi - <<: *check - -check-merge-request: - variables: - GIT_STRATEGY: none - stage: review - script: - - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; - then - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ; - else - echo "Not a merge request" ; - fi <<: *check .build-template: &build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/.gitlab-ci/config.yml new/gupnp-1.6.10/.gitlab-ci/config.yml --- old/gupnp-1.6.9/.gitlab-ci/config.yml 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/.gitlab-ci/config.yml 2026-05-23 22:47:08.000000000 +0200 @@ -3,16 +3,17 @@ # TODO: Hardcode architecture for now arch: x86_64 +template_ref: aec7a6ce7bb38902c70641526f6611e27141784a # Those are all jobs that are just run once, not on all distributions and versions # format has to be distribution:version@arch targets: - coverage: fedora:41@x86_64 - coverity: fedora:41@x86_64 - static-scan: fedora:41@x86_64 - pages: fedora:41@x86_64 - downstream: fedora:41@x86_64 - dist: fedora:41@x86_64 + coverage: fedora:43@x86_64 + coverity: fedora:43@x86_64 + static-scan: fedora:43@x86_64 + pages: fedora:43@x86_64 + downstream: fedora:43@x86_64 + dist: fedora:43@x86_64 # Projects to trigger after a successful build # Format is name: gitlab project on this server @@ -20,8 +21,8 @@ # Distribution configurations distributions: - fedora: [41] + fedora: [43] packages: fedora: - needed: ['clang', 'clang-analyzer', 'gcovr', 'git', 'libasan', 'libubsan', 'python3-gobject', 'python3-pip', 'xmlto', 'gobject-introspection-devel', 'gtk-doc', 'libxml2-devel', 'vala', 'ninja-build', 'libnghttp2-devel', 'libpsl-devel', 'sqlite-devel', 'python3-setuptools', 'libsoup3-devel'] + needed: ['file', 'clang', 'clang-analyzer', 'gcovr', 'git', 'libasan', 'libubsan', 'python3-gobject', 'python3-pip', 'xmlto', 'gobject-introspection-devel', 'gtk-doc', 'libxml2-devel', 'vala', 'ninja-build', 'libnghttp2-devel', 'libpsl-devel', 'sqlite-devel', 'python3-setuptools', 'libsoup3-devel'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/.gitlab-ci/tags.yml new/gupnp-1.6.10/.gitlab-ci/tags.yml --- old/gupnp-1.6.9/.gitlab-ci/tags.yml 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/.gitlab-ci/tags.yml 2026-05-23 22:47:08.000000000 +0200 @@ -1,2 +1,2 @@ variables: - FEDORA_BASE_TAG: "2024-01-17.2" + FEDORA_BASE_TAG: "2026-04-08.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/.gitlab-ci.yml new/gupnp-1.6.10/.gitlab-ci.yml --- old/gupnp-1.6.9/.gitlab-ci.yml 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/.gitlab-ci.yml 2026-05-23 22:47:08.000000000 +0200 @@ -4,13 +4,13 @@ - '/.gitlab-ci/tags.yml' - project: "Infrastructure/freedesktop-ci-templates" file: "templates/fedora.yml" - ref: "e195d80f35b45cc73668be3767b923fd76c70ed5" + ref: "aec7a6ce7bb38902c70641526f6611e27141784a" - project: "Infrastructure/freedesktop-ci-templates" file: "templates/ci-fairy.yml" - ref: "e195d80f35b45cc73668be3767b923fd76c70ed5" + ref: "aec7a6ce7bb38902c70641526f6611e27141784a" - component: "gitlab.gnome.org/GNOME/citemplates/release-service@master" inputs: - dist-job-name: build-fedora:41@x86_64 + dist-job-name: build-fedora:43@x86_64 # gupnp tags are always of the format {PROJECT_NAME}-{version} tarball-artifact-path: "build/meson-dist/${CI_COMMIT_TAG}.tar.xz" - project: "GNOME/citemplates" @@ -52,19 +52,6 @@ fi <<: *check -check-merge-request: - variables: - GIT_STRATEGY: none - stage: review - script: - - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; - then - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ; - else - echo "Not a merge request" ; - fi - <<: *check - .build-template: &build stage: build script: @@ -113,46 +100,46 @@ variables: BASE_TAG: '${FEDORA_BASE_TAG}' FDO_UPSTREAM_REPO: GNOME/gupnp - FDO_DISTRIBUTION_PACKAGES: "clang clang-analyzer gcovr git libasan libubsan python3-gobject python3-pip xmlto gobject-introspection-devel gtk-doc libxml2-devel vala ninja-build libnghttp2-devel libpsl-devel sqlite-devel python3-setuptools libsoup3-devel" + FDO_DISTRIBUTION_PACKAGES: "file clang clang-analyzer gcovr git libasan libubsan python3-gobject python3-pip xmlto gobject-introspection-devel gtk-doc libxml2-devel vala ninja-build libnghttp2-devel libpsl-devel sqlite-devel python3-setuptools libsoup3-devel" FDO_DISTRIBUTION_EXEC: .gitlab-ci/setup-image-fedora.sh -.gupnp.fedora:41@x86_64: +.gupnp.fedora:43@x86_64: extends: .gupnp.fedora@common variables: - FDO_DISTRIBUTION_VERSION: "41" + FDO_DISTRIBUTION_VERSION: "43" FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" -build-container-fedora:41@x86_64: +build-container-fedora:43@x86_64: extends: - .fdo.container-build@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 stage: prepare variables: GIT_STRATEGY: none -build-fedora:41@x86_64: +build-fedora:43@x86_64: extends: - .fdo.distribution-image@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 needs: - - build-container-fedora:41@x86_64 + - build-container-fedora:43@x86_64 <<: *build -test-fedora:41@x86_64: +test-fedora:43@x86_64: tags: - ipv6 extends: - .fdo.distribution-image@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 needs: - - build-fedora:41@x86_64 + - build-fedora:43@x86_64 <<: *test coverage-analysis: extends: - .fdo.distribution-image@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 stage: analysis allow_failure: true script: @@ -165,15 +152,15 @@ paths: - build/coveragereport needs: - - test-fedora:41@x86_64 + - test-fedora:43@x86_64 static-scan: extends: - .fdo.distribution-image@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 stage: analysis needs: - - build-container-fedora:41@x86_64 + - build-container-fedora:43@x86_64 script: - meson --buildtype=debug _scan_build -Dintrospection=false - export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh" @@ -190,7 +177,7 @@ coverity: extends: - .fdo.distribution-image@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 stage: analysis allow_failure: true script: @@ -206,7 +193,7 @@ --form [email protected] --form version="`git describe --tags`" --form description="gitlab CI build" needs: - - build-container-fedora:41@x86_64 + - build-container-fedora:43@x86_64 only: - master except: @@ -216,7 +203,7 @@ pages: extends: - .fdo.distribution-image@fedora - - .gupnp.fedora:41@x86_64 + - .gupnp.fedora:43@x86_64 stage: website script: - mkdir -p public @@ -226,7 +213,7 @@ paths: - public needs: - - build-fedora:41@x86_64 + - build-fedora:43@x86_64 rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == /^wip\/.*\/ci.*$/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/NEWS new/gupnp-1.6.10/NEWS --- old/gupnp-1.6.9/NEWS 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/NEWS 2026-05-23 22:47:08.000000000 +0200 @@ -1,3 +1,19 @@ +1.6.10 (stable) + +Require GSSDP >= 1.6.5 + +- Context: Reuse allocated TCP socket from GSSDP Client + for web server +- Context: Do not leak GError in ACL handler +- Fix IPv6 host header validation + +Bugs fixed in this release: + - https://gitlab.gnome.org/GNOME/gupnp/issues/91 + +All contributors to this release: + - Jens Georg <[email protected]> + - Valeria <[email protected]> + 1.6.9 (stable) - Linux-CM: Fix a potential memory leak diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/libgupnp/gupnp-context-private.h new/gupnp-1.6.10/libgupnp/gupnp-context-private.h --- old/gupnp-1.6.9/libgupnp/gupnp-context-private.h 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/libgupnp/gupnp-context-private.h 2026-05-23 22:47:08.000000000 +0200 @@ -31,7 +31,7 @@ gboolean validate_host_header (const char *host_header, - const char *host_ip, + GInetAddress *host_addr, guint context_port); G_END_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/libgupnp/gupnp-context.c new/gupnp-1.6.10/libgupnp/gupnp-context.c --- old/gupnp-1.6.9/libgupnp/gupnp-context.c 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/libgupnp/gupnp-context.c 2026-05-23 22:47:08.000000000 +0200 @@ -352,6 +352,16 @@ static void +gupnp_context_constructed (GObject *object) +{ + g_object_set (object, "allocate-tcp-socket", TRUE, NULL); + + /* Call super */ + GObjectClass *object_class = G_OBJECT_CLASS (gupnp_context_parent_class); + object_class->constructed (object); +} + +static void gupnp_context_class_init (GUPnPContextClass *klass) { GObjectClass *object_class; @@ -362,6 +372,7 @@ object_class->get_property = gupnp_context_get_property; object_class->dispose = gupnp_context_dispose; object_class->finalize = gupnp_context_finalize; + object_class->constructed = gupnp_context_constructed; /** * GUPnPContext:server:(attributes org.gtk.Property.get=gupnp_context_get_server) @@ -514,10 +525,7 @@ priv = gupnp_context_get_instance_private (context); if (priv->server == NULL) { - const char *ip = NULL; - GSocketAddress *addr = NULL; - GInetAddress *inet_addr = NULL; - GError *error = NULL; + g_autoptr(GError) error = NULL; priv->server = soup_server_new (NULL, NULL); @@ -527,31 +535,26 @@ context, NULL); - ip = gssdp_client_get_host_ip (GSSDP_CLIENT (context)); - inet_addr = gssdp_client_get_address (GSSDP_CLIENT (context)); - guint port = gssdp_client_get_port (GSSDP_CLIENT (context)); - if (g_inet_address_get_family (inet_addr) == G_SOCKET_FAMILY_IPV6 && - g_inet_address_get_is_link_local (inet_addr)) { - guint scope = - gssdp_client_get_index (GSSDP_CLIENT (context)); - addr = g_object_new (G_TYPE_INET_SOCKET_ADDRESS, - "address", inet_addr, - "port", port, - "scope-id", scope, - NULL); - } else { - addr = g_inet_socket_address_new (inet_addr, port); - } - g_object_unref (inet_addr); - if (! soup_server_listen (priv->server, - addr, (SoupServerListenOptions) 0, &error)) { + + g_autoptr (GSocket) socket = + gssdp_client_get_tcp_socket (GSSDP_CLIENT (context)); + + if (!g_socket_listen (socket, &error)) { g_clear_object (&priv->server); - g_warning ("Unable to listen on %s:%u %s", ip, port, error->message); - g_error_free (error); + g_warning ("Unable to listen: %s", error->message); + + return NULL; } - g_object_unref (addr); + if (!soup_server_listen_socket ( + priv->server, + gssdp_client_get_tcp_socket (GSSDP_CLIENT (context)), + (SoupServerListenOptions) 0, + &error)) { + g_clear_object (&priv->server); + g_warning ("Unable to listen", error->message); + } } return priv->server; @@ -1455,9 +1458,13 @@ AclAsyncHandler *data) { gboolean allowed; - GError *error = NULL; + g_autoptr (GError) error = NULL; allowed = gupnp_acl_is_allowed_finish (acl, res, &error); + if (error != NULL) { + g_warning ("Checking ACL failed: %s", error->message); + allowed = FALSE; + } #if SOUP_CHECK_VERSION(3,1,2) soup_server_message_unpause (data->message); #else @@ -1473,7 +1480,6 @@ data->path, data->query, data->handler->user_data); - acl_async_handler_free (data); } @@ -1751,7 +1757,7 @@ gboolean validate_host_header (const char *host_header, - const char *host_ip, + GInetAddress *host_addr, guint context_port) { @@ -1763,6 +1769,9 @@ char *host = NULL; int port = 0; GError *error = NULL; + GInetAddress *parsed_host = NULL; + gboolean host_matches; + gchar *normalized_host_str = NULL; g_uri_split_network (uri_from_host, G_URI_FLAGS_NONE, @@ -1783,11 +1792,15 @@ port = 80; } - if (!g_str_equal (host, host_ip)) { + parsed_host = g_inet_address_new_from_string (host); + host_matches = parsed_host != NULL && + g_inet_address_equal (parsed_host, host_addr); + if (!host_matches) { + normalized_host_str = g_inet_address_to_string (host_addr); g_debug ("Mismatch between host header and host IP (%s, " "expected: %s)", host, - host_ip); + normalized_host_str); } if (port != context_port) { @@ -1797,9 +1810,11 @@ context_port); } - retval = g_str_equal (host, host_ip) && port == context_port; + retval = host_matches && port == context_port; out: + g_free (normalized_host_str); + g_clear_object (&parsed_host); g_clear_error (&error); g_free (host); g_free (uri_from_host); @@ -1813,6 +1828,6 @@ { return validate_host_header ( host_header, - gssdp_client_get_host_ip (GSSDP_CLIENT (context)), + gssdp_client_get_address (GSSDP_CLIENT (context)), gupnp_context_get_port (context)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/meson.build new/gupnp-1.6.10/meson.build --- old/gupnp-1.6.9/meson.build 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/meson.build 2026-05-23 22:47:08.000000000 +0200 @@ -1,4 +1,4 @@ -project('gupnp', 'c', version : '1.6.9', meson_version : '>= 0.54.0') +project('gupnp', 'c', version : '1.6.10', meson_version : '>= 0.54.0') gnome = import('gnome') pkg = import('pkgconfig') @@ -37,7 +37,7 @@ subdir('internal') -gssdp_dep = dependency('gssdp-1.6', version : '>= 1.6.2', default_options: ['sniffer=false', 'manpages=false', 'gtk_doc=false', 'introspection=' + get_option('introspection').to_string()], fallback: 'gssdp-1.6') +gssdp_dep = dependency('gssdp-1.6', version : '>= 1.6.5', default_options: ['sniffer=false', 'manpages=false', 'gtk_doc=false', 'introspection=' + get_option('introspection').to_string()], fallback: 'gssdp-1.6') gio_unix = dependency('gio-unix-2.0', version: '>= 2.44', required: host_machine.system() != 'windows') libxml_dep = dependency('libxml-2.0') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/tests/test-bugs.c new/gupnp-1.6.10/tests/test-bugs.c --- old/gupnp-1.6.9/tests/test-bugs.c 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/tests/test-bugs.c 2026-05-23 22:47:08.000000000 +0200 @@ -525,67 +525,81 @@ static void test_ggo_24 (void) { + g_autoptr (GInetAddress) addr_127 = g_inet_address_new_from_string ("127.0.0.1"); + g_autoptr (GInetAddress) addr_192 = g_inet_address_new_from_string ("192.168.1.2"); + g_autoptr (GInetAddress) addr_lo6 = g_inet_address_new_from_string ("::1"); + g_autoptr (GInetAddress) addr_fe80_acab = g_inet_address_new_from_string ("fe80::acab"); + // IPv4 g_assert ( - validate_host_header ("127.0.0.1:4711", "127.0.0.1", 4711)); + validate_host_header ("127.0.0.1:4711", addr_127, 4711)); g_assert ( - validate_host_header ("127.0.0.1", "127.0.0.1", 80)); + validate_host_header ("127.0.0.1", addr_127, 80)); g_assert_false ( - validate_host_header ("example.com", "127.0.0.1", 4711)); + validate_host_header ("example.com", addr_127, 4711)); g_assert_false ( - validate_host_header ("example.com:80", "127.0.0.1", 4711)); + validate_host_header ("example.com:80", addr_127, 4711)); g_assert_false ( - validate_host_header ("example.com:4711", "127.0.0.1", 4711)); + validate_host_header ("example.com:4711", addr_127, 4711)); g_assert_false ( - validate_host_header ("192.168.1.2:4711", "127.0.0.1", 4711)); + validate_host_header ("192.168.1.2:4711", addr_127, 4711)); g_assert_false ( - validate_host_header ("[fe80::01]", "127.0.0.1", 4711)); + validate_host_header ("[fe80::01]", addr_127, 4711)); // Link ids should not be parsed g_assert_false ( - validate_host_header ("[fe80::01%1]", "127.0.0.1", 4711)); + validate_host_header ("[fe80::01%1]", addr_127, 4711)); g_assert_false ( - validate_host_header ("[fe80::01%eth0]", "127.0.0.1", 4711)); + validate_host_header ("[fe80::01%eth0]", addr_127, 4711)); // IPv6 g_assert ( - validate_host_header ("[::1]:4711", "::1", 4711)); + validate_host_header ("[::1]:4711", addr_lo6, 4711)); + + g_assert ( + validate_host_header ("[::1]", addr_lo6, 80)); + + g_assert ( + validate_host_header ("[fe80::acab]", addr_fe80_acab, 80)); + + g_assert ( + validate_host_header ("[FE80::ACAB]", addr_fe80_acab, 80)); g_assert ( - validate_host_header ("[::1]", "::1", 80)); + validate_host_header ("[fe80:0000:0000:0000:0000:0000:0000:acab]", addr_fe80_acab, 80)); // Host header needs to be enclosed in [] even without port g_assert_false ( - validate_host_header ("::1", "::1", 80)); + validate_host_header ("::1", addr_lo6, 80)); g_assert_false ( - validate_host_header ("example.com", "::1", 4711)); + validate_host_header ("example.com", addr_lo6, 4711)); g_assert_false ( - validate_host_header ("example.com:80", "::1", 4711)); + validate_host_header ("example.com:80", addr_lo6, 4711)); g_assert_false ( - validate_host_header ("example.com:4711", "::1", 4711)); + validate_host_header ("example.com:4711", addr_lo6, 4711)); g_assert_false ( - validate_host_header ("192.168.1.2:4711", "::1", 4711)); + validate_host_header ("192.168.1.2:4711", addr_lo6, 4711)); g_assert_false ( - validate_host_header ("[fe80::01]", "::1", 4711)); + validate_host_header ("[fe80::01]", addr_lo6, 4711)); // Link ids should not be parsed g_assert_false ( - validate_host_header ("[fe80::01%1]", "fe80::acab", 4711)); + validate_host_header ("[fe80::01%1]", addr_fe80_acab, 4711)); g_assert_false ( - validate_host_header ("[fe80::01%eth0]", "fe80::acab", 4711)); + validate_host_header ("[fe80::01%eth0]", addr_fe80_acab, 4711)); } void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-1.6.9/tests/test-context.c new/gupnp-1.6.10/tests/test-context.c --- old/gupnp-1.6.9/tests/test-context.c 2025-06-28 21:37:09.000000000 +0200 +++ new/gupnp-1.6.10/tests/test-context.c 2026-05-23 22:47:08.000000000 +0200 @@ -11,6 +11,7 @@ #include <string.h> #include <libsoup/soup.h> +#include <libgssdp/gssdp-error.h> #include "libgupnp/gupnp.h" static GUPnPContext * @@ -286,9 +287,10 @@ g_clear_error (&error); g_test_expect_message ( - "gupnp-context", + "gssdp-socket-source", G_LOG_LEVEL_WARNING, - "*Unable to listen*"); + "*Could not claim TCP socket*"); + GUPnPContext *context = g_initable_new (GUPNP_TYPE_CONTEXT, NULL, &error, @@ -301,7 +303,8 @@ g_slist_free_full (uris, (GDestroyNotify) g_uri_unref); g_object_unref (server); g_test_assert_expected_messages (); - g_assert_error (error, GUPNP_SERVER_ERROR, GUPNP_SERVER_ERROR_OTHER); + g_assert_nonnull (error); + g_assert_error (error, GSSDP_ERROR, GSSDP_ERROR_FAILED); g_assert_null (context); g_clear_error (&error); @@ -314,9 +317,10 @@ address = g_uri_get_host (uris->data); port = g_uri_get_port (uris->data); - g_test_expect_message ("gupnp-context", + g_test_expect_message ("gssdp-socket-source", G_LOG_LEVEL_WARNING, - "*Unable to listen*"); + "*Could not claim TCP socket*"); + context = g_initable_new (GUPNP_TYPE_CONTEXT, NULL, &error, @@ -330,8 +334,8 @@ g_test_assert_expected_messages (); g_assert_error (error, - GUPNP_SERVER_ERROR, - GUPNP_SERVER_ERROR_OTHER); + GSSDP_ERROR, + GSSDP_ERROR_FAILED); g_assert_null (context); g_clear_error (&error); } ++++++ gupnp.obsinfo ++++++ --- /var/tmp/diff_new_pack.uyTheG/_old 2026-05-30 22:57:00.229487474 +0200 +++ /var/tmp/diff_new_pack.uyTheG/_new 2026-05-30 22:57:00.241487967 +0200 @@ -1,5 +1,5 @@ name: gupnp -version: 1.6.9 -mtime: 1751139429 -commit: 3b58bae208c879cfe234b07f3c9ebb99232e57c2 +version: 1.6.10 +mtime: 1779569228 +commit: fcbbad05f4f37eec17c01f5e87426b471c12452f
