aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/src/base/diameter_peer_fsm.erl
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2017-03-03 14:25:11 +0100
committerAnders Svensson <[email protected]>2017-03-07 18:35:09 +0100
commitfb14eac92b8bc08293443196ed5ab3896d8fb7a1 (patch)
treea83eaa06910d6e55f6290111dd7ec46c74d482fc /lib/diameter/src/base/diameter_peer_fsm.erl
parenta4da06a56f778b7ac44c33a4fea38d1f60cac28d (diff)
downloadotp-fb14eac92b8bc08293443196ed5ab3896d8fb7a1.tar.gz
otp-fb14eac92b8bc08293443196ed5ab3896d8fb7a1.tar.bz2
otp-fb14eac92b8bc08293443196ed5ab3896d8fb7a1.zip
Avoid sending large terms between nodes unnecessarily
When relaying outgoing requests through transport on a remote node, terms that were stripped when sending to the transport process weren't stripped when spawning a process on the remote node. Also, don't save the request to the process dictionary in a process that just relays an answer.
Diffstat (limited to 'lib/diameter/src/base/diameter_peer_fsm.erl')
-rw-r--r--lib/diameter/src/base/diameter_peer_fsm.erl5
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/diameter/src/base/diameter_peer_fsm.erl b/lib/diameter/src/base/diameter_peer_fsm.erl
index 0c24ebeb19..0df36efa16 100644
--- a/lib/diameter/src/base/diameter_peer_fsm.erl
+++ b/lib/diameter/src/base/diameter_peer_fsm.erl
@@ -454,7 +454,7 @@ transition({timeout, _}, _) ->
%% Outgoing message.
transition({send, Msg}, S) ->
outgoing(Msg, S);
-transition({send, Route, Msg}, S) ->
+transition({send, Msg, Route}, S) ->
put_route(Route),
outgoing(Msg, S);
@@ -504,9 +504,6 @@ transition({state, Pid}, #state{state = S, transport = TPid}) ->
%% Map identifiers in an outgoing request to be able to lookup the
%% handler process when the answer is received.
-put_route(false) ->
- ok;
-
put_route({Pid, Ref, Seqs}) ->
MRef = monitor(process, Pid),
put(Pid, Seqs),