net: allow pipe::OpenOptions::read_write on Android (#7426)

This commit is contained in:
Marshall Pierce
2025-06-27 09:39:55 +02:00
committed by GitHub
parent 3636fd018a
commit 6b705b3053
2 changed files with 7 additions and 7 deletions
+5 -5
View File
@@ -120,7 +120,7 @@ pub fn pipe() -> io::Result<(Sender, Receiver)> {
/// ```
#[derive(Clone, Debug)]
pub struct OpenOptions {
#[cfg(target_os = "linux")]
#[cfg(any(target_os = "linux", target_os = "android"))]
read_write: bool,
unchecked: bool,
}
@@ -131,7 +131,7 @@ impl OpenOptions {
/// All options are initially set to `false`.
pub fn new() -> OpenOptions {
OpenOptions {
#[cfg(target_os = "linux")]
#[cfg(any(target_os = "linux", target_os = "android"))]
read_write: false,
unchecked: false,
}
@@ -168,8 +168,8 @@ impl OpenOptions {
/// .read_write(true)
/// .open_receiver("path/to/a/fifo");
/// ```
#[cfg(target_os = "linux")]
#[cfg_attr(docsrs, doc(cfg(target_os = "linux")))]
#[cfg(any(target_os = "linux", target_os = "android"))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "android"))))]
pub fn read_write(&mut self, value: bool) -> &mut Self {
self.read_write = value;
self
@@ -264,7 +264,7 @@ impl OpenOptions {
.write(pipe_end == PipeEnd::Sender)
.custom_flags(libc::O_NONBLOCK);
#[cfg(target_os = "linux")]
#[cfg(any(target_os = "linux", target_os = "android"))]
if self.read_write {
options.read(true).write(true);
}
+2 -2
View File
@@ -68,7 +68,7 @@ async fn fifo_simple_send() -> io::Result<()> {
}
#[tokio::test]
#[cfg(target_os = "linux")]
#[cfg(any(target_os = "linux", target_os = "android"))]
#[cfg_attr(miri, ignore)] // No `mkfifo` in miri.
async fn fifo_simple_send_sender_first() -> io::Result<()> {
const DATA: &[u8] = b"this is some data to write to the fifo";
@@ -134,7 +134,7 @@ async fn fifo_multiple_writes() -> io::Result<()> {
/// Checks behavior of a resilient reader (Receiver in O_RDWR access mode)
/// with writers sequentially opening and closing a FIFO.
#[tokio::test]
#[cfg(target_os = "linux")]
#[cfg(any(target_os = "linux", target_os = "android"))]
#[cfg_attr(miri, ignore)] // No `socket` in miri.
async fn fifo_resilient_reader() -> io::Result<()> {
const DATA: &[u8] = b"this is some data to write to the fifo";