From 872197c55805161e1ed6bbbd13b169b3bc809fd5 Mon Sep 17 00:00:00 2001 From: Jan Wolff Date: Sun, 17 May 2020 12:54:10 +0200 Subject: mime type handling and setuid/setgid support --- src/main.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index a381e28..aa572bb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod server; +mod mime; use std::env; fn help() { @@ -12,12 +13,16 @@ fn help() { println!(" -l, --listen\t\tadd a listening address (you can define multiple)"); println!(" -d, --default-host\tdefault hostname to listen for"); println!(" -g, --gem-root\tpath to the gemini root, aka the folder to serve files from"); + println!(" --user\tuser to drop to after opening TLS socket"); + println!(" --group\tgroup to drop to after opening TLS socket"); } fn parse_args() -> Option { let mut has_addr = false; let mut has_host = false; let mut has_root = false; + let mut has_user = false; + let mut has_group = false; let mut config = server::ServerConfig::new(); let mut args = env::args(); @@ -42,12 +47,22 @@ fn parse_args() -> Option { config.set_gem_root(gem_root); has_root = true; } + if arg == "--user" { + let user = args.next().unwrap(); + config.set_user(user); + has_user = true; + } + if arg == "--group" { + let group = args.next().unwrap(); + config.set_group(group); + has_group = true; + } } None => break, } } - if !has_addr || !has_host || !has_root { + if !has_addr || !has_host || !has_root || !has_user || !has_group { return None; } -- cgit v1.2.3