| ... | ... | @@ -407,11 +407,13 @@ pub const RequestTransfer = union(enum) { |
| 407 | 407 | pub const Compression = union(enum) { |
| 408 | 408 | pub const DeflateDecompressor = std.compress.zlib.Decompressor(Request.TransferReader); |
| 409 | 409 | pub const GzipDecompressor = std.compress.gzip.Decompressor(Request.TransferReader); |
| 410 | | pub const ZstdDecompressor = std.compress.zstd.DecompressStream(Request.TransferReader, .{}); |
| 410 | // https://github.com/ziglang/zig/issues/18937 |
| 411 | //pub const ZstdDecompressor = std.compress.zstd.DecompressStream(Request.TransferReader, .{}); |
| 411 | 412 | |
| 412 | 413 | deflate: DeflateDecompressor, |
| 413 | 414 | gzip: GzipDecompressor, |
| 414 | | zstd: ZstdDecompressor, |
| 415 | // https://github.com/ziglang/zig/issues/18937 |
| 416 | //zstd: ZstdDecompressor, |
| 415 | 417 | none: void, |
| 416 | 418 | }; |
| 417 | 419 | |
| ... | ... | @@ -641,13 +643,6 @@ pub const Request = struct { |
| 641 | 643 | |
| 642 | 644 | /// Frees all resources associated with the request. |
| 643 | 645 | pub fn deinit(req: *Request) void { |
| 644 | | switch (req.response.compression) { |
| 645 | | .none => {}, |
| 646 | | .deflate => {}, |
| 647 | | .gzip => {}, |
| 648 | | .zstd => |*zstd| zstd.deinit(), |
| 649 | | } |
| 650 | | |
| 651 | 646 | if (req.connection) |connection| { |
| 652 | 647 | if (req.response.parser.state != .complete) { |
| 653 | 648 | // If the response wasn't fully read, then we need to close the connection. |
| ... | ... | @@ -666,13 +661,6 @@ pub const Request = struct { |
| 666 | 661 | fn redirect(req: *Request, uri: Uri) !void { |
| 667 | 662 | assert(req.response.parser.state == .complete); |
| 668 | 663 | |
| 669 | | switch (req.response.compression) { |
| 670 | | .none => {}, |
| 671 | | .deflate => {}, |
| 672 | | .gzip => {}, |
| 673 | | .zstd => |*zstd| zstd.deinit(), |
| 674 | | } |
| 675 | | |
| 676 | 664 | req.client.connection_pool.release(req.client.allocator, req.connection.?); |
| 677 | 665 | req.connection = null; |
| 678 | 666 | |
| ... | ... | @@ -764,7 +752,9 @@ pub const Request = struct { |
| 764 | 752 | } |
| 765 | 753 | |
| 766 | 754 | if (try emitOverridableHeader("accept-encoding: ", req.headers.accept_encoding, w)) { |
| 767 | | try w.writeAll("accept-encoding: gzip, deflate, zstd\r\n"); |
| 755 | // https://github.com/ziglang/zig/issues/18937 |
| 756 | //try w.writeAll("accept-encoding: gzip, deflate, zstd\r\n"); |
| 757 | try w.writeAll("accept-encoding: gzip, deflate\r\n"); |
| 768 | 758 | } |
| 769 | 759 | |
| 770 | 760 | switch (req.transfer_encoding) { |
| ... | ... | @@ -988,9 +978,11 @@ pub const Request = struct { |
| 988 | 978 | .gzip, .@"x-gzip" => req.response.compression = .{ |
| 989 | 979 | .gzip = std.compress.gzip.decompressor(req.transferReader()), |
| 990 | 980 | }, |
| 991 | | .zstd => req.response.compression = .{ |
| 992 | | .zstd = std.compress.zstd.decompressStream(req.client.allocator, req.transferReader()), |
| 993 | | }, |
| 981 | // https://github.com/ziglang/zig/issues/18937 |
| 982 | //.zstd => req.response.compression = .{ |
| 983 | // .zstd = std.compress.zstd.decompressStream(req.client.allocator, req.transferReader()), |
| 984 | //}, |
| 985 | .zstd => return error.CompressionUnsupported, |
| 994 | 986 | } |
| 995 | 987 | } |
| 996 | 988 | |
| ... | ... | @@ -1013,7 +1005,8 @@ pub const Request = struct { |
| 1013 | 1005 | const out_index = switch (req.response.compression) { |
| 1014 | 1006 | .deflate => |*deflate| deflate.read(buffer) catch return error.DecompressionFailure, |
| 1015 | 1007 | .gzip => |*gzip| gzip.read(buffer) catch return error.DecompressionFailure, |
| 1016 | | .zstd => |*zstd| zstd.read(buffer) catch return error.DecompressionFailure, |
| 1008 | // https://github.com/ziglang/zig/issues/18937 |
| 1009 | //.zstd => |*zstd| zstd.read(buffer) catch return error.DecompressionFailure, |
| 1017 | 1010 | else => try req.transferRead(buffer), |
| 1018 | 1011 | }; |
| 1019 | 1012 | |