summary refs log tree commit diff
path: root/msg_socket2/src/socket.rs
diff options
context:
space:
mode:
Diffstat (limited to 'msg_socket2/src/socket.rs')
-rw-r--r--msg_socket2/src/socket.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/msg_socket2/src/socket.rs b/msg_socket2/src/socket.rs
index 4e75e82..b836365 100644
--- a/msg_socket2/src/socket.rs
+++ b/msg_socket2/src/socket.rs
@@ -4,9 +4,7 @@ use std::marker::PhantomData;
 use std::os::unix::prelude::*;
 use sys_util::{net::UnixSeqpacket, ScmSocket};
 
-use crate::{
-    DeserializeWithFds, DeserializerWithFds, Error, SerializeWithFds, SerializerWithFdsImpl,
-};
+use crate::{DeserializeWithFds, DeserializerWithFds, Error, FdSerializerImpl, SerializeWithFds};
 
 #[derive(Debug)]
 pub struct Socket<Send, Recv> {
@@ -28,9 +26,10 @@ impl<Send: SerializeWithFds, Recv> Socket<Send, Recv> {
         let mut bytes: Vec<u8> = vec![];
         let mut fds: Vec<RawFd> = vec![];
 
-        let mut serializer = Serializer::new(&mut bytes, DefaultOptions::new());
-        let serializer_with_fds = SerializerWithFdsImpl::new(&mut fds, &mut serializer);
-        value.serialize(serializer_with_fds)?;
+        value.serialize(&mut Serializer::new(&mut bytes, DefaultOptions::new()))?;
+        value
+            .serialize_fds(&mut FdSerializerImpl { fds: &mut fds })
+            .unwrap();
 
         self.sock.send_with_fds(&[IoSlice::new(&bytes)], &fds)?;