std: some cleanup in net::tcp rename listen_to_conn->listen
This commit is contained in:
committed by
Brian Anderson
parent
68e129dc39
commit
d79d0aa1c8
@@ -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|
|
||||||
|
|||||||
Reference in New Issue
Block a user