diff options
author | kballou <kballou@devnulllabs.io> | 2016-10-31 00:11:43 -0600 |
---|---|---|
committer | kballou <kballou@devnulllabs.io> | 2016-10-31 00:11:43 -0600 |
commit | 6ce4db4dfa1a5a137a83e4f7f56340a763d23fee (patch) | |
tree | 27619a81e0ef6301bb1595ba6592b530a1113f1f /lib | |
parent | 62b532d0f0236bf91451c7e4bacacc34799caaa6 (diff) | |
download | octochat-6ce4db4dfa1a5a137a83e4f7f56340a763d23fee.tar.gz octochat-6ce4db4dfa1a5a137a83e4f7f56340a763d23fee.tar.xz |
Add better error handling to echo read_linev0.2.1
Diffstat (limited to 'lib')
-rw-r--r-- | lib/octochat/servers/echo.ex | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/octochat/servers/echo.ex b/lib/octochat/servers/echo.ex index fe25079..da04876 100644 --- a/lib/octochat/servers/echo.ex +++ b/lib/octochat/servers/echo.ex @@ -2,18 +2,23 @@ defmodule Octochat.Echo do @moduledoc """ Octochat Echo server """ + require Logger def serve(socket) do socket - |> read_line!() + |> read_line() |> write_line!(socket) serve(socket) end - defp read_line!(socket) do - {:ok, line} = :gen_tcp.recv(socket, 0) - line + defp 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 defp write_line!(line, socket) do |