diff --git a/http_client.rc b/http_client.rc index 46d93a5..8754f35 100644 --- a/http_client.rc +++ b/http_client.rc @@ -27,6 +27,7 @@ use std::result; use std::result::{Result, Ok, Err}; use std::cell::Cell; use std::str; +use std::uint; use extra::net::ip::{ get_addr, format_addr, IpAddr, IpGetAddrErr, Ipv4, Ipv6 @@ -64,7 +65,7 @@ pub enum RequestError { ErrorMisc } -/// Request +/// Request #[deriving(Eq)] pub enum RequestEvent { Status(StatusCode), @@ -120,8 +121,12 @@ impl> HttpRequest { debug!("http_client: using IP %? for %?", format_addr(&ip_addr), self.url.to_str()); let socket = { - debug!("http_client: connecting to %?", ip_addr); - let socket = self.connection_factory.connect(copy ip_addr, 80); + let port = match self.url.port.clone() { + Some(port) => uint::from_str(port).get(), + _ => 80 + }; + debug!("http_client: connecting to %? on %?", ip_addr, port); + let socket = self.connection_factory.connect(copy ip_addr, port); if socket.is_ok() { result::unwrap(socket) } else { @@ -284,9 +289,9 @@ impl> HttpRequest { } #[allow(non_implicitly_copyable_typarams)] -pub fn sequence>(request: &mut HttpRequest) -> +pub fn sequence>(request: &mut HttpRequest) -> ~[RequestEvent] { - + let events = @mut ~[]; do request.begin |event| { events.push(event)