diff options
author | kballou <kballou@devnulllabs.io> | 2017-11-24 10:03:09 -0700 |
---|---|---|
committer | kballou <kballou@devnulllabs.io> | 2017-11-24 10:03:09 -0700 |
commit | 3af086d168975a4122cee80c955da03516f55571 (patch) | |
tree | 0d8c2e22323c723a2a2e4ffd9221c32136b14c65 | |
parent | cc67e8e9c1de34bcb2f1f2b84d96aca253b2ae08 (diff) | |
download | octonetcat-0.2.1.tar.gz octonetcat-0.2.1.tar.xz |
Add better error handling in echo server0.2.1
-rw-r--r-- | lib/octonetcat/servers/echo.ex | 14 | ||||
-rw-r--r-- | mix.exs | 2 |
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 @@ -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(), |