From 3af086d168975a4122cee80c955da03516f55571 Mon Sep 17 00:00:00 2001 From: kballou Date: Fri, 24 Nov 2017 10:03:09 -0700 Subject: Add better error handling in echo server --- lib/octonetcat/servers/echo.ex | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'lib') 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 -- cgit v1.2.1