You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(url): expose response header names in lower case
HTTP header field names are case-insensitive (RFC 9110, section 5.1), but
since the switch to httpx the response_header keys arrived lower-cased
while consumers still looked them up in their original casing. veeam.py
(X-RestSvcSessionId) and huawei.py (Set-Cookie) therefore failed to find
their session token / cookie, surfacing as a false "unauthorized".
Canonicalize response header names to lower case in url.py and update the
consumers to read the canonical key. Tests mirror the real lower-cased
transport behaviour.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,9 +16,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
16
17
17
### Fixed
18
18
19
+
* huawei.py: the session cookie is read regardless of how the storage system cases the response header, preventing authentication from failing on a case-sensitive header lookup
19
20
* redfish.py: Sensors that report an empty min/max range (identical min and max, used by some firmware as a "no limit" placeholder) no longer raise false warnings ([#1211](https://github.com/Linuxfabrik/monitoring-plugins/issues/1211))
20
21
* url.py: a caller-supplied `Content-Length` is ignored and recomputed from the request body
21
-
* veeam.py: authentication against the Veeam Enterprise Manager API works again
22
+
* url.py: response header names are exposed in lower case, so callers read them reliably no matter how the server cased them
23
+
* veeam.py: authentication against the Veeam Enterprise Manager API no longer fails with a `415 Unsupported Media Type` error or a false "unauthorized" result
22
24
* Installing the library from source (for example `pip install --editable .`) no longer hangs, which also unblocks the API documentation build
23
25
* Resolve the remaining ruff lint violations across the library, including a few robustness fixes: a bare `except` in disk.py now catches only `OSError`, mutable default arguments in url.py and rocket.py are no longer shared between calls, and uptimerobot.py uses `isinstance()` instead of a `type()` comparison ([#118](https://github.com/Linuxfabrik/lib/issues/118))
0 commit comments