4 ms·
> Network services are defined by the presence, in a directory watched by listen, of executable files whose name is of the form <protocol><port>. That seems a
by tmtvl 2y ago
> Network services are defined by the presence, in a directory watched by listen, of executable files whose name is of the form <protocol><port>.
That seems a bit silly to me as it means something like rot1376 is tricky to parse correctly. I'd think it would make sense for the protocol to need to be separated from the port by a non-numeric character, like a hyphen. Like that it would be trivial to parse: just grab all the numeric characters from the end until we find the non-numeric character.
- msk-lywenn 2y agoRot13 is not a protocol. If you want to make a rot13 over tcp on port 13, your executable would be named tcp13. I thought the same mistake at first too.
- PeterWhittaker 2y agoHonesty, that’s trivial to parse, even if you don’t want to use or don’t have regex available: In C, e.g., just treat the name as a string and walk backwards from the last character until you find a non-digit; adjust for indexing, and you now know where the protocol ends and port begins.
- mecsred 2y agoThat explicitly wouldn't work in the example you're responding to
- dpassens 2y agoI believe GP meant that you can't have protocols containing numbers, using rot13 as the example protocol on port 76. Though, as msk-lywenn said, rot13 isn't a real protocol, which don't really have numbers in their names.
- phlip9 2y agoExactly, it should use a separator. Consider a more realistic example, like http280 or h3443. Totally ambiguous.
- linschn 2y agoTrue, and noted, but realistically, the only implemented protocol now is tcp, and the next one will be udp. Historically, Plan 9 had IL as well. Which transport protocol has a number in its name ? If I implement one someday I'll add a separator.
- m4x1mUmk3kZ 2y agol2tp mic drop