mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-28 14:43:28 +00:00
Re-enable --insecure_disable_tls_host_verification
Better error logs on http callback error Fix wait timing
This commit is contained in:
@@ -53,6 +53,7 @@ pub const App = struct {
|
||||
|
||||
var http = try Http.init(allocator, .{
|
||||
.max_concurrent_transfers = 3,
|
||||
.tls_verify_host = config.tls_verify_host,
|
||||
});
|
||||
errdefer http.deinit();
|
||||
|
||||
|
||||
@@ -317,7 +317,7 @@ pub const Page = struct {
|
||||
return error.JsError;
|
||||
}
|
||||
|
||||
const ms_elapsed = timer.lap() / 100_000;
|
||||
const ms_elapsed = timer.lap() / 1_000_000;
|
||||
if (ms_elapsed > ms_remaining) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -220,7 +220,11 @@ fn perform(self: *Client, timeout_ms: c_int) !void {
|
||||
self.endTransfer(transfer);
|
||||
|
||||
if (errorCheck(msg.data.result)) {
|
||||
done_callback(ctx) catch |err| error_callback(ctx, err);
|
||||
done_callback(ctx) catch |err| {
|
||||
// transfer isn't valid at this point, don't use it.
|
||||
log.err(.http, "done_callback", .{.err = err});
|
||||
error_callback(ctx, err);
|
||||
};
|
||||
} else |err| {
|
||||
error_callback(ctx, err);
|
||||
}
|
||||
@@ -350,9 +354,14 @@ const Handle = struct {
|
||||
try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_WRITEFUNCTION, Transfer.bodyCallback));
|
||||
|
||||
// tls
|
||||
// try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_SSL_VERIFYHOST, @as(c_long, 0)));
|
||||
// try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_SSL_VERIFYPEER, @as(c_long, 0)));
|
||||
try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_CAINFO_BLOB, ca_blob));
|
||||
if (opts.tls_verify_host) {
|
||||
try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_CAINFO_BLOB, ca_blob));
|
||||
} else {
|
||||
// Verify peer checks that the cert is signed by a CA, verify host makes sure the
|
||||
// cert contains the server name.
|
||||
try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_SSL_VERIFYPEER, @as(c_long, 0)));
|
||||
try errorCheck(c.curl_easy_setopt(easy, c.CURLOPT_SSL_VERIFYHOST, @as(c_long, 0)));
|
||||
}
|
||||
|
||||
// debug
|
||||
if (comptime Http.ENABLE_DEBUG) {
|
||||
@@ -423,7 +432,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, "get private info", .{ .err = err });
|
||||
return 0;
|
||||
};
|
||||
|
||||
@@ -485,13 +494,17 @@ pub const Transfer = struct {
|
||||
}
|
||||
|
||||
if (buf_len == 2) {
|
||||
transfer.req.header_done_callback(transfer) catch {
|
||||
transfer.req.header_done_callback(transfer) catch |err| {
|
||||
log.err(.http, "header_done_callback", .{.err = err, .req = transfer});
|
||||
// returning < buf_len terminates the request
|
||||
return 0;
|
||||
};
|
||||
} else {
|
||||
if (transfer.req.header_callback) |cb| {
|
||||
cb(transfer, header) catch return 0;
|
||||
cb(transfer, header) catch |err| {
|
||||
log.err(.http, "header_callback", .{.err = err, .req = transfer});
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
}
|
||||
return buf_len;
|
||||
@@ -503,7 +516,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, "get private info", .{ .err = err });
|
||||
return c.CURL_WRITEFUNC_ERROR;
|
||||
};
|
||||
|
||||
@@ -511,7 +524,8 @@ pub const Transfer = struct {
|
||||
return chunk_len;
|
||||
}
|
||||
|
||||
transfer.req.data_callback(transfer, buffer[0..chunk_len]) catch {
|
||||
transfer.req.data_callback(transfer, buffer[0..chunk_len]) catch |err| {
|
||||
log.err(.http, "data_callback", .{.err = err, .req = transfer});
|
||||
return c.CURL_WRITEFUNC_ERROR;
|
||||
};
|
||||
return chunk_len;
|
||||
|
||||
@@ -172,6 +172,7 @@ pub fn errorMCheck(code: c.CURLMcode) errors.Multi!void {
|
||||
pub const Opts = struct {
|
||||
timeout_ms: u31 = 0,
|
||||
max_redirects: u8 = 10,
|
||||
tls_verify_host: bool = true,
|
||||
connect_timeout_ms: u31 = 5000,
|
||||
max_concurrent_transfers: u8 = 5,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user