mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 07:03:29 +00:00
Fix non-tls forward-proxy
This commit is contained in:
@@ -236,7 +236,7 @@ pub const Client = struct {
|
|||||||
return proxy_type == .connect;
|
return proxy_type == .connect;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn isSimpleProxy(self: *const Client) bool {
|
fn isForwardProxy(self: *const Client) bool {
|
||||||
const proxy_type = self.proxy_type orelse return false;
|
const proxy_type = self.proxy_type orelse return false;
|
||||||
return proxy_type == .forward;
|
return proxy_type == .forward;
|
||||||
}
|
}
|
||||||
@@ -711,7 +711,7 @@ pub const Request = struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (self._request_secure and !self._proxy_secure) {
|
if (self._request_secure and !self._proxy_secure and !self._client.isForwardProxy()) {
|
||||||
self._connection.?.tls = .{
|
self._connection.?.tls = .{
|
||||||
.blocking = try tls.client(std.net.Stream{ .handle = socket }, tls_config),
|
.blocking = try tls.client(std.net.Stream{ .handle = socket }, tls_config),
|
||||||
};
|
};
|
||||||
@@ -851,7 +851,7 @@ pub const Request = struct {
|
|||||||
try self.headers.append(arena, .{ .name = "User-Agent", .value = "Lightpanda/1.0" });
|
try self.headers.append(arena, .{ .name = "User-Agent", .value = "Lightpanda/1.0" });
|
||||||
try self.headers.append(arena, .{ .name = "Accept", .value = "*/*" });
|
try self.headers.append(arena, .{ .name = "Accept", .value = "*/*" });
|
||||||
|
|
||||||
if (self._client.isSimpleProxy()) {
|
if (self._client.isForwardProxy()) {
|
||||||
if (self._client.proxy_auth) |proxy_auth| {
|
if (self._client.proxy_auth) |proxy_auth| {
|
||||||
try self.headers.append(arena, .{ .name = "Proxy-Authorization", .value = proxy_auth });
|
try self.headers.append(arena, .{ .name = "Proxy-Authorization", .value = proxy_auth });
|
||||||
}
|
}
|
||||||
@@ -934,7 +934,7 @@ pub const Request = struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// A simple http proxy to an https destination is made into tls by the proxy, we see it as a plain connection
|
// A simple http proxy to an https destination is made into tls by the proxy, we see it as a plain connection
|
||||||
const expect_tls = self._proxy_secure or (self._request_secure and !self._client.isSimpleProxy());
|
const expect_tls = self._proxy_secure or (self._request_secure and !self._client.isForwardProxy());
|
||||||
return self._client.connection_manager.get(expect_tls, self._connect_host, self._connect_port, blocking);
|
return self._client.connection_manager.get(expect_tls, self._connect_host, self._connect_port, blocking);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -958,7 +958,7 @@ pub const Request = struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn buildHeader(self: *Request) ![]const u8 {
|
fn buildHeader(self: *Request) ![]const u8 {
|
||||||
const proxied = self._client.isSimpleProxy();
|
const proxied = self._client.isForwardProxy();
|
||||||
|
|
||||||
const buf = self._state.header_buf;
|
const buf = self._state.header_buf;
|
||||||
var fbs = std.io.fixedBufferStream(buf);
|
var fbs = std.io.fixedBufferStream(buf);
|
||||||
|
|||||||
Reference in New Issue
Block a user