aboutsummaryrefslogtreecommitdiff
path: root/lib/std/net.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/net.zig')
-rw-r--r--lib/std/net.zig41
1 files changed, 27 insertions, 14 deletions
diff --git a/lib/std/net.zig b/lib/std/net.zig
index c741941328..1109d17411 100644
--- a/lib/std/net.zig
+++ b/lib/std/net.zig
@@ -30,10 +30,9 @@ pub const Address = struct {
pub fn initIp4(ip4: u32, _port: u16) Address {
switch (builtin.os) {
- .macosx, .ios, .watchos, .tvos, .freebsd, .netbsd => return Address{
+ .linux => return Address{
.os_addr = os.sockaddr{
.in = os.sockaddr_in{
- .len = @sizeOf(os.sockaddr_in),
.family = os.AF_INET,
.port = mem.nativeToBig(u16, _port),
.addr = ip4,
@@ -41,9 +40,10 @@ pub const Address = struct {
},
},
},
- .linux => return Address{
+ else => return Address{
.os_addr = os.sockaddr{
.in = os.sockaddr_in{
+ .len = @sizeOf(os.sockaddr_in),
.family = os.AF_INET,
.port = mem.nativeToBig(u16, _port),
.addr = ip4,
@@ -51,22 +51,35 @@ pub const Address = struct {
},
},
},
- else => @compileError("Address.initIp4 not implemented for this platform"),
}
}
pub fn initIp6(ip6: Ip6Addr, _port: u16) Address {
- return Address{
- .os_addr = os.sockaddr{
- .in6 = os.sockaddr_in6{
- .family = os.AF_INET6,
- .port = mem.nativeToBig(u16, _port),
- .flowinfo = 0,
- .addr = ip6.addr,
- .scope_id = ip6.scope_id,
+ switch (builtin.os) {
+ .linux => return Address{
+ .os_addr = os.sockaddr{
+ .in6 = os.sockaddr_in6{
+ .family = os.AF_INET6,
+ .port = mem.nativeToBig(u16, _port),
+ .flowinfo = 0,
+ .addr = ip6.addr,
+ .scope_id = ip6.scope_id,
+ },
},
},
- };
+ else => return Address{
+ .os_addr = os.sockaddr{
+ .in6 = os.sockaddr_in6{
+ .len = @sizeOf(os.sockaddr_in6),
+ .family = os.AF_INET6,
+ .port = mem.nativeToBig(u16, _port),
+ .flowinfo = 0,
+ .addr = ip6.addr,
+ .scope_id = ip6.scope_id,
+ },
+ },
+ },
+ }
}
pub fn port(self: Address) u16 {
@@ -1126,7 +1139,7 @@ fn resMSendRc(
}};
const retry_interval = timeout / attempts;
var next: u32 = 0;
- var t2: usize = std.time.milliTimestamp();
+ var t2: u64 = std.time.milliTimestamp();
var t0 = t2;
var t1 = t2 - retry_interval;