Skip to main content

src/vpn_sup.erl

%%%-------------------------------------------------------------------
%% @doc Top-level supervisor for vpn.
%%%-------------------------------------------------------------------
-module(vpn_sup).

-behaviour(supervisor).

-export([start_link/0]).
-export([init/1]).

-define(SERVER, ?MODULE).

start_link() ->
    supervisor:start_link({local, ?SERVER}, ?MODULE, []).

init([]) ->
    SupFlags = #{
        strategy => one_for_one,
        intensity => 1,
        period => 5
    },
    ChildSpecs = [
        #{id => vpn_peer_sup,
          start => {vpn_peer_sup, start_link, []},
          restart => permanent,
          shutdown => infinity,
          type => supervisor,
          modules => [vpn_peer_sup]},
        #{id => vpn_http,
          start => {vpn_http, start_link, []},
          restart => permanent,
          shutdown => 5000,
          type => worker,
          modules => [vpn_http]}
    ],
    {ok, {SupFlags, ChildSpecs}}.