Commit graph

131 commits

Author SHA1 Message Date
6c8855a6d5 tokio-xmpp: Update Changelog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:34:04 +02:00
96f6de787f tokio-xmpp: Re-export jid structs, minidom::Element, and parsers module
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:34:04 +02:00
a13f05037c tokio-xmpp: update dependencies (jid, webpki-roots)
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:34:04 +02:00
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
85bdcdb131 tokio-xmpp: Bump idna dependency 2023-06-21 12:05:33 +00: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
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
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
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
Paul Fariello
88ab74c92f Set tokio_xmpp::client::async_client::Config as public 2023-05-17 16:56:42 +00: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
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
826914da54
parsers, tokio-xmpp: remove unnecessary jid feature alias
It can be done directly using `jid = { version = "*", features =
["stringprep"] }` even though jid is imported from another lib.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-01-15 21:44:27 +01:00
Emmanuel Gil Peyrot
ebd7df2dcf tokio-xmpp: Bump all dependencies
No code change was needed this time, it seems.
2022-09-20 21:17:26 +02: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
Astro
1613a1c667 tokio-xmpp: Release 3.2.0 2022-07-13 20:50:10 +02: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
Emmanuel Gil Peyrot
84622607ed tokio-xmpp: Bump xmpp-parsers 2022-03-07 13:14:47 +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
Astro
4766a01d01 tokio-xmpp: release 3.1.0 2021-11-23 19:06:09 +01: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
Astro
48ce51b4ad tokio-xmpp: release 3.0.0 2021-01-13 17:28:03 +01:00
Astro
acdc48072d tokio-xmpp: extend authors in Cargo.toml 2021-01-13 17:22:31 +01:00
Emmanuel Gil Peyrot
1e8d3c39bf xmpp-parsers: Release version 0.18.0 2021-01-13 00:39:16 +01: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
36aaa3e681
jid: Add serde support behind feature
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-30 23:24:48 +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
Astro
a4325c787a tokio-xmpp: doc 2020-03-16 00:34:46 +01:00
Astro
b6828b9674 tokio-xmpp: remove obsolete TODOs 2020-03-16 00:11:52 +01:00
Astro
23cb34e026 tokio-xmpp: rewrite for futures-0.3 2020-03-06 18:01:31 +01:00
Astro
bded964c38 tokio-xmpp: update dependency xml5ever 2020-03-01 00:40:45 +01:00
89d92ced73 parsers: 0.17.0 release
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-02-15 02:27:26 +01:00
44eaa5a6ea tokio-xmpp: Prevent XmppCodec from producing invalid stanza
This bug was introduced by 2e97f4de2e, to
fix another bug where the parser would choke on whitespace.

The bug would manifest whenever a stanza was sent in different parts,
for example:
<< "<message "
<< "type='chat><body>foo</body></message>"

Would produce the following once parsed:
`<messagetype='chat'><body>foo</body></messagetype='chat'>`

This commit ensures this doesn't happen anymore (by not trimming
whitespaces before feeding the parser), and also ensures that
whitespaces are now handled at the correct layer.

The removal of xmpp_codec::test_lone_whitespace only happens because I'm
not sure if it's supposed to be here anymore. Maybe it should be at a
different layer? Or written differently?

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-01-22 01:25:15 +01:00
db9f7a76be
tokio-xmpp: Add some ugly premature logging useful for debugging
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-09 03:46:03 +01:00
fd2bd2468d tokio-xmpp: changer .into_iter to .iter to avoid ambiguity
Follow compiler warnings. See
https://github.com/rust-lang/rust/issues/66145

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-07 23:43:54 +00:00
141d11ad38
minidom: Don't prepend xml prelude in writer. Add new API
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-11-10 01:01:42 +01:00
a104ebc3f6
Rustfmt pass, and rustfmt --check in CI"
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-23 01:36:02 +02:00
e1b53eae3c Remove unused .gitlab-ci.yml files
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-23 01:02:11 +02:00
2dd116c0e8
Update repo and homepage in Cargo.toml files
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-20 01:04:22 +02:00
fa118433df
Create Cargo.toml workspace file. Add patch directives to override path
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-19 17:57:43 +02:00
34aa710366
Prepare for merge: Move all tokio-xmpp files into tokio-xmpp/
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-18 14:16:01 +02:00