diff --git a/lib/speedtest.ex b/lib/speedtest.ex index 4f086a0..2c54427 100644 --- a/lib/speedtest.ex +++ b/lib/speedtest.ex @@ -248,45 +248,52 @@ defmodule Speedtest do selected_server = choose_best_server(closest_servers) - {_, _, ping} = selected_server.ping + {status, _, response} = selected_server.ping - ping = to_string(ping) + reply = + case status do + :ok -> + ping = to_string(response) - elapsed_time = ping <> " ms" + elapsed_time = ping <> " ms" - Logger.info( - "Hosted by " <> - selected_server.sponsor <> - " (" <> - selected_server.name <> - ") " <> - "[" <> - to_string(Float.round(selected_server.distance / 1000)) <> " km]: " <> elapsed_time - ) + Logger.info( + "Hosted by " <> + selected_server.sponsor <> + " (" <> + selected_server.name <> + ") " <> + "[" <> + to_string(Float.round(selected_server.distance / 1000)) <> " km]: " <> elapsed_time + ) - speedtest = %{result | selected_server: selected_server} + speedtest = %{result | selected_server: selected_server} - {_, download_reply} = download(speedtest) + {_, download_reply} = download(speedtest) - {_, upload_reply} = upload(speedtest) + {_, upload_reply} = upload(speedtest) - replys = {upload_reply, download_reply} + replys = {upload_reply, download_reply} - {_, reply} = Result.create(speedtest, replys) + {_, reply} = Result.create(speedtest, replys) - speed = to_string(reply.result.download) <> " Mbit/s" - Logger.info("Download: " <> speed) + speed = to_string(reply.result.download) <> " Mbit/s" + Logger.info("Download: " <> speed) - speed = to_string(reply.result.upload) <> " Mbit/s" - Logger.info("Upload: " <> speed) + speed = to_string(reply.result.upload) <> " Mbit/s" + Logger.info("Upload: " <> speed) - config = reply.config + config = reply.config - client = reply.result.client + client = reply.result.client - config = %{config | client: client} + config = %{config | client: client} - reply = %{reply | config: config} + %{reply | config: config} + + _ -> + response + end {:ok, reply} end