diff options
author | Anders Svensson <[email protected]> | 2011-12-16 16:51:19 +0100 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2011-12-16 18:27:20 +0100 |
commit | 20c2dcc70525f110c6f71c4b968d7d67682b7c35 (patch) | |
tree | 056e705098c3b4dd852055e38a3c480f512c320e /lib/diameter/examples/server_cb.erl | |
parent | fba96f493b940f032bc238492a9375ad6397dbe4 (diff) | |
download | otp-20c2dcc70525f110c6f71c4b968d7d67682b7c35.tar.gz otp-20c2dcc70525f110c6f71c4b968d7d67682b7c35.tar.bz2 otp-20c2dcc70525f110c6f71c4b968d7d67682b7c35.zip |
Move example code to examples/code
Diffstat (limited to 'lib/diameter/examples/server_cb.erl')
-rw-r--r-- | lib/diameter/examples/server_cb.erl | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/lib/diameter/examples/server_cb.erl b/lib/diameter/examples/server_cb.erl deleted file mode 100644 index 43b8e24b5c..0000000000 --- a/lib/diameter/examples/server_cb.erl +++ /dev/null @@ -1,115 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2010-2011. All Rights Reserved. -%% -%% The contents of this file are subject to the Erlang Public License, -%% Version 1.1, (the "License"); you may not use this file except in -%% compliance with the License. You should have received a copy of the -%% Erlang Public License along with this software. If not, it can be -%% retrieved online at http://www.erlang.org/. -%% -%% Software distributed under the License is distributed on an "AS IS" -%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%% the License for the specific language governing rights and limitations -%% under the License. -%% -%% %CopyrightEnd% -%% - -%% -%% The diameter application callback module configured by server.erl. -%% - --module(server_cb). - --include_lib("diameter/include/diameter.hrl"). --include_lib("diameter/src/app/diameter_gen_base_rfc3588.hrl"). - -%% diameter callbacks --export([peer_up/3, - peer_down/3, - pick_peer/4, - prepare_request/3, - prepare_retransmit/3, - handle_answer/4, - handle_error/4, - handle_request/3]). - --define(UNEXPECTED, erlang:error({unexpected, ?MODULE, ?LINE})). - -peer_up(_SvcName, {PeerRef, _}, State) -> - io:format("up: ~p~n", [PeerRef]), - State. - -peer_down(_SvcName, {PeerRef, _}, State) -> - io:format("down: ~p~n", [PeerRef]), - State. - -pick_peer(_, _, _SvcName, _State) -> - ?UNEXPECTED. - -prepare_request(_, _SvcName, _Peer) -> - ?UNEXPECTED. - -prepare_retransmit(_Packet, _SvcName, _Peer) -> - ?UNEXPECTED. - -handle_answer(_Packet, _Request, _SvcName, _Peer) -> - ?UNEXPECTED. - -handle_error(_Reason, _Request, _SvcName, _Peer) -> - ?UNEXPECTED. - -%% A request whose decode was successful ... -handle_request(#diameter_packet{msg = Req, errors = []}, _SvcName, {_, Caps}) - when is_record(Req, diameter_base_RAR) -> - #diameter_caps{origin_host = {OH,_}, - origin_realm = {OR,_}} - = Caps, - #diameter_base_RAR{'Session-Id' = Id, - 'Re-Auth-Request-Type' = RT} - = Req, - - {reply, answer(RT, Id, OH, OR)}; - -%% ... or one that wasn't. 3xxx errors are answered by diameter itself -%% but these are 5xxx errors for which we must contruct a reply. -%% diameter will set Result-Code and Failed-AVP's. -handle_request(#diameter_packet{msg = Req} = Pkt, _SvcName, {_, Caps}) - when is_record(Req, diameter_base_RAR) -> - #diameter_caps{origin_host = {OH,_}, - origin_realm = {OR,_}} - = Caps, - #diameter_base_RAR{'Session-Id' = Id} - = Req, - - Ans = #diameter_base_RAA{'Origin-Host' = OH, - 'Origin-Realm' = OR, - 'Session-Id' = Id}, - - {reply, Ans}; - -%% Should really reply to other base messages that we don't support -%% but simply discard them instead. -handle_request(#diameter_packet{}, _SvcName, {_,_}) -> - discard. - -%% --------------------------------------------------------------------------- - -%% Answer using the record or list encoding depending on -%% Re-Auth-Request-Type. This is just as an example. You would -%% typically just choose one, and this has nothing to do with the how -%% client.erl sends. - -answer(0, Id, OH, OR) -> - #diameter_base_RAA{'Result-Code' = 2001, %% DIAMETER_SUCCESS - 'Origin-Host' = OH, - 'Origin-Realm' = OR, - 'Session-Id' = Id}; - -answer(_, Id, OH, OR) -> - ['RAA', {'Result-Code', 5012}, %% DIAMETER_UNABLE_TO_COMPLY - {'Origin-Host', OH}, - {'Origin-Realm', OR}, - {'Session-Id', Id}]. |