diff options
Diffstat (limited to 'src/cgi/submit.zig')
| -rw-r--r-- | src/cgi/submit.zig | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/cgi/submit.zig b/src/cgi/submit.zig deleted file mode 100644 index b94c546..0000000 --- a/src/cgi/submit.zig +++ /dev/null @@ -1,40 +0,0 @@ -const std = @import("std"); - -pub fn main(init: std.process.Init) !void { - const query_string = init.environ_map.get("QUERY_STRING").?; - var decoded = try init.gpa.alloc(u8, query_string.len); - @memcpy(decoded, query_string); - decoded = std.Uri.percentDecodeInPlace(decoded); - std.mem.replaceScalar(u8, decoded, '+', ' '); - - // Parse the query string. - var args_map = std.StringHashMap([]const u8).init(init.gpa); - defer args_map.deinit(); - var args = std.mem.splitScalar(u8, decoded, '&'); - while (args.next()) |arg| { - const arg_and_value = std.mem.cutScalar(u8, arg, '=').?; - try args_map.put(arg_and_value[0], arg_and_value[1]); - } - - const out_path = init.environ_map.get("OUT_PATH").?; - const out_file = try std.Io.Dir.createFileAbsolute(init.io, out_path, .{ .truncate = false }); - defer out_file.close(init.io); - const current_size = (try out_file.stat(init.io)).size; - var buf: [128]u8 = undefined; - var writer = out_file.writer(init.io, &buf); - if (current_size == 0) { - try writer.interface.print("name,email,website,about\r\n", .{}); - } else { - try writer.seekTo(current_size); - } - try writer.interface.print("{s},{s},{s},{s}\r\n", .{ - args_map.get("name").?, - args_map.get("email").?, - args_map.get("website").?, - args_map.get("about").?, - }); - try writer.interface.flush(); - - // redirect back to the homepage - try std.Io.File.stdout().writeStreamingAll(init.io, "HTTP/1.0 302 Found\r\nLocation: https://eviltransgenders.club/join\r\n\r\n"); -} |
