From bb45ac509d4af9965014514f61844af2ace68e78 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Mon, 10 Nov 2014 16:10:52 -0800 Subject: [PATCH] some more logging --- src/header/mod.rs | 1 + src/http.rs | 19 +++++++++++++++---- src/lib.rs | 8 ++++++++ src/server/request.rs | 5 ++--- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/header/mod.rs b/src/header/mod.rs index b865b1ce..412149b6 100644 --- a/src/header/mod.rs +++ b/src/header/mod.rs @@ -106,6 +106,7 @@ impl Headers { loop { match try!(http::read_header(rdr)) { Some((name, value)) => { + debug!("raw header: {}={}", name, value); let name = CaseInsensitive(Owned(name)); let item = match headers.data.entry(name) { Vacant(entry) => entry.set(RWLock::new(Item::raw(vec![]))), diff --git a/src/http.rs b/src/http.rs index e00022a6..4eede521 100644 --- a/src/http.rs +++ b/src/http.rs @@ -324,7 +324,7 @@ pub fn read_method(stream: &mut R) -> HttpResult { return Err(HttpMethodError); } - debug!("method: {}", buf[].to_ascii()); + debug!("method buf = {}", buf[].to_ascii()); let maybe_method = match buf[0..7] { b"GET " => Some(method::Get), @@ -339,14 +339,16 @@ pub fn read_method(stream: &mut R) -> HttpResult { _ => None, }; + debug!("maybe_method = {}", maybe_method); + match (maybe_method, buf[]) { (Some(method), _) => Ok(method), (None, ext) if is_valid_method(buf) => { use std::str::raw; - // We already checked that the buffer is ASCII + // We already checked that the buffer is ASCII Ok(method::Extension(unsafe { raw::from_utf8(ext) }.trim().into_string())) }, - _ => Err(HttpMethodError) + _ => Err(HttpMethodError) } } @@ -381,6 +383,8 @@ pub fn read_uri(stream: &mut R) -> HttpResult { } } + debug!("uri buf = {}", s); + if s.as_slice().starts_with("/") { Ok(uri::AbsolutePath(s)) } else if s.as_slice().contains("/") { @@ -472,7 +476,7 @@ pub fn read_header(stream: &mut R) -> HttpResult { match try_io!(stream.read_byte()) { LF => return Ok(None), @@ -485,6 +489,8 @@ pub fn read_header(stream: &mut R) -> HttpResult(stream: &mut R) -> HttpResult Ok(Some((name, value))), _ => Err(HttpHeaderError) @@ -513,8 +521,11 @@ pub type RequestLine = (method::Method, uri::RequestUri, HttpVersion); /// Read the `RequestLine`, such as `GET / HTTP/1.1`. pub fn read_request_line(stream: &mut R) -> HttpResult { let method = try!(read_method(stream)); + debug!("method = {}", method); let uri = try!(read_uri(stream)); + debug!("uri = {}", uri); let version = try!(read_http_version(stream)); + debug!("version = {}", version); if try_io!(stream.read_byte()) != CR { return Err(HttpVersionError); diff --git a/src/lib.rs b/src/lib.rs index 3e9c8f47..24078f88 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -177,6 +177,14 @@ macro_rules! trace( }) ) +macro_rules! inspect( + ($name:expr, $value:expr) => ({ + let v = $value; + debug!("inspect: $name = {}", v); + v + }) +) + pub mod client; pub mod method; pub mod header; diff --git a/src/server/request.rs b/src/server/request.rs index 4d82d13d..214285c0 100644 --- a/src/server/request.rs +++ b/src/server/request.rs @@ -40,10 +40,9 @@ impl Request { debug!("remote addr = {}", remote_addr); let mut stream = BufferedReader::new(box stream as Box); let (method, uri, version) = try!(read_request_line(&mut stream)); + debug!("Request Line: {} {} {}", method, uri, version); let headers = try!(Headers::from_raw(&mut stream)); - - debug!("{} {} {}", method, uri, version); - debug!("{}", headers); + debug!("Headers: [\n{}]", headers); let body = if headers.has::() {