aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Io/net/HostName.zig
AgeCommit message (Collapse)Author
2025-11-13std.Io.net: fix off-by-one in HostName.expand0x4a61636f62
`HostName.expand` was including the null terminator in the slice passed to `HostName.init`, which caused `HostName.validate` to fail.
2025-10-29std.Io: fix Group.wait unsoundnessAndrew Kelley
Previously if a Group.wait was canceled, then a subsequent call to wait() or cancel() would trip an assertion in the synchronization code.
2025-10-29std.Io.net.HostName: fix missing group cancelAndrew Kelley
2025-10-29std: fix compilation errors on WindowsAndrew Kelley
2025-10-29std.Io.net.HostName.ResolvConf: ignore nameservers above maxAndrew Kelley
2025-10-29std.Io.net.HostName: fix connectMany not running DNS asyncAndrew Kelley
2025-10-29std: move DNS record enum to a better namespaceAndrew Kelley
2025-10-29std.Io.Group: add cancellation support to "wait"Andrew Kelley
2025-10-29std.Io.net.HostName.connect: fix resource leaksAndrew Kelley
Must free other succeeded connections that lost the race.
2025-10-29std.net.HostName.connect: rework to avoid waiting for DNSAndrew Kelley
The previous implementation would eagerly attempt TCP connection upon receiving a DNS reply, but it would still wait for all the DNS results before returning from the function. This implementation returns immediately upon first successful TCP connection, canceling not only in-flight TCP connection attempts but also unfinished DNS queries.
2025-10-29std.Io: implement SelectAndrew Kelley
and finish implementation of HostName.connect
2025-10-29std.Io.net.HostName: move lookup to the interfaceAndrew Kelley
Unfortunately this can't be implemented "above the vtable" because various operating systems don't provide low level DNS resolution primitives such as just putting the list of nameservers in a file. Without libc on Linux it works great though! Anyway this also changes the API to be based on Io.Queue. By using a large enough buffer, reusable code can be written that does not require concurrent, yet takes advantage of responding to DNS queries as they come in. I sketched out a new implementation of `HostName.connect` to demonstrate this, but it will require an additional API (`Io.Select`) to be implemented in a future commit. This commit also introduces "uncancelable" variants for mutex locking, waiting on a condition, and putting items into a queue.
2025-10-29std.Io.net.HostName: fix DNS resolutionAndrew Kelley
* merge conflict with changing behavior of takeDelimiterExclusive * check bounds before adding to result array
2025-10-29std.Io: bring back Timestamp but also keep Clock.TimestampAndrew Kelley
this feels better
2025-10-29std: updating to std.Io interfaceAndrew Kelley
got the build runner compiling
2025-10-29WIP: hack away at std.Io return flightAndrew Kelley
2025-10-29std.Io.net.HostName: implement DNS name expansionAndrew Kelley
2025-10-29std.Io.net.HostName: implement DNS reply parsingAndrew Kelley
2025-10-29std.Io.net: implement receiving connectionless messagesAndrew Kelley
2025-10-29std.Io: implement netSendAndrew Kelley
2025-10-29std.Io.net: make netSend support multiple messagesAndrew Kelley
this lowers to sendmmsg on linux, and means Io.Group is no longer needed, resulting in a more efficient implementation.
2025-10-29std.Io.net.HostName: finish implementing DNS lookupAndrew Kelley
2025-10-29std.Io: implement Group APIAndrew Kelley
2025-10-29Io.net: implement more networkingAndrew Kelley
the next task is now implementing Io.Group
2025-10-29std.Io.net: progress towards DNS resolutionAndrew Kelley
2025-10-29Io.net: finish implementing IPv6 parsingAndrew Kelley
2025-10-29Io.net: use resolve for IPv6Andrew Kelley
/etc/resolv.conf might have IPv6 addresses with scope in it, so this is needed.
2025-10-29Io.net: rework IPv6 parsing and printingAndrew Kelley
extract pure functional logic into pure functions and then layer the scope crap on top properly the formatting code incorrectly didn't do the reverse operation (if_indextoname). fix that with some TODO panics
2025-10-29std.Io: extract Dir to separate fileAndrew Kelley
2025-10-29Io.net: partial implementation of dns lookupAndrew Kelley