projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'release/2.0.0' into 'stable'
[akkoma]
/
lib
/
pleroma
/
web
/
streamer
/
state.ex
diff --git
a/lib/pleroma/web/streamer/state.ex
b/lib/pleroma/web/streamer/state.ex
index 7b5199068f2a1c82a5b40f333fae56dc6f181eef..999550b88a24e4965edfc1a9f3c79cbb4798bf76 100644
(file)
--- a/
lib/pleroma/web/streamer/state.ex
+++ b/
lib/pleroma/web/streamer/state.ex
@@
-1,19
+1,25
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Web.Streamer.State do
use GenServer
require Logger
alias Pleroma.Web.Streamer.StreamerSocket
defmodule Pleroma.Web.Streamer.State do
use GenServer
require Logger
alias Pleroma.Web.Streamer.StreamerSocket
+ @env Mix.env()
+
def start_link(_) do
GenServer.start_link(__MODULE__, %{sockets: %{}}, name: __MODULE__)
end
def add_socket(topic, socket) do
def start_link(_) do
GenServer.start_link(__MODULE__, %{sockets: %{}}, name: __MODULE__)
end
def add_socket(topic, socket) do
- GenServer.call(__MODULE__, {:add,
socket, topic
})
+ GenServer.call(__MODULE__, {:add,
topic, socket
})
end
def remove_socket(topic, socket) do
end
def remove_socket(topic, socket) do
-
GenServer.call(__MODULE__, {:remove, socket, topic}
)
+
do_remove_socket(@env, topic, socket
)
end
def get_sockets do
end
def get_sockets do
@@
-29,7
+35,7
@@
defmodule Pleroma.Web.Streamer.State do
{:reply, state, state}
end
{:reply, state, state}
end
- def handle_call({:add,
socket, topic
}, _from, %{sockets: sockets} = state) do
+ def handle_call({:add,
topic, socket
}, _from, %{sockets: sockets} = state) do
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
@@
-44,7
+50,7
@@
defmodule Pleroma.Web.Streamer.State do
{:reply, state, state}
end
{:reply, state, state}
end
- def handle_call({:remove,
socket, topic
}, _from, %{sockets: sockets} = state) do
+ def handle_call({:remove,
topic, socket
}, _from, %{sockets: sockets} = state) do
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
@@
-57,6
+63,14
@@
defmodule Pleroma.Web.Streamer.State do
{:reply, state, state}
end
{:reply, state, state}
end
+ defp do_remove_socket(:test, _, _) do
+ :ok
+ end
+
+ defp do_remove_socket(_env, topic, socket) do
+ GenServer.call(__MODULE__, {:remove, topic, socket})
+ end
+
defp internal_topic(topic, socket)
when topic in ~w[user user:notification direct] do
"#{topic}:#{socket.assigns[:user].id}"
defp internal_topic(topic, socket)
when topic in ~w[user user:notification direct] do
"#{topic}:#{socket.assigns[:user].id}"