From 26629dc30a116204263ac4b515600649ba742ba0 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Wed, 26 Sep 2018 18:14:32 +0200 Subject: Web UI for multiple identities --- .../lib/shard_web/controllers/page_controller.ex | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'shardweb/lib/shard_web/controllers/page_controller.ex') diff --git a/shardweb/lib/shard_web/controllers/page_controller.ex b/shardweb/lib/shard_web/controllers/page_controller.ex index a590630..305e751 100644 --- a/shardweb/lib/shard_web/controllers/page_controller.ex +++ b/shardweb/lib/shard_web/controllers/page_controller.ex @@ -4,4 +4,24 @@ defmodule ShardWeb.PageController do def index(conn, _params) do render conn, "index.html" end + + def add_peer(conn, _params) do + try do + ip = conn.params["ip"] + port = conn.params["port"] + {:ok, ip_tuple} = case :inet.parse_address(to_charlist(ip)) do + {:ok, tup} -> {:ok, tup} + _ -> + case :inet.gethostbyname(to_charlist(ip)) do + {:ok, {:hostent, _, _, :inet, 4, [ip_tup | _]}} -> {:ok, ip_tup} + _ -> :error + end + end + {port_num, _} = Integer.parse port + Shard.Manager.add_peer(ip_tuple, port_num) + rescue + _ -> nil + end + redirect conn, to: page_path(conn, :index) + end end -- cgit v1.2.3