diff options
author | Anders Svensson <[email protected]> | 2017-07-24 00:45:19 +0200 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2017-08-03 13:02:47 +0200 |
commit | cfb3eeaf354d99d0e62e6cf939b1320c4bdb0840 (patch) | |
tree | cc90ed29c0395a4dd49b2ee530b23ba1a2dbd9a4 /lib/diameter/examples/code | |
parent | 67d4e19831ede890c88e21a7c520010a4c4b9430 (diff) | |
download | otp-cfb3eeaf354d99d0e62e6cf939b1320c4bdb0840.tar.gz otp-cfb3eeaf354d99d0e62e6cf939b1320c4bdb0840.tar.bz2 otp-cfb3eeaf354d99d0e62e6cf939b1320c4bdb0840.zip |
Add simple message_cb to example server
Diffstat (limited to 'lib/diameter/examples/code')
-rw-r--r-- | lib/diameter/examples/code/node.erl | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/diameter/examples/code/node.erl b/lib/diameter/examples/code/node.erl index 246be4194b..fc5830f8e2 100644 --- a/lib/diameter/examples/code/node.erl +++ b/lib/diameter/examples/code/node.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2010-2015. All Rights Reserved. +%% Copyright Ericsson AB 2010-2016. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -30,6 +30,8 @@ connect/2, stop/1]). +-export([message/3]). + -type protocol() :: tcp | sctp. @@ -128,6 +130,8 @@ stop(Name) -> server_opts({T, Addr, Port}) -> [{transport_module, tmod(T)}, {transport_config, [{reuseaddr, true}, + {sender, true}, + {message_cb, [fun ?MODULE:message/3, 0]}, {ip, addr(Addr)}, {port, Port}]}]; @@ -173,3 +177,26 @@ addr(loopback) -> {127,0,0,1}; addr(A) -> A. + +%% --------------------------------------------------------------------------- + +%% message/3 +%% +%% Simple message callback that limits the number of concurrent +%% requests on the peer connection in question. + +%% Incoming request. +message(recv, <<_:32, 1:1, _/bits>> = Bin, N) -> + [Bin, N < 32, fun ?MODULE:message/3, N+1]; + +%% Outgoing request. +message(ack, <<_:32, 1:1, _/bits>>, _) -> + []; + +%% Incoming answer or request discarded. +message(ack, _, N) -> + [N =< 32, fun ?MODULE:message/3, N-1]; + +%% Outgoing message or incoming answer. +message(_, Bin, _) -> + [Bin]. |