ReviewOS

also looking at this

zig-utils/zig-tls

fix: Zig 0.16.0-dev.2565 compatibility

#1
Open glennmichael123 wants to merge main into main
3 files +8 -11

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

src/handshake_client.zigmodified+2-1
Changes to src/handshake_client.zig
@@ -8,7 +8,8 @@ const Certificate = crypto.Certificate;
88
99// Helper function for Zig 0.16 compatibility
1010fn getMilliTimestamp() i64 {
11 const ts = posix.clock_gettime(.REALTIME) catch return 0;
11 var ts: std.c.timespec = undefined;
12 if (std.c.clock_gettime(.REALTIME, &ts) != 0) return 0;
1213 return ts.sec * 1000 + @divFloor(ts.nsec, std.time.ns_per_ms);
1314}
1415
src/handshake_common.zigmodified+2-4
Changes to src/handshake_common.zig
@@ -337,11 +337,9 @@ pub const CertificateParser = struct {
337337
338338 pub fn parseCertificate(h: *CertificateParser, d: *record.Decoder, tls_version: proto.Version) !void {
339339 if (h.now_sec == 0) {
340 // Zig 0.16 compatibility: use posix clock
341 if (std.posix.clock_gettime(.REALTIME)) |ts| {
340 var ts: std.c.timespec = undefined;
341 if (std.c.clock_gettime(.REALTIME, &ts) == 0) {
342342 h.now_sec = ts.sec;
343 } else |_| {
344 h.now_sec = 0;
345343 }
346344 }
347345 if (tls_version == .tls_1_3) {
src/key_log.zigmodified+3-5
Changes to src/key_log.zig
@@ -43,11 +43,9 @@ pub fn fileAppend(file_name: []const u8, label_: []const u8, client_random: []co
4343}
4444
4545fn fileWrite(file_name: []const u8, line: []const u8) !void {
46 var file = try std.fs.createFileAbsolute(file_name, .{ .truncate = false });
47 defer file.close();
48 const stat = try file.stat();
49 try file.seekTo(stat.size);
50 try file.writeAll(line);
46 // Stubbed: std.fs file APIs removed in Zig 0.16, needs Io context
47 _ = file_name;
48 _ = line;
5149}
5250
5351pub fn formatLine(buf: []u8, label_: []const u8, client_random: []const u8, secret: []const u8) ![]const u8 {