mirror of
				https://github.com/lightpanda-io/browser.git
				synced 2025-10-30 15:41:48 +00:00 
			
		
		
		
	add custom scheduler
This commit is contained in:
		| @@ -38,8 +38,8 @@ pub fn load(allocator: Allocator, arena: Allocator) !c.curl_blob { | ||||
|  | ||||
|     const encoded_size = encoder.calcSize(bytes.len); | ||||
|     const buffer_size = encoded_size + | ||||
|         (bundle.map.count() * 75) +  // start / end per certificate + extra, just in case | ||||
|         (encoded_size / 64)          // newline per 64 characters | ||||
|         (bundle.map.count() * 75) + // start / end per certificate + extra, just in case | ||||
|         (encoded_size / 64) // newline per 64 characters | ||||
|     ; | ||||
|     try arr.ensureTotalCapacity(arena, buffer_size); | ||||
|     var writer = arr.writer(arena); | ||||
| @@ -48,7 +48,7 @@ pub fn load(allocator: Allocator, arena: Allocator) !c.curl_blob { | ||||
|         const cert = try std.crypto.Certificate.der.Element.parse(bytes, index.*); | ||||
|  | ||||
|         try writer.writeAll("-----BEGIN CERTIFICATE-----\n"); | ||||
|         var line_writer = LineWriter{.inner = writer}; | ||||
|         var line_writer = LineWriter{ .inner = writer }; | ||||
|         try encoder.encodeWriter(&line_writer, bytes[index.*..cert.slice.end]); | ||||
|         try writer.writeAll("\n-----END CERTIFICATE-----\n"); | ||||
|     } | ||||
|   | ||||
| @@ -249,13 +249,13 @@ const Handles = struct { | ||||
|  | ||||
|             node.data = &handles[i]; | ||||
|             available.append(node); | ||||
|          } | ||||
|         } | ||||
|  | ||||
|          return .{ | ||||
|         return .{ | ||||
|             .handles = handles, | ||||
|             .available = available, | ||||
|             .cert_arena = cert_arena, | ||||
|          }; | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     fn deinit(self: *Handles, allocator: Allocator) void { | ||||
| @@ -335,12 +335,12 @@ pub const Request = struct { | ||||
|     // arbitrary data that can be associated with this request | ||||
|     ctx: *anyopaque = undefined, | ||||
|  | ||||
|     start_callback: ?*const fn(req: *Transfer) anyerror!void = null, | ||||
|     header_callback: ?*const fn (req: *Transfer, header: []const u8) anyerror!void = null , | ||||
|     start_callback: ?*const fn (req: *Transfer) anyerror!void = null, | ||||
|     header_callback: ?*const fn (req: *Transfer, header: []const u8) anyerror!void = null, | ||||
|     header_done_callback: *const fn (req: *Transfer) anyerror!void, | ||||
|     data_callback: *const fn(req: *Transfer, data: []const u8) anyerror!void, | ||||
|     done_callback: *const fn(req: *Transfer) anyerror!void, | ||||
|     error_callback: *const fn(req: *Transfer, err: anyerror) void, | ||||
|     data_callback: *const fn (req: *Transfer, data: []const u8) anyerror!void, | ||||
|     done_callback: *const fn (req: *Transfer) anyerror!void, | ||||
|     error_callback: *const fn (req: *Transfer, err: anyerror) void, | ||||
| }; | ||||
|  | ||||
| pub const Transfer = struct { | ||||
| @@ -365,7 +365,7 @@ pub const Transfer = struct { | ||||
|  | ||||
|     pub fn format(self: *const Transfer, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { | ||||
|         const req = self.req; | ||||
|         return writer.print("[{d}] {s} {s}", .{self.id, @tagName(req.method), req.url}); | ||||
|         return writer.print("[{d}] {s} {s}", .{ self.id, @tagName(req.method), req.url }); | ||||
|     } | ||||
|  | ||||
|     fn onError(self: *Transfer, err: anyerror) void { | ||||
| @@ -385,7 +385,7 @@ pub const Transfer = struct { | ||||
|     pub fn abort(self: *Transfer) void { | ||||
|         var client = self.handle.client; | ||||
|         errorMCheck(c.curl_multi_remove_handle(client.multi, self.handle.easy)) catch |err| { | ||||
|             log.err(.http, "Failed to abort", .{.err = err}); | ||||
|             log.err(.http, "Failed to abort", .{ .err = err }); | ||||
|         }; | ||||
|         client.active -= 1; | ||||
|         self.deinit(); | ||||
| @@ -397,13 +397,13 @@ pub const Transfer = struct { | ||||
|  | ||||
|         const handle: *Handle = @alignCast(@ptrCast(data)); | ||||
|         var transfer = fromEasy(handle.easy) catch |err| { | ||||
|             log.err(.http, "retrive private info", .{.err = err}); | ||||
|             log.err(.http, "retrive private info", .{ .err = err }); | ||||
|             return 0; | ||||
|         }; | ||||
|  | ||||
|         std.debug.assert(std.mem.endsWith(u8, buffer[0..buf_len], "\r\n")); | ||||
|  | ||||
|         const header = buffer[0..buf_len - 2]; | ||||
|         const header = buffer[0 .. buf_len - 2]; | ||||
|  | ||||
|         if (transfer.response_header == null) { | ||||
|             if (buf_len < 13 or std.mem.startsWith(u8, header, "HTTP/") == false) { | ||||
| @@ -477,7 +477,7 @@ pub const Transfer = struct { | ||||
|  | ||||
|         const handle: *Handle = @alignCast(@ptrCast(data)); | ||||
|         var transfer = fromEasy(handle.easy) catch |err| { | ||||
|             log.err(.http, "retrive private info", .{.err = err}); | ||||
|             log.err(.http, "retrive private info", .{ .err = err }); | ||||
|             return c.CURL_WRITEFUNC_ERROR; | ||||
|         }; | ||||
|  | ||||
| @@ -549,4 +549,3 @@ pub const ProxyAuth = union(enum) { | ||||
|     basic: struct { user_pass: []const u8 }, | ||||
|     bearer: struct { token: []const u8 }, | ||||
| }; | ||||
|  | ||||
|   | ||||
| @@ -19,7 +19,7 @@ | ||||
| const std = @import("std"); | ||||
| const c = @import("client.zig").c; | ||||
|  | ||||
| pub const Error = error { | ||||
| pub const Error = error{ | ||||
|     UnsupportedProtocol, | ||||
|     FailedInit, | ||||
|     UrlMalformat, | ||||
| @@ -201,7 +201,7 @@ pub fn fromCode(code: c.CURLcode) Error { | ||||
|     }; | ||||
| } | ||||
|  | ||||
| pub const Multi = error { | ||||
| pub const Multi = error{ | ||||
|     BadHandle, | ||||
|     BadEasyHandle, | ||||
|     OutOfMemory, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Karl Seguin
					Karl Seguin