diff options
Diffstat (limited to 'src/cgidebug.rs')
-rw-r--r-- | src/cgidebug.rs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/src/cgidebug.rs b/src/cgidebug.rs deleted file mode 100644 index afdc7ca..0000000 --- a/src/cgidebug.rs +++ /dev/null @@ -1,81 +0,0 @@ -use std::io::Write; -use std::env; -use std::collections::btree_map::BTreeMap; - -fn write_stderr( msg : String ) { - let mut stderr = std::io::stderr(); - write!(&mut stderr, "{}", msg).unwrap(); -} - -fn write_stderr_s( msg : &str ) { - write_stderr( msg.to_string() ); -} - -fn write_stdout( msg : String ) { - let mut stdout = std::io::stdout(); - write!(&mut stdout, "{}", msg).unwrap(); -} - -fn write_stdout_s( msg : &str ) { - write_stdout( msg.to_string() ); -} - -fn html_escape( msg : String ) -> String { - let mut copy : String = String::with_capacity( msg.len() ); - - for thechar in msg.chars() { - if thechar == '&' { - copy.push_str( "&" ); - } else if thechar == '<' { - copy.push_str( "<" ); - } else if thechar == '>' { - copy.push_str( ">" ); - } else if thechar == '\"' { - copy.push_str( """ ); - } else { - copy.push( thechar ); - } - } - - return copy; -} - -fn main() { - write_stdout_s( "Status: 301 Moved Permanently\n" ); - write_stdout_s( "Location: https://www.vg.no\n" ); - write_stdout_s( "Content-type: text/html\n" ); - write_stdout_s( "\n" ); - write_stdout_s( "<html>\n" ); - write_stdout_s( " <head>\n" ); - write_stdout_s( " <title>Rust CGI Test</title>\n" ); - write_stdout_s( " <style type=\"text/css\">\n" ); - write_stdout_s( " td { border:1px solid black; }\n" ); - write_stdout_s( " td { font-family:monospace; }\n" ); - write_stdout_s( " table { border-collapse:collapse; }\n" ); - write_stdout_s( " </style>\n" ); - write_stdout_s( " </head>\n" ); - write_stdout_s( " <body>\n" ); - write_stdout_s( " <h1>Environment</h1>\n" ); - write_stdout_s( " <table>\n" ); - write_stdout_s( " <tr><th>Key</th><th>Value</th></tr>\n" ); - - // copy environment into a BTreeMap which is sorted - let mut sortedmap : BTreeMap<String,String> = BTreeMap::new(); - for (key, value) in env::vars() { - sortedmap.insert( key, value ); - } - - // output environment into HTML table - for (key, value) in sortedmap { - write_stdout( - format!( - " <tr><td>{}</td><td>{}</td></tr>\n", - html_escape( key ), - html_escape( value ) - ) - ); - } - write_stdout_s( " </table>\n" ); - write_stdout_s( " </body>\n" ); - write_stdout_s( "</html>\n" ); -} |