File tree 2 files changed +7
-6
lines changed
2 files changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -63,7 +63,10 @@ impl TcpStream {
63
63
/// `host` can be a hostname or IP address string. If no error is
64
64
/// encountered, then `Ok(stream)` is returned.
65
65
pub fn connect ( host : & str , port : u16 ) -> IoResult < TcpStream > {
66
- let addresses = try!( get_host_addresses ( host) ) ;
66
+ let addresses = match FromStr :: from_str ( host) {
67
+ Some ( addr) => vec ! ( addr) ,
68
+ None => try!( get_host_addresses ( host) )
69
+ } ;
67
70
let mut err = IoError {
68
71
kind : ConnectionFailed ,
69
72
desc : "no addresses found for hostname" ,
Original file line number Diff line number Diff line change @@ -37,11 +37,9 @@ fn main() {
37
37
unsafe { libc:: exit ( 1 ) }
38
38
} ) ;
39
39
40
- let host = "127.0.0.1" ;
41
- let port = 0 ;
42
40
let ( tx, rx) = channel ( ) ;
43
41
spawn ( proc ( ) {
44
- let mut listener = TcpListener :: bind ( host , port ) . unwrap ( ) ;
42
+ let mut listener = TcpListener :: bind ( "127.0.0.1" , 0 ) . unwrap ( ) ;
45
43
tx. send ( listener. socket_name ( ) . unwrap ( ) ) ;
46
44
let mut acceptor = listener. listen ( ) ;
47
45
loop {
@@ -57,15 +55,15 @@ fn main() {
57
55
}
58
56
} ) ;
59
57
let addr = rx. recv ( ) ;
60
- let host = addr. ip . to_str ( ) ;
61
- let port = addr. port ;
62
58
63
59
let ( tx, rx) = channel ( ) ;
64
60
for _ in range ( 0 , 1000 ) {
65
61
let tx = tx. clone ( ) ;
66
62
let mut builder = TaskBuilder :: new ( ) ;
67
63
builder. opts . stack_size = Some ( 32 * 1024 ) ;
68
64
builder. spawn ( proc ( ) {
65
+ let host = addr. ip . to_str ( ) ;
66
+ let port = addr. port ;
69
67
match TcpStream :: connect ( host, port) {
70
68
Ok ( stream) => {
71
69
let mut stream = stream;
You can’t perform that action at this time.
0 commit comments