summaryrefslogtreecommitdiff
path: root/src/ninep/addr.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 13:26:10 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commit917e9a099f3a5048ac436aafcfabbf3d40d1c24f (patch)
tree334ca7e2cee44cd106533d57562a7a3f2cfb013d /src/ninep/addr.zig
parentf4fdeb4f0f5f08699f77bd2cc6cac5a87d9f5091 (diff)
downloadpardes-917e9a099f3a5048ac436aafcfabbf3d40d1c24f.tar.gz
pardes-917e9a099f3a5048ac436aafcfabbf3d40d1c24f.zip
docs: through a mount a malformed write is EINVAL and one that fails is EIO, and the error words keep it so
The served README said every refused write reads as EINVAL, but a mount's errno is 9ns's reading of the error's words, so a no-match or out-of-range address and a refused Exit came back EIO, as the dogfood run saw. That split is the useful one, malformed against failed, so the docs now state it rather than the words being bent to EINVAL; a test pins each error's words to its side of it. It caught one: 'regular expression search took too long' read as ENAMETOOLONG, and now says it gave up past its step budget. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep/addr.zig')
-rw-r--r--src/ninep/addr.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ninep/addr.zig b/src/ninep/addr.zig
index 6656c786..3b29f622 100644
--- a/src/ninep/addr.zig
+++ b/src/ninep/addr.zig
@@ -14,7 +14,9 @@ fn clip(n: usize) u32 {
pub const e_no_match = "no match for regexp";
pub const e_range = "address out of range";
pub const e_regexp = "bad regular expression";
-pub const e_slow = "regular expression search took too long";
+/// Not "took too long": 9ns reads errors by their words, and that would be
+/// ENAMETOOLONG.
+pub const e_slow = "regular expression search gave up, backtracking past its step budget";
pub const e_syntax = "bad address syntax";
pub const e_order = "addresses out of order";