From 39b2e2d0ef3b65a8fc51242fe18d4b8f790dc426 Mon Sep 17 00:00:00 2001 From: Ondrej Holy Date: Wed, 17 Apr 2024 13:28:21 +0200 Subject: [PATCH] Update to 0.8 Resolves: RHEL-35671 --- .gitignore | 1 + ...f346bbb22777a8f66b0d6c6ef899f6d6cc74.patch | 87 ------------------- sources | 2 +- wsdd.spec | 10 +-- 4 files changed, 7 insertions(+), 93 deletions(-) delete mode 100644 c4a5f346bbb22777a8f66b0d6c6ef899f6d6cc74.patch diff --git a/.gitignore b/.gitignore index 2c69437..1064cf7 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /wsdd-0.6.4.tar.gz /wsdd-0.7.0.tar.gz /wsdd-0.7.1.tar.gz +/wsdd-0.8.tar.gz diff --git a/c4a5f346bbb22777a8f66b0d6c6ef899f6d6cc74.patch b/c4a5f346bbb22777a8f66b0d6c6ef899f6d6cc74.patch deleted file mode 100644 index acf0305..0000000 --- a/c4a5f346bbb22777a8f66b0d6c6ef899f6d6cc74.patch +++ /dev/null @@ -1,87 +0,0 @@ -From c4a5f346bbb22777a8f66b0d6c6ef899f6d6cc74 Mon Sep 17 00:00:00 2001 -From: Steffen Christgau -Date: Sun, 14 May 2023 21:47:16 +0200 -Subject: [PATCH] fix(src): Handle multiple xaddrs in ResolveMatch/ProbeMatch - -Currently, the `ProbeMatch`/`ResolveMatch` messages with multiple -transport addresses cause the `http.client.InvalidURL: URL can't contain -control characters.` exceptions. Those messages seem to be valid and can -be received e.g. from HP printers. Let's use the same approach as it was -implemented for the `Hello` message over the -https://github.com/christgau/wsdd/commit/918a1ae8a3e600366ccdf936bb247a43143f298f -commit to fix this issue. - -Related: https://github.com/christgau/wsdd/issues/89 -Fixes: https://github.com/christgau/wsdd/issues/149 - -Co-authored-by: Ondrej Holy -Signed-off-by: Steffen Christgau ---- - src/wsdd.py | 33 ++++++++++++++++++++------------- - 1 file changed, 20 insertions(+), 13 deletions(-) - -diff --git a/src/wsdd.py b/src/wsdd.py -index 862c6eb..39f54c9 100755 ---- a/src/wsdd.py -+++ b/src/wsdd.py -@@ -738,6 +738,17 @@ def teardown(self) -> None: - def handle_packet(self, msg: str, src: Optional[UdpAddress] = None) -> None: - self.handle_message(msg, src) - -+ def __extract_xaddr(self, xaddrs: str) -> Optional[str]: -+ for addr in xaddrs.strip().split(): -+ if (self.mch.address.family == socket.AF_INET6) and ('//[fe80::' in addr): -+ # use first link-local address for IPv6 -+ return addr -+ elif self.mch.address.family == socket.AF_INET: -+ # use first (and very likely the only) IPv4 address -+ return addr -+ -+ return None -+ - def handle_hello(self, header: ElementTree.Element, body: ElementTree.Element) -> Optional[WSDMessage]: - pm_path = 'wsd:Hello' - endpoint, xaddrs = self.extract_endpoint_metadata(body, pm_path) -@@ -747,17 +758,7 @@ def handle_hello(self, header: ElementTree.Element, body: ElementTree.Element) - - self.enqueue_datagram(msg, self.mch.multicast_address) - return None - -- xaddr = None -- for addr in xaddrs.strip().split(): -- if (self.mch.address.family == socket.AF_INET6) and ('//[fe80::' in addr): -- # use first link-local address for IPv6 -- xaddr = addr -- break -- elif self.mch.address.family == socket.AF_INET: -- # use first (and very likely the only) IPv4 address -- xaddr = addr -- break -- -+ xaddr = self.__extract_xaddr(xaddrs) - if xaddr is None: - return None - -@@ -790,7 +791,10 @@ def handle_probe_match(self, header: ElementTree.Element, body: ElementTree.Elem - self.enqueue_datagram(msg, self.mch.multicast_address) - return None - -- xaddr = xaddrs.strip() -+ xaddr = self.__extract_xaddr(xaddrs) -+ if xaddr is None: -+ return None -+ - logger.debug('probe match for {} on {}'.format(endpoint, xaddr)) - self.perform_metadata_exchange(endpoint, xaddr) - -@@ -809,7 +813,10 @@ def handle_resolve_match(self, header: ElementTree.Element, body: ElementTree.El - logger.debug('resolve match without endpoint/xaddr') - return None - -- xaddr = xaddrs.strip() -+ xaddr = self.__extract_xaddr(xaddrs) -+ if xaddr is None: -+ return None -+ - logger.debug('resolve match for {} on {}'.format(endpoint, xaddr)) - self.perform_metadata_exchange(endpoint, xaddr) - diff --git a/sources b/sources index d6943ac..d27aefc 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (wsdd.xml) = 36def332798589dde0a5c514f64812f888208e18b8ccd163f1e1ab80fd81838c9b6c900f5e4d1a45ace571b1effa16182ad8116c7bdd836a4c8cf36f49bd863e SHA512 (wsdd-http.xml) = 6238be4d37eaeb412ce87f67cd6fa19af3a3dea25c1a23537eff6955eaf7bcce399a13d845107b65a3c4bb0bc89d4bf372570742aa5ed0b2f7ecfd0598c1a23e -SHA512 (wsdd-0.7.1.tar.gz) = 3d65fd5d5b4bd6ff37409e07301e082ffd2bb5df184cc12730e2cb2d36ebef030c6121b515af9c7eca59562e73414c7da6f7a6cd1b05c3bb27745e402cd7f684 +SHA512 (wsdd-0.8.tar.gz) = e3e5164f9ebe39c979456169bf1b0c6c4cd974792f08fa4dfab9c313fba88ae1208a8112db09c3655719b4e26bfc2616f844f17d2a245132c2f5b22e978e3c20 diff --git a/wsdd.spec b/wsdd.spec index c6e8e28..10f7646 100644 --- a/wsdd.spec +++ b/wsdd.spec @@ -1,6 +1,6 @@ Name: wsdd -Version: 0.7.1 -Release: 3%{?dist} +Version: 0.8 +Release: 1%{?dist} Summary: Web Services Dynamic Discovery host daemon License: MIT URL: https://github.com/christgau/wsdd @@ -8,9 +8,6 @@ Source0: https://github.com/christgau/wsdd/archive/v%{version}/wsdd-%{ver Source1: wsdd.xml Source2: wsdd-http.xml -# https://github.com/christgau/wsdd/issues/149 -Patch: c4a5f346bbb22777a8f66b0d6c6ef899f6d6cc74.patch - Patch: Modify-systemd-service-for-Fedora.patch BuildArch: noarch @@ -65,6 +62,9 @@ exit 0 %changelog +* Wed Apr 17 2024 Ondrej Holy - 0.8.0-1 +- Update to 0.8 + * Fri Feb 16 2024 Ondrej Holy - 0.7.1-3 - Fix backward compatibility (#2254986)