mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-12-16 08:18:59 +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