extern crate fastcgi_sdk;
use fastcgi_sdk::Exchange;
use std::env;
use std::error::Error;
use std::io::Write;
use std::net::TcpListener;
fn main() {
safe_main().unwrap();
}
fn safe_main() -> Result<(), Box<'static + Error>> {
let bind_address = env::args().nth(1);
let bind_address = bind_address.as_ref().map(String::as_ref).unwrap_or("127.0.0.1:8080");
let listener = TcpListener::bind(bind_address)?;
loop {
let exchange = Exchange::accept(&listener)?;
println!("{:?}", exchange);
let mut response = exchange.response();
write!(response, "HTTP/1.1 200 OK\r\n")?;
write!(response, "Content-Type: text/plain\r\n")?;
write!(response, "\r\n")?;
for entry in exchange.environment() {
write!(response, "{:?}\n", entry)?;
}
response.flush()?;
}
}