Skip to content

Fix the interprocess crate

error[E0432]: unresolved import `libc::SCM_RIGHTS`
  --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/imports.rs:52:16
   |
52 | pub(super) use libc::SCM_RIGHTS;
   |                ^^^^^^^^^^^^^^^^ no `SCM_RIGHTS` in the root

error[E0432]: unresolved import `libc::SCM_CREDENTIALS`
  --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/imports.rs:56:23
   |
56 | pub(super) use libc::{SCM_CREDENTIALS, SO_PASSCRED};
   |                       ^^^^^^^^^^^^^^^ no `SCM_CREDENTIALS` in the root

error[E0432]: unresolved import `libc::msghdr`
  --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/macros/import_tables.rs:34:25
   |
34 |           pub use $path::{$src_name as $dst_name};
   |                           ^^^^^^^^^^^^^^^^^^^^^^ no `msghdr` in the root
   |
  ::: /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/imports.rs:21:1
   |
21 | / import_type_or_make_dummy!(types {libc}::(
22 | |     sockaddr_un,
23 | |     msghdr,
24 | |     cmsghdr,
25 | | ), cfg(uds_supported));
   | |______________________- in this macro invocation
   |
   = note: this error originates in the macro `import_type_or_make_dummy` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0432]: unresolved import `libc::cmsghdr`
  --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/macros/import_tables.rs:34:25
   |
34 |           pub use $path::{$src_name as $dst_name};
   |                           ^^^^^^^^^^^^^^^^^^^^^^ no `cmsghdr` in the root
   |
  ::: /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/imports.rs:21:1
   |
21 | / import_type_or_make_dummy!(types {libc}::(
22 | |     sockaddr_un,
23 | |     msghdr,
24 | |     cmsghdr,
25 | | ), cfg(uds_supported));
   | |______________________- in this macro invocation
   |
   = note: this error originates in the macro `import_type_or_make_dummy` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find function `recvmsg` in crate `libc`
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/udsocket/socket.rs:208:32
    |
208 | ...   let result = libc::recvmsg(self.as_raw_fd(), &mut hdr as ...
    |                          ^^^^^^^ not found in `libc`

error[E0425]: cannot find function `recvmsg` in crate `libc`
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/udsocket/socket.rs:299:32
    |
299 | ...   let result = libc::recvmsg(self.as_raw_fd(), &mut hdr as ...
    |                          ^^^^^^^ not found in `libc`

error[E0425]: cannot find function `sendmsg` in crate `libc`
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/udsocket/socket.rs:390:32
    |
390 | ...   let result = libc::sendmsg(self.as_raw_fd(), &hdr as *con...
    |                          ^^^^^^^ not found in `libc`

error[E0425]: cannot find function `recvmsg` in crate `libc`
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/udsocket/stream.rs:111:32
    |
111 | ...   let result = libc::recvmsg(self.as_raw_fd(), &mut hdr as ...
    |                          ^^^^^^^ not found in `libc`

error[E0425]: cannot find function `sendmsg` in crate `libc`
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/udsocket/stream.rs:172:32
    |
172 | ...   let result = libc::sendmsg(self.as_raw_fd(), &hdr as *con...
    |                          ^^^^^^^ not found in `libc`

error[E0308]: mismatched types
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/signal.rs:322:32
    |
322 |         new_handler.sa_flags = flags;
    |         --------------------   ^^^^^ expected `u64`, found `i32`
    |         |
    |         expected due to the type of this binding

error[E0308]: mismatched types
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/signal.rs:571:9
    |
543 |     fn flags_as_i32(self) -> i32 {
    |                              --- expected `i32` because of return type
...
571 |         flags
    |         ^^^^^ expected `i32`, found `u64`
    |
help: you can convert a `u64` to an `i32` and panic if the converted value doesn't fit
    |
571 |         flags.try_into().unwrap()
    |              ++++++++++++++++++++

error[E0308]: mismatched types
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/signal.rs:634:34
    |
634 |         if handler_and_flags.1 & SA_RESETHAND != 0 {
    |                                  ^^^^^^^^^^^^ expected `i32`, found `u64`

error[E0277]: no implementation for `i32 & u64`
   --> /home/ribbon/.cargo/registry/src/index.crates.io-6f17d22bba15001f/interprocess-1.2.1/src/os/unix/signal.rs:634:32
    |
634 |         if handler_and_flags.1 & SA_RESETHAND != 0 {
    |                                ^ no implementation for `i32 & u64`
    |
    = help: the trait `BitAnd<u64>` is not implemented for `i32`
    = help: the following other types implement trait `BitAnd<Rhs>`:
              <&'a i32 as BitAnd<i32>>
              <&i32 as BitAnd<&i32>>
              <i32 as BitAnd<&i32>>
              <i32 as BitAnd>

Some errors have detailed explanations: E0277, E0308, E0425, E0432.
For more information about an error, try `rustc --explain E0277`.