An open API service indexing awesome lists of open source software.

https://github.com/gin66/mac_utun

Create macOS utun device from rust
https://github.com/gin66/mac_utun

Last synced: about 1 year ago
JSON representation

Create macOS utun device from rust

Awesome Lists containing this project

README

          

# mac_utun

Create utun device on macos.

## Usage

In Cargo.toml include:

```
mac_utun = "0.6"
```

Import the get_utun function:

``` Rust
use mac_utun::get_utun;
```

Just need to call this function. It will search for the first available utun-device
starting from 0. As you may know, root permission is necessary to create a utun-device.

``` Rust
pub fn get_utun() -> Result<(UdpSocket,String)>
```

In case of error, the last OS-Error will be returned.
In case of success, an UDP-socket and the interface name (e.g. "utun0") will be returned.

UDP-socket is a nice choice, because rust will perform the necessary clean up itself.

## Test

There is only one test case defined:

It checks the list of network interfaces before, during and after utun is opened.
Expected behaviour: The returned utun is only in the list _during_ utun is opened.

## Contributions

Thanks for pull request from [Feng Yingcai](https://github.com/fengyc)