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/ › Kqueue.zig › netConnectIp
netConnectIp
Kqueue.netConnectIp
fn netConnectIp (userdata : ?*anyopaque , address : *const net .IpAddress , options : net .IpAddress .ConnectOptions ) net .IpAddress .ConnectError !net .Socket
File
Code
fn netConnectIp (userdata : ?*anyopaque , address : *const net .IpAddress , options : net .IpAddress .ConnectOptions ) net .IpAddress .ConnectError !net .Socket {
if (options .timeout != .none ) @panic ("TODO" );
const k : *Kqueue = @ptrCast (@alignCast (userdata ));
const family = Io .Threaded .posixAddressFamily (address );
const socket_fd = try openSocketPosix (k , family , .{
.mode = options .mode ,
.protocol = options .protocol ,
});
errdefer closeFd (socket_fd );
var storage : Io .Threaded .PosixAddress = undefined ;
var addr_len = Io .Threaded .addressToPosix (address , &storage );
try posixConnect (k , socket_fd , &storage .any , addr_len );
try posixGetSockName (k , socket_fd , &storage .any , &addr_len );
return .{ .handle = socket_fd , .address = Io .Threaded .addressFromPosix (&storage ) };
}