Emmanuel Gil Peyrot
2ca4a61428
jid: Refactor all three JID types
...
The main reason for this refactor was to make common operations simpler,
for instance formatting a JID is now a simple clone of a String.
Instead of having three different String for each of node, domain and
resource, we now have a single String with offsets pointing to where the
at and slash are (if they are present).
This also reduces the size of a FullJid from 72 bytes to 32 bytes on
64-bit platforms (less so on 32-bit), and BareJid from 48 bytes to
32 bytes. Jid is still 40 bytes instead of 32, but that can be improved
in a future version where InnerJid has been inlined into each struct.
2023-06-20 17:46:29 +02:00
Emmanuel Gil Peyrot
21cf7a8e9d
jid: Move JidParseError into its own module
2023-06-19 23:58:46 +02:00
Emmanuel Gil Peyrot
8a787d07c0
jid: Replace icu with stringprep
...
This dependency is unmaintained, but it is written in pure Rust unlike
ICU, and doesn’t require a roundtrip through UTF-16, improving both
performances (perhaps?) and ease of compilation.
2023-06-19 23:57:54 +02:00
Emmanuel Gil Peyrot
9384fd7eeb
jid: Test for the size of our structs
...
This shows how big JIDs are represented on the stack and in other
structs.
2023-06-19 23:25:48 +02:00
99f3811c71
tokio-xmpp: Add debug for chosen DNS method
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-18 17:04:23 +02:00
f9d4419513
parsers: Document new MucUser helpers
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 19:17:06 +02:00
9fa8a9f6ba
parsers: Rename MucUser::with_status to with_statuses
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 19:16:55 +02:00
552848b3ed
xmpp: Revert part of 9c39e3 and fix code at the right place
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 19:10:45 +02:00
d52ace59a9
xmpp: add MucUser payload in send_room_private_message Messages
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 18:54:23 +02:00
b8ba74e336
parser: Add helpers on MucUser
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 18:44:37 +02:00
xmppftw
9c39e3c195
Event::RoomPrivateMessage does not expose sender FullJid ; add Agent::send_room_private_message method
2023-06-07 15:32:42 +00:00
xmppftw
6144a4c8b0
Event::RoomPrivateMessage for MUC PMs ( #85 )
2023-06-07 15:32:42 +00:00
4701f6bb69
jid: Rename Error::IcuError into Error::Stringprep
...
Avoir the "Error Error" pattern, and also use Stringprep instead of ICU
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 17:29:05 +02:00
xmppftw
2cafecb004
JID stringprep errors return a JidParseError instead of panic ( #84 )
2023-06-07 17:29:00 +02:00
d0ec8739d5
parsers: impl MessagePayload for MucUser
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 16:54:20 +02:00
6cd4addc1a
parsers: Add with_payload/with_payloads helpers on Message
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-07 16:49:19 +02:00
xmppftw
c8dcf5e7a7
Fix expected struct sizes for nightly optimizations (no more CI warnings)
2023-06-06 09:37:16 +00:00
xmppftw
099b7356a6
Include libicu-dev in CI images
2023-06-06 01:07:19 +02:00
a74eeb2910
CI: Lighter docker images
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-05 18:01:51 +00:00
xmppftw
3ac741d666
RUST_LOG=debug can now be used in tokio-xmpp examples to see XMPP network traffic
2023-06-05 15:02:35 +00:00
ae67949e7a
tokio-xmpp: Ensure id is added only to stanza
...
The previous commit didn't fix a bug where @id would be added to
elements that didn't need it / where it was invalid (e.g., stream
management).
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-05 16:34:13 +02:00
bc73af1e5e
tokio-xmpp: @id wasn't correctly added to every stanza
...
This commit moves the code adding @id to AsyncClient and SimpleClient,
instead of on the lower level send_stanza helper, which seemed to only
be used internally.
Support is also added for Component.
This removes the addition of @id on elements like <auth/> or <bind/>,
which probably weren't required anyway?
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-04 19:07:56 +02:00
xmppftw
6fa6deddcb
Message now has constructors for each type, and a with_body builder method ( #78 )
2023-06-03 12:39:55 +02:00
xmppftw
512c1d1aae
Presence now has constructors for each type variant, and a with_payload builder method ( closes #79 )
2023-06-03 08:59:19 +00:00
72ddb8b851
xmpp: Update Changelog to mention ClientBuilder::new signature change
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-02 17:59:44 +02:00
xmppftw
209bab1441
tokio_xmpp::AsyncClient and xmpp::Agent take a fully parsed Jid ( #72 )
2023-06-01 16:55:53 +02:00
7064ef5c17
minidom/examples: silence warning on unused property in struct
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-01 16:25:38 +02:00
xmppftw
aafe341b25
Agent is now Send ( closes #64 )
2023-06-01 12:00:59 +02:00
1870a83424
tokio-xmpp: cleaner outgoing debug logs
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-31 00:51:58 +02:00
5256575512
tokio-xmpp: Add debug prints for incoming packets
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-31 00:51:58 +02:00
e8a7d909c1
parsers: derive PartialEq on Iq too
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-30 19:04:33 +02:00
xmppftw
8d9288ffd7
Implement From<&Jid> for String ( close #69 )
2023-05-28 22:27:40 +02:00
xmppftw
ce255d9602
Jid (de)serialization now uses untagged representation ( close #66 )
2023-05-28 19:54:51 +02:00
8c18eeecd1
Bump version to 0.4.0
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-18 17:05:20 +02:00
943a0afe9d
tokio-xmpp: Bump version to 3.3.0
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-18 17:05:20 +02:00
5d62fc25ae
xmpp: Update homepage url
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-18 16:30:03 +02:00
48d5e19e9d
xmpp: Update changelog
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-18 16:25:45 +02:00
663b73f676
xmpp: Remove more useless features
...
They can be added directly via tokio-xmpp
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-18 16:25:22 +02:00
ad5806a358
xmpp: ensure cargo fetches 3.x updates for tokio-xmpp
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-05-18 16:12:52 +02:00
Doggo
209c5b779a
Fix bug where ContactAdded event was not firing due to a bad if statement.
2023-05-18 16:06:43 +02:00
Paul Fariello
88ab74c92f
Set tokio_xmpp::client::async_client::Config as public
2023-05-17 16:56:42 +00:00
Emmanuel Gil Peyrot
0d0335898d
minidom: Release 0.15.2
...
This finally fixes the memory corruption on closing tag for elements
with a name longer than 24 bytes.
2023-05-13 12:28:11 +02:00
Emmanuel Gil Peyrot
58f6d5494a
Bump tokio-xmpp and xmpp dependencies
...
It still builds and tests pass without any other change.
2023-04-03 12:13:37 +02:00
Emmanuel Gil Peyrot
2955a0fe60
parsers: Bump base64
...
Version 0.21 replaced base64::decode() with an Engine trait and multiple
structs implementing it for various alphabets, various performance
profiles, etc. It is slightly longer to import but in the end does the
very same thing.
2023-04-03 11:28:41 +02:00
Emmanuel Gil Peyrot
3ad616945a
parsers: Replace sha-1 with sha1
...
It is the same crate now.
2023-04-03 11:28:41 +02:00
Emmanuel Gil Peyrot
eb628704c0
minidom: Bump rxml
...
This was causing a memory corruption on closing tags for elements with a
name longer than 24 bytes. I haven’t investigated why smartstring < 1
had this bug, but it got fixed in 1.0.0 so let’s use that.
2023-04-03 11:28:41 +02:00
216d9c4a8d
xmpp: rustfmt Message events commits
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-02-27 00:07:57 +01:00
f2a599325e
xmpp: Update changelog
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-02-26 20:14:35 +01:00
c759516508
xmpp: *Message events now include an optional id
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-02-26 20:09:20 +01:00
d7a1cd71a9
xmpp: Add ServiceMessage event
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-02-26 17:42:44 +01:00