diff options
| author | Jeff Olson <olson.jeffery@gmail.com> | 2012-06-26 12:47:44 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-06-29 15:41:56 -0700 |
| commit | 9edcb104ff2bbedd389ec519aea1de9c88c2beb1 (patch) | |
| tree | 173c02072d90a961305fab063d017320783bb070 /src/rt/rust_uv.cpp | |
| parent | e097ff6398bdf08a6f5f8d6abe2ad4521ab3d09a (diff) | |
| download | rust-9edcb104ff2bbedd389ec519aea1de9c88c2beb1.tar.gz rust-9edcb104ff2bbedd389ec519aea1de9c88c2beb1.zip | |
std: addressing #2656 (ipv6 support in net::tcp)
.. there are some additional FIXME nags in net_tcp (L 1012) about blocking because libuv is holding unsafe ptrs to task local data. the proposed fix going is not really feasible w/ the current design, IMO, but i'll leave it there in case someone really wants to make the case without creating more hassle than it's worth.
Diffstat (limited to 'src/rt/rust_uv.cpp')
| -rw-r--r-- | src/rt/rust_uv.cpp | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/rt/rust_uv.cpp b/src/rt/rust_uv.cpp index f681c6bdd99..e47af4e10a3 100644 --- a/src/rt/rust_uv.cpp +++ b/src/rt/rust_uv.cpp @@ -238,32 +238,36 @@ rust_uv_tcp_connect(uv_connect_t* connect_ptr, uv_tcp_t* tcp_ptr, uv_connect_cb cb, sockaddr_in* addr_ptr) { - rust_task* task = rust_get_current_task(); - LOG(task, stdlib, "inside rust_uv_tcp_connect"); // FIXME ref #2064 sockaddr_in addr = *addr_ptr; - LOG(task, stdlib, "before tcp_connect .. port: %d", - addr.sin_port); - LOG(task, stdlib, "before tcp_connect.. tcp stream:" \ - "%lu cb ptr: %lu", - (unsigned long int)tcp_ptr, (unsigned long int)cb); int result = uv_tcp_connect(connect_ptr, tcp_ptr, addr, cb); - LOG(task, stdlib, "leaving rust_uv_tcp_connect.." \ - "and result: %d", - result); return result; } extern "C" int rust_uv_tcp_bind(uv_tcp_t* tcp_server, sockaddr_in* addr_ptr) { // FIXME ref #2064 - rust_task* task = rust_get_current_task(); sockaddr_in addr = *addr_ptr; - LOG(task, stdlib, "before uv_tcp_bind .. tcp_server:" \ - "%lu port: %d", - (unsigned long int)tcp_server, addr.sin_port); return uv_tcp_bind(tcp_server, addr); } +extern "C" int +rust_uv_tcp_connect6(uv_connect_t* connect_ptr, + uv_tcp_t* tcp_ptr, + uv_connect_cb cb, + sockaddr_in6* addr_ptr) { + // FIXME ref #2064 + sockaddr_in6 addr = *addr_ptr; + int result = uv_tcp_connect6(connect_ptr, tcp_ptr, addr, cb); + return result; +} + +extern "C" int +rust_uv_tcp_bind6 +(uv_tcp_t* tcp_server, sockaddr_in6* addr_ptr) { + // FIXME ref #2064 + sockaddr_in6 addr = *addr_ptr; + return uv_tcp_bind6(tcp_server, addr); +} extern "C" int rust_uv_listen(uv_stream_t* stream, int backlog, @@ -328,7 +332,6 @@ extern "C" unsigned int rust_uv_helper_get_INADDR_NONE() { return INADDR_NONE; } - extern "C" uv_stream_t* rust_uv_get_stream_handle_from_connect_req(uv_connect_t* connect) { return connect->handle; |
