aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/transport/quic_server.py
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-04 02:20:48 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-04 02:20:48 +0200
commit7a4b905ddb64bdc92b7f9acf2ccde9bd84d7a6f3 (patch)
treecc9c7025c2b2d7fc31571b3589ecabcb6f63d8c2 /packages/meshbay-node/src/meshbay_node/transport/quic_server.py
parent5022f2be149e40ac5bdd5fc362e926f3edcf44f0 (diff)
downloadmeshbay-7a4b905ddb64bdc92b7f9acf2ccde9bd84d7a6f3.tar.gz
fix(node): pin utf-8 (and LF) on every text file the node reads or writes
node.toml, the keystore envelope, the unlock key, the loopback UI token, pairing/invite code files and the denylist were all read and written with the platform default encoding and newline translation. On Windows that is cp1252 + CRLF: a node.toml or keystore holding any non-ASCII byte failed to load, and ops.py's line-based node.toml editor round-tripped CRLF in and LF out. Every read is now `encoding="utf-8"`; every write is `encoding="utf-8", newline="\n"` so the files stay LF whatever the OS. No-op where the locale was already UTF-8. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/transport/quic_server.py')
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/quic_server.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/quic_server.py b/packages/meshbay-node/src/meshbay_node/transport/quic_server.py
index 95fccf1..360b9ac 100644
--- a/packages/meshbay-node/src/meshbay_node/transport/quic_server.py
+++ b/packages/meshbay-node/src/meshbay_node/transport/quic_server.py
@@ -144,7 +144,7 @@ class Denylist:
return
try:
import json
- data = json.loads(self._path.read_text())
+ data = json.loads(self._path.read_text(encoding="utf-8"))
self.user_ids = set(data.get("users", []))
self.group_ids = set(data.get("groups", []))
self.jtis = set(data.get("jtis", []))
@@ -163,7 +163,7 @@ class Denylist:
"users": sorted(self.user_ids),
"groups": sorted(self.group_ids),
"jtis": sorted(self.jtis),
- }))
+ }), encoding="utf-8", newline="\n")
except Exception as e:
log.warning("Could not persist denylist to %s: %s", self._path, e)