diff options
| author | Luqman Aden <laden@csclub.uwaterloo.ca> | 2012-10-19 19:28:58 -0400 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-10-20 17:17:10 -0700 |
| commit | 0e2437bf5d4a1f863888d4b0b5995a695f966e73 (patch) | |
| tree | a9c07251373f138edc32883556e6ea62cd8e5ad2 /src/rt/rust_uv.cpp | |
| parent | 15777de957642ebace789bec747b4269ca9883b7 (diff) | |
| download | rust-0e2437bf5d4a1f863888d4b0b5995a695f966e73.tar.gz rust-0e2437bf5d4a1f863888d4b0b5995a695f966e73.zip | |
uv: implement a way to get client's ip/port.
Diffstat (limited to 'src/rt/rust_uv.cpp')
| -rw-r--r-- | src/rt/rust_uv.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/rt/rust_uv.cpp b/src/rt/rust_uv.cpp index 706e8ff4380..c34fd166bae 100644 --- a/src/rt/rust_uv.cpp +++ b/src/rt/rust_uv.cpp @@ -270,6 +270,20 @@ rust_uv_tcp_bind6 } extern "C" int +rust_uv_tcp_getpeername +(uv_tcp_t* handle, sockaddr_in* name) { + int namelen = sizeof(sockaddr_in); + return uv_tcp_getpeername(handle, (sockaddr*)name, &namelen); +} + +extern "C" int +rust_uv_tcp_getpeername6 +(uv_tcp_t* handle, sockaddr_in6* name) { + int namelen = sizeof(sockaddr_in6); + return uv_tcp_getpeername(handle, (sockaddr*)name, &namelen); +} + +extern "C" int rust_uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb) { return uv_listen(stream, backlog, cb); @@ -480,6 +494,14 @@ rust_uv_ip6_name(struct sockaddr_in6* src, char* dst, size_t size) { int result = uv_ip6_name(src, dst, size); return result; } +extern "C" unsigned int +rust_uv_ip4_port(struct sockaddr_in* src) { + return ntohs(src->sin_port); +} +extern "C" unsigned int +rust_uv_ip6_port(struct sockaddr_in6* src) { + return ntohs(src->sin6_port); +} extern "C" uintptr_t* rust_uv_get_kernel_global_chan_ptr() { |
