Martine Lenders
875411fd3a
gcoap_dns: fix block-wise transfer
2022-07-25 20:17:00 +02:00
Martine Lenders
349a89c9fa
gcoap_dns: replace printf
s with DEBUG
2022-07-25 19:51:47 +02:00
Martine Lenders
2e5a66e7d2
gcoap_dns: Add DNS cache support
2022-07-20 10:45:08 +02:00
Martine Lenders
fe4deff522
dns_cache: synchronize access with mutex
2022-07-20 06:30:14 +02:00
Martine Lenders
8bec9c1115
sock_dns_cache: move to dns_cache
...
Also piggy-back some fixes to the unittests and submodule handling
2022-07-18 15:27:58 +02:00
Martine Lenders
1761726024
net/dns: provide Kconfig
2022-07-18 11:43:35 +02:00
Benjamin Valentin
d7bb42296a
gcoap: move tl_type to coap_request_ctx_t
2022-07-17 18:05:07 +02:00
Benjamin Valentin
3806f7d532
nanocoap: make coap_request_ctx_t members internal
2022-07-17 14:32:16 +02:00
Benjamin Valentin
e8829d5591
gcoap_fileserver: make use of coap_request_ctx_t
2022-07-17 14:32:16 +02:00
Benjamin Valentin
a6c617a221
gcoap: make use of coap_request_ctx_t
2022-07-17 14:29:39 +02:00
Benjamin Valentin
acfab72296
nanocoap: make use of coap_request_ctx_t
2022-07-17 14:29:39 +02:00
Benjamin Valentin
d09d29a581
tests/unittests: add tests sock_dns_cache
2022-07-15 00:03:49 +02:00
Benjamin Valentin
077a41a719
sock_dns: implement DNS cache
2022-07-13 23:23:52 +02:00
Martine Lenders
a8254d52b8
Merge pull request #16705 from miri64/gcoap_dns/feat/initial
...
gcoap_dns: initial import of a DNS over CoAP (DoC) client
2022-07-13 02:27:17 +02:00
Sören Tempel
f073dcdb3d
gnrc_dhcpv6_client: Fix out-of-bounds access during option parsing
...
The _parse_reply function iterates over the DHCPv6 message options
twice but only performs sanity checks on the option length in the
first iteration. As such, both loop iterations need to be identical.
Unfortunately, there aren't without this commit as (1) they use
different maximum length values and (2) the first iteration stops
parsing as soon as it encounters a zero option while the second
doesn't. As such, it is possible for out-of-bounds read to be
performed by the second loop iteration. This commit fixes this.
2022-07-11 22:55:33 +02:00
Martine Lenders
107a2a0753
gcoap_dns: initial import of a DNS over CoAP client
2022-07-01 18:44:02 +02:00
Sören Tempel
4dcb8edcc8
asymcute: Fix deadlocks in REGACK, SUBACK and UNSUBACK handler
...
The handlers for these MQTT message lock the connection mutex on
function entry. During automated testing of asymcute, I discovered
return paths for these function which do not unlock the connection
mutex. This results in a deadlock which prevents asymcute from
sending any further messages.
2022-07-01 00:55:07 +02:00
Benjamin Valentin
8c4e5629d1
nanocoap_sock: fix debug output
2022-06-21 23:06:33 +02:00
Benjamin Valentin
11e40a9d61
nanocoap_sock: fix wrong assertion
...
The assertion is a bit overeager.
In case of receiving a wrong message ID, we re-try receive without
entering the STATE_REQUEST_SEND state again, so it is expected that
we get a non-NULL ctx/response from sock_udp_recv_buf().
What this assert should actually check is that we don't get a non-NULL
ctx after calling sock_udp_recv_buf() with a non-NULL ctx.
So make this explicit to not falsely fail the assertion.
2022-06-16 18:54:16 +02:00
benpicco
0a16f8266a
Merge pull request #17962 from benpicco/nanocoap_vfs-put
...
nanocoap_vfs: add nanocoap_vfs_put()
2022-06-16 11:53:36 +02:00
Benjamin Valentin
bb42f6a2f4
nanocoap_vfs: add nanocoap_vfs_put()
2022-06-08 17:19:03 +02:00
Benjamin Valentin
7029572ca7
sys/net/telnet: add telnet_server_disconnect()
2022-06-08 13:01:23 +02:00
benpicco
31b8518d20
Merge pull request #17965 from benpicco/coap_get_blockopt-uint8
...
nanocoap: use uint8_t for szx value
2022-05-25 14:00:04 +02:00
Benjamin Valentin
87359bb70a
nanocoap_vfs: add nanocoap_vfs_get()
2022-05-24 09:32:57 +02:00
Benjamin Valentin
c6ba5d9180
gcoap_fileserver: use uint8_t for szx value
2022-05-23 23:43:21 +02:00
Benjamin Valentin
00221818b6
nanocoap: use uint8_t for szx value
...
The value is an exponent, 8 bits totally suffice here
2022-05-23 23:41:21 +02:00
chrysn
185dfea07f
gcoap_fileserver: New module to serve VFS via CoAP
2022-05-22 16:36:21 +02:00
Benjamin Valentin
7c75852316
nanocoap_sock: clean up state management
2022-05-18 11:41:58 +02:00
benpicco
7c62c8983d
Merge pull request #17958 from benpicco/nanocoap-blockwise_put
...
nanocoap_sock: add nanocoap_sock_block_request()
2022-05-18 10:40:24 +02:00
Benjamin Valentin
b99d4b58bd
nanocoap_sock: add nanocoap_sock_block_request()
2022-05-17 23:07:23 +02:00
Benjamin Valentin
f2279e43ae
nanocoap_sock: support sending CoAP packet with payload snips
2022-05-17 23:07:23 +02:00
Martine Lenders
dbed2b48ea
nanocoap_cache: add helper function to check if entry is stale
2022-05-13 12:14:55 +02:00
Martine Lenders
310ed649ae
gcoap: reflect truncation with caching
2022-05-13 12:14:55 +02:00
Martine Lenders
70d0d7f624
gcoap_forward_proxy: only leave upstream validation for caching
...
Most of the caching operation was moved to the client code. Since the
forward proxy is using that code for upstream messaging, interacting
with the cache directly is not necessary anymore.
The only cache-related thing necessary for the proxy is validating ETags
from upstream. However, that can be done by just looking at the ETags
from the upstream response (which may or may not have come from the
cache).
2022-05-13 12:14:55 +02:00
Martine Lenders
728c7d6088
gcoap: add nanocoap_cache support for clients
2022-05-13 12:14:54 +02:00
Martine Lenders
cbbde07cc6
gcoap: add helper function to get request header from a request memo
2022-05-12 15:22:05 +02:00
Martine Lenders
73bcd83543
nanocoap_cache, forward_proxy: add ETag validation support
2022-05-12 13:22:41 +02:00
Cenk Gündoğan
c5eb53095d
gcoap: integrate nanocoap cache
2022-05-10 18:43:57 +02:00
Cenk Gündoğan
8750605d26
nanocoap: add cache for response messages
2022-05-10 18:43:56 +02:00
Marian Buschsieweke
eadd282cf4
Merge pull request #18026 from benpicco/gcoap_add_fix
...
gcoap: ensure response address is the same as request address
2022-05-10 10:49:56 +02:00
Marian Buschsieweke
3dad6740da
Merge pull request #17990 from benpicco/nanocoap-void
...
nanocoap: use void * for payload bytes
2022-05-10 10:49:05 +02:00
Benjamin Valentin
e621afb2dc
gcoap: ensure response address is the same as request address
...
If a node has multiple addresses we must reply to a request with the
same address on which the request was received.
2022-05-10 09:24:56 +02:00
Benjamin Valentin
0847c18a18
nanocoap: use size_t for payload_len
2022-05-03 11:32:20 +02:00
Benjamin Valentin
cabb2c912d
nanocoap: use void * for payload bytes
2022-05-03 11:32:20 +02:00
Benjamin Valentin
d03c6390c8
nanocoap_sock: release rx buffer on RESET
...
We must not return without calling sock_udp_recv_buf() again.
2022-05-03 03:53:56 +02:00
Benjamin Valentin
04a8a36734
nanocoap_sock: only abort nanocoap_sock_get_blockwise() on negative error
...
Some user callbacks might just return the result of some other operation
that returns written bytes or negative error.
Let's not break those, only consider negative callback returns an error.
2022-04-29 21:29:36 +02:00
eecac6945b
nanocoap: Add handler for resource-based subtrees
...
This adds a coap_handler_t function that can be used to parse new
subtrees. The subtree information is included in the context pointer of
the call and must be of type coap_resource_subtree_t. This object then
contains the pointer and length of a different coap_resource_t instance.
2022-04-23 10:12:18 +02:00
Benjamin Valentin
bb4c597681
nanocoap_sock: document (ab)use of sock_udp_recv_buf(), add asssert()
2022-04-22 11:34:19 +02:00
Benjamin Valentin
b20f89976d
nanocoap_sock: pass on error code from user callback
2022-04-22 10:35:52 +02:00
Benjamin Valentin
85833ab58c
nanocoap_sock: clean up the request function
2022-04-22 10:35:52 +02:00
Benjamin Valentin
bd7fe3bc5c
nanocoap_sock: calculate deadline from interval
...
So we don't have to wait a full interval again if we got a wrong
message without resend.
2022-04-22 10:35:52 +02:00
Benjamin Valentin
e2fe9d0268
nanocoap_sock: compare response token
2022-04-22 10:35:52 +02:00
Benjamin Valentin
c22b1242ae
nanocoap_sock: ensure ctx is reset before receiving new frame
2022-04-22 10:35:52 +02:00
Benjamin Valentin
3ac258ccdf
nanocoap_sock: set more false if response was not blockwise
2022-04-22 10:12:27 +02:00
Benjamin Valentin
a5bc3cc069
nanocoap_sock: pass on error code
2022-04-22 10:12:27 +02:00
benpicco
c032e40fba
Merge pull request #17976 from benpicco/coap_get_token
...
nanocoap: add coap_get_token()
2022-04-22 10:08:30 +02:00
Francisco
7307923703
Merge pull request #17960 from benpicco/sock_urlpath
...
nanocoap_sock: add nanocoap_sock_url_connect()
2022-04-22 08:26:12 +02:00
Benjamin Valentin
5c1ff580d6
nanocoap_sock: don't decrement retries twice
2022-04-21 15:39:25 +02:00
Benjamin Valentin
845a757eed
nanocoap: don't set lastonum if no option was added
2022-04-21 15:39:25 +02:00
Benjamin Valentin
76e2500b7d
nanocoap_sock: use random message IDs
2022-04-21 15:39:25 +02:00
Benjamin Valentin
c4f6249992
nanocoap: make use of coap_get_token()
2022-04-21 15:34:31 +02:00
Benjamin Valentin
3d0c1d09c4
gcoap: make use of coap_get_token()
2022-04-21 15:34:31 +02:00
Benjamin Valentin
8d391a4f5f
nanocoap_sock: use random timeout
2022-04-21 15:03:31 +02:00
Benjamin Valentin
2ea6c81217
nanocoap_sock: add nanocoap_sock_url_connect()
2022-04-18 01:53:23 +02:00
benpicco
2acbb5ebea
Merge pull request #17947 from fjmolinas/pr_proxy_use_gcoap_port
...
sys/net/application_layer/gcoap: use COAP_PORT
2022-04-14 16:05:28 +02:00
Francisco Molina
c67a2086de
sys/net/application_layer/gcoap: use COAP_PORT
2022-04-14 09:24:35 +02:00
Benjamin Valentin
dbbb602522
net/coap: refactor nanocoap_request for zero-copy operation
...
This removes the need for a user provied work buffer from nanocoap.
Instead we let the user operate directly on network stack internal
memory and provide a callback mechanism to make sure the memory is
properly freed again.
2022-04-13 19:33:00 +02:00
Oleg Hahm
755ea30da7
Merge pull request #17871 from HendrikVE/pr/sock_dns_mock
...
sys/net/application_layer/sock_dns_mock: add module for mocking sock_dns
2022-04-08 14:20:17 +02:00
Francisco
c07a11c8cd
Merge pull request #17892 from kfessel/p-ztimer-conversions
...
sys: some simple xtimer->ztimer conversions
2022-04-04 09:17:46 +02:00
Hendrik van Essen
a9fb3388ca
sys/net/application_layer/sock_dns_mock: add module for mocking sock_dns
2022-04-03 17:29:10 +02:00
Karl Fessel
a42c39dbea
net/uhcp: convert to ztimer
2022-03-31 12:50:31 +02:00
Martine Lenders
00fdd8a146
nanocoap: introduce coap_opt_remove()
2022-03-31 09:47:57 +02:00
benpicco
6849e33854
Merge pull request #17736 from benpicco/dhcpv6-tweaks
...
sys/net/dhcpv6: miscellaneous tweaks
2022-03-29 13:52:41 +02:00
Benjamin Valentin
37a4fffb17
sys/net/dhcpv6: consider option 0 an end marker
...
The REPLY of a TP-Link router (WR400 v4.20) ends with a 0 option
that has a bogus length.
When subtracting the length from the remaining length, we get an
underflow (remaining `len` is 3, option len is 4).
To get a working DHCP response, consider 0 (Reserved) an end marker.
2022-03-28 14:53:00 +02:00
Benjamin Valentin
922a1d7c9a
sys/net/dhcpv6: make sanity check more lenient
...
If we did not enable downstream interfaces yet but have IA_PD enabled
or if we did not configure an interface for IA_NA but have the module
enabled, don't discard the DHCP reply.
If a server does not support an option it will respond with an error
code.
2022-03-28 14:52:59 +02:00
Benjamin Valentin
9cab45931a
nanocoap: replace sock_udp_str2ep() with sock_udp_name2ep()
2022-03-24 17:09:16 +01:00
Benjamin Valentin
a6a8356385
nanocoap: add nanocoap_get_blockwise_url_to_buf() function
...
This moves the internal convenience function suit_coap_get_blockwise_url_buf()
into nanocoap to make it globally available.
2022-03-22 10:36:50 +01:00
Cenk Gündoğan
9746c3a830
nanocoap: add COAP_IGNORE for when method parsing is not important
2022-03-11 14:53:17 +01:00
Cenk Gündoğan
fa19b62cdb
gcoap/forward_proxy: add submodule
2022-03-11 14:53:17 +01:00
benpicco
9896071bb9
Merge pull request #17493 from HendrikVE/pr/auto_init_sock_dns
...
sys/net/application_layer/sock_dns: add pseudomodule auto_init_sock_dns
2022-03-10 00:53:32 +01:00
Hendrik van Essen
0b0910f82a
sys/net/application_layer/sock_dns: add pseudomodule auto_init_sock_dns
2022-03-09 20:05:20 +01:00
benpicco
c411edef55
Merge pull request #16688 from miri64/gcoap/enh/multitransport
...
gcoap: multi-transport support
2022-03-03 12:15:48 +01:00
Benjamin Valentin
2034fa5101
sys/net/application_layer: add telnet server module
2022-03-01 23:07:22 +01:00
Martine Lenders
287bfdc10d
gcoap: multi-transport support for listeners
2022-03-01 19:33:15 +01:00
Martine Lenders
90eae8e0a4
gcoap: multi-transport support for clients
...
23a8659bdf
introduced DTLS support for
CoAP, but did not make it possible to select the transport on request.
Since switching between CoAP and CoAPS (CoAP-over-DTLS) as client is a
valid use case (one might want to e.g. talk to one server over CoAP and
to another over CoAPS), this change makes that possible.
2022-03-01 19:26:10 +01:00
Karl Fessel
35107ec4ba
sys/net: add missing includes
2022-02-28 14:53:07 +01:00
benpicco
67b98fd741
sys/net/nanocoap: introduce nanocoap_sock_*()
...
Co-authored-by: Jan Romann <jan.romann@uni-bremen.de>
2022-02-24 12:20:47 +01:00
Benjamin Valentin
0b768e5602
nanocoap: add nanocoap_request_simple()
2022-02-24 12:20:05 +01:00
Benjamin Valentin
7dc2f730d2
nanocoap: check if all critical options were handled
2022-02-24 12:20:05 +01:00
Benjamin Valentin
2682848a29
suit/transport/coap: move suit_coap_get_blockwise() to nanocoap
2022-01-27 14:42:49 +01:00
Benjamin Valentin
d680743fe9
net/coap: specify timeout in milliseconds
...
This allows for more flexibility when choosing timeouts.
2022-01-27 14:42:49 +01:00
Benjamin Valentin
3895fdc2c3
net/coap: move socket open/close out of nanocoap API
...
This allows to reuse a socket between requests and aligns the API
with the usage in SUIT.
2022-01-27 14:31:06 +01:00
Jan Romann
e29da26ea1
Merge pull request #17250 from JKRhb/dhcpv6-restart-fix
...
sys/net/dhcpv6: fix variable shadowing issue
2022-01-01 20:48:07 +01:00
Jan Romann
e185a2556d
sys/net/dhcpv6: fix variable shadowing issue
2022-01-01 18:43:13 +01:00
Karl Fessel
6347dcdffc
Merge pull request #17141 from kfessel/p-ztimer-gcoap
...
net/gcoap: port to ztimer
2021-12-09 15:22:10 +01:00
Benjamin Valentin
1db8ab4f72
sys/net/gcoap: add ; after DEBUG()
2021-12-08 20:41:21 +01:00
Karl Fessel
9195a4f02b
net/gcoap: most ZITMER_USEC to ZTIMER_MSEC
2021-12-06 13:31:18 +01:00
Karl Fessel
f56eb9bb83
net/gcoap: port to ztimer_usec
2021-12-06 13:31:18 +01:00
Karl Fessel
2dd0cec4e9
net/gcoap: clean xtimer include from header
2021-12-06 13:31:18 +01:00
Sören Tempel
dc1b6d0436
sock_dns: include string.h for strlen(3) function prototype
...
Needed by the following code in `dns.c`:
e8cbc6da85/sys/net/application_layer/sock_dns/dns.c (L39-L41)
The include was probably wrongfully removed by accident in
e8cbc6da85
(CC: @miri64 ).
2021-11-30 01:12:40 +01:00