fix SessionPushed handling

This commit is contained in:
Alain Zscheile 2022-11-27 16:56:29 +01:00
parent 3ac8b8e07c
commit 73ae3ebe6e
2 changed files with 6 additions and 2 deletions

View file

@ -98,6 +98,10 @@ defmodule Floof do
:ok = send_summary(client, :requestpull, Floof.SessionManager.peek(sesskey))
{backlog, sesskey}
{:SessionPushed, sesskey, dcdhash} ->
:ok = send_summary(client, :requestpull, [dcdhash])
{backlog, sesskey}
{:SessionDetached, old_sesskey} ->
sesskey2 =
if sesskey == old_sesskey do

View file

@ -76,11 +76,11 @@ defmodule Floof.SessionManager do
)
{:ok, all_keys} = all_session_keys(state)
added_dets_ents = for key <- MapSet.difference(all_keys, filter_keys), do: {key, subkey}
if not Enum.empty?(all_keys) do
if not Enum.empty?(added_dets_ents) do
# only store packets when we have any sessions
:ok = Floof.PacketSpool.store(subkey, value)
added_dets_ents = for key <- MapSet.difference(all_keys, filter_keys), do: {key, subkey}
:ok = :dets.insert(state.dets_file, added_dets_ents)
end