tun2proxy / rust-tun

TUN device creation and handling.
https://docs.rs/tun2/
30 stars 13 forks source link

Build failure on FreeBSD #80

Closed zonyitoo closed 2 weeks ago

zonyitoo commented 2 weeks ago
   Compiling tun2 v2.0.0
error[E0433]: failed to resolve: use of undeclared crate or module `sockaddr_union`
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:328:22
    |
328 |             let sa = sockaddr_union::from(req.ifr_ifru.ifru_addr);
    |                      ^^^^^^^^^^^^^^ use of undeclared crate or module `sockaddr_union`
    |
help: consider importing this union through its public re-export
    |
15  + use crate::platform::posix::sockaddr_union;
    |

error[E0433]: failed to resolve: use of undeclared crate or module `sockaddr_union`
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:355:22
    |
355 |             let sa = sockaddr_union::from(req.ifr_ifru.ifru_dstaddr);
    |                      ^^^^^^^^^^^^^^ use of undeclared crate or module `sockaddr_union`
    |
help: consider importing this union through its public re-export
    |
15  + use crate::platform::posix::sockaddr_union;
    |

error[E0433]: failed to resolve: use of undeclared crate or module `sockaddr_union`
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:382:22
    |
382 |             let sa = sockaddr_union::from(req.ifr_ifru.ifru_broadaddr);
    |                      ^^^^^^^^^^^^^^ use of undeclared crate or module `sockaddr_union`
    |
help: consider importing this union through its public re-export
    |
15  + use crate::platform::posix::sockaddr_union;
    |

error[E0433]: failed to resolve: use of undeclared crate or module `sockaddr_union`
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:398:22
    |
398 |             let sa = sockaddr_union::from(req.ifr_ifru.ifru_addr);
    |                      ^^^^^^^^^^^^^^ use of undeclared crate or module `sockaddr_union`
    |
help: consider importing this union through its public re-export
    |
15  + use crate::platform::posix::sockaddr_union;
    |

error[E0283]: type annotations needed
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:168:62
    |
168 |             req.addr = posix::sockaddr_union::from((addr, 0).into()).addr;
    |                        ---------------------                 ^^^^
    |                        |
    |                        type must be known at this point
    |
note: multiple `impl`s satisfying `sockaddr_union: From<_>` found
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/posix/sockaddr.rs:88:1
    |
88  | impl From<libc::sockaddr_storage> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
94  | impl From<libc::sockaddr_in6> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
100 | impl From<libc::sockaddr_in> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
106 | impl From<libc::sockaddr> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
112 | impl From<std::net::SocketAddr> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: try using a fully qualified path to specify the expected types
    |
168 |             req.addr = posix::sockaddr_union::from(<(Ipv4Addr, i32) as Into<T>>::into((addr, 0))).addr;
    |                                                    +++++++++++++++++++++++++++++++++++         ~

error[E0283]: type annotations needed
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:169:65
    |
169 |             req.dstaddr = posix::sockaddr_union::from((dest, 0).into()).addr;
    |                           ---------------------                 ^^^^
    |                           |
    |                           type must be known at this point
    |
note: multiple `impl`s satisfying `sockaddr_union: From<_>` found
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/posix/sockaddr.rs:88:1
    |
88  | impl From<libc::sockaddr_storage> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
94  | impl From<libc::sockaddr_in6> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
100 | impl From<libc::sockaddr_in> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
106 | impl From<libc::sockaddr> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
112 | impl From<std::net::SocketAddr> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: try using a fully qualified path to specify the expected types
    |
169 |             req.dstaddr = posix::sockaddr_union::from(<(Ipv4Addr, i32) as Into<T>>::into((dest, 0))).addr;
    |                                                       +++++++++++++++++++++++++++++++++++         ~

error[E0283]: type annotations needed
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/freebsd/device.rs:170:62
    |
170 |             req.mask = posix::sockaddr_union::from((mask, 0).into()).addr;
    |                        ---------------------                 ^^^^
    |                        |
    |                        type must be known at this point
    |
note: multiple `impl`s satisfying `sockaddr_union: From<_>` found
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tun2-2.0.0/src/platform/posix/sockaddr.rs:88:1
    |
88  | impl From<libc::sockaddr_storage> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
94  | impl From<libc::sockaddr_in6> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
100 | impl From<libc::sockaddr_in> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
106 | impl From<libc::sockaddr> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
112 | impl From<std::net::SocketAddr> for sockaddr_union {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: try using a fully qualified path to specify the expected types
    |
170 |             req.mask = posix::sockaddr_union::from(<(Ipv4Addr, i32) as Into<T>>::into((mask, 0))).addr;
    |                                                    +++++++++++++++++++++++++++++++++++         ~

Some errors have detailed explanations: E0283, E0433.
For more information about an error, try `rustc --explain E0283`.
error: could not compile `tun2` (lib) due to 7 previous errors
warning: build failed, waiting for other jobs to finish...
ssrlive commented 2 weeks ago

New version published.

zonyitoo commented 2 weeks ago

Fix confirmed.