From 322885a2c501384bb5c83d391d0c3fa91d82d5da Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Sun, 25 Sep 2011 16:49:29 +0200 Subject: Fix sending of messages of arbitrary form diameter:call/4 can be passed anything, as long as the subsequent prepare_request callback returns a term that can be encoded. --- lib/diameter/src/app/diameter_service.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/diameter/src/app') diff --git a/lib/diameter/src/app/diameter_service.erl b/lib/diameter/src/app/diameter_service.erl index 63b0649dc4..a7fe733340 100644 --- a/lib/diameter/src/app/diameter_service.erl +++ b/lib/diameter/src/app/diameter_service.erl @@ -2561,7 +2561,7 @@ str(T) -> %% get_avp_value/3 %% -%% Support outgoing messages in one of three forms: +%% Find an AVP in a message of one of three forms: %% %% - a message record (as generated from a .dia spec) or %% - a list of an atom message name followed by 2-tuple, avp name/value pairs. @@ -2593,8 +2593,9 @@ get_avp_value(_, Name, [_MsgName | Avps]) -> undefined end; -get_avp_value(Dict, Name, Rec) - when is_tuple(Rec) -> +%% Message is typically a record but not necessarily: diameter:call/4 +%% can be passed an arbitrary term. +get_avp_value(Dict, Name, Rec) -> try Dict:'#get-'(Name, Rec) catch -- cgit v1.2.3