Skip to content

Commit 3fb3568

Browse files
committed
auto merge of #15265 : omasanori/rust/udp, r=alexcrichton
POSIX has recvfrom(2) and sendto(2), but their name seem not to be suitable with Rust. We already renamed getpeername(2) and getsockname(2), so I think it makes sense. Alternatively, `receive_from` would be fine. However, we have `.recv()` so I chose `recv_from`. What do you think? If this makes sense, should I provide `recvfrom` and `sendto` deprecated methods just calling new methods for compatibility?
2 parents 7c4d8e9 + 55f5a1e commit 3fb3568

File tree

5 files changed

+68
-55
lines changed

5 files changed

+68
-55
lines changed

src/libnative/io/net.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ impl rtio::RtioSocket for UdpSocket {
630630
#[cfg(unix)] type msglen_t = libc::size_t;
631631

632632
impl rtio::RtioUdpSocket for UdpSocket {
633-
fn recvfrom(&mut self, buf: &mut [u8]) -> IoResult<(uint, rtio::SocketAddr)> {
633+
fn recv_from(&mut self, buf: &mut [u8]) -> IoResult<(uint, rtio::SocketAddr)> {
634634
let fd = self.fd();
635635
let mut storage: libc::sockaddr_storage = unsafe { mem::zeroed() };
636636
let storagep = &mut storage as *mut _ as *mut libc::sockaddr;
@@ -652,7 +652,7 @@ impl rtio::RtioUdpSocket for UdpSocket {
652652
})
653653
}
654654

655-
fn sendto(&mut self, buf: &[u8], dst: rtio::SocketAddr) -> IoResult<()> {
655+
fn send_to(&mut self, buf: &[u8], dst: rtio::SocketAddr) -> IoResult<()> {
656656
let (dst, dstlen) = addr_to_sockaddr(dst);
657657
let dstp = &dst as *const _ as *const libc::sockaddr;
658658
let dstlen = dstlen as libc::socklen_t;

src/librustrt/rtio.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@ pub trait RtioSocket {
269269
}
270270

271271
pub trait RtioUdpSocket : RtioSocket {
272-
fn recvfrom(&mut self, buf: &mut [u8]) -> IoResult<(uint, SocketAddr)>;
273-
fn sendto(&mut self, buf: &[u8], dst: SocketAddr) -> IoResult<()>;
272+
fn recv_from(&mut self, buf: &mut [u8]) -> IoResult<(uint, SocketAddr)>;
273+
fn send_to(&mut self, buf: &[u8], dst: SocketAddr) -> IoResult<()>;
274274

275275
fn join_multicast(&mut self, multi: IpAddr) -> IoResult<()>;
276276
fn leave_multicast(&mut self, multi: IpAddr) -> IoResult<()>;

src/librustuv/homing.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,13 @@ mod test {
197197
let listener = UdpWatcher::bind(local_loop(), addr2);
198198
tx.send((listener.unwrap(), addr1));
199199
let mut listener = UdpWatcher::bind(local_loop(), addr1).unwrap();
200-
listener.sendto([1, 2, 3, 4], addr2).ok().unwrap();
200+
listener.send_to([1, 2, 3, 4], addr2).ok().unwrap();
201201
});
202202

203203
let task = pool.task(TaskOpts::new(), proc() {
204204
let (mut watcher, addr) = rx.recv();
205205
let mut buf = [0, ..10];
206-
assert!(watcher.recvfrom(buf).ok().unwrap() == (4, addr));
206+
assert!(watcher.recv_from(buf).ok().unwrap() == (4, addr));
207207
});
208208
pool.spawn_sched().send(sched::TaskFromFriend(task));
209209

src/librustuv/net.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ impl rtio::RtioSocket for UdpWatcher {
540540
}
541541

542542
impl rtio::RtioUdpSocket for UdpWatcher {
543-
fn recvfrom(&mut self, buf: &mut [u8])
543+
fn recv_from(&mut self, buf: &mut [u8])
544544
-> Result<(uint, rtio::SocketAddr), IoError>
545545
{
546546
let loop_ = self.uv_loop();
@@ -607,7 +607,7 @@ impl rtio::RtioUdpSocket for UdpWatcher {
607607
}
608608
}
609609

610-
fn sendto(&mut self, buf: &[u8], dst: rtio::SocketAddr) -> Result<(), IoError> {
610+
fn send_to(&mut self, buf: &[u8], dst: rtio::SocketAddr) -> Result<(), IoError> {
611611
let m = self.fire_homing_missile();
612612
let loop_ = self.uv_loop();
613613
let guard = try!(self.write_access.grant(m));
@@ -960,7 +960,7 @@ mod test {
960960
Ok(mut w) => {
961961
tx.send(());
962962
let mut buf = [0u8, ..10];
963-
match w.recvfrom(buf) {
963+
match w.recv_from(buf) {
964964
Ok((10, addr)) => assert!(addr == client),
965965
e => fail!("{:?}", e),
966966
}
@@ -976,7 +976,7 @@ mod test {
976976
let mut w = match UdpWatcher::bind(local_loop(), client) {
977977
Ok(w) => w, Err(e) => fail!("{:?}", e)
978978
};
979-
match w.sendto([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], server) {
979+
match w.send_to([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], server) {
980980
Ok(()) => {}, Err(e) => fail!("{:?}", e)
981981
}
982982
}
@@ -992,7 +992,7 @@ mod test {
992992
Ok(mut w) => {
993993
tx.send(());
994994
let mut buf = [0u8, ..10];
995-
match w.recvfrom(buf) {
995+
match w.recv_from(buf) {
996996
Ok((10, addr)) => assert!(addr == client),
997997
e => fail!("{:?}", e),
998998
}
@@ -1008,7 +1008,7 @@ mod test {
10081008
let mut w = match UdpWatcher::bind(local_loop(), client) {
10091009
Ok(w) => w, Err(e) => fail!("{:?}", e)
10101010
};
1011-
match w.sendto([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], server) {
1011+
match w.send_to([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], server) {
10121012
Ok(()) => {}, Err(e) => fail!("{:?}", e)
10131013
}
10141014
}
@@ -1057,16 +1057,16 @@ mod test {
10571057
spawn(proc() {
10581058
let mut client = UdpWatcher::bind(local_loop(), client_addr).unwrap();
10591059
rx.recv();
1060-
assert!(client.sendto([1], server_addr).is_ok());
1061-
assert!(client.sendto([2], server_addr).is_ok());
1060+
assert!(client.send_to([1], server_addr).is_ok());
1061+
assert!(client.send_to([2], server_addr).is_ok());
10621062
});
10631063

10641064
let mut server = UdpWatcher::bind(local_loop(), server_addr).unwrap();
10651065
tx.send(());
10661066
let mut buf1 = [0];
10671067
let mut buf2 = [0];
1068-
let (nread1, src1) = server.recvfrom(buf1).ok().unwrap();
1069-
let (nread2, src2) = server.recvfrom(buf2).ok().unwrap();
1068+
let (nread1, src1) = server.recv_from(buf1).ok().unwrap();
1069+
let (nread2, src2) = server.recv_from(buf2).ok().unwrap();
10701070
assert_eq!(nread1, 1);
10711071
assert_eq!(nread2, 1);
10721072
assert!(src1 == client_addr);
@@ -1098,10 +1098,10 @@ mod test {
10981098
let mut buf = [1];
10991099
while buf[0] == 1 {
11001100
// send more data
1101-
assert!(server_out.sendto(msg, client_in_addr).is_ok());
1101+
assert!(server_out.send_to(msg, client_in_addr).is_ok());
11021102
total_bytes_sent += msg.len();
11031103
// check if the client has received enough
1104-
let res = server_in.recvfrom(buf);
1104+
let res = server_in.recv_from(buf);
11051105
assert!(res.is_ok());
11061106
let (nread, src) = res.ok().unwrap();
11071107
assert_eq!(nread, 1);
@@ -1120,9 +1120,9 @@ mod test {
11201120
let mut buf = [0, .. 2048];
11211121
while total_bytes_recv < MAX {
11221122
// ask for more
1123-
assert!(client_out.sendto([1], server_in_addr).is_ok());
1123+
assert!(client_out.send_to([1], server_in_addr).is_ok());
11241124
// wait for data
1125-
let res = client_in.recvfrom(buf);
1125+
let res = client_in.recv_from(buf);
11261126
assert!(res.is_ok());
11271127
let (nread, src) = res.ok().unwrap();
11281128
assert!(src == server_out_addr);
@@ -1132,7 +1132,7 @@ mod test {
11321132
}
11331133
}
11341134
// tell the server we're done
1135-
assert!(client_out.sendto([0], server_in_addr).is_ok());
1135+
assert!(client_out.send_to([0], server_in_addr).is_ok());
11361136
}
11371137

11381138
#[test]

0 commit comments

Comments
 (0)