1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-15 17:43:51 +01:00
bors[bot] 1710650256
Merge #19601
19601: SUIT: Prepared manifests r=chrysn a=chrysn

### Contribution description

While SUIT can generally be used already with manifests that are "dropped into memory" (by any mechanism), the convenient SUIT worker thread mechanism so far could not be used with it.

This adds the suit_worker_try_prepare / suit_worker_trigger_prepared
pair for using the SUIT worker, and breaks suit_handle_manifest_buf out
of suit_handle_url (where the latter now calls the former).

#### By-catch

As part of factoring out reaping of the zombie worker thread, a locking
error that deadlocks the SUIT worker in case the race between the mutex
being unlocked and the thread being reaped hits the necessary handling
code is fixed (and mutex_unlock is called in the error path).

### Testing procedure

SUIT tests should pass.

https://github.com/RIOT-OS/RIOT/pull/19659 provides a demo of how the new API is used.

### Issues/PRs references

I think that the currently employed mechanism of having a resource to which a URL with the manifest gets posted is contrary to the design goals of SUIT -- the signed manifest should be what justifies the device to spend resources (eg. get data from a server), not a URI that is just *not* signed.

This PR makes it easier to implement a resource to which the manifest can be POSTed, rather than a CoAP URI that represents the manifest, as is proposed (but not mature) in 
https://github.com/RIOT-OS/RIOT/pull/19659.

[edit: Adjusted to reflect decisions made during review]

Co-authored-by: chrysn <chrysn@fsfe.org>
2023-05-27 19:14:05 +00:00
..
2022-09-16 14:00:35 +02:00
2022-03-11 09:24:12 +01:00
2023-01-07 09:47:44 +01:00
2023-05-19 15:03:42 +02:00
2023-05-19 15:09:54 +02:00
2022-01-13 17:50:59 +01:00
2023-05-24 09:53:33 +02:00
2023-05-24 09:53:34 +02:00
2023-02-17 20:09:53 +00:00
2022-09-29 22:01:37 +02:00
2023-05-27 19:14:05 +00:00
2022-09-26 19:06:46 +02:00
2023-02-27 12:31:03 +01:00
2022-03-11 09:20:24 +01:00
2023-02-27 12:31:03 +01:00
2023-05-24 09:53:35 +02:00
2022-12-05 16:13:21 +01:00
2023-02-23 16:44:24 +01:00
2023-05-19 15:09:55 +02:00
2023-05-27 21:01:18 +02:00
2023-03-17 12:09:01 +01:00
2023-05-19 15:09:55 +02:00
2023-04-26 00:53:14 +02:00
2023-05-24 09:53:35 +02:00