Commit graph

409 commits

Author SHA1 Message Date
lukaramu
597bcec379 Expanded top-level docs for std::net{TcpListener,TcpStream,UdpSocket}
Part of #29363
2017-03-26 17:06:39 +02:00
lukaramu
ad816f8174 Added links to std::net::Shutdown docs and made them more consistent
Part of #29363
2017-03-26 16:12:27 +02:00
lukaramu
1a9c8baed5 Added examples to std::net::{SocketAddr, SocketAddrV4, SocketAddrV6} docs 2017-03-26 15:43:25 +02:00
lukaramu
6f0c742b00 Expanded and added links to std::net::{SocketAddr,SocketAddrV4,SocketAddrV6} docs
Part of #29363
Changed summary sentences of SocketAddr and IpAddr for consistency
Linked to SocketAddrV4 and SocketAddrV6 from SocketAddr, moving explaination
there
Expanded top-level docs for SocketAddrV4 and SocketAddrV6, linking to some
relevant IETF RFCs, and linking back to SocketAddr
Changed some of the method summaries to third person as per RFC 1574; added
links to IETF RFCs where appropriate
2017-03-26 14:35:12 +02:00
lukaramu
be713fa4bf Removed link in std::net::ToSocketAddr's summary sentence
Relative links in trait methods don't resolve in e.g.
std/primitive.tuple.html
:(
2017-03-26 14:35:12 +02:00
lukaramu
347b70901c Expanded and added links to std::net::{IpAddr,Ipv4Addr,Ipv6Addr} docs
Part of #29363
Expanded top-level documentation & linked to relevant IETF RFCs.
Added a bunch of links (to true/false/Ipv4Addr/etc.) throughout the docs.
2017-03-26 14:35:12 +02:00
lukaramu
0d5baba70d Added links to std::net::AddrParseError's documentation
Additionally changed the summary sentence to be more consistent with most
of the other FromStr implementations' error types.
2017-03-26 14:35:12 +02:00
lukaramu
df5830a4ec Added links throughout std::net::ToSocketAddrs' documentation
Part of #29363

In the section about the default implementations of ToSocketAddrs,
I moved the bulletpoint of SocketAddrV4 & SocketAddrV6 to the one
stating that SocketAddr is constructed trivially, as this is what's
actually the case
2017-03-26 14:35:12 +02:00
lukaramu
0df7398558 std::net docs: changed occurences of "RFC" to say "IETF RFC"
part of #29363
2017-03-26 14:35:12 +02:00
lukaramu
76d08eda7d Update std::net:Incoming's docs to use standard iterator boilerplate
Part of #29363
2017-03-26 14:35:12 +02:00
lukaramu
169facfc28 added missing links in std::net TCP docs
part of #29363
2017-03-26 14:35:12 +02:00
Corey Farwell
d74c528f3a Rollup merge of #40590 - z1mvader:master, r=steveklabnik
documented order of conversion between u32 an ipv4addr

This fixes https://github.com/rust-lang/rust/issues/40118
2017-03-19 10:18:19 -04:00
z1mvader
50cede0d31 documented order of conversion between u32 an ipv4addr 2017-03-16 19:59:36 -05:00
Corey Farwell
e7b0f2badf Remove function invokation parens from documentation links.
This was never established as a convention we should follow in the 'More
API Documentation Conventions' RFC:

https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-03-13 21:43:18 -04:00
Corey Farwell
1d67bb9a0c Rollup merge of #39372 - seanmonstar:more-addr-froms, r=alexcrichton
A few ergonomic From impls for SocketAddr/IpAddr

My main motivation is removing things like this: `"127.0.0.1:3000".parse().unwrap()`. Instead, this now works: `SocketAddr::from(([127, 0, 0, 1], 3000))` or even `([127, 0, 0, 1], 3000).into())` when passing to a function.
2017-02-07 22:54:21 -05:00
Clar Charr
8b2e334e0e Ipv6Addr <-> u128 2017-02-05 18:55:37 -05:00
Corey Farwell
65b24779a9 Rollup merge of #39393 - ollie27:stab_impls, r=alexcrichton
Fix a few impl stability attributes

The versions show up in rustdoc.
2017-02-05 09:14:45 -05:00
Corey Farwell
ca202fe181 Rollup merge of #38983 - APTy:udp-peek, r=aturon
Add peek APIs to std::net

Adds "peek" APIs to `std::net` sockets, including:
- `UdpSocket.peek()`
- `UdpSocket.peek_from()`
- `TcpStream.peek()`

These methods enable socket reads without side-effects. That is, repeated calls to `peek()` return identical data. This is accomplished by providing the POSIX flag `MSG_PEEK` to the underlying socket read operations.

This also moves the current implementation of `recv_from` out of the platform-independent `sys_common` and into respective `sys/windows` and `sys/unix` implementations. This allows for more platform-dependent implementations where necessary.

Fixes #38980
2017-02-05 09:14:38 -05:00
Tyler Julian
a40be0857c libstd/net: Add peek APIs to UdpSocket and TcpStream
These methods enable socket reads without side-effects. That is,
repeated calls to peek() return identical data. This is accomplished
by providing the POSIX flag MSG_PEEK to the underlying socket read
operations.

This also moves the current implementation of recv_from out of the
platform-independent sys_common and into respective sys/windows and
sys/unix implementations. This allows for more platform-dependent
implementations.
2017-02-04 12:00:19 -08:00
Sean McArthur
cd603e4324 add From<(I, u16)> for SocketAddr where I: Into<IpAddr> 2017-01-31 15:07:22 -08:00
Oliver Middleton
9128f6100c Fix a few impl stability attributes
The versions show up in rustdoc.
2017-01-29 13:31:47 +00:00
Sean McArthur
87dcbcada2 add From<[u8; n]> impls for IpAddr 2017-01-28 13:02:48 -08:00
Alex Crichton
671b1c1d89 std: Stabilize APIs for the 1.16.0 release
This commit applies the stabilization/deprecations of the 1.16.0 release, as
tracked by the rust-lang/rust issue tracker and the final-comment-period tag.

The following APIs were stabilized:

* `VecDeque::truncate`
* `VecDeque::resize`
* `String::insert_str`
* `Duration::checked_{add,sub,div,mul}`
* `str::replacen`
* `SocketAddr::is_ipv{4,6}`
* `IpAddr::is_ipv{4,6}`
* `str::repeat`
* `Vec::dedup_by`
* `Vec::dedup_by_key`
* `Result::unwrap_or_default`
* `<*const T>::wrapping_offset`
* `<*mut T>::wrapping_offset`
* `CommandExt::creation_flags` (on Windows)
* `File::set_permissions`
* `String::split_off`

The following APIs were deprecated

* `EnumSet` - replaced with other ecosystem abstractions, long since unstable

Closes #27788
Closes #35553
Closes #35774
Closes #36436
Closes #36949
Closes #37079
Closes #37087
Closes #37516
Closes #37827
Closes #37916
Closes #37966
Closes #38080
2017-01-25 16:43:01 -08:00
bors
18b6b8fb8f Auto merge of #39048 - lambda:impl-tosocketaddrs-for-string, r=alexcrichton
impl ToSocketAddrs for String

`ToSocketAddrs` is implemented for a number of different types,
including `(IpAddr, u16)`, `&str`, and various others, for the
convenience of being able to run things like
`TcpListener::bind("10.11.12.13:1415")`.  However, because this is a
generic parameter with a trait bound, if you have a `String` you cannot
pass it in, either directly as `TcpListener::bind(string)`, or the
`TcpListener::bind(&string)` as you might expect due to deref coercion;
you have to use `TcpListener::bind(&*string)`, which is noisy and hard
to discover (though #39029 suggests better error messages to make it
more discoverable).

Rather than making people stumble over this, just implement
`ToSocketAddrs` for `String`.
2017-01-24 01:17:09 +00:00
Utkarsh Kukreti
9d912b683a libstd: replace all try! with ? in documentation examples
See #38644.
2017-01-22 21:07:38 +05:30
Alex Crichton
b174920827 Rollup merge of #39120 - alexcrichton:emscripten-tests, r=brson
travis: Get an emscripten builder online

This commit adds a new entry to the Travis matrix which will execute emscripten
test suites. Along the way it updates a few bits of the test suite to continue
passing on emscripten, such as:

* Ignoring i128/u128 tests as they're presumably just not working (didn't
  investigate as to why)
* Disabling a few process tests (not working on emscripten)
* Ignore some num tests in libstd (#39119)
* Fix some warnings when compiling
2017-01-20 08:35:47 -08:00
Alex Crichton
e8f9d2d43a travis: Get an emscripten builder online
This commit adds a new entry to the Travis matrix which will execute emscripten
test suites. Along the way it updates a few bits of the test suite to continue
passing on emscripten, such as:

* Ignoring i128/u128 tests as they're presumably just not working (didn't
  investigate as to why)
* Disabling a few process tests (not working on emscripten)
* Ignore some num tests in libstd (#39119)
* Fix some warnings when compiling
2017-01-19 13:54:19 -08:00
bors
74c42ac173 Auto merge of #38464 - clarcharr:ip_cmp, r=sfackler
PartialEq and PartialOrd between IpAddr and Ipv[46]Addr.

PartialEq was rather useful, so, I figured that I'd implement it. I added PartialOrd for good measure.
2017-01-19 03:34:05 +00:00
Brian Campbell
a5f2f36ebd impl ToSocketAddrs for String
`ToSocketAddrs` is implemented for a number of different types,
including `(IpAddr, u16)`, `&str`, and various others, for the
convenience of being able to run things like
`TcpListener::bind("10.11.12.13:1415")`.  However, because this is a
generic parameter with a trait bound, if you have a `String` you cannot
pass it in, either directly as `TcpListener::bind(string)`, or the
`TcpListener::bind(&string)` as you might expect due to deref coercion;
you have to use `TcpListener::bind(&*string)`, which is noisy and hard
to discover (though #39029 suggests better error messages to make it
more discoverable).

Rather than making people stumble over this, just implement
`ToSocketAddrs` for `String`.
2017-01-13 19:13:10 -05:00
Guillaume Gomez
629caf5a7e Rollup merge of #38986 - APTy:fix-nonblocking-test, r=aturon
std/net/udp: Improve set_nonblocking test

While writing a separate change, I noticed the current test for `UdpSocket::set_nonblocking()` is fairly ineffective.

This fixes the test so that it validates that a correct error is returned on calls to `recv()` when no data is available.
2017-01-13 10:42:30 +01:00
bors
2782e8f8fc Auto merge of #38867 - alexcrichton:ignore-test-on-windows, r=brson
std: Ignore close_read_wakes_up on Windows

It looks like in practice at least this test will not pass on Windows.
Empirically it is prone to blocking forever, presumably because a call to
`shutdown` doesn't actually wake up other threads on Windows.

We don't document this as a guarantee for `shutdown`, nor do we internally rely
on it. This test originated in a time long since passed when it was leveraged
for canceling I/O, but nowadays there's nothing fancy happening in the standard
library so it's not really a productive test anyway, hence just ignoring it on
Windows.

Closes #31657
2017-01-12 03:13:48 +00:00
Tyler Julian
30380137f8 std/net/udp: Improve set_nonblocking test 2017-01-10 22:06:17 -08:00
Seo Sanghyeon
25a9d91929 Rollup merge of #38799 - minaguib:patch-1, r=steveklabnik
Doc fix
2017-01-10 20:27:42 +09:00
bors
b9637f79e2 Auto merge of #38327 - Yamakaky:into-ipaddr, r=brson
Impl From<Ipv4Addr, Ipv6Addr> for IpAddr.

Fixes https://github.com/rust-lang/rfcs/issues/1816.
2017-01-07 09:00:52 +00:00
Alex Crichton
7eb43f1b20 std: Ignore close_read_wakes_up on Windows
It looks like in practice at least this test will not pass on Windows.
Empirically it is prone to blocking forever, presumably because a call to
`shutdown` doesn't actually wake up other threads on Windows.

We don't document this as a guarantee for `shutdown`, nor do we internally rely
on it. This test originated in a time long since passed when it was leveraged
for canceling I/O, but nowadays there's nothing fancy happening in the standard
library so it's not really a productive test anyway, hence just ignoring it on
Windows.

Closes #31657
2017-01-05 22:58:37 -08:00
Steven Fackler
eb5e9ab145 Deprecate TcpListener::set_only_v6
This was supposed to have been removed in #33124 but snuck through :(
2017-01-05 21:36:27 -08:00
Mina Naguib
ae23f036f0 Doc fix 2017-01-03 14:52:14 -05:00
Yamakaky
2d365c6b7a
Impl From<inner> for IpAddr and SocketAddr.
Fixes https://github.com/rust-lang/rfcs/issues/1816.
2016-12-25 18:10:03 -05:00
Yamakaky
40053a46ff
Impl From<Ipv4Addr, Ipv6Addr> for IpAddr.
Fixes https://github.com/rust-lang/rfcs/issues/1816.
2016-12-24 23:32:54 -05:00
Clar Charr
9301e2e65d Comparison between IpAddr and Ipv[46]Addr. 2016-12-23 14:51:46 -05:00
Alex Crichton
65e9691cef Rollup merge of #38131 - clarcharr:from_segments, r=alexcrichton
Add From<[u16; 8]> to Ipv6Addr

Not really sure that this requires an RFC, but I figured that I'd offer a pull request and see what people think. It seems like a reasonable addition.
2016-12-20 11:16:19 -08:00
Clar Charr
5049ad22ec From<[u16; 8]> for Ipv6Addr. 2016-12-18 23:09:48 -05:00
Corey Farwell
86fc63e62d Implement fmt::Debug for all structures in libstd.
Part of https://github.com/rust-lang/rust/issues/31869.

Also turn on the `missing_debug_implementations` lint at the crate
level.
2016-12-18 14:55:14 -08:00
Corey Farwell
3bd2c80382 Rollup merge of #38067 - GuillaumeGomez:udp-doc, r=frewsxcv,nagisa
Add more examples to UpdSocket

r? @frewsxcv
2016-12-12 14:10:32 -05:00
Guillaume Gomez
8b0b2b65a3 Add more examples to UpdSocket 2016-12-04 00:43:53 -08:00
Corey Farwell
d68c585b01 Rollup merge of #38077 - GuillaumeGomez:ipaddr_doc, r=frewsxcv
Add missing examples for IpAddr enum

r? @frewsxcv
2016-12-03 15:39:52 -05:00
Corey Farwell
468ca2c56a Rollup merge of #38020 - GuillaumeGomez:udp-socket-doc, r=frewsxcv
Add part of missing UdpSocket's urls and examples

r? @frewsxcv
2016-12-03 15:39:51 -05:00
Corey Farwell
bf99183f87 Rollup merge of #37859 - GuillaumeGomez:net_examples, r=nagisa
Add missing examples for Ipv6Addr

r? @steveklabnik

cc @frewsxcv
2016-12-03 15:39:51 -05:00
Guillaume Gomez
336e5dd33d Add missing examples for IpAddr enum 2016-11-29 19:44:53 -08:00
bors
2008732975 Auto merge of #37983 - GuillaumeGomez:tcp_listener_doc, r=frewsxcv
Add examples for TcpListener struct

r? @frewsxcv
2016-11-27 10:39:41 -06:00