p2pchat/lib/p2p_chat/transport/tuntap.ex

33 lines
554 B
Elixir

defmodule P2pChat.Transport.TunTap do
use GenServer
defstruct [:tun_fd]
@impl true
def init(args) do
{:ok, io_device} = setup_tap_device()
{:ok, {}}
end
@impl true
def terminate(_reason, state) do
end
def setup_tap_device(name \\ "tunP2P") do
{:ok, io_device} = :file.open(~c"/dev/net/tun", [:read, :write, :raw])
:ok = :file.close(io_device)
:ok
end
def teardown_tap_device(io_device) do
end
#
# Client API
#
def start_link(args) do
GenServer.start_link(__MODULE__, args)
end
end