Commit graph

551 commits

Author SHA1 Message Date
LinkTed
cc085e9170 Replace assert with unreachable 2020-10-10 15:19:12 +02:00
LinkTed
e61148f98a Cast boolean into int directly in function set_passcred 2020-10-10 15:19:12 +02:00
LinkTed
d0b133cdc6 Remove unsupported target_os for SocketCred 2020-10-10 15:19:12 +02:00
LinkTed
5964d599ac Change standard types to libc types 2020-10-10 15:19:12 +02:00
LinkTed
1902711f38 Change name of struct to SocketCred 2020-10-10 15:19:12 +02:00
LinkTed
eeea5c23b4 Change API to unsafe and add doc comments 2020-10-10 15:19:12 +02:00
LinkTed
686964f0f5 Add set_passcred and passcred methods to UnixStream and UnixDatagram 2020-10-10 15:19:12 +02:00
LinkTed
19c5fdda7c Rename test.rs to tests.rs 2020-10-10 15:19:12 +02:00
LinkTed
a91fd7328c Add doc comments 2020-10-10 15:19:12 +02:00
LinkTed
46764d48bb Add doc(cfg(...)) 2020-10-10 15:19:12 +02:00
LinkTed
1869141e54 Reduce impl trait by using macro in raw_fd.rs 2020-10-10 15:19:12 +02:00
LinkTed
53791b3ff4 Move conditional compilation to the upper module and sort the target OS list alphabetically 2020-10-10 15:19:12 +02:00
LinkTed
07ed6afc6d Remove unnecessary path 2020-10-10 15:19:12 +02:00
LinkTed
6ed9bface6 Use fill instead of memset 2020-10-10 15:19:12 +02:00
LinkTed
1f3195a5df Remove inner function in bind, connect and send_to 2020-10-10 15:19:12 +02:00
LinkTed
4c929a00ee Remove lifetime annotation in messages function 2020-10-10 15:19:12 +02:00
LinkTed
b82f29d780 Remove Clone trait bound in add_to_ancillary_data 2020-10-10 15:19:11 +02:00
LinkTed
3dfab6fb64 Add integer overflow check 2020-10-10 15:19:11 +02:00
LinkTed
e1084052a7 Replace TryFrom of AncillaryData with a private method. 2020-10-10 15:19:11 +02:00
LinkTed
8784ffbb4e Using read_unaligned instead of memcpy. 2020-10-10 15:19:11 +02:00
LinkTed
8783b06bd2 Move add_to_ancillary_data and AncillaryDataIter to ancillary.rs 2020-10-10 15:19:11 +02:00
LinkTed
e6984eee6f Add UCred struct 2020-10-10 15:19:11 +02:00
LinkTed
6f82ddf18e Add AncillaryError 2020-10-10 15:19:11 +02:00
LinkTed
6fa7c3f79e Split net.rs into multiple files 2020-10-10 15:19:11 +02:00
LinkTed
0b3c9d8465 unix: Extend UnixStream and UnixDatagram to send and receive file descriptors
Add the functions `recv_vectored_fds` and `send_vectored_fds` to send and receive file descriptors, by using `recvmsg` and `sendmsg` system call.
2020-10-10 15:19:11 +02:00
bors
7477d445c8 Auto merge of #77717 - tmiasko:posix-spawn-error-check, r=cuviper
Fix error checking in posix_spawn implementation of Command

* Check for errors returned from posix_spawn*_init functions
* Check for non-zero return value from posix_spawn functions
2020-10-10 10:59:20 +00:00
Josh Stone
1d06b07765
simplify the cfg in ReadDir construction
Co-authored-by: David Tolnay <dtolnay@gmail.com>
2020-10-09 10:54:50 -07:00
Josh Stone
365e00aeee remove ReadDir.end_of_stream on targets that don't use it 2020-10-09 10:00:11 -07:00
Josh Stone
c1297eca3e unix/vxworks: make DirEntry slightly smaller
`DirEntry` contains a `ReadDir` handle, which used to just be a wrapper
on `Arc<InnerReadDir>`. Commit af75314ecd added `end_of_stream: bool`
which is not needed by `DirEntry`, but adds 8 bytes after padding. We
can let `DirEntry` have an `Arc<InnerReadDir>` directly to avoid that.
2020-10-09 10:00:11 -07:00
Tomasz Miąsko
6cd5506897 Check for errors returned from posix_spawn*_init functions
The posix_spawnattr_init & posix_spawn_file_actions_init might fail,
but their return code is not checked.

Check for non-zero return code and destroy only succesfully initialized
objects.
2020-10-08 23:53:15 +02:00
Tomasz Miąsko
5faf25b95c Check for non-zero return value from posix_spawn functions
The cvt function compares the argument with -1 and when equal returns a new
io::Error constructed from errno. It is used together posix_spawn_* functions.
This is incorrect. Those functions do not set errno. Instead they return
non-zero error code directly.

Check for non-zero return code and use it to construct a new io::Error.
2020-10-08 23:53:15 +02:00
Jonas Schievink
7edb7e7ec0
Rollup merge of #77660 - nilslice:patch-1, r=jyn514
(docs): make mutex error comment consistent with codebase

Although exceptionally minor, I found this stands out from other error reporting language used in doc comments. With the existence of the `failure` crate, I suppose this could be slightly ambiguous. In any case, this change brings the particular comment into a consistent state with other mentions of returning errors.
2020-10-08 23:23:10 +02:00
bors
6b8d7911a1 Auto merge of #77346 - Caduser2020:master, r=Mark-Simulacrum
`#[deny(unsafe_op_in_unsafe_fn)]` in sys/sgx

This is part of #73904.

Enclose unsafe operations in unsafe blocks in `libstd/sys/sgx`.
2020-10-08 17:36:25 +00:00
Caduser2020
1fb0a1d501 #[deny(unsafe_op_in_unsafe_fn)] in sys/sgx
Run `./x.py` fmt

Add reference link

Fix reference link

Apply review suggestions.
2020-10-08 10:09:18 -05:00
Mark Rousskov
d8c035abbf Bump to 1.48 bootstrap compiler 2020-10-07 19:51:36 -04:00
Steve Manuel
56b51a9751
(docs): make mutex error comment consistent with codebase 2020-10-07 11:48:26 -06:00
bors
c9ced8523b Auto merge of #77626 - tamird:parse-scope-id, r=dtolnay
Parse SocketAddrV6::scope_id

r? `@dtolnay`
2020-10-07 03:11:06 +00:00
Tamir Duberstein
49ade22bd9
Parse SocketAddrV6::scope_id 2020-10-06 22:13:15 +00:00
Tamir Duberstein
a093957f43
Avoid unused return 2020-10-06 22:12:16 +00:00
bors
98edd1fbf8 Auto merge of #77386 - joshtriplett:static-glibc, r=petrochenkov
Support static linking with glibc and target-feature=+crt-static

With this change, it's possible to build on a linux-gnu target and pass
RUSTFLAGS='-C target-feature=+crt-static' or the equivalent via a
`.cargo/config.toml` file, and get a statically linked executable.

Update to libc 0.2.78, which adds support for static linking with glibc.

Add `crt_static_respected` to the `linux_base` target spec.

Update `android_base` and `linux_musl_base` accordingly. Avoid enabling
crt_static_respected on Android platforms, since that hasn't been
tested.

Closes https://github.com/rust-lang/rust/issues/65447.
2020-10-06 21:11:04 +00:00
Yuki Okushi
eac25fefaf
Rollup merge of #77528 - tamird:avoid-cast-net-parser, r=dtolnay
Avoid unchecked casts in net parser

Once this and #77426 are in, I'll send another PR adding scope id parsing.

r? @dtolnay
2020-10-06 16:26:02 +09:00
Yuki Okushi
59476e9e57
Rollup merge of #76388 - poliorcetics:system-time-document-panic, r=KodrAus
Add a note about the panic behavior of math operations on time objects

Fixes #71226.
2020-10-06 16:25:53 +09:00
Josh Triplett
16ebf750cf Update libc to 0.2.79
This also fixes issues with inconsistent `unsafe` on functions.
2020-10-04 22:12:07 -07:00
Dylan DPC
f1afed541e
Rollup merge of #77426 - tamird:sockaddr-scope-id, r=dtolnay
Include scope id in SocketAddrV6::Display

r? @tmandry

I couldn't find any unit tests for these functions.

cc @ghanan94 @brunowonka
2020-10-05 02:29:35 +02:00
Tamir Duberstein
f78a7ade61
Inline "eof" methods 2020-10-04 17:07:30 +00:00
Tamir Duberstein
9601724b11
Avoid unchecked casts in net parser 2020-10-04 16:57:54 +00:00
Jonas Schievink
4ae7710e1d
Rollup merge of #77072 - sharnoff:hash-docs, r=LukasKalbertodt
Minor `hash_map` doc adjustments + item attribute orderings

This PR is really a couple visual changes glued together:
1. Some of the doc comments for items in `std::collections::hash_map` referenced the names of types without escaping their formatting (e.g. using "VacantEntry" instead of "`VacantEntry`") - the ones I could find were changed to the latter
2. The vast majority of pre-item attributes seem to place doc comments as the first attribute (instead of things like `#[feature(...)]`), so the few that had the other order were changed.
3. Also ordering related: the general trend seems to be that `#[feature]` attributes follow `#[inline]`, so I swapped the two lines in places where that ordering was reversed. This is primarily a change based on stylistic continuity and aesthetics - I'm not sure how important that actually is / should be.

I figured this would be pretty uncontroversial, but some of these might have been intentional for reasons I don't know about - if so, I'd be happy to remove the relevant changes. Of these, the final set of changes is probably the most unnecessary, so it also might be better to leave those out (in favor of reducing code churn).
2020-10-04 15:45:33 +02:00
Tamir Duberstein
4585c22818
Include scope id in SocketAddrV6::Display 2020-10-04 12:18:12 +00:00
bors
32cbc65e6b Auto merge of #77380 - fusion-engineering-forks:unbox-the-mutex, r=dtolnay
Unbox mutexes and condvars on some platforms

Both mutexes and condition variables contained a Box containing the actual os-specific object. This was done because moving these objects may cause undefined behaviour on some platforms.

However, this is not needed on Windows[1], Wasm[2], cloudabi[2], and 'unsupported'[3], were the box was only needlessly making them less efficient.

This change gets rid of the box on those platforms.

On those platforms, `Condvar` can no longer verify it is only used with one `Mutex`, as mutexes no longer have a stable address. This was addressed and considered acceptable in #76932.

[1]\: https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-initializesrwlock
[2]\: These are just a single atomic integer together with futex wait/wake calls/instructions.
[3]\: The `unsupported` platform doesn't support multiple threads at all.
2020-10-04 06:48:17 +00:00
Jonas Schievink
01ca8299d4
Rollup merge of #77264 - fusion-engineering-forks:skip-local-stdio, r=dtolnay
Only use LOCAL_{STDOUT,STDERR} when set_{print/panic} is used.

The thread local `LOCAL_STDOUT` and `LOCAL_STDERR` are only used by the `test` crate to capture output from tests when running them in the same process in differen threads. However, every program will check these variables on every print, even outside of testing.

This involves allocating a thread local key, and registering a thread local destructor. This can be somewhat expensive.

This change keeps a global flag (`LOCAL_STREAMS`) which will be set to `true` when either of these local streams is used. (So, effectively only in test and benchmark runs.) When this flag is off, these thread locals are not even looked at and therefore will not be initialized on the first output on every thread, which also means no thread local destructors will be registered.

---

Together with https://github.com/rust-lang/rust/pull/77154, this should make output a little bit more efficient.
2020-10-03 00:31:14 +02:00