Ken Bannister
233dd31e17
net/nanocoap: add generic uint block option
2019-10-02 05:51:59 -04:00
Martine Lenders
aab312e8df
Merge pull request #11958 from miri64/emcute/fix/length-calculation
...
emcute: fix length field calculation
2019-10-01 09:29:58 +02:00
benpicco
e942f86837
Merge pull request #11056 from kb2ma/coap/pkt_api_block_write
...
net/gcoap: add/use Packet API Block implementation
2019-09-24 21:43:33 +02:00
Sören Tempel
30e4823e94
asymcute: don't make the assumption that req->arg is non-NULL
...
This fixes a denial of service where an attacker would be able to cause
a NULL pointer dereference by sending a spoofed packet. This attack only
requires knowledge about pending message ids.
2019-09-24 12:00:12 +02:00
benpicco
bf2aaa1a5d
Merge pull request #12049 from Sizurka/fix-asymcute-reconnect
...
asymcute: Reset keepalive counter on connection ACK
2019-09-12 15:55:11 +02:00
Ken Bannister
39eddce078
net/nanocoap: add function to retrieve opaque option
2019-09-11 05:40:14 -04:00
Sebastian Meiling
9f5951d216
Merge pull request #10214 from bergzand/pr/nanocoap/flags_uint32t
...
nanocoap: change method flag type to uint16_t
2019-09-09 12:33:17 +03:00
bde253cca3
gcoap: use coap_method_flags_t
2019-09-09 09:40:14 +02:00
4d399bf444
nanocoap: change method flag type to uint32_t
2019-09-09 09:40:14 +02:00
Ken Bannister
4e89741b79
net/nanocoap: add function to iterate over options
2019-08-24 06:51:29 -04:00
Ken Bannister
6c8e646b83
net/nanocoap: check for payload marker when parse option
2019-08-24 06:51:29 -04:00
Derek Hageman
18910cf4e2
asymcute: Reset keepalive counter on connection ACK
...
When a keepalive timeout occurs keepalive_retry_cnt remains zero,
so when the connection is re-established _on_keepalive_evt will
immediately disconnect instead of actually sending a keepalive ping.
The sequence looks like:
1. _on_connack: start con->keepalive_timer
2. Server does not respond to keepalive pings
3. _on_keepalive_evt: con->keepalive_retry_cnt reaches zero
4. Connection torn down and ASYMCUTE_DISCONNECTED sent to application
5. Application starts reconnection
6. _on_connack: start con->keepalive_timer again
7. First _on_keepalive_evt: con->keepalive_retry_cnt is still zero
8. Repeat from 4.
So this simply resets keepalive_retry_cnt in _on_connack when
the keepalive timer is restarted. It's a new connection, so
resetting the keepalive retry counter make senses regardless.
Signed-off-by: Derek Hageman <hageman@inthat.cloud>
2019-08-20 17:23:05 -06:00
Benjamin Valentin
e8dc1119b8
sys: make use of ARRAY_SIZE macro
2019-08-06 19:43:54 +02:00
Martine S. Lenders
89afc378a9
emcute: fix length field calculation
...
The length field in an MQTT packet carries the _total_ length of the
packet. If it is below 256 (i.e. fits in one byte) only one byte is
used for the length field. If it is larger than that 3 bytes are used,
with the first byte having the value `0x01` and the remaining bytes
representing the length in as a 2 byte unsigned integer in network byte
order. Resulting from that it can be assessed that the check in
`emcutes`'s `set_len()` function is wrong as it needs to be checked if
`len` is lesser or equal to `0xff - 1`. `len <= (0xff - 1)` can be
simplified to `len < 0xff`. For some larger packages this safes 2 bytes
of wasted packet space.
2019-08-05 13:08:20 +02:00
Martine S. Lenders
10a3f3e8ed
emcute: fix payload copy error for emcute_pub
...
`len` is used with the `memcpy()` to copy the payload to `tbuf`. With a
payload provided that is just long enough to fill `tbuf`, `len += 6`
leads to the `memcpy()` overriding data after `tbuf` (e.g. the
`mutex` that is unlocked right after) and thus resulting in potential
segmentation faults.
Additionally `+ 6` can only be applied if the total packet length is
below 256 (see spec), so `len + pos` is what needs to be provided to the
corresponding send functions instead (`pos` adapts to the header length
of the PUBLISH message).
2019-08-05 13:07:15 +02:00
Ken Bannister
513ddfd79c
net/nanocoap: add Packet API block write functions
2019-08-02 09:46:24 -04:00
Ken Bannister
c8e87e7854
Merge pull request #11787 from miri64/gcoap/enh/backoff-config
...
gcoap: allow for retransmission backoff to be turned off
2019-08-02 06:40:07 -04:00
Ken Bannister
28317019fc
Merge pull request #11784 from miri64/gcoap/fix/ack-variance-0
...
gcoap: don't call random_uint32_range() when COAP_ACK_VARIANCE=0
2019-08-02 05:10:45 -04:00
Ken Bannister
b5200e96a7
Merge pull request #11024 from kb2ma/coap/add_block_helpers
...
net/nanocoap: Buffer API Block helper functions
2019-07-31 12:41:25 -04:00
Ken Bannister
64b4e0ad2d
net/nanocoap: add block slicer init function
2019-07-30 13:10:10 -04:00
Ken Bannister
a6f919ef3e
net/nanocoap: refactor block2_finish()
2019-07-30 13:10:10 -04:00
Ken Bannister
86edea81be
net/nanocoap: use block init helper internally
2019-07-30 13:10:10 -04:00
Ken Bannister
69efaa1d56
net/nanocoap: add block init helper function
2019-07-30 13:10:10 -04:00
Ken Bannister
f4df9d79e9
Merge pull request #11002 from kb2ma/coap/block_finish_proto
...
net/nanocoap: Buffer API Block implementation
2019-07-30 12:49:12 -04:00
Leandro Lanzieri
a9ab9d37e2
Merge pull request #11765 from kb2ma/coap/encode_resources
...
net/gcoap: add/publish link format attributes for a resource
2019-07-27 22:36:33 +02:00
Ken Bannister
d481ca9da7
net/gcoap: add selectable function to write a link
2019-07-27 07:09:40 -04:00
Ken Bannister
9dce54b54b
net/nanocoap: refactor block option control use
2019-07-22 05:42:08 -04:00
Ken Bannister
4311f17e81
net/nanocoap: refactor block option put
2019-07-22 05:42:08 -04:00
Ken Bannister
64ba8e4ea9
net/nanocoap: document internal option functions
2019-07-18 05:21:40 -04:00
6c02521591
nanocoap: make coap_get_block2() actually fill struct
2019-07-05 15:29:58 +02:00
Hauke Petersen
eb50d4704a
net/emcute: make cli ID conform to standard
2019-07-04 11:04:22 +02:00
Hauke Petersen
785f59fb7f
net/asymcute: make cli ID len conform to standard
2019-07-04 11:03:37 +02:00
Martine S. Lenders
c31c9ed216
gcoap: allow for retransmission backoff to be turned off
2019-07-03 16:35:48 +02:00
Martine S. Lenders
1bde141697
gcoap: don't call random_uint32_range() when COAP_ACK_VARIANCE=0
...
`COAP_ACK_VARIANCE` is a configurable macro, so when it is 0, the
[precondition for `random_uint32_range()`][1] is not held.
[1]: https://doc.riot-os.org/group__sys__random.html#gab6ee09e1e56df3cc78acd1fbf97bfb24
2019-07-03 15:45:45 +02:00
Martine S. Lenders
7e70bf3ac1
cord_epsim: replace gcoap_req_send2()
2019-07-03 15:02:22 +02:00
Martine S. Lenders
0579ef952e
cord_ep: replace gcoap_req_send2()
2019-07-03 15:02:15 +02:00
Martine S. Lenders
c9179a26c8
gcoap: replace internal references to gcoap_req_send2()
...
`gcoap_req_send2()` is deprecated and was replaced with
`gcoap_req_send()`.
2019-07-03 15:00:06 +02:00
Ken Bannister
8aa5258ba7
Merge pull request #11445 from miri64/gcoap/fix/rm-deprecated
...
gcoap: remove deprecated function gcoap_req_send()
2019-05-03 13:44:02 -04:00
0ec9c57b2b
add copyrights from IOTPUSH project
2019-05-02 12:09:37 +02:00
Martine Lenders
a11f817604
gcoap: rename gcoap_req_send2() to gcoap_req_send()
2019-04-25 13:40:32 +02:00
Martine Lenders
affd115405
gcoap: remove deprecated function gcoap_req_send()
2019-04-25 13:39:50 +02:00
chrysn
09dc930d3a
nanocoap: add some const qualifiers
2019-04-12 11:04:47 +02:00
chrysn
a51460984b
nanocoap: Add coap_opt_add_opaque
...
This option complements the existing coap_opt_add_{uint,string} and even
more special-purpose functions; its implementation is trivial given the
existing static _add_opt_pkt function.
The method is useful when working with ETags (ETag, If-Match options).
2019-04-12 11:04:47 +02:00
88171698e0
Merge pull request #10931 from kb2ma/nanocoap/pktapi_opt_enospc
...
net/nanocoap: Packet API return error if buffer full
2019-04-03 14:49:44 +02:00
Hauke Petersen
840c8aeba2
cord/epsim: remove standalone submodule
2019-03-27 18:26:37 +01:00
Hauke Petersen
ec461661d8
net/cord_epsim: pass RD endpoint on runtime
2019-03-27 18:26:37 +01:00
Ken Bannister
5bf2fc6227
net/nanocoap: return error from coap_opt_finish if no space
2019-03-19 05:30:04 -04:00
Ken Bannister
3cdf43607c
net/nanocoap: Return error from coap_opt_add_xxx() if no space
2019-03-19 05:30:04 -04:00
Leandro Lanzieri
6bb4158c31
sys/net/application_layer/nanocoap: Add path prefix opt
...
This adds a prefix option for the methods field of a coap resource and
modifies the way the path is matched on a request to accept prefix
matching.
2019-03-17 14:26:11 +01:00
Ken Bannister
34e880499e
examples/cord_ep: use coap_opt_finish()
2019-03-13 00:24:29 -04:00
Ken Bannister
682c1e9a7d
examples/cord_epsim: use coap_opt_finish()
2019-03-13 00:24:29 -04:00
297efdd5b2
Merge pull request #10892 from kb2ma/gcoap/use_opt_finish
...
net/gcoap: Replace use of gcoap_finish() with coap_opt_finish()
2019-03-12 22:16:32 +01:00
Ken Bannister
05195ec4a1
net/nanocoap: don't abort server on recv error
2019-02-26 12:35:49 -05:00
Martine Lenders
b30cdb51a5
sock_dns: correctly report too short messages
2019-01-29 22:32:50 +01:00
Ken Bannister
93da7372fd
net/gcoap: use coap_opt_finish within gcoap
2019-01-27 08:56:26 -05:00
Sebastian Meiling
a65fede8c4
Merge pull request #10855 from kb2ma/nanocoap/simple_reply_safety
...
net/nanocoap: verify simple reply buffer
2019-01-24 12:08:31 +01:00
Ken Bannister
3343ed3674
net/nanocoap: verify reply length before write
2019-01-24 05:18:12 -05:00
Sebastian Meiling
44234783da
Merge pull request #10823 from kb2ma/nanocoap/verify_before_write_option
...
net/nanocoap: validate option length
2019-01-24 09:23:26 +01:00
Ken Bannister
e35bcb6853
net/nanocoap: fix remaining space calculation
...
The space calculation must use the same length as the eventual
return value.
2019-01-23 16:36:20 -05:00
Ken Bannister
7e77ac7ace
Merge pull request #10845 from kb2ma/nanocoap/server_debug_msg
...
net/nanocoap: add debug message for server
2019-01-23 11:41:47 +00:00
Ken Bannister
b4f8b7a10b
net/nanocoap: add debug message for server
2019-01-22 08:42:16 -05:00
Sebastian Meiling
9d3f1107c9
Merge pull request #10791 from kb2ma/gcoap/options_buf_macros_config
...
net/gcoap: make options buf macros configurable
2019-01-22 14:20:33 +01:00
Ken Bannister
85a658634f
net/nanocoap: validate option length before write
2019-01-18 12:34:55 -05:00
Ken Bannister
b9f6354067
net/nanocoap: document function that writes option header
2019-01-18 12:34:55 -05:00
Sebastian Meiling
f9a3bdf1a7
Merge pull request #10671 from kb2ma/nanocoap/retry_qty
...
net/nanocoap: fix confirmable retry countdown
2019-01-18 17:49:00 +01:00
Ken Bannister
27ba81eed0
net/nanocoap: improve debug messages
2019-01-18 05:47:43 -05:00
Ken Bannister
0e1c3ebe50
net/gcoap: make options buf macros configurable
2019-01-16 12:41:06 -05:00
Sebastian Meiling
a0e143d09f
Merge pull request #10721 from nmeum/asymcute-out-of-bounds
...
asymcute: check for minimum packet length early
2019-01-16 13:53:49 +01:00
Sören Tempel
2a6354b07d
asymcute: check for minimum packet length early
...
Without this patch _len_get reads one byte beyond the con->rxbuf
if the incoming packet consists only of the byte 0x01.
2019-01-16 10:06:38 +01:00
4b1b0aa84e
sys/net/nanocoap: fix possible option_count overflow
2019-01-14 12:30:06 +01:00
Martine Lenders
894ad29322
sock_dns: remove out-of-place puts() call
2019-01-10 18:07:29 +01:00
Martine Lenders
8ad5e44cba
sock_dns: remove some magic numbers
2019-01-10 18:07:29 +01:00
Martine Lenders
2840b3825e
sock_dns: fix out-of-bound errors
...
Fixes #10739
2019-01-10 18:07:29 +01:00
Ken Bannister
86ff4d3dc5
net/nanocoap: fix request retry countdown
2019-01-10 06:21:47 -05:00
Sören Tempel
d70a94f139
nanocoap: fix sock_udp return value checks
2019-01-08 19:01:39 +01:00
Sebastian Meiling
139b5dba3c
Merge pull request #10501 from kb2ma/gcoap/req_path_null
...
net/gcoap: allow NULL path in gcoap_req_init()
2018-12-21 14:36:04 +01:00
Ken Bannister
bd457aee2b
net/nanocoap: fix includes for nanocoap sock
2018-12-20 00:37:18 -05:00
Ken Bannister
bec94b0b7a
net/gcoap: allow NULL path in gcoap_req_init()
2018-11-28 13:20:22 -05:00
Ken Bannister
8fa6f10f97
cord/ep: Update for gcoap API change
2018-11-24 07:09:25 -05:00
Ken Bannister
424a01ddc1
net/gcoap: remove gcoap attributes from coap_pkt_t
2018-11-24 07:09:25 -05:00
Ken Bannister
034c78d51c
net/gcoap: move macros to implementation file
2018-11-24 07:09:25 -05:00
Ken Bannister
f0b966d65d
net/gcoap: Use nanocoap options API
...
Observe still uses coap_pkt_t attribute.
2018-11-24 07:09:25 -05:00
Ken Bannister
fa5ab4eeb6
net/gcoap: Add format option to nanocoap
2018-11-24 07:09:25 -05:00
Martine Lenders
78164977d8
Merge pull request #10223 from kb2ma/nanocoap/string_opt_first_char
...
net/nanocoap: fix string option separator write handling
2018-11-22 16:43:45 +01:00
Ken Bannister
fa77929cc7
net/nanocoap: fix string option separator handling
...
Assumed initial character was a separator when writing the option,
and skipped over it.
2018-11-22 09:25:05 -05:00
Lasse Lueder
34a6e384c2
net/gcoap: use coap_data_ptr instead of hdr.data
2018-11-02 16:33:29 +01:00
Lasse Lueder
18ae8ef90d
net/nanocoap: use coap_data_ptr instead of hdr.data
2018-11-02 16:33:29 +01:00
afb7d6e1fc
cord/epsim: enable THREAD_CREATE_STACKTEST for thread
2018-10-18 14:17:07 +02:00
be1dc15655
cord/ep: enable THREAD_CREATE_STACKTEST for thread
2018-10-18 14:09:32 +02:00
Hauke Petersen
18cc7ee3ed
net/rdcli: rename to cord_ep
2018-10-17 15:21:49 +02:00
Hauke Petersen
226b9fa383
net/rdcli_simple: rename to cord_epsim
2018-10-17 15:21:49 +02:00
Hauke Petersen
152623577e
net/rdcli_config: rename to cord_config
2018-10-17 09:29:19 +02:00
Hauke Petersen
787524400c
net/rdcli_common: rename to cord_common
2018-10-17 09:29:19 +02:00
Hauke Petersen
f0b0e25254
net/rdcli: new module structure and high-level doc
2018-10-17 09:29:19 +02:00
Ken Bannister
ad38dd9a6f
net/nanocoap: fix non-confirmable response type
2018-10-15 06:42:37 -04:00
726ebf3dad
coap: use COAP_FORMAT style content-format defines
...
Replaces all occurences of COAP_CT_.* with COAP_FORMAT_.*
2018-10-15 09:44:17 +02:00
Ken Bannister
14c9b3062b
Merge pull request #8932 from bergzand/pr/nanocoap/block2
...
nanocoap: add server-side block2 support
2018-10-14 13:03:08 +00:00
551b3513db
nanocoap: Add server-side block2 support
2018-10-14 14:30:29 +02:00
Hauke Petersen
9acce40aad
net: added full RD endpoint implementation
2018-10-12 14:41:40 +02:00
Hauke Petersen
6ba1991a8e
net/rdcli_simple: do not send CF opt in POST msg
2018-10-10 11:07:17 +02:00