Commit graph

59 commits

Author SHA1 Message Date
xmppftw
4266368a98 JIDs now have typed and stringy methods for node/domain/resource access
Jid now has typed with_resource and stringy with_resource_str
Jid now has is_full, is_bare
2023-06-21 18:30:25 +02:00
Emmanuel Gil Peyrot
6ccc5ccace tokio-xmpp: Poll packets in a loop
This needs to be a loop in order to ignore packets we don’t care about,
or those we want to handle elsewhere.  Returning something isn’t correct
in those two cases because it would signal to tokio that the XMPPStream
is also done, while there could be additional packets waiting for us.

The proper solution is thus a loop which we exit once we have something
to return.

Fixes a deadlock when we ignore some packets.
2023-06-21 11:55:42 +00:00
ac22765f21 tokio-xmpp: Remove newline after stream:stream
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-21 12:21:52 +02:00
e9cbeb1863 tokio-xmpp: debug print stream:stream too
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-06-21 12:21:52 +02:00
Emmanuel Gil Peyrot
3c9df12606 tokio-xmpp: Update to the new jid crate
This helps a bit thanks to fewer clones, but otherwise there are very
few changes.
2023-06-20 18:59:26 +02:00
Emmanuel Gil Peyrot
17335136fe tokio-xmpp: Add syntax highlighting to debug logs
This uses syntect, and has been checked to have zero overhead when it is
disabled.
2023-06-19 19:52:38 +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
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
209bab1441 tokio_xmpp::AsyncClient and xmpp::Agent take a fully parsed Jid (#72) 2023-06-01 16:55:53 +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
Paul Fariello
88ab74c92f Set tokio_xmpp::client::async_client::Config as public 2023-05-17 16:56:42 +00:00
70cba2279e tokio-xmpp: Automatically add id on send if not present
Based on Yuka's work in !149, but moved into tokio-xmpp instead of
xmpp-rs

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-09-16 18:06:51 +00:00
Jonas Schäfer
ea366c2334 Rip out quick-xml 2022-04-24 13:27:48 +02:00
Astro
b06dda46a3 tokio-xmpp: remove useless Mutex from XMPPStream
Thanks-to: Yureka
2022-04-19 23:49:24 +02:00
Astro
d4a5a8247b minidom, tokio-xmpp: switch xml parsing to rxml 2022-04-19 20:42:30 +02:00
Astro
3901068717 tokio-xmpp: remove LocalSet from AsyncClient, making it Sync 2022-04-19 17:44:48 +02:00
Yureka
4920ae83fd tokio_xmpp: missing std::error::Error impls 2022-03-23 12:09:26 +01:00
Jonas Schäfer
3cbc7ffacd Publish the starttls helper function
Without it, it seems impossible to start TLS on an XMPPStream object,
preventing any use of that object on its own (not wrapped into
AsyncClient or somesuch).
2022-02-08 20:20:27 +00:00
Emmanuel Gil Peyrot
edba9c9f5d tokio-xmpp: Remove an unwrap() in DNS name parsing 2021-12-01 19:13:31 +00:00
Emmanuel Gil Peyrot
4a8bda1287 tokio-xmpp: Bump dependencies
This removes the pest, semver-parser and ucd-trie transitive
dependencies.
2021-12-01 19:13:31 +00:00
fe2a94456c tokio-xmpp: remove deny(unused) as long as it breaks nightly
Find a way to make it conditional on stable or something? Is that even
possible?

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-09-02 03:21:56 +02:00
moparisthebest
6fc016c006 Add into_inner() to tokio_xmpp::SimpleClient 2021-03-24 02:26:04 -04:00
Paul Fariello
15255a6b30 Extend build fix workaround from 1.48 to 1.46 2021-03-08 14:50:04 +00:00
Paul Fariello
8d3c7a3bd6 Add TLS server roots from webpki 2021-02-18 02:38:32 +00:00
Paul Fariello
ae52f6444d Add support for both rustls and tlsnative 2021-02-18 02:38:32 +00:00
Paul Fariello
5463a0aa99 Srv entry is no longer optional when using connect_with_srv 2021-01-12 23:17:34 +01:00
Paul Fariello
7b4a6e3ace Use ServerConfig enum for tokio-xmpp client config
And expose connect_to_host from happy_eyeballs to let clients explicitly
choose to use SRV or not. (Rename connect to connect_with_srv)
2021-01-12 23:17:34 +01:00
Paul Fariello
08e58e44b1 Fmt for tokio-xmpp Client initialisation 2021-01-12 23:17:34 +01:00
Paul Fariello
fb1b4cdbbc Use a Config struct for async_client 2021-01-12 23:17:34 +01:00
Paul Fariello
c6376e1d28 Add server and port to connect_with_jid method on async_client 2021-01-12 23:17:34 +01:00
Emmanuel Gil Peyrot
521bf6e7d7 tokio-xmpp: Bump sasl to 0.5 2021-01-12 19:26:21 +01:00
Emmanuel Gil Peyrot
dea95d06e1 tokio-xmpp: Bump trust-dns to 0.20 2020-12-30 03:18:17 +01:00
Emmanuel Gil Peyrot
a38ff39b77 tokio-xmpp: Bump tokio to 1.0 and replace tokio-tls with tokio-native-tls 2020-12-30 03:14:21 +01:00
Emmanuel Gil Peyrot
e1ff9da681 tokio-xmpp: Remove workaround for unknown broken server
This is so we can find and fix the server, instead of cargo culting this
workaround forever.
2020-12-26 16:25:34 +01:00
Astro
f6cb4a8080 tokio-xmpp: rustfmt 2020-12-25 02:25:17 +01:00
Astro
52a2d962ee tokio-xmpp: add build script to work around build fail on rustc 1.48 2020-12-25 02:05:02 +01:00
Astro
439a09122a Revert "tokio-xmpp: remove unneeded mut on self"
This reverts commit e23c161c0a. It broke
compilation on Rustc 1.45.
2020-12-19 01:09:26 +01:00
e23c161c0a tokio-xmpp: remove unneeded mut on self
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-08-30 01:57:19 +02:00
Emmanuel Gil Peyrot
3db9eeae2f tokio-xmpp: Bump tokio-util 2020-08-03 15:54:44 +00:00
Astro
e501addb96 tokio-xmpp: use xmpp_parsers::ns everywhere 2020-05-30 01:25:06 +02:00
Astro
1e1f593233 tokio-xmpp: rustfmt 2020-05-30 00:45:22 +02:00
Astro
537b4825a8 tokio-xmpp: rename Client to AsyncClient 2020-05-30 00:43:53 +02:00
Astro
eb13634571 tokio-xmpp: rename OneshotClient to SimpleClient 2020-05-30 00:43:48 +02:00
Astro
3e2b51f148 tokio-xmpp: improve error logging 2020-05-30 00:43:48 +02:00
Astro
2cd1ad217b tokio-xmpp: add onshot_client 2020-05-30 00:43:48 +02:00
Astro
c13712b158 tokio-xmpp client: condense fn connect(), refactor out into stream_features 2020-05-30 00:43:35 +02:00
Astro
4d24e6bebb tokio-xmpp: name Event::Online fields, add resumed flag 2020-05-29 18:21:31 +02:00
33ee71bcb4 tokio-xmpp: update for minidom changes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00