Commit graph

276 commits

Author SHA1 Message Date
xmppftw
df106dfbaf Relative dependencies 2024-08-12 10:39:09 +00:00
Jonas Schäfer
54e1a98cde parsers: add starttls XSOs 2024-08-12 12:35:26 +02:00
Jonas Schäfer
3c78310272 parsers: add umbrella enum for SASL elements
This is useful if, for example during stream negotiation, you want to
parse SASL elements and nothing else. It is also useful if you want to
write down an enum of all XMPP-related stream-level elements you accept
and don't want to loose your fingers typing all the SASL options.
2024-08-12 12:32:12 +02:00
Jonas Schäfer
fc68a57757 parsers: provide stub FromXml/AsXml implementations on Presence 2024-08-12 12:32:12 +02:00
Jonas Schäfer
b931af3c25 parsers: provide stub FromXml/AsXml implementations on Iq 2024-08-12 12:32:12 +02:00
xmppftw
e153468117 Link is link, remove doc warning 2024-08-11 17:22:31 +00:00
Jonas Schäfer
cbc4648b3c parsers: port SASL over to derive macros
You may note that I removed the `exhaustive` flag on the
DefinedCondition enum. This is because other elements in the same
namespace may occur as siblings of that enum, hence using `exhaustive`
may cause incorrect parse errors.

(If parsing attempts to process the `<text/>` child as DefinedCondition
first, DefinedCondition will return a fatal parser error if it is set as
exhaustive because no condition matches `text`.)
2024-08-11 07:58:13 +02:00
Jonas Schäfer
1ecb95881c xso: add support for extracting tuples 2024-08-11 07:58:12 +02:00
Jonas Schäfer
2ff81b3923 xso: add support for fallible parsing and serialisation 2024-08-11 07:45:05 +02:00
Emmanuel Gil Peyrot
d706b318c3 xmpp-parsers: Remove the generate_element!() macro
The last users have now been converted to xso.
2024-08-09 16:08:26 +02:00
Emmanuel Gil Peyrot
4f81411410 xmpp-parsers: Convert Jingle to xso 2024-08-09 16:08:26 +02:00
Emmanuel Gil Peyrot
cb2c4133fe xmpp-parsers: Convert Forwarded to xso 2024-08-09 16:08:26 +02:00
Emmanuel Gil Peyrot
6b167ed677 xmpp-parsers: Convert disco#info identity to xso 2024-08-09 16:08:26 +02:00
Emmanuel Gil Peyrot
2690e62060 xmpp-parsers: Convert roster item to xso 2024-08-09 16:08:26 +02:00
Emmanuel Gil Peyrot
d4f6812386 xmpp-parsers: Convert cert_management to xso
This introduces a breaking change by moving from a bool to an
Option<NoCertManagement>, which will be reverted eventually once we add
support for #[xml(flag)] types of children.
2024-08-09 16:08:26 +02:00
Jonas Schäfer
fb80bb7532 xso: add support for dynamic enums 2024-08-08 15:25:40 +00:00
Emmanuel Gil Peyrot
8e16ae1cbb xmpp-parsers: Integrate sasl2 and sasl_cb into stream:features 2024-08-08 13:52:01 +00:00
Emmanuel Gil Peyrot
7238ebc35e xmpp-parsers: Integrate bind2 and sm into sasl2 2024-08-08 13:52:01 +00:00
Emmanuel Gil Peyrot
27e4499153 xmpp-parsers: Simplify SASL mechanisms type
These can be a simple String for now.
2024-08-08 13:52:01 +00:00
Emmanuel Gil Peyrot
d8e08df464 xmpp-parsers: Implement XEP-0478: Stream Limits Advertisement
This allows servers to communicate their maximum stanza limit, as well
as idle time limit.
2024-08-07 20:59:30 +02:00
Emmanuel Gil Peyrot
3f61050944 xmpp-parsers: Implement XEP-0388: Extensible SASL Profile 2024-08-06 16:36:11 +02:00
Emmanuel Gil Peyrot
de2ba97f79 xmpp-parsers: Implement XEP-0440: SASL Channel-Binding Type Capability 2024-08-06 16:36:10 +02:00
Emmanuel Gil Peyrot
f16fb6a6ef xmpp-parsers: Convert the remaining bind2 elements to xso 2024-08-06 16:36:10 +02:00
Emmanuel Gil Peyrot
f0f4299b02 xmpp-parsers: Parse the bind feature in its module, with required
This is different from the bind query or the bind response, despite all
three having the same element namespace and name…  Annoying!
2024-08-06 16:14:42 +02:00
xmppftw
8aca413fc3 Collect unknown stream features in StreamFeatures.others 2024-08-05 21:38:29 +02:00
Jonas Schäfer
fda4a9ff29 xso: implement transparent structs 2024-08-05 15:13:39 +00:00
Emmanuel Gil Peyrot
fea915daf1 xmpp-parsers: Make MAM metadata children pub
This had been forgotten when I converted it to xso.
2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
e1da3410ba xmpp-parsers: Convert MAM prefs to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
0d3e73ec74 xmpp-parsers: Convert bind2 to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
f37b7b4dfd xmpp-parsers: Convert bind to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
2df243966f xmpp-parsers: Convert blocking to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
ce0f3bec0e xmpp-parsers: Convert DataForms validation to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
95d08e3c1e xmpp-parsers: Simplify RTT implementation using more xso
Especially exhaustive enums are super useful for this kind of pattern.
2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
f049e3626b xmpp-parsers: Convert OOB to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
79e224a02a xmpp-parsers: Convert bookmarks to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
9e9186ef7b xmpp-parsers: Convert MUC to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
57c2eeadfc xmpp-parsers: Convert Jingle RTP to xso 2024-08-05 15:02:25 +00:00
Emmanuel Gil Peyrot
4e2af36186 xmpp-parsers: Implement FromXmlText and AsXmlText for default types
This allows such default type wrappers to be used in other xso elements.
2024-08-05 15:02:25 +00:00
Jonas Schäfer
0361b5905b xso: implement catch-all for unknown elements 2024-08-05 15:33:57 +02:00
xmppftw
fa99c09585 Indicate which feature flag for each module/type 2024-08-05 11:14:41 +02:00
xmppftw
aa26d98e2a Check attr="" parse to Some("") in Option<String> 2024-08-05 05:49:14 +00:00
Jonas Schäfer
f466b18622 parsers: port version to derive macros
We can *finally* do it!
2024-08-04 16:07:14 +02:00
Jonas Schäfer
c7c180feb6 xso: implement support for defaulting extracts 2024-08-04 16:07:14 +02:00
Emmanuel Gil Peyrot
aa518fd6c1 xso-proc: add support for extracting attributes into collections 2024-08-04 13:38:52 +02:00
Jonas Schäfer
8732ca9a28 xso: add support for extracting into collections 2024-08-03 18:19:31 +02:00
Emmanuel Gil Peyrot
7ab375fad7 xmpp-parsers: Convert ext disco and Jingle ICE-UDP to xso 2024-08-03 15:48:50 +02:00
Jonas Schäfer
df63c2a78f xso: allow omission of namespace and name on extracts
This is a quality-of-life improvement, as it may save lots of typing in
the common case (see the diff in parsers).
2024-08-03 15:25:46 +02:00
Emmanuel Gil Peyrot
48855843d4 xmpp-parsers: Convert some more elements to xso 2024-08-03 13:21:51 +00:00
Jonas Schäfer
1e0bccc504 parsers: port extracts over to derive macros 2024-08-03 15:17:30 +02:00
Jonas Schäfer
2c5f1f096b xso: implement support for extracting data from child elements 2024-08-03 15:17:30 +02:00