Commit graph

2,498 commits

Author SHA1 Message Date
Link Mauve
67ef9654dc xmpp-parsers: Use Borrow and Cow from core and alloc
These were needlessly imported from std.

skip-changelog: This is no public change whatsoever.
2026-02-18 19:48:49 +00:00
Link Mauve
eda94997f0 minidom: Use Borrow and Hash from core
These were needlessly imported from std.

skip-changelog: This is no public change whatsoever.
2026-02-18 19:48:49 +00:00
Link Mauve
4f11d2fe5c xmpp-parsers: Implement XEP-0507: Jingle Content Category
This gives the semantic of each video contents in a Jingle session.
2026-02-18 18:00:20 +00:00
famfo
628c2113d0 tokio-xmpp: add option to disable xmpp_parsers validation 2026-02-18 16:53:38 +00:00
famfo
4316bb02a5 tokio-xmpp: implicitly add bound_jid on received IQs 2026-02-18 17:33:31 +01:00
Jonas Schäfer
a1ade974b0 stanzastream: actually count stanzas in stream management
Looks like a horrible oversight. And this will need tests, but I'm short
on time right now.

Fixes #170.
2026-02-11 10:10:46 +01:00
Jonas Schäfer
3bda04124e tokio-xmpp: publish auth method 2026-02-11 08:23:29 +01:00
pep
65c3e0dee7 xmpp: Remove noisy debug logs
skip-changelog

Signed-off-by: pep <pep@bouah.net>
2026-01-27 21:30:14 +00:00
famfo
f7931e95b6 tokio-xmpp: implicitly add bound_jid to IQs 2026-01-27 21:23:51 +00:00
pep
cff9195d6e
xmpp: Only send RoomSubject with empty body
Signed-off-by: pep <pep@bouah.net>
2026-01-27 22:04:33 +01:00
pep
d910cb9944
tokio-xmpp: Update Changelog for AsRawFd
Signed-off-by: pep <pep@bouah.net>
2026-01-25 16:41:57 +01:00
Alexander Brook Perry
b046d36424 tokio-xmpp: gate AsRawFd behind ktls feature
`AsRawFd` was breaking compilation on Windows.

skip-changelog: ktls support hasn't been released yet

Signed-off-by: pep <pep@bouah.net>
2026-01-25 08:21:39 +00:00
pep
22292c86cc
xmpp: Replace unimplemented! and panic! with info! calls
It's great for debugging for fast-paced implementations but the codebase
has been more or less the same for years now (in a state we don't
exactly like, but it is what it is) and this is hindering things more
than helping.

Keep it at the INFO level nonetheless to make it more or less obvious
these things are not implemented.

Signed-off-by: pep <pep@bouah.net>
2026-01-15 13:19:42 +01:00
Link Mauve
58ed1592f0 xmpp-parsers: Parse the ibr feature in StreamFeatures
This was surprisingly missing before.
2026-01-09 00:49:34 +01:00
Link Mauve
d0062d9931 xmpp-parsers: Split ibr::Query into multiple structs
This introduces FieldsQuery, RemoveQuery, LegacyQuery and FormsQuery,
making this module reflect more accurately how it gets used on XMPP.
2026-01-09 00:49:17 +01:00
pep
f6d4ab9e91 minidom: Bump rxml dep
This should have been done in 19865e5f probably, before the latest
release. This generally causes users of the library to cargo update
manually.

Signed-off-by: pep <pep@bouah.net>
2026-01-08 23:01:58 +00:00
pep
a2ed5026f0 xmpp: Allow resyncs in Agent::join_room
Signed-off-by: pep <pep@bouah.net>
2026-01-04 23:33:08 +01:00
pep
6624dffe25
jid: Allow for deserializers which cannot provide borrowed strings
skip-changelog: already in there.

Signed-off-by: pep <pep@bouah.net>
2026-01-03 21:28:49 +01:00
pep
89feaa0391
jid: Gate struct introduced in 60bf821c6 behind 'serde' feature
skip-changelog: Already updated

Signed-off-by: pep <pep@bouah.net>
2025-12-27 13:32:12 +01:00
Link Mauve
60bf821c63 jid: Fix JID parts serde deserialization
serde was bypassing the validation these types rely on, making them
completely unsound in an XMPP context.

Fixes #165.
2025-12-25 14:31:23 +01:00
Link Mauve
f1e5ac6ac8 xmpp-parsers: Make Priority’s inner i8 pub
We forgot to make it pub before, but should have.

This was a regression from 893a2f8e47,
when we converted it to xso.

Fixes #166.
2025-12-25 01:17:11 +01:00
Link Mauve
8c2b1df7f7 xmpp-parsers: Fix the type of jingle_rtp/ssrc to u32
XEP-0167 has been updated to version 1.2.3, to change the type of the
'ssrc' attribute to u32 (from String).  This is in accordance with
RFC 3550 (RTP), which defines it as a randomly-chosen 32-bit unsigned
integer.

Additionally, the docstring was completely wrong.
2025-12-03 12:26:30 +01:00
pep
e22daa91f1 xmpp: make Agent.config accessible only via getter
It may not matter much for the moment as this struct shouldn't change
very much during the life of the client, but this prevents the lock from
being held too long.

Signed-off-by: pep <pep@bouah.net>
2025-11-30 16:36:58 +01:00
pep
a1a31ce11c xmpp: Merge Agent configuration into new Config struct
Signed-off-by: pep <pep@bouah.net>
2025-11-30 16:36:58 +01:00
pep
147b79ca52 xmpp: new Config struct for Agent, with bookmarks_autojoin for now
Signed-off-by: pep <pep@bouah.net>
2025-11-30 16:36:58 +01:00
pep
77acd92c62 tokio-xmpp: Ignore missing "version" stream attribute for 0114 components
From the prosody@ room:
- 0114 doesn't mention the removal of @version on the stream, and it
  refers to 3920 which has it as a MUST.
- 0114 streams have historically never used @version="1.0"
- @version="1.0" implies stream features which 0114 doesn't have.
- There was a proposal years ago to fix this but a new XEP was preferred
  (0225).

The change here uses a compile-time check, and may have to change when
support for 0225 arrives if it's still gated behind the "component"
feature (even though it may be weird to have both under the same
feature). We'll see when we get there.

Signed-off-by: pep <pep@bouah.net>
2025-11-30 16:21:28 +01:00
Link Mauve
7715d2e2a3 Add a CI pass for typos 2025-11-22 21:48:21 +00:00
Link Mauve
5ed958582b Fix all typos using the typos tool
See https://github.com/crate-ci/typos
2025-11-22 21:48:21 +00:00
Link Mauve
b014316206 Add a typos.toml file
This file lists the files to ignore, as well as the words to ignore.
2025-11-22 21:48:21 +00:00
Link Mauve
3eb8a2ae11 xmpp-parsers: Run rustfmt
Sorry, I made a mistake and pushed directly to main. T_T
2025-11-22 22:47:20 +01:00
Link Mauve
9b77b968a9 xmpp-parsers: Simplify with String::split_once() instead of splitn(2)
This directly returns a 2-uple, instead of a Vec which has to be matched
again as if we didn’t know it would return up to two elements.
2025-11-22 22:40:53 +01:00
Link Mauve
4d1838d6cc xmpp-parsers: Use ToString::to_string as a map() argument
It’s more readable than using a closure for the same thing.
2025-11-22 22:20:06 +01:00
pep
e503f016a3 xmpp: update to edition 2024
Signed-off-by: pep <pep@bouah.net>
2025-11-13 22:41:05 +01:00
pep
4a054ae802 CONTRIBUTING.md: Making a release
skip-changelog.

Signed-off-by: pep <pep@bouah.net>
2025-11-07 21:48:28 +00:00
pep
239a019174
jid: Bump to 0.12.1
Signed-off-by: pep <pep@bouah.net>
2025-11-02 01:28:30 +01:00
pep
0e7ac066d4 tokio-xmpp: Bump to 5.0.0
Signed-off-by: pep <pep@bouah.net>
2025-11-01 17:34:37 +01:00
pep
7a1dde7cfb parsers: Bump to 0.22.0
Signed-off-by: pep <pep@bouah.net>
2025-11-01 17:34:37 +01:00
pep
e95f884e44 parsers: clippy
Signed-off-by: pep <pep@bouah.net>
2025-11-01 16:30:22 +01:00
pep
00b638fc38 xso{,-proc}: clippy
This doesn't fix all of the clippy warnings in these crates. There are
decisions that needs to be made in there that I'm not willing to make.

Signed-off-by: pep <pep@bouah.net>
2025-11-01 16:30:22 +01:00
pep
9595ffe2c2
minidom: clippy
Signed-off-by: pep <pep@bouah.net>
2025-11-01 16:30:17 +01:00
pep
d60f718955
xmpp/example: Use unwrap instead of ignoring Result
skip-changelog.

Co-authored-by: Link Mauve <linkmauve@linkmauve.fr>
Signed-off-by: pep <pep@bouah.net>
2025-10-29 13:48:42 +01:00
pep
21cb5c1f7f
xmpp/example: explicit types to prevent mishap
Previously there was a forgotten `.await` at this exact place because of
the `let _`, which could have been `let _: type` to prevent this. The
`handle_events` method here returns the unit type so I just removed it.

skip-changelog: already in the changelog and not released yet

Signed-off-by: pep <pep@bouah.net>
2025-10-29 13:06:47 +01:00
pep
30b049a7d4 Bump xso to 0.3.0
Signed-off-by: pep <pep@bouah.net>
2025-10-28 13:06:51 +01:00
pep
bd986f5e5e minidom: Bump version to 0.18
Signed-off-by: pep <pep@bouah.net>
2025-10-28 13:06:51 +01:00
Link Mauve
0c253b8c4e xmpp-parsers: Deny more warnings lib-wide
All warnings denied in macro tests can actually be denied in the whole
crate.
2025-10-25 18:38:45 +02:00
pep
f0d660315f
xmpp/example: .await event handling in hello_bot
skip-changelog.

Signed-off-by: pep <pep@bouah.net>
2025-10-24 01:50:56 +02:00
pep
15ac51829f minidom: loosen type requirement on Element::attr{,_ns} getters
Signed-off-by: pep <pep@bouah.net>
2025-10-22 18:51:42 +02:00
pep
d91e99f170 minidom: re-export rxml
As it's now being used in Element::attr and ElementBuilder::attr

Signed-off-by: pep <pep@bouah.net>
2025-10-22 18:51:42 +02:00
Maxime “pep” Buquet
19865e5f1e minidom: breaking: Allow getting Element attributes by namespace
- Move Element.attributes to `AttrMap`, slowly using rxml's features and
  unrolling our own.
- Add Element::attr_ns that requires the attribute namespace.
  Element:attr defaults to rxml::Namespace::none() but the interface
  changes nonetheless for a &NcNameStr. Similar changes on
  `ElementBuilder` methods.
- Remove iterator structs for attributes, return a ref on the AttrMap
  directly as we don't need to keep attributes' internals hidden
  anymore.
- Enable rxml's `macros` feature within tests to access the `xml_ncname`
  macro.

Signed-off-by: pep <pep@bouah.net>
2025-10-22 18:51:39 +02:00
pep
48f67d034e minidom: Remove 'std' feature
The parser being used from rxml, `rxml::RawParser`, requires std, so it
doesn't make sense.

Signed-off-by: pep <pep@bouah.net>
2025-10-21 23:40:00 +02:00