Skip to content

Commit 0e467ed

Browse files
author
Shikha Mehta
authored
Added logic to check every IP in the retrieved list
1 parent 7ebe64e commit 0e467ed

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

lib/Worker.ex

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
11
defmodule BitcoinMining.Worker do
22

33
def process(parameter) do
4-
try do
5-
unless Node.alive?() do
6-
{:ok,iflist}=:inet.getif()
7-
[head | tail] = Enum.reverse(iflist)
4+
{:ok,iflist}=:inet.getif()
5+
make_distributed(Enum.reverse(iflist),length(iflist))
6+
7+
Node.connect(String.to_atom("server@" <> hd(parameter)))
8+
receive do: (_ -> :ok)
9+
end
10+
11+
def make_distributed([head | tail],l) do
12+
unless Node.alive?() do
13+
try do
814
{ip_tuple,_,_} = head
915
current_ip = to_string(:inet_parse.ntoa(ip_tuple))
1016
if current_ip === "127.0.0.1" do
11-
{ip_tuple,_,_} = hd(tail)
12-
current_ip = to_string(:inet_parse.ntoa(ip_tuple))
17+
if l != 1 do
18+
make_distributed(tail,l-1)
19+
end
20+
else
21+
server_node_name = String.to_atom("worker@" <> current_ip)
22+
Node.start(server_node_name)
23+
Node.set_cookie(server_node_name,:monster)
1324
end
14-
current_ip = "192.168.0.2"
15-
worker_node_name = String.to_atom("worker@" <> current_ip)
16-
Node.start(worker_node_name)
17-
Node.set_cookie(worker_node_name,:monster)
25+
rescue
26+
_ -> if l != 1, do: make_distributed(tail,l-1), else: IO.puts "Could not make current node distributed."
1827
end
19-
rescue
20-
_ -> IO.puts "An error occurred while making worker node distributed."
2128
end
22-
Node.connect(String.to_atom("server@" <> hd(parameter)))
23-
receive do: (_ -> :ok)
2429
end
2530

26-
end
31+
end

0 commit comments

Comments
 (0)