diff options
author | Linus Nordberg <linus@nordu.net> | 2017-03-15 17:17:58 +0100 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2017-03-15 17:17:58 +0100 |
commit | 598d6ae6d00644c7f6e318cf5a4928ee5a8eb9ca (patch) | |
tree | 7653518afa13e7ccc1a3925603d36d85570cb88c /statusserver/src/statusserver_sup.erl | |
parent | 7e41c7c7630c4a96567029e6b4d7688a7df6ccee (diff) | |
parent | 8bb572816040a8ecda50be9687cd1ddc76436f65 (diff) |
Merge branch 'map-statusserver'
Diffstat (limited to 'statusserver/src/statusserver_sup.erl')
-rw-r--r-- | statusserver/src/statusserver_sup.erl | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/statusserver/src/statusserver_sup.erl b/statusserver/src/statusserver_sup.erl new file mode 100644 index 0000000..5b0811a --- /dev/null +++ b/statusserver/src/statusserver_sup.erl @@ -0,0 +1,42 @@ +%%% Copyright (c) 2017, NORDUnet A/S. +%%% See LICENSE for licensing information. + +-module(statusserver_sup). +-behaviour(supervisor). + +-export([start_link/1, init/1]). + +start_link(_Args) -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +gen_http_config(Config, SSLOptions, SSLFlag) -> + {ChildName, IpAddress, Port, Module} = Config, + {ok, IPv4Address} = inet:parse_ipv4strict_address(IpAddress), + WebConfig = [{ip, IPv4Address}, + {port, Port}, + {ssl, SSLFlag}, + {acceptor_pool_size, + application:get_env(catlfish, http_server_pool_size, 16)}, + {ssl_opts, SSLOptions} + ], + {ChildName, + {catlfish_web, start, [WebConfig, Module, ChildName]}, + permanent, 5000, worker, dynamic}. + + +init([]) -> + SSLOptions = + [{certfile, application:get_env(plop, https_certfile, none)}, + {keyfile, application:get_env(plop, https_keyfile, none)}, + {cacertfile, application:get_env(plop, https_cacertfile, none)}], + Servers = + lists:map(fun (Config) -> + gen_http_config(Config, SSLOptions, true) + end, application:get_env(plop, https_servers, [])) ++ + lists:map(fun (Config) -> + gen_http_config(Config, SSLOptions, false) + end, application:get_env(plop, http_servers, [])), + lager:debug("Starting servers ~p", [Servers]), + {ok, + {{one_for_one, 3, 10}, + Servers}}. |