Skip to content

Commit

Permalink
unix: Non-mutable bufs in send_vectored_with_ancillary_to
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaslihotzki committed Dec 6, 2020
1 parent e792288 commit 8920d15
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 27 deletions.
10 changes: 5 additions & 5 deletions library/std/src/sys/unix/ext/net/ancillary.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use super::{sockaddr_un, SocketAddr};
use crate::convert::TryFrom;
use crate::io::{self, IoSliceMut};
use crate::io::{self, IoSlice, IoSliceMut};
use crate::marker::PhantomData;
use crate::mem::{size_of, zeroed};
use crate::os::unix::io::RawFd;
Expand Down Expand Up @@ -68,7 +68,7 @@ pub(super) fn recv_vectored_with_ancillary_from(
pub(super) fn send_vectored_with_ancillary_to(
socket: &Socket,
path: Option<&Path>,
bufs: &mut [IoSliceMut<'_>],
bufs: &[IoSlice<'_>],
ancillary: &mut SocketAncillary<'_>,
) -> io::Result<usize> {
unsafe {
Expand All @@ -78,7 +78,7 @@ pub(super) fn send_vectored_with_ancillary_to(
let mut msg: libc::msghdr = zeroed();
msg.msg_name = &mut msg_name as *mut _ as *mut _;
msg.msg_namelen = msg_namelen;
msg.msg_iov = bufs.as_mut_ptr().cast();
msg.msg_iov = bufs as *const _ as *mut _;
msg.msg_control = ancillary.buffer.as_mut_ptr().cast();
cfg_if::cfg_if! {
if #[cfg(any(target_os = "android", all(target_os = "linux", target_env = "gnu")))] {
Expand Down Expand Up @@ -563,7 +563,7 @@ impl<'a> SocketAncillary<'a> {
/// #![feature(unix_socket_ancillary_data)]
/// use std::os::unix::net::{UnixStream, SocketAncillary};
/// use std::os::unix::io::AsRawFd;
/// use std::io::IoSliceMut;
/// use std::io::IoSlice;
///
/// fn main() -> std::io::Result<()> {
/// let sock = UnixStream::connect("/tmp/sock")?;
Expand All @@ -573,7 +573,7 @@ impl<'a> SocketAncillary<'a> {
/// ancillary.add_fds(&[sock.as_raw_fd()][..]);
///
/// let mut buf = [1; 8];
/// let mut bufs = &mut [IoSliceMut::new(&mut buf[..])][..];
/// let mut bufs = &[IoSlice::new(&mut buf[..])][..];
/// sock.send_vectored_with_ancillary(bufs, &mut ancillary)?;
/// Ok(())
/// }
Expand Down
26 changes: 13 additions & 13 deletions library/std/src/sys/unix/ext/net/datagram.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use super::{sockaddr_un, SocketAddr};
target_os = "netbsd",
target_os = "openbsd",
))]
use crate::io::IoSliceMut;
use crate::io::{IoSlice, IoSliceMut};
use crate::net::Shutdown;
use crate::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd};
use crate::path::Path;
Expand Down Expand Up @@ -506,17 +506,17 @@ impl UnixDatagram {
/// ```no_run
/// #![feature(unix_socket_ancillary_data)]
/// use std::os::unix::net::{UnixDatagram, SocketAncillary};
/// use std::io::IoSliceMut;
/// use std::io::IoSlice;
///
/// fn main() -> std::io::Result<()> {
/// let sock = UnixDatagram::unbound()?;
/// let mut buf1 = [1; 8];
/// let mut buf2 = [2; 16];
/// let mut buf3 = [3; 8];
/// let mut bufs = &mut [
/// IoSliceMut::new(&mut buf1),
/// IoSliceMut::new(&mut buf2),
/// IoSliceMut::new(&mut buf3),
/// let mut bufs = &[
/// IoSlice::new(&mut buf1),
/// IoSlice::new(&mut buf2),
/// IoSlice::new(&mut buf3),
/// ][..];
/// let fds = [0, 1, 2];
/// let mut ancillary_buffer = [0; 128];
Expand All @@ -538,7 +538,7 @@ impl UnixDatagram {
#[unstable(feature = "unix_socket_ancillary_data", issue = "76915")]
pub fn send_vectored_with_ancillary_to<P: AsRef<Path>>(
&self,
bufs: &mut [IoSliceMut<'_>],
bufs: &[IoSlice<'_>],
ancillary: &mut SocketAncillary<'_>,
path: P,
) -> io::Result<usize> {
Expand All @@ -554,17 +554,17 @@ impl UnixDatagram {
/// ```no_run
/// #![feature(unix_socket_ancillary_data)]
/// use std::os::unix::net::{UnixDatagram, SocketAncillary};
/// use std::io::IoSliceMut;
/// use std::io::IoSlice;
///
/// fn main() -> std::io::Result<()> {
/// let sock = UnixDatagram::unbound()?;
/// let mut buf1 = [1; 8];
/// let mut buf2 = [2; 16];
/// let mut buf3 = [3; 8];
/// let mut bufs = &mut [
/// IoSliceMut::new(&mut buf1),
/// IoSliceMut::new(&mut buf2),
/// IoSliceMut::new(&mut buf3),
/// let mut bufs = &[
/// IoSlice::new(&mut buf1),
/// IoSlice::new(&mut buf2),
/// IoSlice::new(&mut buf3),
/// ][..];
/// let fds = [0, 1, 2];
/// let mut ancillary_buffer = [0; 128];
Expand All @@ -586,7 +586,7 @@ impl UnixDatagram {
#[unstable(feature = "unix_socket_ancillary_data", issue = "76915")]
pub fn send_vectored_with_ancillary(
&self,
bufs: &mut [IoSliceMut<'_>],
bufs: &[IoSlice<'_>],
ancillary: &mut SocketAncillary<'_>,
) -> io::Result<usize> {
send_vectored_with_ancillary_to(&self.0, None, bufs, ancillary)
Expand Down
12 changes: 6 additions & 6 deletions library/std/src/sys/unix/ext/net/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -530,17 +530,17 @@ impl UnixStream {
/// ```no_run
/// #![feature(unix_socket_ancillary_data)]
/// use std::os::unix::net::{UnixStream, SocketAncillary};
/// use std::io::IoSliceMut;
/// use std::io::IoSlice;
///
/// fn main() -> std::io::Result<()> {
/// let socket = UnixStream::connect("/tmp/sock")?;
/// let mut buf1 = [1; 8];
/// let mut buf2 = [2; 16];
/// let mut buf3 = [3; 8];
/// let mut bufs = &mut [
/// IoSliceMut::new(&mut buf1),
/// IoSliceMut::new(&mut buf2),
/// IoSliceMut::new(&mut buf3),
/// let mut bufs = &[
/// IoSlice::new(&mut buf1),
/// IoSlice::new(&mut buf2),
/// IoSlice::new(&mut buf3),
/// ][..];
/// let fds = [0, 1, 2];
/// let mut ancillary_buffer = [0; 128];
Expand All @@ -562,7 +562,7 @@ impl UnixStream {
#[unstable(feature = "unix_socket_ancillary_data", issue = "76915")]
pub fn send_vectored_with_ancillary(
&self,
bufs: &mut [IoSliceMut<'_>],
bufs: &[IoSlice<'_>],
ancillary: &mut SocketAncillary<'_>,
) -> io::Result<usize> {
send_vectored_with_ancillary_to(&self.0, None, bufs, ancillary)
Expand Down
6 changes: 3 additions & 3 deletions library/std/src/sys/unix/ext/net/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ fn test_send_vectored_fds_unix_stream() {
let (s1, s2) = or_panic!(UnixStream::pair());

let mut buf1 = [1; 8];
let mut bufs_send = &mut [IoSliceMut::new(&mut buf1[..])][..];
let mut bufs_send = &[IoSlice::new(&mut buf1[..])][..];

let mut ancillary1_buffer = [0; 128];
let mut ancillary1 = SocketAncillary::new(&mut ancillary1_buffer[..]);
Expand Down Expand Up @@ -543,7 +543,7 @@ fn test_send_vectored_with_ancillary_to_unix_datagram() {
or_panic!(bsock2.set_passcred(true));

let mut buf1 = [1; 8];
let mut bufs_send = &mut [IoSliceMut::new(&mut buf1[..])][..];
let mut bufs_send = &[IoSlice::new(&mut buf1[..])][..];

let mut ancillary1_buffer = [0; 128];
let mut ancillary1 = SocketAncillary::new(&mut ancillary1_buffer[..]);
Expand Down Expand Up @@ -604,7 +604,7 @@ fn test_send_vectored_with_ancillary_unix_datagram() {
let bsock2 = or_panic!(UnixDatagram::bind(&path2));

let mut buf1 = [1; 8];
let mut bufs_send = &mut [IoSliceMut::new(&mut buf1[..])][..];
let mut bufs_send = &[IoSlice::new(&mut buf1[..])][..];

let mut ancillary1_buffer = [0; 128];
let mut ancillary1 = SocketAncillary::new(&mut ancillary1_buffer[..]);
Expand Down

0 comments on commit 8920d15

Please sign in to comment.