commit: 967afa064bb0dc85c054495b795a57a13cdf3b3c
parent aa0a5ffb4849880b5adbcc9188de01ef778381e3
Author: href <href+git-pleroma@random.sh>
Date: Fri, 21 Aug 2020 17:02:57 +0000
Fix truncated images
Diffstat:
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/lib/pleroma/helpers/media_helper.ex b/lib/pleroma/helpers/media_helper.ex
@@ -19,14 +19,24 @@ defmodule Pleroma.Helpers.MediaHelper do
"""
pid = Port.open({:spawn, cmd}, [:use_stdio, :in, :stream, :exit_status, :binary])
+ loop_recv(pid)
+ end
+
+ defp loop_recv(pid) do
+ loop_recv(pid, <<>>)
+ end
+ defp loop_recv(pid, acc) do
receive do
{^pid, {:data, data}} ->
- send(pid, {self(), :close})
- {:ok, data}
+ loop_recv(pid, acc <> data)
- {^pid, {:exit_status, status}} when status > 0 ->
+ {^pid, {:exit_status, 0}} ->
+ {:ok, acc}
+
+ {^pid, {:exit_status, status}} ->
{:error, status}
end
end
+
end