aboutsummaryrefslogtreecommitdiff
path: root/src/http.zig
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-11-14 21:55:59 +0100
committerNathan Reiner <nathan@nathanreiner.xyz>2025-11-14 21:55:59 +0100
commit3f18f02d07802d1fc705a500e5978a9b3cb2e751 (patch)
tree283970a2f5a693706456b853c550eeaa669b5d72 /src/http.zig
parent351ad457f0ff95e20301a146b8c88a8f0f659aa1 (diff)
implement login
Diffstat (limited to 'src/http.zig')
-rw-r--r--src/http.zig100
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" },
-});
-