aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkballou <kballou@devnulllabs.io>2017-11-24 10:03:09 -0700
committerkballou <kballou@devnulllabs.io>2017-11-24 10:03:09 -0700
commit3af086d168975a4122cee80c955da03516f55571 (patch)
tree0d8c2e22323c723a2a2e4ffd9221c32136b14c65
parentcc67e8e9c1de34bcb2f1f2b84d96aca253b2ae08 (diff)
downloadoctonetcat-3af086d168975a4122cee80c955da03516f55571.tar.gz
octonetcat-3af086d168975a4122cee80c955da03516f55571.tar.xz
Add better error handling in echo server0.2.1
-rw-r--r--lib/octonetcat/servers/echo.ex14
-rw-r--r--mix.exs2
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/octonetcat/servers/echo.ex b/lib/octonetcat/servers/echo.ex
index 0d7487f..e416d9d 100644
--- a/lib/octonetcat/servers/echo.ex
+++ b/lib/octonetcat/servers/echo.ex
@@ -6,17 +6,23 @@ defmodule Octonetcat.Echo do
dies on failure or disconnect.
"""
+ require Logger
+
def serve(socket) do
socket
- |> read_line!()
+ |> read_line()
|> write_line!(socket)
serve(socket)
end
- def read_line!(socket) do
- {:ok, line} = :gen_tcp.recv(socket, 0)
- line
+ def read_line(socket) do
+ case :gen_tcp.recv(socket, 0) do
+ {:ok, line} -> line
+ {:error, reason} ->
+ Logger.error(reason)
+ Process.exit(self(), :normal)
+ end
end
def write_line!(line, socket) do
diff --git a/mix.exs b/mix.exs
index 16818d9..e96830b 100644
--- a/mix.exs
+++ b/mix.exs
@@ -6,7 +6,7 @@ defmodule Octonetcat.Mixfile do
app: :octonetcat,
description: "Demo Echo Server Application",
package: package(),
- version: "0.2.0",
+ version: "0.2.1",
elixir: "~> 1.5",
start_permanent: Mix.env == :prod,
docs: docs(),