updating gun with bug fix
authorAlexander Strizhakov <alex.strizhakov@gmail.com>
Mon, 30 Mar 2020 09:47:12 +0000 (12:47 +0300)
committerAlexander Strizhakov <alex.strizhakov@gmail.com>
Mon, 30 Mar 2020 09:47:12 +0000 (12:47 +0300)
https://github.com/ninenines/gun/issues/222

lib/pleroma/pool/connections.ex
mix.exs
mix.lock

index 91102faf79840924e31abbf94882405f8f0aa296..4d4ba913c72fe4d9a2f1ca67de2f943716317e54 100644 (file)
@@ -167,29 +167,20 @@ defmodule Pleroma.Pool.Connections do
     c1.crf <= c2.crf and c1.last_reference <= c2.last_reference
   end
 
-  defp find_conn_from_gun_info(conns, pid) do
-    # TODO: temp fix for gun MatchError https://github.com/ninenines/gun/issues/222
-    # TODO: REMOVE LATER
-    try do
-      %{origin_host: host, origin_scheme: scheme, origin_port: port} = Gun.info(pid)
-
-      host =
-        case :inet.ntoa(host) do
-          {:error, :einval} -> host
-          ip -> ip
-        end
-
-      key = "#{scheme}:#{host}:#{port}"
-      find_conn(conns, pid, key)
-    rescue
-      MatcheError -> find_conn(conns, pid)
-    end
-  end
-
   @impl true
   def handle_info({:gun_up, conn_pid, _protocol}, state) do
+    %{origin_host: host, origin_scheme: scheme, origin_port: port} = Gun.info(conn_pid)
+
+    host =
+      case :inet.ntoa(host) do
+        {:error, :einval} -> host
+        ip -> ip
+      end
+
+    key = "#{scheme}:#{host}:#{port}"
+
     state =
-      with {key, conn} <- find_conn_from_gun_info(state.conns, conn_pid),
+      with {key, conn} <- find_conn(state.conns, conn_pid, key),
            {true, key} <- {Process.alive?(conn_pid), key} do
         put_in(state.conns[key], %{
           conn
diff --git a/mix.exs b/mix.exs
index 77d043d37d5ab5cc555384bb316f703b8ee759ad..87c025d89c3a6ff7cbd298fb9c7e3c3687a0fe6e 100644 (file)
--- a/mix.exs
+++ b/mix.exs
@@ -127,7 +127,7 @@ defmodule Pleroma.Mixfile do
       {:castore, "~> 0.1"},
       {:cowlib, "~> 2.8", override: true},
       {:gun,
-       github: "ninenines/gun", ref: "bd6425ab87428cf4c95f4d23e0a48fd065fbd714", override: true},
+       github: "ninenines/gun", ref: "e1a69b36b180a574c0ac314ced9613fdd52312cc", override: true},
       {:jason, "~> 1.0"},
       {:mogrify, "~> 0.6.1"},
       {:ex_aws, "~> 2.1"},
index b791dccc4c1aca95d6d46bdac18082a0da1595d1..6cca578d60e4eab45c672cda8e4fa50b179d7d70 100644 (file)
--- a/mix.lock
+++ b/mix.lock
@@ -47,7 +47,7 @@
   "gen_stage": {:hex, :gen_stage, "0.14.3", "d0c66f1c87faa301c1a85a809a3ee9097a4264b2edf7644bf5c123237ef732bf", [:mix], [], "hexpm"},
   "gen_state_machine": {:hex, :gen_state_machine, "2.0.5", "9ac15ec6e66acac994cc442dcc2c6f9796cf380ec4b08267223014be1c728a95", [:mix], [], "hexpm"},
   "gettext": {:hex, :gettext, "0.17.4", "f13088e1ec10ce01665cf25f5ff779e7df3f2dc71b37084976cf89d1aa124d5c", [:mix], [], "hexpm", "3c75b5ea8288e2ee7ea503ff9e30dfe4d07ad3c054576a6e60040e79a801e14d"},
-  "gun": {:git, "https://github.com/ninenines/gun.git", "bd6425ab87428cf4c95f4d23e0a48fd065fbd714", [ref: "bd6425ab87428cf4c95f4d23e0a48fd065fbd714"]},
+  "gun": {:git, "https://github.com/ninenines/gun.git", "e1a69b36b180a574c0ac314ced9613fdd52312cc", [ref: "e1a69b36b180a574c0ac314ced9613fdd52312cc"]},
   "hackney": {:hex, :hackney, "1.15.2", "07e33c794f8f8964ee86cebec1a8ed88db5070e52e904b8f12209773c1036085", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.5", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "e0100f8ef7d1124222c11ad362c857d3df7cb5f4204054f9f0f4a728666591fc"},
   "html_entities": {:hex, :html_entities, "0.5.1", "1c9715058b42c35a2ab65edc5b36d0ea66dd083767bef6e3edb57870ef556549", [:mix], [], "hexpm", "30efab070904eb897ff05cd52fa61c1025d7f8ef3a9ca250bc4e6513d16c32de"},
   "html_sanitize_ex": {:hex, :html_sanitize_ex, "1.3.0", "f005ad692b717691203f940c686208aa3d8ffd9dd4bb3699240096a51fa9564e", [:mix], [{:mochiweb, "~> 2.15", [hex: :mochiweb, repo: "hexpm", optional: false]}], "hexpm"},