aboutsummaryrefslogtreecommitdiffstats
path: root/license-generator/src
diff options
context:
space:
mode:
authorTeddy Wing2018-11-04 21:03:10 +0100
committerTeddy Wing2018-11-04 21:03:10 +0100
commit9b76995433d5dacf4a42be6d1920f981cd8014d6 (patch)
treece0a39de41dbdb2801f88cc89dae3fbfbb6cbe65 /license-generator/src
parent304ba6a5f4c4ddd179c43c29faac4d99bb874109 (diff)
downloaddome-key-web-9b76995433d5dacf4a42be6d1920f981cd8014d6.tar.bz2
Make a simple FastCGI echo server
Building on the example from the 'fastcgi' crate: https://docs.rs/fastcgi/1.0.0/fastcgi/index.html prints all request parameters and the request `Stdin`. Post parameters are included in the stdin buffer.
Diffstat (limited to 'license-generator/src')
-rw-r--r--license-generator/src/main.rs23
1 files changed, 22 insertions, 1 deletions
diff --git a/license-generator/src/main.rs b/license-generator/src/main.rs
index e7a11a9..fab9eb1 100644
--- a/license-generator/src/main.rs
+++ b/license-generator/src/main.rs
@@ -1,3 +1,24 @@
+extern crate fastcgi;
+
+use std::io::{Read, Write};
+
fn main() {
- println!("Hello, world!");
+ fastcgi::run(|mut req| {
+ write!(&mut req.stdout(), "Content-Type: text/plain\n\nHello, world!")
+ .unwrap_or(());
+
+ let mut params = String::new();
+ for (key, val) in req.params() {
+ params.push_str(format!("{}: {}\n", key, val).as_str());
+ }
+
+ write!(&mut req.stdout(), "\n\n{}", params)
+ .unwrap_or(());
+
+ let mut stdin = String::new();
+ req.stdin().read_to_string(&mut stdin).unwrap();
+
+ write!(&mut req.stdout(), "\n\nstdin: {}\n", stdin)
+ .unwrap_or(());
+ });
}