aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Io/net
AgeCommit message (Collapse)Author
2025-11-19std.Io.net: disable `listen on a unix socket, send bytes, receive bytes` on ↵Alex Rønne Petersen
Windows https://github.com/ziglang/zig/issues/25983
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.Io.net: skip testing netInterfaceNameResolve on WindowsAndrew Kelley
let's handle this in a follow-up change. implementation needs to use ConvertInterfaceNameToLuidW and the additional dependency on Iphlpapi.dll poses some challenges.
2025-10-29std.Io.Threaded: fix compilation failures on WindowsAndrew 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-29fix miscellaneous compilation failuresAndrew 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.Threaded: implement netListenUnixAndrew Kelley
2025-10-29std.net: IPv6 parsing fixesAndrew Kelley
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.net: fix parsing IPv4-mapped IPv6 addressesAndrew Kelley
2025-10-29std.Io: add unix domain sockets APIAndrew Kelley
note that "reuseaddr" does nothing for these
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-29WIP: hack at std.Io on a planeAndrew Kelley
2025-10-29WIP land the std.Io interfaceAndrew Kelley
fix std lib compilation errors caused by introducing std.Io
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