summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-19mman add MAP_CONCEAL mmap flag for openbsdDavid Carlier
2021-09-19Merge #1522bors[bot]
1522: mman mod adding MAP_ALIGNED_SUPER flag for freebsd. r=asomers a=devnexen Co-authored-by: David Carlier <devnexen@gmail.com>
2021-09-19Merge pull request #1529 from asomers/clippy-9-2021Alan Somers
Clippy cleanup
2021-09-19Clippy cleanupAlan Somers
And this time, start running Clippy in CI
2021-09-19mman mod adding MAP_ALIGNED_SUPER flag for freebsd.David Carlier
2021-09-18Merge pull request #1527 from asomers/libc-0.2.102Alan Somers
Set libc version to 0.2.102
2021-09-18Set libc version to 0.2.102Alan Somers
2021-09-19Merge #1496bors[bot]
1496: Rework UnixAddr to fix soundness issues r=asomers a=coolreader18 Fixes #1494 I went with making `sun_path` always nul-terminated since that just seems to make things easier, since (at least according to linux man pages) `sockaddr_un`s returned by the kernel will always be nul-terminated. Co-authored-by: Noa <33094578+coolreader18@users.noreply.github.com>
2021-09-18Merge #1525bors[bot]
1525: mman: add MAP_EXCL flag for freebsd. r=asomers a=devnexen Co-authored-by: David Carlier <devnexen@gmail.com>
2021-09-18mman: add MAP_EXCL flag for freebsd.David Carlier
2021-09-17Merge #1526bors[bot]
1526: Update the FreeBSD CI image r=asomers a=asomers FreeBSD 11.4 will be EoL on 30-Sept Co-authored-by: Alan Somers <asomers@gmail.com>
2021-09-17Update the FreeBSD CI imageAlan Somers
FreeBSD 11.4 will be EoL on 30-Sept
2021-09-13Merge #1524bors[bot]
1524: Add docs for most sockopts r=asomers a=asomers Co-authored-by: Alan Somers <asomers@gmail.com>
2021-09-12Add docs for all sockopts that are documented by their respective OSesAlan Somers
2021-09-12Add the ability to set doc strings in sockopts' definitionsAlan Somers
2021-09-12Switch the argument order of sockopt_impl!Alan Somers
This macro is not exported outside of the crate, so there's no danger.
2021-09-12Merge #1520 #1523bors[bot]
1520: mman module netbsd additions. r=asomers a=devnexen 1523: mman: add MAP_STACK to openbsd which is needed … r=asomers a=devnexen …to created stack mappings Co-authored-by: David Carlier <devnexen@gmail.com>
2021-09-12mman module netbsd additions.David Carlier
2021-09-12mman: add MAP_STACK to openbsd which is needed to created stack mappingsDavid Carlier
2021-09-12Merge #1521bors[bot]
1521: Prevent buffer over-read in getgroups() r=asomers a=blyxxyz An edge case I found in another wrapper around `getgroups()`. `@jhscheer` pointed me to this implementation which had the same issue. Co-authored-by: Jan Verbeek <jan.verbeek@posteo.nl>
2021-09-12Prevent buffer over-read in getgroups()Jan Verbeek
2021-09-12Merge #1509 #1515bors[bot]
1509: Allow Android to use timerfd r=asomers a=rtzoeller This is a continuation of #1336 which also enables the timerfd tests. ``` running 3 tests test sys::test_timerfd::test_timerfd_unset ... ok test sys::test_timerfd::test_timerfd_oneshot ... ok test sys::test_timerfd::test_timerfd_interval ... ok ``` 1515: Add IP_TTL/IPV6_UNICAST_HOPS SockOpts r=asomers a=cemeyer Test: `cargo test --test test test_ttl_opts` Co-authored-by: Ryan Zoeller <rtzoeller@rtzoeller.com> Co-authored-by: Conrad Meyer <cem@FreeBSD.org>
2021-09-12Merge #1518bors[bot]
1518: Make Errno::result() inline r=asomers a=linkmauve This makes the success case a single `cmpl $-1, %eax` followed with a non-taken conditional jump, instead of the current `callq` which is always taken. I have not benchmarked the difference, but it is an obvious improvement. Co-authored-by: linkmauve <linkmauve@linkmauve.fr>
2021-09-08Make Errno::result() inlinelinkmauve
This makes the success case a single `cmpl $-1, %eax` followed with a non-taken conditional jump, instead of the current `callq` which is always taken. I have not benchmarked the difference, but it is an obvious improvement.
2021-09-07Add IP_TTL/IPV6_UNICAST_HOPS SockOptsConrad Meyer
Test: `cargo test --test test test_ttl_opts`
2021-09-08Merge #1292bors[bot]
1292: Support `TCP_MAXSEG` TCP Maximum Segment Size socket options r=asomers a=eaon Found myself in a situation where I needed to advertise a specific MSS. Thought this crate is the appropriate place for this feature (especially since the `TCP_MAXSEG` const was exposed through it before), so here goes. Actual change is of course tiny but it comes with a test. Happy to make changes, especially since I need to do more research on which platforms this works. Co-authored-by: eaon <eaon@posteo.net> Co-authored-by: Alan Somers <asomers@gmail.com>
2021-09-07Merge branch 'master' into socket-mssAlan Somers
2021-09-07Merge #1516bors[bot]
1516: Implement AsRawFd for PollFd r=asomers a=cemeyer Implement the trait on PollFd, providing an `as_raw_fd()` accessor to get the RawFd associated with the PollFd. Subsumes #1147, #1286. Closes #1146. Test: `cargo test --test test test_pollfd_fd` Co-authored-by: Conrad Meyer <cem@FreeBSD.org>
2021-09-07Merge #1317bors[bot]
1317: test_af_alg_aead waits indefinitely r=asomers a=ritzk Starting with linux kernel 4.9, the crypto interface changed slightly such that the authentication tag memory is only needed in the output buffer for encryption and in the input buffer for decryption. Thus, we have fewer bytes to read than the buffer size. Do not block on read. alternatively, we can adjust the decrypted buffer size based on kernel version ( ">= 4.9") to not include auth_size . ``` if kernel_version >= "4.9": let mut decrypted = vec![0u8; payload_len + (assoc_size as usize) ]; ``` before ``` test sys::test_socket::test_af_alg_aead ... test sys::test_socket::test_af_alg_aead has been running for over 60 seconds ``` after ``` test sys::test_socket::test_af_alg_aead ... ok ``` Co-authored-by: Ritesh Khadgaray <khadgaray@gmail.com>
2021-09-07Implement AsRawFd for PollFdConrad Meyer
Implement the trait on PollFd, providing an `as_raw_fd()` accessor to get the RawFd associated with the PollFd. Subsumes #1147, #1286. Closes #1146. Test: `cargo test --test test test_pollfd_fd`
2021-09-07Merge #1514bors[bot]
1514: Add support for IP_RECVERR r=asomers a=cemeyer This pull request adds support for setting the `IP_RECVERR` (and corresponding `IPV6_RECVERR`) sockopt, and then decoding the resulting control messages from `recvmsg()`. It is a Linux-specific API. This PR extends #1161 by: * Making the address associated with a `IpvXRecvErr` control message optional (`recvmsg` documentation claims it is not provided for some kinds of error), per `@WGH-.` * Adding basic tests for both IPv4 and IPv6 (blat a UDP packet at a hopefully-unoccupied port on localhost and observe ICMP port unreachable). * Adding a Changelog entry. I added some trivial doc comments on the `ControlMessageOwned` variants, but I'm not sure exactly what documentation you had in mind earlier on #1161. Co-authored-by: Conrad Meyer <cem@FreeBSD.org>
2021-09-06Add support for IP_RECVERR and IPV6_RECVERRConrad Meyer
Setting these options enables receiving errors, such as ICMP errors from the network, via `recvmsg()` with `MSG_ERRQUEUE`. Adds new `Ipv{4,6}RecvErr` variants to `ControlMessageOwned`. These control messages are produced when `Ipv4RecvErr` or `Ipv6RecvErr` options are enabled on a raw or datagram socket. New tests for the functionality can be run with `cargo test --test test test_recverr`. This commit builds on an earlier draft of the functionality authored by Matthew McPherrin <git@mcpherrin.ca>.
2021-09-04Merge branch 'master' into socket-msseaon
2021-09-04Support for `TCP_MAXSEG` TCP MSS socket optioneaon
2021-09-04Merge #1513bors[bot]
1513: Check Dragonfly BSD and OpenBSD in CI r=asomers a=asomers Build, but don't test, for these operating systems. Thanks to `@rtzoeller` for the tip. Also, fix the OpenBSD build. Co-authored-by: Alan Somers <asomers@gmail.com>
2021-09-04Check Dragonfly BSD and OpenBSD in CIAlan Somers
Build, but don't test, for these operating systems. Thanks to @rtzoeller for the tip. Also, fix the OpenBSD build.
2021-09-04Merge #1512bors[bot]
1512: DRY in the CI config r=asomers a=asomers * Define the build and test scripts once instead of repeating them * Don't use cross with OSX. We no longer need it. Co-authored-by: Alan Somers <asomers@gmail.com>
2021-09-04DRY in the CI configAlan Somers
* Define the build and test scripts once instead of repeating them * Don't use cross with OSX. We no longer need it.
2021-09-04Merge #1511bors[bot]
1511: Document more things r=asomers a=asomers Also, test rustdoc in CI, and demote missing_docs from a deny to a warning (but still deny it in CI). Co-authored-by: Alan Somers <asomers@gmail.com>
2021-09-04Fix some broken internal doc links in the socket codeAlan Somers
2021-09-04Enable pwritev and preadv for more operating systems.Alan Somers
2021-09-04Remove SigevNotify on OpenBSD and RedoxAlan Somers
Because nothing uses it on those OSes.
2021-09-04Document more thingsAlan Somers
Also, test rustdoc in CI, and demote missing_docs from a deny to a warning (but still deny it in CI).
2021-08-31Allow Android to use timerfdRyan Zoeller
Co-authored-by: zachoverflow <zach@zachjohnson.net>
2021-08-29Rework UnixAddr to fix soundness issuesNoa
2021-08-28Merge #1507 #1508bors[bot]
1507: Forbid dead code again r=asomers a=asomers The old problems with bitflags no longer apply 1508: More rust docs r=asomers a=asomers Switch from allow(missing_docs) to deny(missing_docs), which should gradually help us moving forward. Also, add a few missing docs, such as for sched and aio. Co-authored-by: Alan Somers <asomers@gmail.com>
2021-08-28More rust docsAlan Somers
Switch from allow(missing_docs) to deny(missing_docs), which should gradually help us moving forward. Also, add a few missing docs, such as for sched and aio.
2021-08-28Merge #1506bors[bot]
1506: Test Linux aarch64 on real aarch64 hardware. r=asomers a=asomers Co-authored-by: Alan Somers <asomers@gmail.com>
2021-08-27Ignore vsock tests on Linux aarch64Alan Somers
Apparently AWS Graviton containers don't support it. socket() retunrs EAFNOSUPPORT in that environment. Also, be more selective about skipping tests under QEMU Instead of skipping them on architectures where we happen to use QEMU, only skip them when QEMU is actually being used.
2021-08-27Test Linux aarch64 on real aarch64 hardware.Alan Somers