Skip to content

Commit

Permalink
std: Deprecate extra TcpStream/UdpSocket methods
Browse files Browse the repository at this point in the history
These methods are all covered by [RFC 1158] and are currently all available on
stable Rust via the [`net2` crate][net2] on crates.io. This commit does not
touch the timeout related functions as they're still waiting on `Duration` which
is unstable anyway, so punting in favor of the `net2` crate wouldn't buy much.

[RFC 1158]: rust-lang/rfcs#1158
[net2]: http://crates.io/crates/net2

Specifically, this commit deprecates:

* TcpStream::set_nodelay
* TcpStream::set_keepalive
* UdpSocket::set_broadcast
* UdpSocket::set_multicast_loop
* UdpSocket::join_multicast
* UdpSocket::set_multicast_time_to_live
* UdpSocket::set_time_to_live
  • Loading branch information
alexcrichton committed Jul 28, 2015
1 parent ba9224f commit 798ce50
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/libstd/net/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ impl TcpStream {
}

/// Sets the nodelay flag on this connection to the boolean specified.
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "tcp_extras", reason = "available externally")]
pub fn set_nodelay(&self, nodelay: bool) -> io::Result<()> {
self.0.set_nodelay(nodelay)
}
Expand All @@ -138,6 +141,9 @@ impl TcpStream {
/// If the value specified is `None`, then the keepalive flag is cleared on
/// this connection. Otherwise, the keepalive timeout will be set to the
/// specified time, in seconds.
#[unstable(feature = "tcp_extras", reason = "available externally")]
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
pub fn set_keepalive(&self, seconds: Option<u32>) -> io::Result<()> {
self.0.set_keepalive(seconds)
}
Expand Down
18 changes: 18 additions & 0 deletions src/libstd/net/udp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,33 +98,51 @@ impl UdpSocket {
}

/// Sets the broadcast flag on or off.
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "udp_extras", reason = "available externally")]
pub fn set_broadcast(&self, on: bool) -> io::Result<()> {
self.0.set_broadcast(on)
}

/// Sets the multicast loop flag to the specified value.
///
/// This lets multicast packets loop back to local sockets (if enabled)
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "udp_extras", reason = "available externally")]
pub fn set_multicast_loop(&self, on: bool) -> io::Result<()> {
self.0.set_multicast_loop(on)
}

/// Joins a multicast IP address (becomes a member of it).
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "udp_extras", reason = "available externally")]
pub fn join_multicast(&self, multi: &IpAddr) -> io::Result<()> {
self.0.join_multicast(multi)
}

/// Leaves a multicast IP address (drops membership from it).
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "udp_extras", reason = "available externally")]
pub fn leave_multicast(&self, multi: &IpAddr) -> io::Result<()> {
self.0.leave_multicast(multi)
}

/// Sets the multicast TTL.
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "udp_extras", reason = "available externally")]
pub fn set_multicast_time_to_live(&self, ttl: i32) -> io::Result<()> {
self.0.multicast_time_to_live(ttl)
}

/// Sets this socket's TTL.
#[deprecated(since = "1.3.0",
reason = "available through the `net2` crate on crates.io")]
#[unstable(feature = "udp_extras", reason = "available externally")]
pub fn set_time_to_live(&self, ttl: i32) -> io::Result<()> {
self.0.time_to_live(ttl)
}
Expand Down

0 comments on commit 798ce50

Please sign in to comment.