From afea06bc9304383faeea2f4cb02db40452953c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20L=C3=B8naas?= Date: Wed, 27 Dec 2023 15:24:46 +0100 Subject: [PATCH] Handle empty whois Fixes a crash when trying to whois a non-existing nick --- lib/exirc/client.ex | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/exirc/client.ex b/lib/exirc/client.ex index 2ae34a9..9a166cc 100644 --- a/lib/exirc/client.ex +++ b/lib/exirc/client.ex @@ -680,9 +680,15 @@ defmodule ExIRC.Client do end def handle_data(%ExIRC.Message{cmd: @rpl_endofwhois, args: [_sender, nick, _message]}, state) do - buffer = struct(ExIRC.Whois, state.whois_buffers[nick]) - send_event {:whois, buffer}, state - {:noreply, %ClientState{state|whois_buffers: Map.delete(state.whois_buffers, nick)}} + case state.whois_buffers[nick] do + nil -> + send_event {:whois, %ExIRC.Whois{}}, state + {:noreply, state} + _ -> + buffer = struct(ExIRC.Whois, state.whois_buffers[nick]) + send_event {:whois, buffer}, state + {:noreply, %ClientState{state|whois_buffers: Map.delete(state.whois_buffers, nick)}} + end end ## WHO