mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 22:16:08 +00:00
Fix compression middleware
This commit is contained in:
parent
8a4f91f26a
commit
719bd300a7
@ -28,17 +28,17 @@ pub fn beforeResponse(request: *jetzig.http.Request, response: *jetzig.http.Resp
|
|||||||
|
|
||||||
const compressed = switch (encoding) {
|
const compressed = switch (encoding) {
|
||||||
.gzip => jetzig.util.gzip(request.allocator, response.content, .{}) catch |err|
|
.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|
|
.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|
|
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
|
// Make caching work
|
||||||
response.headers.append("Vary", "Accept-Encoding") catch |err|
|
response.headers.append("Vary", "Accept-Encoding") catch |err|
|
||||||
return request.server.logger.logError(err);
|
return request.server.logger.logError(@errorReturnTrace(), err);
|
||||||
|
|
||||||
response.content = compressed;
|
response.content = compressed;
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ fn detectEncoding(request: *const jetzig.http.Request) ?Encoding {
|
|||||||
while (headers_it.next()) |header| {
|
while (headers_it.next()) |header| {
|
||||||
var it = std.mem.tokenizeScalar(u8, header.value, ',');
|
var it = std.mem.tokenizeScalar(u8, header.value, ',');
|
||||||
while (it.next()) |param| {
|
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))) {
|
if (std.mem.eql(u8, field.name, jetzig.util.strip(param))) {
|
||||||
return std.enums.nameCast(Encoding, field.name);
|
return std.enums.nameCast(Encoding, field.name);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user