aboutsummaryrefslogtreecommitdiff
path: root/src/deps
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-10-13 00:27:35 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-10-13 00:27:35 -0700
commit88a5e2d34d25c3ac3d13a432bbd85daa075c4bcb (patch)
tree53e40562b7bbe006304daa341a5ce3dfbdeca81e /src/deps
parentafc346d6f125a41fb6ff823d04d3ffd85ab36dcd (diff)
downloadbun-88a5e2d34d25c3ac3d13a432bbd85daa075c4bcb.tar.gz
bun-88a5e2d34d25c3ac3d13a432bbd85daa075c4bcb.tar.zst
bun-88a5e2d34d25c3ac3d13a432bbd85daa075c4bcb.zip
Add TLS 1.3 support, improve fetch() HTTPS performance
Diffstat (limited to 'src/deps')
-rw-r--r--src/deps/picohttp.zig17
-rw-r--r--src/deps/picohttpparser.zig21
m---------src/deps/s2n-tls0
-rw-r--r--src/deps/zig-clap/clap.zig2
4 files changed, 36 insertions, 4 deletions
diff --git a/src/deps/picohttp.zig b/src/deps/picohttp.zig
index cdd26b710..374793f38 100644
--- a/src/deps/picohttp.zig
+++ b/src/deps/picohttp.zig
@@ -1,7 +1,8 @@
const std = @import("std");
-const c = @cImport(@cInclude("picohttpparser.h"));
+const c = @import("picohttpparser.zig");
const ExactSizeMatcher = @import("../exact_size_matcher.zig").ExactSizeMatcher;
const Match = ExactSizeMatcher(2);
+const Output = @import("../global.zig").Output;
const fmt = std.fmt;
@@ -16,10 +17,18 @@ pub const Header = struct {
}
pub fn format(self: Header, comptime layout: []const u8, opts: fmt.FormatOptions, writer: anytype) !void {
- if (self.isMultiline()) {
- try fmt.format(writer, "{s}", .{self.value});
+ if (Output.enable_ansi_colors) {
+ if (self.isMultiline()) {
+ try fmt.format(writer, comptime Output.prettyFmt("<r><cyan>{s}", true), .{self.value});
+ } else {
+ try fmt.format(writer, comptime Output.prettyFmt("<r><cyan>{s}<r><d>: <r>{s}", true), .{ self.name, self.value });
+ }
} else {
- try fmt.format(writer, "{s}: {s}", .{ self.name, self.value });
+ if (self.isMultiline()) {
+ try fmt.format(writer, comptime Output.prettyFmt("<r><cyan>{s}", false), .{self.value});
+ } else {
+ try fmt.format(writer, comptime Output.prettyFmt("<r><cyan>{s}<r><d>: <r>{s}", false), .{ self.name, self.value });
+ }
}
}
diff --git a/src/deps/picohttpparser.zig b/src/deps/picohttpparser.zig
new file mode 100644
index 000000000..d83d7cd31
--- /dev/null
+++ b/src/deps/picohttpparser.zig
@@ -0,0 +1,21 @@
+pub usingnamespace @import("std").zig.c_builtins;
+
+pub const struct_phr_header = extern struct {
+ name: [*c]const u8,
+ name_len: usize,
+ value: [*c]const u8,
+ value_len: usize,
+};
+pub extern fn phr_parse_request(buf: [*c]const u8, len: usize, method: [*c][*c]const u8, method_len: [*c]usize, path: [*c][*c]const u8, path_len: [*c]usize, minor_version: [*c]c_int, headers: [*c]struct_phr_header, num_headers: [*c]usize, last_len: usize) c_int;
+pub extern fn phr_parse_response(_buf: [*c]const u8, len: usize, minor_version: [*c]c_int, status: [*c]c_int, msg: [*c][*c]const u8, msg_len: [*c]usize, headers: [*c]struct_phr_header, num_headers: [*c]usize, last_len: usize) c_int;
+pub extern fn phr_parse_headers(buf: [*c]const u8, len: usize, headers: [*c]struct_phr_header, num_headers: [*c]usize, last_len: usize) c_int;
+pub const struct_phr_chunked_decoder = extern struct {
+ bytes_left_in_chunk: usize,
+ consume_trailer: u8,
+ _hex_count: u8,
+ _state: u8,
+};
+pub extern fn phr_decode_chunked(decoder: [*c]struct_phr_chunked_decoder, buf: [*c]u8, bufsz: [*c]usize) isize;
+pub extern fn phr_decode_chunked_is_in_data(decoder: [*c]struct_phr_chunked_decoder) c_int;
+pub const phr_header = struct_phr_header;
+pub const phr_chunked_decoder = struct_phr_chunked_decoder;
diff --git a/src/deps/s2n-tls b/src/deps/s2n-tls
-Subproject 0dd0b56bbb8daac39b8bf1b0884dcc7d5951c95
+Subproject 4c31c6e790f14b299bb16de550a2132666e69a6
diff --git a/src/deps/zig-clap/clap.zig b/src/deps/zig-clap/clap.zig
index e6bf56f08..907ece37f 100644
--- a/src/deps/zig-clap/clap.zig
+++ b/src/deps/zig-clap/clap.zig
@@ -63,6 +63,8 @@ pub fn Param(comptime Id: type) type {
/// Takes a string and parses it to a Param(Help).
/// This is the reverse of 'help' but for at single parameter only.
pub fn parseParam(line: []const u8) !Param(Help) {
+ @setEvalBranchQuota(9999);
+
var found_comma = false;
var it = mem.tokenize(u8, line, " \t");
var param_str = it.next() orelse return error.NoParamFound;