1
0
Fork 0
mirror of https://github.com/zigzap/zap.git synced 2025-10-20 23:24:09 +00:00

fix: use runtime values of HTTP_HEADER_* for getHeaderCommon

This commit is contained in:
Louis Pearson 2024-04-18 18:08:39 -06:00
parent 5ed5dc2c3a
commit 38c12a0a6b

View file

@ -441,41 +441,58 @@ pub fn getHeader(self: *const Self, name: []const u8) ?[]const u8 {
pub const HttpHeaderCommon = enum(usize) { pub const HttpHeaderCommon = enum(usize) {
/// Represents the HTTP Header "Accept". /// Represents the HTTP Header "Accept".
accept = fio.HTTP_HEADER_ACCEPT, accept,
/// Represents the HTTP Header "Cache-Control". /// Represents the HTTP Header "Cache-Control".
cache_control = fio.HTTP_HEADER_CACHE_CONTROL, cache_control,
/// Represents the HTTP Header "Connection". /// Represents the HTTP Header "Connection".
connection = fio.HTTP_HEADER_CONNECTION, connection,
/// Represents the HTTP Header "Content-Encoding". /// Represents the HTTP Header "Content-Encoding".
content_encoding = fio.HTTP_HEADER_CONTENT_ENCODING, content_encoding,
/// Represents the HTTP Header "Content-Length". /// Represents the HTTP Header "Content-Length".
content_length = fio.HTTP_HEADER_CONTENT_LENGTH, content_length,
/// Represents the HTTP Header "Content-Range". /// Represents the HTTP Header "Content-Range".
content_range = fio.HTTP_HEADER_CONTENT_RANGE, content_range,
/// Represents the HTTP Header "Content-Type". /// Represents the HTTP Header "Content-Type".
content_type = fio.HTTP_HEADER_CONTENT_TYPE, content_type,
/// Represents the HTTP Header "Cookie". /// Represents the HTTP Header "Cookie".
cookie = fio.HTTP_HEADER_COOKIE, cookie,
/// Represents the HTTP Header "Date". /// Represents the HTTP Header "Date".
date = fio.HTTP_HEADER_DATE, date,
/// Represents the HTTP Header "Etag". /// Represents the HTTP Header "Etag".
etag = fio.HTTP_HEADER_ETAG, etag,
/// Represents the HTTP Header "Host". /// Represents the HTTP Header "Host".
host = fio.HTTP_HEADER_HOST, host,
/// Represents the HTTP Header "Last-Modified". /// Represents the HTTP Header "Last-Modified".
last_modifed = fio.HTTP_HEADER_LAST_MODIFIED, last_modifed,
/// Represents the HTTP Header "Origin". /// Represents the HTTP Header "Origin".
origin = fio.HTTP_HEADER_ORIGIN, origin,
/// Represents the HTTP Header "Set-Cookie". /// Represents the HTTP Header "Set-Cookie".
set_cookie = fio.HTTP_HEADER_SET_COOKIE, set_cookie,
/// Represents the HTTP Header "Upgrade". /// Represents the HTTP Header "Upgrade".
upgrade = fio.HTTP_HEADER_UPGRADE, upgrade,
}; };
/// Returns the header value of a given common header key. Returned memory /// Returns the header value of a given common header key. Returned memory
/// should not be freed. /// should not be freed.
pub fn getHeaderCommon(self: *const Self, which: HttpHeaderCommon) ?[]const u8 { pub fn getHeaderCommon(self: *const Self, which: HttpHeaderCommon) ?[]const u8 {
const fiobj = zap.fio.fiobj_hash_get(self.h.*.headers, @intFromEnum(which)); const field = switch (which) {
.accept => fio.HTTP_HEADER_ACCEPT,
.cache_control => fio.HTTP_HEADER_CACHE_CONTROL,
.connection => fio.HTTP_HEADER_CONNECTION,
.content_encoding => fio.HTTP_HEADER_CONTENT_ENCODING,
.content_length => fio.HTTP_HEADER_CONTENT_LENGTH,
.content_range => fio.HTTP_HEADER_CONTENT_RANGE,
.content_type => fio.HTTP_HEADER_CONTENT_TYPE,
.cookie => fio.HTTP_HEADER_COOKIE,
.date => fio.HTTP_HEADER_DATE,
.etag => fio.HTTP_HEADER_ETAG,
.host => fio.HTTP_HEADER_HOST,
.last_modified => fio.HTTP_HEADER_LAST_MODIFIED,
.origin => fio.HTTP_HEADER_ORIGIN,
.set_cookie => fio.HTTP_HEADER_SET_COOKIE,
.upgrade => fio.HTTP_HEADER_UPGRADE,
};
const fiobj = zap.fio.fiobj_hash_get(self.h.*.headers, field);
return zap.fio2str(fiobj); return zap.fio2str(fiobj);
} }