Commit log

d98ed61 xmpp: Agent::send_room_private_message takes RoomPrivateMessageSettings

xmppftw created

897c2ab tokio-xmpp: Refactor to provide channel-binding for ktls

Click to expand commit body
Instead of having a second method to fetch channel-binding from the
TlsStream, do it directly in the connect() method, since after that we
don’t have enough information to fetch it any longer when using ktls.

Emmanuel Gil Peyrot created

7991cef Add tests for crate exports ; add structure to imports/exports

xmppftw created

1b4a307 xmpp-parsers: Convert DiscoInfoResult to xso

Click to expand commit body
This disables some tests, but those were controversial anyway.

I was thinking about replacing the Feature struct with a plain String,
what do you think about it?

Emmanuel Gil Peyrot created

893a2f8 xmpp-parsers: Convert Presence to xso

Click to expand commit body
The two remaining issues, which led to two ignored tests, are that
priority now gets always serialized, and that we don’t reject duplicated
identical xml:lang in statuses.

Emmanuel Gil Peyrot created

3fd8285 xmpp: RoomNick is newtype wrapper for ResourcePart

xmppftw created

5477cf1 xmpp: Use ResourcePart for sender of room events

xmppftw created

c16456f parsers/xmpp: MUC bookmarks have nickname typed as ResourcePart

xmppftw created

8c033a3 xso: Implement FromXmlText and AsXmlText for NodePart,DomainPart,ResourcePart

xmppftw created

3c77ee0 xmpp-parsers: Add support for <alternative-session><sid/></>

Click to expand commit body
This was previously unimplemented due to how the enum was treated, now
that we moved the reason element to xso we can describe it properly and
thus implement everything it supports.

This causes one regression on xml:lang validation, but we can live with
that until xso implements such verification.

Emmanuel Gil Peyrot created

7074344 xso: correctly handle I/O errors during start event in from_reader

Click to expand commit body
Without this, it'd panic, which is "not ideal", as they say.

Jonas Schäfer created

cd43aa2 xmpp-parsers: Convert the Actor enum into a struct

Click to expand commit body
XEP-0045 doesn’t specify what to do in the case the actor contains both
a @jid and a @nick, so let’s not encode anything special about that
here.

In addition this converted it to use xso.

Supersedes !196.

Fixes #88.

Emmanuel Gil Peyrot created

ce57ee4 tokio_xmpp: add example to demonstrate stream management

Jonas Schäfer created

35ce862 client: use stanzastream!

Jonas Schäfer created

80f899d tokio_xmpp: implement high-level, resilient stanza stream

Jonas Schäfer created

56ce57e xmlstream: use Stanza for XmppStreamElement

Click to expand commit body
Oftentimes, Stanza is at hand anyway, so this saves some typing.

Jonas Schäfer created

c6f928d xmlstream: make sink implementation generic

Click to expand commit body
This allows to use any serialisable type. The advantage is that moves
and clones are avoided (which would otherwise be needed to construct
e.g. a XmppStreamElement from a Stanza or Message).

Jonas Schäfer created

519718d xmlstream: add support for boxing the transport

Click to expand commit body
This is useful in situations where we don't want to care about the
specific type of the underlying transport.

Jonas Schäfer created

2388f23 xmlstream: support receiving stream errors

Jonas Schäfer created

8c3c8c7 hello_bot accepts a list of room JIDs to join to say hello

xmppftw created

fdec34a Add JoinRoomSettings, LeaveRoomSettings, and RoomMessageSettings

xmppftw created

7fca029 xmpp-parsers: Fix jingle thumbnails wrt the XEP changes

Click to expand commit body
Version 0.4.2 added a restriction on width and height to be in the
0..65535 range.  The media-type attribute has always been optional as
well.

Emmanuel Gil Peyrot created

6d7a95b Remove xmpp::Event::{JoinRoom,LeaveRoom,LeaveAllRooms}

xmppftw created

fa039c5 xso: improve wording in AsXmlText and AsOptionalXmlText

Jonas Schäfer created

580fdef Added a test for prosody bug 1664 workaround

xmppftw created

0115855 xmpp: Adapt to xmpp-parsers changes wrt autojoin

Click to expand commit body
This attribute is now a simple bool instead of an enum.

Emmanuel Gil Peyrot created

866991b xmpp-parsers: Replace all instances of bool attributes with bool

Click to expand commit body
These bring basically nothing, so we can throw them away alongside their
generator macro.

Emmanuel Gil Peyrot created

45be2b3 tokio-xmpp: Add 'component' feature

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

16b2325 xmpp-parsers: Convert vCard-temp to xso

Click to expand commit body
This also keeps all additional elements in the vCard, so they get
serialized back on the wire instead of being dropped.

Emmanuel Gil Peyrot created

aaf2dd7 xmpp-parsers: Convert bookmarks2 to xso

Emmanuel Gil Peyrot created

1c22e17 xmpp-parsers: Convert Jingle File Transfer to xso

Emmanuel Gil Peyrot created

af0bd35 xmpp-parsers: Implement XEP-0490: Message Displayed Synchronization

Click to expand commit body
This XEP is used to synchronize where each client has stopped reading a
conversation, so that we can e.g. stop displaying a notification when
the user has read this particular message on a different device.

Emmanuel Gil Peyrot created

d738939 xmpp-parsers: Simplify hash conversion to Vec

Click to expand commit body
Use `GenericArray::to_vec()` and `slice::to_vec()` directly.

Emmanuel Gil Peyrot created

e358bd4 sasl: Simplify hash conversion to Vec

Click to expand commit body
Use `GenericArray::to_vec()` directly.

Emmanuel Gil Peyrot created

57e6e98 xmpp-parsers: Add test for StartTLS

Click to expand commit body
This tests each element we support, and also keep track of the sizes.

Additionally the copyright year was wrong.

Emmanuel Gil Peyrot created

5e9635a rustfmt has changed, so update xso so CI is happy again

Emmanuel Gil Peyrot created

c390af2 jid: Remove the std feature

Click to expand commit body
Since Rust 1.81, std::error::Error has been moved to core::error::Error,
which we can use without depending on std.

Emmanuel Gil Peyrot created

dc842c4 sasl: Make this crate no_std

Click to expand commit body
We mostly had to import from alloc some structs that are part of the std
prelude, such as Vec and String.

Emmanuel Gil Peyrot created

0267383 sasl: Improve frame parsing

Click to expand commit body
All keys only have a single char, so avoid allocating a whole String for
them.  Also move to a BTreeMap as this is more efficient on such keys.

Emmanuel Gil Peyrot created

7d8ffe4 xso: add support for ignoring unknown stuff in extracts

Jonas Schäfer created

66233b0 xso: add support for ignoring unknown children

Jonas Schäfer created

290460b xso: add support for ignoring unknown attributes

Jonas Schäfer created

74c81b6 xso: add `from_reader`

Jonas Schäfer created

347e8d6 Impl Error for ReadError

Alvaro Parker created

c24275c tokio-xmpp: Add support for kernel TLS

Click to expand commit body
This drastically improve the debuggability of the network parts, by
moving the task of encrypting/decrypting TLS packets from userland to
the kernel.  This makes them appear in clear in strace as sendto() and
recvfrom().

I introduced a new tls-rust-ktls feature which depends on both rustls
and ktls, but isn’t enabled by default since it probably isn’t available
on every computer.  It requires the tls kernel module to be loaded,
which then can offload encryption/decryption to dedicated hardware if
available.

I have tested this change on Linux 6.11 on a rk3588.

Emmanuel Gil Peyrot created

904bdea add debug to `StreamHeader`

Alvaro Parker created

ebfae4b tokio-xmpp: Run rustfmt on that one example

Click to expand commit body
It started breaking CI for some reason, probably a rustfmt update.

Emmanuel Gil Peyrot created

2ff89a9 fix typos

Alvaro Parker created

a503c85 parsers: add support for handled-count-too-high error

Jonas Schäfer created

0f0759b parsers: add support for <optional/> in stream management feature

Jonas Schäfer created