std: some cleanup in net::tcp rename listen_to_conn->listen

This commit is contained in:
Jeff Olson
2012-05-29 15:15:04 -07:00
committed by Brian Anderson
parent 68e129dc39
commit d79d0aa1c8

View File

@@ -19,7 +19,7 @@ export tcp_err_data, tcp_connect_err_data;
// operations on a tcp_socket // operations on a tcp_socket
export write, write_future, read_start, read_stop; export write, write_future, read_start, read_stop;
// tcp server stuff // tcp server stuff
export listen_for_conn, accept; export listen, accept;
// tcp client stuff // tcp client stuff
export connect; export connect;
// helper methods // helper methods
@@ -676,7 +676,7 @@ a `result` instance containing empty data of type `()` on a
successful/normal shutdown, and a `tcp_err_data` record in the event successful/normal shutdown, and a `tcp_err_data` record in the event
of listen exiting because of an error of listen exiting because of an error
"] "]
fn listen_for_conn(host_ip: ip::ip_addr, port: uint, backlog: uint, fn listen(host_ip: ip::ip_addr, port: uint, backlog: uint,
iotask: iotask, iotask: iotask,
on_establish_cb: fn~(comm::chan<option<tcp_err_data>>), on_establish_cb: fn~(comm::chan<option<tcp_err_data>>),
+new_connect_cb: fn~(tcp_new_connection, +new_connect_cb: fn~(tcp_new_connection,
@@ -697,47 +697,48 @@ fn listen_for_conn(host_ip: ip::ip_addr, port: uint, backlog: uint,
}; };
let server_data_ptr = ptr::addr_of(server_data); let server_data_ptr = ptr::addr_of(server_data);
let setup_po = comm::port::<option<tcp_err_data>>(); let setup_result = comm::listen {|setup_ch|
let setup_ch = comm::chan(setup_po); iotask::interact(iotask) {|loop_ptr|
iotask::interact(iotask) {|loop_ptr| let tcp_addr = ipv4_ip_addr_to_sockaddr_in(host_ip,
let tcp_addr = ipv4_ip_addr_to_sockaddr_in(host_ip, port);
port); alt uv::ll::tcp_init(loop_ptr, server_stream_ptr) {
alt uv::ll::tcp_init(loop_ptr, server_stream_ptr) {
0i32 {
alt uv::ll::tcp_bind(server_stream_ptr,
ptr::addr_of(tcp_addr)) {
0i32 { 0i32 {
alt uv::ll::listen(server_stream_ptr, alt uv::ll::tcp_bind(server_stream_ptr,
backlog as libc::c_int, ptr::addr_of(tcp_addr)) {
tcp_lfc_on_connection_cb) {
0i32 { 0i32 {
uv::ll::set_data_for_uv_handle( alt uv::ll::listen(server_stream_ptr,
server_stream_ptr, backlog as libc::c_int,
server_data_ptr); tcp_lfc_on_connection_cb) {
comm::send(setup_ch, none); 0i32 {
uv::ll::set_data_for_uv_handle(
server_stream_ptr,
server_data_ptr);
comm::send(setup_ch, none);
}
_ {
log(debug, "failure to uv_listen()");
let err_data = uv::ll::get_last_err_data(loop_ptr);
comm::send(setup_ch, some(err_data));
}
}
} }
_ { _ {
log(debug, "failure to uv_listen()"); log(debug, "failure to uv_tcp_bind");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
comm::send(setup_ch, some(err_data)); comm::send(setup_ch, some(err_data));
} }
} }
} }
_ { _ {
log(debug, "failure to uv_tcp_bind"); log(debug, "failure to uv_tcp_init");
let err_data = uv::ll::get_last_err_data(loop_ptr); let err_data = uv::ll::get_last_err_data(loop_ptr);
comm::send(setup_ch, some(err_data)); comm::send(setup_ch, some(err_data));
} }
} }
} };
_ { setup_ch.recv()
log(debug, "failure to uv_tcp_init");
let err_data = uv::ll::get_last_err_data(loop_ptr);
comm::send(setup_ch, some(err_data));
}
}
}; };
alt comm::recv(setup_po) { alt setup_result {
some(err_data) { some(err_data) {
// we failed to bind/list w/ libuv // we failed to bind/list w/ libuv
result::err(err_data.to_tcp_err()) result::err(err_data.to_tcp_err())
@@ -1338,7 +1339,7 @@ mod test {
task::spawn_sched(task::manual_threads(1u)) {|| task::spawn_sched(task::manual_threads(1u)) {||
let server_ip_addr = ip::v4::parse_addr(server_ip); let server_ip_addr = ip::v4::parse_addr(server_ip);
let listen_result = let listen_result =
listen_for_conn(server_ip_addr, server_port, 128u, listen(server_ip_addr, server_port, 128u,
iotask, iotask,
// on_establish_cb -- called when listener is set up // on_establish_cb -- called when listener is set up
{|kill_ch| {|kill_ch|