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