diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-11-14 21:55:59 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-11-14 21:55:59 +0100 |
| commit | 3f18f02d07802d1fc705a500e5978a9b3cb2e751 (patch) | |
| tree | 283970a2f5a693706456b853c550eeaa669b5d72 /src/http.zig | |
| parent | 351ad457f0ff95e20301a146b8c88a8f0f659aa1 (diff) | |
implement login
Diffstat (limited to 'src/http.zig')
| -rw-r--r-- | src/http.zig | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/src/http.zig b/src/http.zig deleted file mode 100644 index ad4ecb6..0000000 --- a/src/http.zig +++ /dev/null @@ -1,100 +0,0 @@ -const std = @import("std"); - -pub fn respond_file( - request: *std.http.Server.Request, - file: std.fs.File, - file_name: []const u8, - allocator: std.mem.Allocator, -) !void { - const buffer = try file.readToEndAlloc(allocator, std.math.maxInt(usize)); - defer allocator.free(buffer); - - const suffix_pos = std.mem.lastIndexOfScalar(u8, file_name, '.') orelse file_name.len; - const suffix = file_name[suffix_pos..]; - - try request.respond(buffer, .{ - .extra_headers = &.{ - .{ .name = "Content-Type", .value = content_types.get(suffix) orelse "text/plain" }, - } - }); -} - -pub const content_types = std.StaticStringMap([]const u8).initComptime(.{ - .{ ".aac", "audio/aac" }, - .{ ".abw", "application/x-abiword" }, - .{ ".apng", "image/apng" }, - .{ ".arc", "application/x-freearc" }, - .{ ".avif", "image/avif" }, - .{ ".avi", "video/x-msvideo" }, - .{ ".azw", "application/vnd.amazon.ebook" }, - .{ ".bin", "application/octet-stream" }, - .{ ".bmp", "image/bmp" }, - .{ ".bz", "application/x-bzip" }, - .{ ".bz2", "application/x-bzip2" }, - .{ ".cda", "application/x-cdf" }, - .{ ".csh", "application/x-csh" }, - .{ ".css", "text/css" }, - .{ ".csv", "text/csv" }, - .{ ".doc", "application/msword" }, - .{ ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }, - .{ ".eot", "application/vnd.ms-fontobject" }, - .{ ".epub", "application/epub+zip" }, - .{ ".gz", "application/gzip." }, - .{ ".gif", "image/gif" }, - .{ ".htm", "text/html" }, - .{ ".html", "text/html" }, - .{ ".ico", "image/vnd.microsoft.icon" }, - .{ ".ics", "text/calendar" }, - .{ ".jar", "application/java-archive" }, - .{ ".jpeg, .jpg", "image/jpeg" }, - .{ ".js", "text/javascript" }, - .{ ".json", "application/json" }, - .{ ".jsonld", "application/ld+json" }, - .{ ".md", "text/markdown" }, - .{ ".mid, .midi", "audio/midi," }, - .{ ".mjs", "text/javascript" }, - .{ ".mp3", "audio/mpeg" }, - .{ ".mp4", "video/mp4" }, - .{ ".mpeg", "video/mpeg" }, - .{ ".mpkg", "application/vnd.apple.installer+xml" }, - .{ ".odp", "application/vnd.oasis.opendocument.presentation" }, - .{ ".ods", "application/vnd.oasis.opendocument.spreadsheet" }, - .{ ".odt", "application/vnd.oasis.opendocument.text" }, - .{ ".oga", "audio/ogg" }, - .{ ".ogv", "video/ogg" }, - .{ ".ogx", "application/ogg" }, - .{ ".opus", "audio/ogg" }, - .{ ".otf", "font/otf" }, - .{ ".png", "image/png" }, - .{ ".pdf", "application/pdf" }, - .{ ".php", "application/x-httpd-php" }, - .{ ".ppt", "application/vnd.ms-powerpoint" }, - .{ ".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" }, - .{ ".rar", "application/vnd.rar" }, - .{ ".rtf", "application/rtf" }, - .{ ".sh", "application/x-sh" }, - .{ ".svg", "image/svg+xml" }, - .{ ".tar", "application/x-tar" }, - .{ ".tif, .tiff", "image/tiff" }, - .{ ".ts", "video/mp2t" }, - .{ ".ttf", "font/ttf" }, - .{ ".txt", "text/plain" }, - .{ ".vsd", "application/vnd.visio" }, - .{ ".wav", "audio/wav" }, - .{ ".weba", "audio/webm" }, - .{ ".webm", "video/webm" }, - .{ ".webmanifest", "application/manifest+json" }, - .{ ".webp", "image/webp" }, - .{ ".woff", "font/woff" }, - .{ ".woff2", "font/woff2" }, - .{ ".xhtml", "application/xhtml+xml" }, - .{ ".xls", "application/vnd.ms-excel" }, - .{ ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, - .{ ".xml", "application/xml" }, - .{ ".xul", "application/vnd.mozilla.xul+xml" }, - .{ ".zip", "application/zip." }, - .{ ".3gp", "video/3gpp;" }, - .{ ".3g2", "video/3gpp2;" }, - .{ ".7z", "application/x-7z-compressed" }, -}); - |