diff --git a/README.md b/README.md index 48b0cf0e..540de8c1 100644 --- a/README.md +++ b/README.md @@ -1584,6 +1584,7 @@ below are some tweaks roughly ordered by usefulness: * `-j0` enables multiprocessing (actual multithreading), can reduce latency to `20+80/numCores` percent and generally improve performance in cpu-intensive workloads, for example: * lots of connections (many users or heavy clients) * simultaneous downloads and uploads saturating a 20gbps connection + * if `-e2d` is enabled, `-j2` gives 4x performance for directory listings; `-j4` gives 16x ...however it adds an overhead to internal communication so it might be a net loss, see if it works 4 u * using [pypy](https://www.pypy.org/) instead of [cpython](https://www.python.org/) *can* be 70% faster for some workloads, but slower for many others @@ -1785,7 +1786,7 @@ can be convenient on machines where installing python is problematic, however is * dangerous: [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) is compatible with [windows7](https://user-images.githubusercontent.com/241032/221445944-ae85d1f4-d351-4837-b130-82cab57d6cca.png), which means it uses an ancient copy of python (3.7.9) which cannot be upgraded and should never be exposed to the internet (LAN is fine) -* dangerous and deprecated: [copyparty-winpe64.exe](https://github.com/9001/copyparty/releases/download/v1.6.8/copyparty-winpe64.exe) lets you [run copyparty in WinPE](https://user-images.githubusercontent.com/241032/205454984-e6b550df-3c49-486d-9267-1614078dd0dd.png) and is otherwise completely useless +* dangerous and deprecated: [copyparty-winpe64.exe](https://github.com/9001/copyparty/releases/download/v1.8.7/copyparty-winpe64.exe) lets you [run copyparty in WinPE](https://user-images.githubusercontent.com/241032/205454984-e6b550df-3c49-486d-9267-1614078dd0dd.png) and is otherwise completely useless meanwhile [copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py) instead relies on your system python which gives better performance and will stay safe as long as you keep your python install up-to-date diff --git a/copyparty/__version__.py b/copyparty/__version__.py index a3895e8f..48ec1653 100644 --- a/copyparty/__version__.py +++ b/copyparty/__version__.py @@ -1,8 +1,8 @@ # coding: utf-8 -VERSION = (1, 9, 6) +VERSION = (1, 9, 7) CODENAME = "prometheable" -BUILD_DT = (2023, 9, 23) +BUILD_DT = (2023, 9, 30) S_VERSION = ".".join(map(str, VERSION)) S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT) diff --git a/docs/changelog.md b/docs/changelog.md index a4a3d52c..7e843435 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,27 @@ +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2023-0923-1215 `v1.9.6` configurable x-forwarded-for + +## new features +* rudimentary support for jython and graalpy, and directory tree sidebar in internet explorer 9 through 11, and firefox 10 + * all older browsers (ie4, ie6, ie8, Netscape) get basic html instead +* #35 adds a [hook](https://github.com/9001/copyparty/blob/hovudstraum/bin/hooks/msg-log.py) which extends the message-to-serverlog feature so it writes the message to a textfile on the server + * could theoretically be extended into a [full instant-messaging feature](https://github.com/9001/copyparty/blob/hovudstraum/srv/chat.md) but that's silly, [nobody would do that](https://ocv.me/stuff/cchat.webm) + * [r0c is much better](https://github.com/9001/r0c) than this joke + +## bugfixes +* 163e3fce46122d64bf824762b6733ff2c3551ba5 the `x-forwarded-for` header was ignored if the nearest reverse-proxy is not asking from 127.0.0.1, which broke client IPs in containerized deployments + * the serverlog will now explain how to trust the reverse-proxy to provide client IPs, but basically, + * `--xff-hdr` specifies which header to read the client's real ip from + * `--xff-src` is an allowlist of IP-addresses to trust that header from +* a62f744a187bc9f821b540e8bb4e0b9a67bd01c8 if copyparty was started while an external HDD was not connected, and that volume's index was stored elsewhere, then the index would get wiped (since all the files are gone) +* 3b8f66c0d5c27a68841814ec06f1758f146a5ff5 javascript could crash while uploading from a very unreliable internet connection + +## other changes +* copyparty.exe: updated pillow to 10.0.1 which fixes the webp cve +* alpine, which the docker images are based on, turns out to be fairly slow -- currently working on a new docker image (probably fedora-based) which will be 30% faster at analyzing multimedia files and in general 20% faster on average + + + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ # 2023-0909-1336 `v1.9.5` webhotell diff --git a/scripts/bench/filehash.sh b/scripts/bench/filehash.sh index c70a0dd6..6f297369 100755 --- a/scripts/bench/filehash.sh +++ b/scripts/bench/filehash.sh @@ -40,7 +40,7 @@ echo warming up cache cat 1 >/dev/null echo ok lets go -python3 "$sfx" -p39204 -e2dsa --dbd=yolo --exit=idx -lo=t "$@" +python3 "$sfx" -p39204 -e2dsa --dbd=yolo --exit=idx -lo=t -q "$@" echo and the results are... $awk '/1 volumes in / {printf "%s MiB/s\n", 256*128/$(NF-1)}'