`coap_build_reply()` may return negative values on error or
0 in the no-response case.
Don't use it to calculate a payload offset without checking first.
This eliminates race conditions around unregistering netdevs.
gnrc_netreg_lookup-style functions perform a DEVELHELP check on whether
that lock is held.
The change in 399e25cc was did not have the intended effect: As the
local crates still all defined 0.7 as the riot-wrappers version, that
dependency was actually down- rather than upgraded, and thus did not
effect the stabilizations.
This pulls in versions of previously nightly-only crates that can be
built on 1.65 beta.
The Cargo overrides that direct the resolver to the git repositories are
disabled while the version used in tree also happens to be a released
version of the crates, as it should be the case as per [251].
[251]: https://github.com/RIOT-OS/Release-Specs/issues/251
This will allow more components to build on 1.64 stable, and contains a
fix relevant for https://github.com/RIOT-OS/RIOT/pull/18619.
CoAP modules are held back as they appear to need an even newer nightly
than in the current riotdocker to build without feature declarations.
Previously `shell_commands` was a "catch-all" module that included
shell commands for each and every used module that has a shell
companion. Instead, the new `shell_cmds` module is now used to provide
shell commands as individually selectable submodules, e.g.
`cmd_gnrc_icmpv6_echo` now provides the ICMPv6 echo command (a.k.a.
ping).
To still have a "catch all" module to pull in shell commands of modules
already used, `shell_cmds_default` was introduced. `shell_commands`
depends now on `shell_cmds_default` for backward compatibility, but
has been deprecated. New apps should use `shell_cmds_default`
instead.
For a handful of shell commands individual selection was already
possible. Those modules now depend on the corresponding `cmd_%` module
and they have been deprecated.
This will ignore files named `core` and `core.*` (except `core.c`,
`core.h`, `core.md`, `core.txt`) placed directly in the application
folder. This is where `make` is typically called and core dump due to
a crashing native application, flashing tool, or GDB would be placed.
The pattern is intentionally quite narrow, as there is e.g. a core
source folder that should still be monitored.
File systems should be mounted via `vfs_default`, not manually by
the application.
Also, `vfs` gained the `format` sub-command, so no need to provide
it in the example application.
A change in Rust nightly features broke version 0.2.5 of the `cstr`
crate, whose nightly-only features are enabled in some examples. The
breakage was quickly fixed upstream in the 0.2.6 version, this updates
the locks.
The riotmodules dependency was missed in bc8ec6d5, and while generally
it does not severly harm builds, it does harm builds riotdocker CI where
branches are switched, which is blocked by dirty files in the checkout.
The riot-wrappers version was missed when what is now 5e75f4bd was
rebased onto fdc4e11a.
d424aaedac introduced address families to
the RIOT interpretation of tinydtls-`session_t`s. However, while fixing
the naming for the `addr` field, it did not set the `family` member for
the sessions in the `dtls-echo` example, having that example run into [an
assertion][1]. This patch fixes that.
[1]: bda40789a7/session.c (L146)
The last element of a JSON array must not be terminated with a `,`
character. As such, the configuration documented currently in the
`README.md` file of gnrc_border_router is invalid and rejected by
Kea.
Examples have previously relied on the (really: some) nightly toolchain
to be the default. As that, in practice, is a problematic assumption,
the latest toolchain to use is now determined programmatically, and that
is set explicitly on the examples that use nightly.
Workaround-For: https://github.com/rust-lang/rustup/issues/3015
Add `esp32-ci` and `esp8266-ci` as external boards to cover optional modules by CI compilation:
- examples/gnrc_networking to cover ESP32/ESP8266 `esp_wifi_ap`
- examples/gnrc_minimal to cover ESP32 `esp_wifi_enterprise`
Placing the SUIT key in the RIOT repository folder is dangerous as
a repo checkout is by most people considered a volatile location.
Since all important files are stored in git, deleting the entire folder
or it's contents is not an uncommon cleanup operation.
If the user is at that point unaware that SUIT key material is stored
in that folder, that key will then be lost.
Another workflow may involve multiple checkouts of the RIOT repository
to multiple folders to work on several features at the same time, or for
easy cross-referencing or splitting of off features from an integration
into a feature branch.
In that case each checkout would use it's own incompatible SUIT key.
To avoid all these pitfalls, place the SUIT keys outside the RIOT
repository in the $XDG_DATA_HOME directory.
This is not so much an update (riot-wrappers stays at the same commit,
riot-sys just advances by one that re-enables an optional dependency,
but of course third party crates are updated) but more reflects the
switch from using released crates to git versions.
Updating to riot-sys 0.7.7 enables support for more recent C2Rust
versions, and to riot-wrappers 0.7.22 unblocks [17990].
[17990]: https://github.com/RIOT-OS/RIOT/pull/17990
This is already unblocked and will trigger an assertion.
The code is still broken as other modes might be unblocked too,
but at least it is just as broken as it was before #17895
- move all generated manifests under $(BINDIR)/suit_files (this can be
overwritten.
- rename signed manifests so that they are of the form:
<somename>.<version>.bin, where <somename> is by default riot.suit.
This avoids cluterring BINDIR while as well having a naming scheme that
allows custom names for manifests addresssing different types of
payloads.
On microbit-v2, getting .well-known/core would otherwise result in a
stack overflow.
Consequently, some boards were removed from the list of supported boards
as the currently required RAM exceeds their capacity.