From f5ab36b7e546dbd593ba6109f56c8799f31ba3cf Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 25 Oct 2025 17:23:13 -0500 Subject: [PATCH] Fix APRS-IS connection by converting host to charlist The host from Application.get_env returns a binary string, but :gen_tcp.connect expects a charlist. This was causing ArgumentError on connection attempts. Convert host to charlist if it's a binary before passing to :gen_tcp.connect. --- lib/aprsme/aprs_is_connection.ex | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/aprsme/aprs_is_connection.ex b/lib/aprsme/aprs_is_connection.ex index cf1067b..34e0fd1 100644 --- a/lib/aprsme/aprs_is_connection.ex +++ b/lib/aprsme/aprs_is_connection.ex @@ -163,6 +163,9 @@ defmodule Aprsme.AprsIsConnection do passcode = Application.get_env(:aprsme, :aprs_is_password, "00000") filter = Application.get_env(:aprsme, :aprs_is_default_filter, "") + # Convert host to charlist if it's a binary string + host = if is_binary(host), do: String.to_charlist(host), else: host + # Add timeout to prevent indefinite hanging opts = [:binary, active: true, packet: :line, keepalive: true, send_timeout: 5000] # 10 seconds