Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › Io/ › Threaded.zig › netConnectIpPosix
netConnectIpPosix
Threaded.netConnectIpPosix
fn netConnectIpPosix (
userdata : ?*anyopaque ,
address : *const IpAddress ,
options : IpAddress .ConnectOptions ,
) IpAddress .ConnectError !net .Socket
File
Code
fn netConnectIpPosix (
userdata : ?*anyopaque ,
address : *const IpAddress ,
options : IpAddress .ConnectOptions ,
) IpAddress .ConnectError !net .Socket {
if (!have_networking ) return error .NetworkDown ;
if (options .timeout != .none ) @panic ("TODO implement netConnectIpPosix with timeout" );
const t : *Threaded = @ptrCast (@alignCast (userdata ));
_ = t ;
const family = posixAddressFamily (address );
const socket_fd = try openSocketPosix (family , .{ .mode = options .mode , .protocol = options .protocol });
errdefer closeFd (socket_fd );
var storage : PosixAddress = undefined ;
var addr_len = addressToPosix (address , &storage );
try posixConnect (socket_fd , &storage .any , addr_len );
try posixGetSockName (socket_fd , &storage .any , &addr_len );
return .{ .handle = socket_fd , .address = addressFromPosix (&storage ) };
}