From 1bd51cca2a208267050467d39a53435b257cda3b Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Thu, 8 Dec 2022 13:15:04 -0800 Subject: [PATCH] Store multistream handler selected in pdict --- src/libp2p_multistream_client.erl | 4 +++- src/libp2p_multistream_server.erl | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libp2p_multistream_client.erl b/src/libp2p_multistream_client.erl index 9c306889..de25a67a 100644 --- a/src/libp2p_multistream_client.erl +++ b/src/libp2p_multistream_client.erl @@ -23,7 +23,9 @@ negotiate_handler(Handlers0, Path, Connection) -> {error, Error} -> lager:notice("Failed to negotiate handler for ~p: ~p", [Path, Error]), {error, Error}; - {_, Handler} -> {ok, Handler} + {_, Handler = {_Path, {M, _F}}} -> + put('__multistream_client_handler', M), + {ok, Handler} end end. diff --git a/src/libp2p_multistream_server.erl b/src/libp2p_multistream_server.erl index d5ef4cb2..5622325a 100644 --- a/src/libp2p_multistream_server.erl +++ b/src/libp2p_multistream_server.erl @@ -57,6 +57,7 @@ handle_msg(Msg, State) -> {noreply, NewState} -> loop(NewState); {exec, M, F, A} -> + put('__multistream_server_handler', M), erlang:cancel_timer(State#state.timeout), try erlang:apply(M, F, A) of Result -> Result