fix(lwm2m): base64 decode for opaque value
This commit is contained in:
parent
5aa4565e84
commit
7af4b80ef4
|
@ -1,6 +1,6 @@
|
|||
{application,emqx_lwm2m,
|
||||
[{description,"EMQ X LwM2M Gateway"},
|
||||
{vsn, "4.3.1"}, % strict semver, bump manually!
|
||||
{vsn, "4.3.2"}, % strict semver, bump manually!
|
||||
{modules,[]},
|
||||
{registered,[emqx_lwm2m_sup]},
|
||||
{applications,[kernel,stdlib,lwm2m_coap]},
|
||||
|
|
|
@ -1,13 +1,21 @@
|
|||
%% -*-: erlang -*-
|
||||
{VSN,
|
||||
[
|
||||
{"4.3.1", [
|
||||
{load_module, emqx_lwm2m_message, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{"4.3.0", [
|
||||
{load_module, emqx_lwm2m_message, brutal_purge, soft_purge, []},
|
||||
{load_module, emqx_lwm2m_protocol, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
],
|
||||
[
|
||||
{"4.3.1", [
|
||||
{load_module, emqx_lwm2m_message, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{"4.3.0", [
|
||||
{load_module, emqx_lwm2m_message, brutal_purge, soft_purge, []},
|
||||
{load_module, emqx_lwm2m_protocol, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
|
|
|
@ -197,7 +197,10 @@ value_ex(K, Value) when K =:= <<"Integer">>; K =:= <<"Float">>; K =:= <<"Time">>
|
|||
value_ex(K, Value) when K =:= <<"String">> ->
|
||||
Value;
|
||||
value_ex(K, Value) when K =:= <<"Opaque">> ->
|
||||
Value;
|
||||
%% XXX: force to decode it with base64
|
||||
%% This may not be a good implementation, but it is
|
||||
%% consistent with the treatment of Opaque in value/3
|
||||
base64:decode(Value);
|
||||
value_ex(K, <<"true">>) when K =:= <<"Boolean">> -> <<1>>;
|
||||
value_ex(K, <<"false">>) when K =:= <<"Boolean">> -> <<0>>;
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ all() ->
|
|||
, {group, test_grp_4_discover}
|
||||
, {group, test_grp_5_write_attr}
|
||||
, {group, test_grp_6_observe}
|
||||
, {group, test_grp_8_object_19}
|
||||
].
|
||||
|
||||
suite() -> [{timetrap, {seconds, 90}}].
|
||||
|
@ -98,9 +99,9 @@ groups() ->
|
|||
]},
|
||||
{test_grp_8_object_19, [RepeatOpt], [
|
||||
case80_specail_object_19_1_0_write,
|
||||
case80_specail_object_19_0_0_notify,
|
||||
case80_specail_object_19_0_0_response,
|
||||
case80_normal_object_19_0_0_read
|
||||
case80_specail_object_19_0_0_notify
|
||||
%case80_specail_object_19_0_0_response,
|
||||
%case80_normal_object_19_0_0_read
|
||||
]},
|
||||
{test_grp_9_psm_queue_mode, [RepeatOpt], [
|
||||
case90_psm_mode,
|
||||
|
@ -1655,6 +1656,7 @@ case80_specail_object_19_1_0_write(Config) ->
|
|||
<<"value">> => base64:encode(<<12345:32>>)
|
||||
}
|
||||
},
|
||||
|
||||
CommandJson = emqx_json:encode(Command),
|
||||
test_mqtt_broker:publish(CommandTopic, CommandJson, 0),
|
||||
timer:sleep(50),
|
||||
|
@ -1663,7 +1665,7 @@ case80_specail_object_19_1_0_write(Config) ->
|
|||
Path2 = get_coap_path(Options2),
|
||||
?assertEqual(put, Method2),
|
||||
?assertEqual(<<"/19/1/0">>, Path2),
|
||||
?assertEqual(<<12345:32>>, Payload2),
|
||||
?assertEqual(<<3:2, 0:1, 0:2, 4:3, 0, 12345:32>>, Payload2),
|
||||
timer:sleep(50),
|
||||
|
||||
test_send_coap_response(UdpSock, "127.0.0.1", ?PORT, {ok, changed}, #coap_content{}, Request2, true),
|
||||
|
@ -1672,6 +1674,7 @@ case80_specail_object_19_1_0_write(Config) ->
|
|||
ReadResult = emqx_json:encode(#{
|
||||
<<"requestID">> => CmdId, <<"cacheID">> => CmdId,
|
||||
<<"data">> => #{
|
||||
<<"reqPath">> => <<"/19/1/0">>,
|
||||
<<"code">> => <<"2.04">>,
|
||||
<<"codeMsg">> => <<"changed">>
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue