diff options
| author | href <href+git-pleroma@random.sh> | 2020-08-21 17:02:57 +0000 | 
|---|---|---|
| committer | href <href+git-pleroma@random.sh> | 2020-08-21 17:02:57 +0000 | 
| commit | 967afa064bb0dc85c054495b795a57a13cdf3b3c (patch) | |
| tree | f7b26f4281f3547f5967f9a812a8c14618468ddf /lib | |
| parent | aa0a5ffb4849880b5adbcc9188de01ef778381e3 (diff) | |
| download | pleroma-967afa064bb0dc85c054495b795a57a13cdf3b3c.tar.gz pleroma-967afa064bb0dc85c054495b795a57a13cdf3b3c.zip | |
Fix truncated images
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/helpers/media_helper.ex | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/lib/pleroma/helpers/media_helper.ex b/lib/pleroma/helpers/media_helper.ex index e11038052..f87be8874 100644 --- 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 | 
