diff options
Diffstat (limited to 'src/modules/cgi.rs')
-rw-r--r-- | src/modules/cgi.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/modules/cgi.rs b/src/modules/cgi.rs index 2af8537..7d58539 100644 --- a/src/modules/cgi.rs +++ b/src/modules/cgi.rs @@ -11,7 +11,8 @@ use hyper::{ use serde::Deserialize; use serde_yml::Value; use std::{ - future::Future, io::ErrorKind, path::PathBuf, pin::Pin, process::Stdio, str::FromStr, sync::Arc, + collections::BTreeMap, future::Future, io::ErrorKind, path::PathBuf, pin::Pin, process::Stdio, + str::FromStr, sync::Arc, }; use tokio::{ io::{copy, AsyncBufReadExt, BufReader, BufWriter}, @@ -26,8 +27,11 @@ pub struct CgiKind; #[derive(Deserialize)] struct CgiConfig { bin: PathBuf, + #[serde(default)] + env: BTreeMap<String, String>, user: Option<String>, } + struct Cgi { config: CgiConfig, user: Option<u32>, @@ -74,7 +78,7 @@ impl Node for Cgi { command.uid(uid); } - // command.env("AUTH_TYPE", ); + command.envs(&self.config.env); command.env( "CONTENT_LENGTH", request |