From 7d38b593e8b1624e1ce2cda8fa57a42cdf2d3068 Mon Sep 17 00:00:00 2001
From: Anders Svensson
+An invalid option will cause
eval([{M,F,A} | T]) ->
apply(M, F, T ++ A);
+eval([[F|A] | T]) ->
+ eval([F | T ++ A]);
eval([F|A]) ->
apply(F, A);
eval(F) ->
@@ -461,14 +467,14 @@ or any peer if the request does not contain
a Destination-Realm AVP.
-{host, any|UTF8String()}
+{host, any|DiameterIdentity()}
-
Matches only those peers whose Origin-Host has the
specified value, or all peers if the atom any .
-{realm, any|UTF8String()
+{realm, any|DiameterIdentity()
-
Matches only those peers whose Origin-Realm has the
@@ -478,8 +484,9 @@ value, or all peers if the atom any .
{eval, evaluable()}
-
-Matches only those peers for which the specified evaluable() evaluates
-to true on the peer's diameter_caps record.
+Matches only those peers for which the specified evaluable() returns
+true on the connection's diameter_caps record.
+Any other return value or exception is equivalent to false .
{neg, peer_filter()}
@@ -503,6 +510,21 @@ specified list.
+
+Note that the host and realm filters examine the
+outgoing request as passed to call/4 ,
+assuming that this is a record- or list-valued message() as documented
+in diameter_app(3) , and that
+the message contains at most one of each AVP.
+If this is not the case then the {host|realm, DiameterIdentity()}
+filters must be used to achieve the desired result.
+Note also that an empty host/realm (which should not be typical)
+is equivalent to an unspecified one for the purposes of filtering.
+
+
+An invalid filter is equivalent to {any, []} , a filter
+that matches no peer.
+
@@ -787,7 +809,7 @@ transports.
SvcName = service_name()
App = application_alias()
-Request = diameter_app:message()
+Request = diameter_app:message() | term()
Answer = term()
Options = [call_opt()]
@@ -819,9 +841,8 @@ If there are no suitable peers, or if
pick_peer/4
rejects them by returning 'false', then {error, no_connection}
is returned.
-If pick_peer/4
-selects a candidate peer then a request process is spawned for the
-outgoing request, in which there is a
+Otherwise pick_peer/4
+is followed by a
prepare_request/3
callback, the message is encoded and sent.
--
cgit v1.2.3