From 6ce4db4dfa1a5a137a83e4f7f56340a763d23fee Mon Sep 17 00:00:00 2001 From: kballou Date: Mon, 31 Oct 2016 00:11:43 -0600 Subject: Add better error handling to echo read_line --- lib/octochat/servers/echo.ex | 13 +++++++++---- mix.exs | 2 +- 2 files changed, 10 insertions(+), 5 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 diff --git a/mix.exs b/mix.exs index ff25c44..b504c69 100644 --- a/mix.exs +++ b/mix.exs @@ -5,7 +5,7 @@ defmodule Octochat.Mixfile do [app: :octochat, description: "Demo Application for How Swapping Code", package: package(), - version: "0.2.0", + version: "0.2.1", elixir: "~> 1.3", build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, -- cgit v1.2.1