-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
.\" Copyright 2025 Shota FUJI
.\"
.\" Licensed under the Zero-Clause BSD License or the Apache License, Version 2.0, at your option.
.\" You may not use, copy, modify, or distribute this file except according to those terms. You can
.\" find a copy of the Zero-Clause BSD License at LICENSES/0BSD.txt, and a copy of the Apache License,
.\" Version 2.0 at LICENSES/Apache-2.0.txt. You may also obtain a copy of the Apache License, Version
.\" 2.0 at <https://www.apache.org/licenses/LICENSE-2.0>
.\"
.\" SPDX-License-Identifier: 0BSD OR Apache-2.0
.TH sood_parse 3
.SH NAME
sood_parse \- Parse SOOD message header used for Roon service discovery
.SH SYNOPSIS
.nf
.B #include <sood.h>
\fBsood_result sood_parse(sood_message \fR*\fIdst\fB,
const char \fR*\fIptr\fB,
size_t \fIlen\fB);
.fi
.SH DESCRIPTION
Parses an array of bytes as SOOD message header, then populate
.I *dst
with parsed data if a start of
.I *msg
is valid SOOD message header bytes.
.PP
This is low-level utility function. To simply parse Roon Server info,
use
.BR sood_discovery_response_parse (3)
instead.
.SH RETURN VALUE
See
.BR sood (3)
for a list of return values.
.SH CAVEATS
User should not assume an entire bytes is valid SOOD message based sorely
on the result of
.BR sood_parse ()
- this function returns
.B SOOD_OK
even if a message contains malformed body after the header part.
.SH EXAMPLES
An example of the use of
.BR sood_parse ()
is shown in
.BR sood_message_iter_next (3)\fR.
.SH SEE ALSO
.BR sood (3),
.BR sood_discovery_response_parse (3),
.BR sood_message_iterator (3)