summary refs log tree commit diff
path: root/src/libstd/rt/io
diff options
context:
space:
mode:
authorEric Reed <ereed@mozilla.com>2013-07-17 15:16:44 -0700
committerEric Reed <ereed@mozilla.com>2013-07-19 13:04:03 -0700
commit968f7f5d3d64b481fb68651d9274768fe5e98853 (patch)
tree8c0ea1cca0c2ba8983eee8e4015d1aeff0f48387 /src/libstd/rt/io
parent0d04aa78e5e8a7e3c48141028137c1a69e7e32ee (diff)
downloadrust-968f7f5d3d64b481fb68651d9274768fe5e98853.tar.gz
rust-968f7f5d3d64b481fb68651d9274768fe5e98853.zip
Changed methods on UDP sockets and TCP/UDP watchers to &mut self to reflect that libuv may change the underlying handle.
Diffstat (limited to 'src/libstd/rt/io')
-rw-r--r--src/libstd/rt/io/net/udp.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/libstd/rt/io/net/udp.rs b/src/libstd/rt/io/net/udp.rs
index f3b52783573..59649dee5b9 100644
--- a/src/libstd/rt/io/net/udp.rs
+++ b/src/libstd/rt/io/net/udp.rs
@@ -30,7 +30,7 @@ impl UdpSocket {
         }
     }
 
-    pub fn recvfrom(&self, buf: &mut [u8]) -> Option<(uint, IpAddr)> {
+    pub fn recvfrom(&mut self, buf: &mut [u8]) -> Option<(uint, IpAddr)> {
         match (**self).recvfrom(buf) {
             Ok((nread, src)) => Some((nread, src)),
             Err(ioerr) => {
@@ -43,7 +43,7 @@ impl UdpSocket {
         }
     }
 
-    pub fn sendto(&self, buf: &[u8], dst: IpAddr) {
+    pub fn sendto(&mut self, buf: &[u8], dst: IpAddr) {
         match (**self).sendto(buf, dst) {
             Ok(_) => (),
             Err(ioerr) => io_error::cond.raise(ioerr),
@@ -61,16 +61,17 @@ pub struct UdpStream {
 }
 
 impl UdpStream {
-    pub fn as_socket<T>(&self, f: &fn(&UdpSocket) -> T) -> T { f(&self.socket) }
+    pub fn as_socket<T>(&mut self, f: &fn(&mut UdpSocket) -> T) -> T { f(&mut self.socket) }
 
     pub fn disconnect(self) -> UdpSocket { self.socket }
 }
 
 impl Reader for UdpStream {
     fn read(&mut self, buf: &mut [u8]) -> Option<uint> {
+        let peer = self.connectedTo;
         do self.as_socket |sock| {
             match sock.recvfrom(buf) {
-                Some((_nread, src)) if src != self.connectedTo => Some(0),
+                Some((_nread, src)) if src != peer => Some(0),
                 Some((nread, _src)) => Some(nread),
                 None => None,
             }
@@ -122,7 +123,7 @@ mod test {
 
             do spawntask_immediately {
                 match UdpSocket::bind(server_ip) {
-                    Some(server) => {
+                    Some(ref mut server) => {
                         let mut buf = [0];
                         match server.recvfrom(buf) {
                             Some((nread, src)) => {
@@ -139,7 +140,7 @@ mod test {
 
             do spawntask_immediately {
                 match UdpSocket::bind(client_ip) {
-                    Some(client) => client.sendto([99], server_ip),
+                    Some(ref mut client) => client.sendto([99], server_ip),
                     None => fail!()
                 }
             }
@@ -154,7 +155,7 @@ mod test {
 
             do spawntask_immediately {
                 match UdpSocket::bind(server_ip) {
-                    Some(server) => {
+                    Some(ref mut server) => {
                         let mut buf = [0];
                         match server.recvfrom(buf) {
                             Some((nread, src)) => {
@@ -171,7 +172,7 @@ mod test {
 
             do spawntask_immediately {
                 match UdpSocket::bind(client_ip) {
-                    Some(client) => client.sendto([99], server_ip),
+                    Some(ref mut client) => client.sendto([99], server_ip),
                     None => fail!()
                 }
             }