| ... | @@ -74,8 +74,6 @@ pub const Headers = struct { | ... | @@ -74,8 +74,6 @@ pub const Headers = struct { |
| 74 | if (headers.content_length != null) return error.HttpHeadersInvalid; | 74 | if (headers.content_length != null) return error.HttpHeadersInvalid; |
| 75 | headers.content_length = try std.fmt.parseInt(u64, header_value, 10); | 75 | headers.content_length = try std.fmt.parseInt(u64, header_value, 10); |
| 76 | } else if (std.ascii.eqlIgnoreCase(header_name, "transfer-encoding")) { | 76 | } else if (std.ascii.eqlIgnoreCase(header_name, "transfer-encoding")) { |
| 77 | if (headers.transfer_encoding != null or headers.transfer_compression != null) return error.HttpHeadersInvalid; | | |
| 78 | | | |
| 79 | // Transfer-Encoding: second, first | 77 | // Transfer-Encoding: second, first |
| 80 | // Transfer-Encoding: deflate, chunked | 78 | // Transfer-Encoding: deflate, chunked |
| 81 | var iter = std.mem.splitBackwards(u8, header_value, ","); | 79 | var iter = std.mem.splitBackwards(u8, header_value, ","); |
| ... | @@ -84,8 +82,10 @@ pub const Headers = struct { | ... | @@ -84,8 +82,10 @@ pub const Headers = struct { |
| 84 | const trimmed = std.mem.trim(u8, first, " "); | 82 | const trimmed = std.mem.trim(u8, first, " "); |
| 85 | | 83 | |
| 86 | if (std.meta.stringToEnum(http.TransferEncoding, trimmed)) |te| { | 84 | if (std.meta.stringToEnum(http.TransferEncoding, trimmed)) |te| { |
| | 85 | if (headers.transfer_encoding != null) return error.HttpHeadersInvalid; |
| 87 | headers.transfer_encoding = te; | 86 | headers.transfer_encoding = te; |
| 88 | } else if (std.meta.stringToEnum(http.ContentEncoding, trimmed)) |ce| { | 87 | } else if (std.meta.stringToEnum(http.ContentEncoding, trimmed)) |ce| { |
| | 88 | if (headers.transfer_compression != null) return error.HttpHeadersInvalid; |
| 89 | headers.transfer_compression = ce; | 89 | headers.transfer_compression = ce; |
| 90 | } else { | 90 | } else { |
| 91 | return error.HttpTransferEncodingUnsupported; | 91 | return error.HttpTransferEncodingUnsupported; |