Floof: export 'official' function for message emitting

This commit is contained in:
Alain Zscheile 2022-11-24 11:03:26 +01:00
parent 49508feb9d
commit 77142702b3

View file

@ -37,6 +37,13 @@ defmodule Floof do
serve(socket, %{})
end
def emit_message(xf) do
{:XferBlob, _, _, _, _, _, xfinner} = xf
{:ok, {:XferInner, id, _, attrs, _, _}} = :FloofProtocol.decode(:XferInner, xfinner)
send Floof.Distributor, {:xfer, {id, xf, attrs}}
id
end
defp serve(client, backlog) do
receive do
{:tcp, _, message} ->
@ -83,9 +90,7 @@ defmodule Floof do
Map.delete(backlog, id)
end
{:xfer, xf} ->
{:XferBlob, _, _, _, _, _, xfinner} = xf
{:ok, {:XferInner, id, _, attrs, _, _}} = :FloofProtocol.decode(:XferInner, xfinner)
send Floof.Distributor, {:xfer, {id, xf, attrs}}
id = emit_message(xf)
# notify the remote end that we successfully consumed the message
send_summary(client, :drop, id)
backlog