commit b6ca89fa7c0c4c766229586f1977babfb20d782a (tree)
parent 4d401e6159be774537bfcf8b57db7db1b44979e1
Author: Andrew Kelley <andrew@ziglang.org>
Date: Fri, 16 Feb 2024 00:24:58 -0700
std.http.Client: disable zstd for now
The Allocator requirement is problematic.
Diffstat:
1 file changed, 14 insertions(+), 21 deletions(-)
diff --git a/lib/std/http/Client.zig b/lib/std/http/Client.zig
@@ -407,11 +407,13 @@ pub const RequestTransfer = union(enum) {
pub const Compression = union(enum) {
pub const DeflateDecompressor = std.compress.zlib.Decompressor(Request.TransferReader);
pub const GzipDecompressor = std.compress.gzip.Decompressor(Request.TransferReader);
- pub const ZstdDecompressor = std.compress.zstd.DecompressStream(Request.TransferReader, .{});
+ // https://github.com/ziglang/zig/issues/18937
+ //pub const ZstdDecompressor = std.compress.zstd.DecompressStream(Request.TransferReader, .{});
deflate: DeflateDecompressor,
gzip: GzipDecompressor,
- zstd: ZstdDecompressor,
+ // https://github.com/ziglang/zig/issues/18937
+ //zstd: ZstdDecompressor,
none: void,
};
@@ -641,13 +643,6 @@ pub const Request = struct {
/// Frees all resources associated with the request.
pub fn deinit(req: *Request) void {
- switch (req.response.compression) {
- .none => {},
- .deflate => {},
- .gzip => {},
- .zstd => |*zstd| zstd.deinit(),
- }
-
if (req.connection) |connection| {
if (req.response.parser.state != .complete) {
// If the response wasn't fully read, then we need to close the connection.
@@ -666,13 +661,6 @@ pub const Request = struct {
fn redirect(req: *Request, uri: Uri) !void {
assert(req.response.parser.state == .complete);
- switch (req.response.compression) {
- .none => {},
- .deflate => {},
- .gzip => {},
- .zstd => |*zstd| zstd.deinit(),
- }
-
req.client.connection_pool.release(req.client.allocator, req.connection.?);
req.connection = null;
@@ -764,7 +752,9 @@ pub const Request = struct {
}
if (try emitOverridableHeader("accept-encoding: ", req.headers.accept_encoding, w)) {
- try w.writeAll("accept-encoding: gzip, deflate, zstd\r\n");
+ // https://github.com/ziglang/zig/issues/18937
+ //try w.writeAll("accept-encoding: gzip, deflate, zstd\r\n");
+ try w.writeAll("accept-encoding: gzip, deflate\r\n");
}
switch (req.transfer_encoding) {
@@ -988,9 +978,11 @@ pub const Request = struct {
.gzip, .@"x-gzip" => req.response.compression = .{
.gzip = std.compress.gzip.decompressor(req.transferReader()),
},
- .zstd => req.response.compression = .{
- .zstd = std.compress.zstd.decompressStream(req.client.allocator, req.transferReader()),
- },
+ // https://github.com/ziglang/zig/issues/18937
+ //.zstd => req.response.compression = .{
+ // .zstd = std.compress.zstd.decompressStream(req.client.allocator, req.transferReader()),
+ //},
+ .zstd => return error.CompressionUnsupported,
}
}
@@ -1013,7 +1005,8 @@ pub const Request = struct {
const out_index = switch (req.response.compression) {
.deflate => |*deflate| deflate.read(buffer) catch return error.DecompressionFailure,
.gzip => |*gzip| gzip.read(buffer) catch return error.DecompressionFailure,
- .zstd => |*zstd| zstd.read(buffer) catch return error.DecompressionFailure,
+ // https://github.com/ziglang/zig/issues/18937
+ //.zstd => |*zstd| zstd.read(buffer) catch return error.DecompressionFailure,
else => try req.transferRead(buffer),
};