File: nix-0.29.patch

package info (click to toggle)
rust-wayland-commons 0.29.5-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 288 kB
  • sloc: makefile: 4
file content (38 lines) | stat: -rw-r--r-- 1,089 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Index: wayland-commons/src/socket.rs
===================================================================
--- wayland-commons.orig/src/socket.rs
+++ wayland-commons/src/socket.rs
@@ -39,6 +39,24 @@ impl MyFrom<&BorrowedFd<'_>> for RawFd {
     }
 }
 
+use nix::sys::socket::CmsgIterator;
+trait ResultHack<'a> {
+    fn addresult(self) -> nix::Result<CmsgIterator<'a>>;
+}
+
+impl<'a> ResultHack<'a> for CmsgIterator<'a> {
+    fn addresult(self) -> nix::Result<CmsgIterator<'a>> {
+        return Ok(self);
+    }
+}
+
+impl<'a> ResultHack<'a> for nix::Result<CmsgIterator<'a>> {
+    fn addresult(self) -> nix::Result<CmsgIterator<'a>> {
+        return self;
+    }
+}
+
+
 impl Socket {
     /// Send a single message to the socket
     ///
@@ -85,7 +103,7 @@ impl Socket {
         )?;
 
         let mut fd_count = 0;
-        let received_fds = msg.cmsgs().flat_map(|cmsg| match cmsg {
+        let received_fds = ResultHack::addresult(msg.cmsgs())?.flat_map(|cmsg| match cmsg {
             socket::ControlMessageOwned::ScmRights(s) => s,
             _ => Vec::new(),
         });