meh / rust-tun

TUN device creation and handling.
343 stars 136 forks source link

Commit 4bba4665aa14429567194e20d47a16c577b3e2d0 is not published at crates.io #1

Closed vi closed 7 years ago

vi commented 7 years ago

So device enabling doesn't work with the version 0.1.

There should be 0.1.1 with the device enabling.

meh commented 7 years ago

I know, I wasn't done yet with other stuff, that's why I haven't published yet, sadly I haven't had time to work on it in the past few weeks.

Was going to add documentation and I was considering separating the interface handling stuff into a separate crate since all those bindings and wrappers for ioctls could be used on any other interface.

I can publish a 0.1.1 tomorrow if you need it, but stuff is probably going to change.

vi commented 7 years ago

Also ability to split Read and Write parts and send one to another thread would be nice, to allow mio-less full duplex mode.

meh commented 7 years ago

Yeah that's also in the works, I just have to figure out the best way to go about it, since I also want to create a tap crate with an interface similar to this one, which means common traits between the two.

Just need to figure out how to split out the interface related stuff and the file descriptor related stuff so there's no pain adding support for more platforms.

vi commented 7 years ago

Now I use a hack to get multi-threadable tun: let dev_copy = unsafe { ::std::fs::File::from_raw_fd(dev.as_raw_fd()) };

meh commented 7 years ago

Alright, there's tun::platform::Device::split() on Linux, and other configuration stuff, one change I needed and can't figure out how to make better is that IFF_NO_PI is not set now, but you can't change that flag after creating the device, so gotta figure out something to make that flag optional.