otp
otp copied to clipboard
`ftp:recv_bin/2` sometimes returns `ok`
Describe the bug
As the title says, sometimes ftp:recv_bin/2
returns ok
for me instead of {ok, Content}
To Reproduce This is how I connect to the ftp server and send the commands. I'm using elixir, because I'm not used to programming in erlang, sorry for the inconvenience.
# In the module I use for managing FTP connections
def connect() do
config = Application.get_env(:my_app, __MODULE__)
host = config |> Keyword.get(:host) |> to_charlist()
user = config |> Keyword.get(:user) |> to_charlist()
password = config |> Keyword.get(:password) |> to_charlist()
port = config |> Keyword.get(:port)
with {:ok, pid} <- :ftp.open(host, port: port),
:ok <- :ftp.user(pid, user, password) do
{:ok, pid}
end
end
iex(1)> {:ok, conn} = Ftp.connect()
{:ok, #PID<0.532.0>}
iex(2)> :ftp.recv_bin conn, 'webcams/sorted/kro/cam5/latest.webp'
{:ok, <<...>>}
iex(3)> :ftp.recv_bin conn, 'webcams/sorted/kro/cam5/latest.webp'
:ok
Expected behavior
ftp:recv_bin/2
should always return a status tuple like {ok, Content}
or {:error, Reason}
as documented
Affected versions Erlang/OTP 26.2.3 with Elixir 1.16.2
Prompt from starting IEx
Erlang/OTP 26 [erts-14.2.3] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1]
Interactive Elixir (1.16.2) - press Ctrl+C to exit (type h() ENTER for help)