diff options
author | Anders Svensson <[email protected]> | 2017-04-30 10:08:54 +0200 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2017-06-13 13:50:07 +0200 |
commit | c59325f2a24e6ca3217c660fa328a00cf440e58d (patch) | |
tree | 98e88bf608e5f3a68622bb61bf585899a6b6a83a | |
parent | 84dbccad048374e3eb1ec7372fd177eba022d108 (diff) | |
download | otp-c59325f2a24e6ca3217c660fa328a00cf440e58d.tar.gz otp-c59325f2a24e6ca3217c660fa328a00cf440e58d.tar.bz2 otp-c59325f2a24e6ca3217c660fa328a00cf440e58d.zip |
Restore diameter_codec:decode/2, update diameter_codec(3)
The documentation has been out of date since the string_decode option
was added in commit 1590920c. The optionless decode/2 was removed in the
commit that removed the use of the process dictionary in decode.
-rw-r--r-- | lib/diameter/doc/src/diameter_codec.xml | 19 | ||||
-rw-r--r-- | lib/diameter/src/base/diameter_codec.erl | 24 |
2 files changed, 30 insertions, 13 deletions
diff --git a/lib/diameter/doc/src/diameter_codec.xml b/lib/diameter/doc/src/diameter_codec.xml index 91e96058dd..0117c1c88a 100644 --- a/lib/diameter/doc/src/diameter_codec.xml +++ b/lib/diameter/doc/src/diameter_codec.xml @@ -13,7 +13,8 @@ <erlref> <header> <copyright> -<year>2012</year><year>2016</year> +<year>2012</year> +<year>2017</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -53,17 +54,17 @@ communicated to &man_app; callbacks. Similarly, outgoing Diameter messages are encoded into binary() before being passed to the appropriate &man_transport; module for transmission. -The functions in this module implement this encode/decode.</p> +The functions documented here implement the default encode/decode.</p> -<note> +<warning> <p> -Calls to this module are made by diameter itself as a consequence of -configuration passed to &mod_start_service;. -The encode/decode functions may also be useful for other purposes (eg. -test) but the diameter user does not need to call them explicitly when +The diameter user does not need to call functions here explicitly when sending and receiving messages using &mod_call; and the callback -interface documented in &man_app;.</p> -</note> +interface documented in &man_app;: diameter itself provides encode/decode +as a consequence of configuration passed to &mod_start_service;, and +the results may differ from those returned by the functions documented +here, depending on configuration.</p> +</warning> <p> The &header; and &packet; records below diff --git a/lib/diameter/src/base/diameter_codec.erl b/lib/diameter/src/base/diameter_codec.erl index a4d816db4e..82fa796e69 100644 --- a/lib/diameter/src/base/diameter_codec.erl +++ b/lib/diameter/src/base/diameter_codec.erl @@ -20,10 +20,8 @@ -module(diameter_codec). --export([encode/2, - encode/3, - decode/3, - decode/4, +-export([encode/2, encode/3, + decode/2, decode/3, decode/4, collect_avps/1, decode_header/1, sequence_numbers/1, @@ -68,6 +66,10 @@ %%% # encode/2 %%% --------------------------------------------------------------------------- +%% The representative encode documented in diameter_codec(3). As of +%% the options that affect encode (eg. ordered_encode), it's no longer +%% *the* encode. + encode(Mod, Msg) -> encode(Mod, #{ordered_encode => true}, Msg). @@ -277,6 +279,20 @@ rec2msg(Mod, Rec) -> Mod:rec2msg(element(1, Rec)). %%% --------------------------------------------------------------------------- +%%% # decode/2 +%%% --------------------------------------------------------------------------- + +%% The representative default decode documented in diameter_codec(3). +%% As of the options that affect decode (eg. string_decode), it's no +%% longer *the* decode. + +decode(Mod, Pkt) -> + Opts = #{string_decode => true, + strict_mbit => true, + rfc => 6733}, + decode(Mod, Opts, Pkt). + +%%% --------------------------------------------------------------------------- %%% # decode/3 %%% --------------------------------------------------------------------------- |