Merge pull request #163 from dongsu8142/middleware-fix

Fix compression middleware
This commit is contained in:
bobf 2025-03-03 09:00:58 +00:00 committed by GitHub
commit d3157e4247
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -28,17 +28,17 @@ pub fn beforeResponse(request: *jetzig.http.Request, response: *jetzig.http.Resp
const compressed = switch (encoding) {
.gzip => jetzig.util.gzip(request.allocator, response.content, .{}) catch |err|
return request.server.logger.logError(err),
return request.server.logger.logError(@errorReturnTrace(), err),
.deflate => jetzig.util.deflate(request.allocator, response.content, .{}) catch |err|
return request.server.logger.logError(err),
return request.server.logger.logError(@errorReturnTrace(), err),
};
response.headers.append("Content-Encoding", @tagName(encoding)) catch |err|
return request.server.logger.logError(err);
return request.server.logger.logError(@errorReturnTrace(), err);
// Make caching work
response.headers.append("Vary", "Accept-Encoding") catch |err|
return request.server.logger.logError(err);
return request.server.logger.logError(@errorReturnTrace(), err);
response.content = compressed;
}
@ -48,7 +48,7 @@ fn detectEncoding(request: *const jetzig.http.Request) ?Encoding {
while (headers_it.next()) |header| {
var it = std.mem.tokenizeScalar(u8, header.value, ',');
while (it.next()) |param| {
inline for (@typeInfo(Encoding).Enum.fields) |field| {
inline for (@typeInfo(Encoding).@"enum".fields) |field| {
if (std.mem.eql(u8, field.name, jetzig.util.strip(param))) {
return std.enums.nameCast(Encoding, field.name);
}