about summary refs log tree commit diff
path: root/src/libstd/net_ip.rs
diff options
context:
space:
mode:
authorLuqman Aden <laden@csclub.uwaterloo.ca>2012-10-19 19:28:58 -0400
committerBrian Anderson <banderson@mozilla.com>2012-10-20 17:17:10 -0700
commit0e2437bf5d4a1f863888d4b0b5995a695f966e73 (patch)
treea9c07251373f138edc32883556e6ea62cd8e5ad2 /src/libstd/net_ip.rs
parent15777de957642ebace789bec747b4269ca9883b7 (diff)
downloadrust-0e2437bf5d4a1f863888d4b0b5995a695f966e73.tar.gz
rust-0e2437bf5d4a1f863888d4b0b5995a695f966e73.zip
uv: implement a way to get client's ip/port.
Diffstat (limited to 'src/libstd/net_ip.rs')
-rw-r--r--src/libstd/net_ip.rs23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/libstd/net_ip.rs b/src/libstd/net_ip.rs
index cf5323c498b..5d78fb19bab 100644
--- a/src/libstd/net_ip.rs
+++ b/src/libstd/net_ip.rs
@@ -10,8 +10,10 @@ use addrinfo = uv::ll::addrinfo;
 use uv_getaddrinfo_t = uv::ll::uv_getaddrinfo_t;
 use uv_ip4_addr = uv::ll::ip4_addr;
 use uv_ip4_name = uv::ll::ip4_name;
+use uv_ip4_port = uv::ll::ip4_port;
 use uv_ip6_addr = uv::ll::ip6_addr;
 use uv_ip6_name = uv::ll::ip6_name;
+use uv_ip6_port = uv::ll::ip6_port;
 use uv_getaddrinfo = uv::ll::getaddrinfo;
 use uv_freeaddrinfo = uv::ll::freeaddrinfo;
 use create_uv_getaddrinfo_t = uv::ll::getaddrinfo_t;
@@ -33,11 +35,11 @@ type ParseAddrErr = {
 };
 
 /**
- * Convert a `ip_addr` to a str
+ * Convert a `IpAddr` to a str
  *
  * # Arguments
  *
- * * ip - a `std::net::ip::ip_addr`
+ * * ip - a `std::net::ip::IpAddr`
  */
 pub fn format_addr(ip: &IpAddr) -> ~str {
     match *ip {
@@ -58,6 +60,23 @@ pub fn format_addr(ip: &IpAddr) -> ~str {
     }
 }
 
+/**
+ * Get the associated port
+ *
+ * # Arguments
+ * * ip - a `std::net::ip::IpAddr`
+ */
+pub fn get_port(ip: &IpAddr) -> uint {
+    match *ip {
+        Ipv4(ref addr) => unsafe {
+            uv_ip4_port(addr)
+        },
+        Ipv6(ref addr) => unsafe {
+            uv_ip6_port(addr)
+        }
+    }
+}
+
 /// Represents errors returned from `net::ip::get_addr()`
 enum IpGetAddrErr {
     GetAddrUnknownError