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/ › crypto/ › tls/ › Client.zig › tryDownloadRootCert
tryDownloadRootCert
Client.tryDownloadRootCert
fn tryDownloadRootCert (chain : *Certificate .Chain , options : *const Options ) !void
File
Code
fn tryDownloadRootCert (chain : *Certificate .Chain , options : *const Options ) !void {
if (Certificate .Chain != void ) switch (options .ca ) {
else => {},
.bundle => |ca | {
chain .verify (options .realtime_now ) catch |err | switch (err ) {
error .Unexpected => return error .TlsCertificateNotVerified ,
else => |e | return e ,
};
var bundle : Certificate .Bundle = .empty ;
defer bundle .deinit (ca .gpa );
if (bundle .rescan (ca .gpa , ca .io , options .realtime_now )) {
try ca .lock .lock (ca .io );
defer ca .lock .unlock (ca .io );
std .mem .swap (Certificate .Bundle , ca .bundle , &bundle );
} else |err | switch (err ) {
error .Canceled => |e | return e ,
else => {},
}
return ;
},
};
return error .TlsCertificateNotVerified ;
}