77 lines
3.2 KiB
Erlang
77 lines
3.2 KiB
Erlang
%%--------------------------------------------------------------------
|
|
%% Copyright (c) 2020-2021 EMQ Technologies Co., Ltd. All Rights Reserved.
|
|
%%
|
|
%% Licensed under the Apache License, Version 2.0 (the "License");
|
|
%% you may not use this file except in compliance with the License.
|
|
%% You may obtain a copy of the License at
|
|
%%
|
|
%% http://www.apache.org/licenses/LICENSE-2.0
|
|
%%
|
|
%% Unless required by applicable law or agreed to in writing, software
|
|
%% distributed under the License is distributed on an "AS IS" BASIS,
|
|
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
%% See the License for the specific language governing permissions and
|
|
%% limitations under the License.
|
|
%%--------------------------------------------------------------------
|
|
|
|
-define(APP, emqx_coap).
|
|
-define(DEFAULT_COAP_PORT, 5683).
|
|
-define(DEFAULT_COAPS_PORT, 5684).
|
|
-define(MAX_MESSAGE_ID, 65535).
|
|
-define(MAX_BLOCK_SIZE, 1024).
|
|
-define(DEFAULT_MAX_AGE, 60).
|
|
-define(MAXIMUM_MAX_AGE, 4294967295).
|
|
|
|
-type coap_message_id() :: 1 .. ?MAX_MESSAGE_ID.
|
|
-type message_type() :: con | non | ack | reset.
|
|
-type max_age() :: 1 .. ?MAXIMUM_MAX_AGE.
|
|
|
|
-type message_option_name() :: if_match
|
|
| uri_host
|
|
| etag
|
|
| if_none_match
|
|
| uri_port
|
|
| location_path
|
|
| uri_path
|
|
| content_format
|
|
| max_age
|
|
| uri_query
|
|
| 'accept'
|
|
| location_query
|
|
| proxy_uri
|
|
| proxy_scheme
|
|
| size1
|
|
| observer
|
|
| block1
|
|
| block2.
|
|
|
|
-type message_options() :: #{ if_match => list(binary())
|
|
, uri_host => binary()
|
|
, etag => list(binary())
|
|
, if_none_match => boolean()
|
|
, uri_port => 0 .. 65535
|
|
, location_path => list(binary())
|
|
, uri_path => list(binary())
|
|
, content_format => 0 .. 65535
|
|
, max_age => non_neg_integer()
|
|
, uri_query => list(binary()) | map()
|
|
, 'accept' => 0 .. 65535
|
|
, location_query => list(binary())
|
|
, proxy_uri => binary()
|
|
, proxy_scheme => binary()
|
|
, size1 => non_neg_integer()
|
|
, observer => non_neg_integer()
|
|
, block1 => {non_neg_integer(), boolean(), non_neg_integer()}
|
|
, block2 => {non_neg_integer(), boolean(), non_neg_integer()}}.
|
|
|
|
-record(coap_mqtt_auth, {clientid, username, password}).
|
|
|
|
-record(coap_message, { type :: message_type()
|
|
, method
|
|
, id
|
|
, token = <<>>
|
|
, options = #{}
|
|
, payload = <<>>}).
|
|
|
|
-type emqx_coap_message() :: #coap_message{}.
|