diff --git a/copyparty/__version__.py b/copyparty/__version__.py index a06083ea..8a42927c 100644 --- a/copyparty/__version__.py +++ b/copyparty/__version__.py @@ -1,8 +1,8 @@ # coding: utf-8 -VERSION = (1, 20, 6) +VERSION = (1, 20, 7) CODENAME = "sftp is fine too" -BUILD_DT = (2026, 1, 31) +BUILD_DT = (2026, 2, 14) S_VERSION = ".".join(map(str, VERSION)) S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT) diff --git a/copyparty/sftpd.py b/copyparty/sftpd.py index 790ff5b6..fc1ce7f5 100644 --- a/copyparty/sftpd.py +++ b/copyparty/sftpd.py @@ -805,6 +805,10 @@ class Sftpd(object): self.bound.append(ip) except Exception as ex: if ip == "0.0.0.0" and "::" in self.bound: + try: + srv.close() # type: ignore + except: + pass return # dualstack self.log("could not listen on (%s,%s): %r" % (ip, port, ex), 3) diff --git a/copyparty/util.py b/copyparty/util.py index cfcbbd48..110b49dd 100644 --- a/copyparty/util.py +++ b/copyparty/util.py @@ -2978,6 +2978,8 @@ def shut_socket(log: "NamedLogger", sck: socket.socket, timeout: int = 3) -> Non sck.shutdown(socket.SHUT_RDWR) except: pass + except OSError as ex: + log("shut(%d): ok; client has already disconnected; %s" % (fd, ex.errno), "90") except Exception as ex: log("shut({}): {}".format(fd, ex), "90") finally: diff --git a/docs/changelog.md b/docs/changelog.md index f61b314b..22a97131 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,17 @@ +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2026-0131-2001 `v1.20.6` one safeguard too many + +## 🧪 new features + +* #1264 now possible to grant the `get` permission when creating a share 95b827f1 + * the button was already there, but until now it did nothing + +## 🩹 bugfixes + +* a safeguard (24141b49) added in [v1.20.5](https://github.com/9001/copyparty/releases/tag/v1.20.5) was too strict and would block requests from certain reverseproxies, specifically anything that adds `X-Forwarded-HTTP-Version` 72224d29 + + + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ # 2026-0130-2145 `v1.20.5` fast again diff --git a/pyproject.toml b/pyproject.toml index be92cb02..a9966b58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: Jython", "Programming Language :: Python :: Implementation :: PyPy", diff --git a/setup.py b/setup.py index 6755a29b..71b78e71 100755 --- a/setup.py +++ b/setup.py @@ -109,6 +109,7 @@ args = { "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: Jython", "Programming Language :: Python :: Implementation :: PyPy",