1
0
mirror of https://gitlab.com/xmpp-rs/xmpp-rs.git synced 2024-07-02 19:30:36 +02:00
Commit Graph

1418 Commits

Author SHA1 Message Date
Emmanuel Gil Peyrot
3df447de97 jid: Implement PartialEq between Jid and BareJid/FullJid.
This can be useful at times.
2020-12-10 20:45:01 +01:00
Emmanuel Gil Peyrot
71b995731a xmpp-parsers/mam: Use .is_empty() instead of Vec’s PartialEq. 2020-12-10 20:45:01 +01:00
Emmanuel Gil Peyrot
63d940b339 xmpp-parsers/blocking: Use .is_empty() instead of Vec’s PartialEq. 2020-12-10 20:37:06 +01:00
Emmanuel Gil Peyrot
7d19101e6e Bump outdated dependencies in minidom and xmpp-parsers. 2020-11-13 19:01:16 +01:00
Emmanuel Gil Peyrot
0c0be96ec4 xmpp-parsers/bookmarks: Make @name actually optional
No idea why these two attribute got considered required, maybe a wrong
read of the spec.
2020-10-30 10:38:28 +00:00
Paul Fariello
3a73ce3fd4 Make date::DateTime inner chrono::DateTime public 2020-10-30 08:36:47 +01:00
Emmanuel Gil Peyrot
c25e87b04f xmpp-parsers: Fix the size tests on AArch64 and amd64
These two changes were caused by the HashMap implementation having been
switched to hashbrown, and thus using less memory and being faster.
2020-10-29 18:39:48 +01:00
Emmanuel Gil Peyrot
5cd7d5fe57 xmpp-parsers: Fix size tests on AArch32 2020-10-29 18:39:22 +01:00
Maxime “pep” Buquet
e1f2e2653a
xmpp: re-add bits that weren't moved from wait_for_events to handle_iq
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-09-07 11:41:40 +02:00
Maxime “pep” Buquet
a8e13a61d7
xmpp: Remove unused import Element
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-09-07 11:40:20 +02:00
Maxime “pep” Buquet
9d17a79813
xmpp: split wait_for_events methods
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-09-07 09:58:26 +02:00
Maxime “pep” Buquet
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
Emmanuel Gil Peyrot
db86aa9d5a xmpp-parsers: Bump RustCrypto crates 2020-07-29 11:07:28 +00:00
Maxime “pep” Buquet
b85aa29377
Finish removing 'rs' suffix in libs
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-07-15 10:49:50 +02:00
Emmanuel Gil Peyrot
714d850e69 Remove the -rs suffix of jid, minidom and xmpp
We know those are Rust libraries, no need to add it to the path.  This
synchronises their directory with the crate name, hopefully reducing
confusion.
2020-06-22 02:17:32 +02:00
e501addb96 tokio-xmpp: use xmpp_parsers::ns everywhere 2020-05-30 01:25:06 +02:00
1a06a09774 xmpp-parsers: add ns::TLS 2020-05-30 01:14:29 +02:00
91f4548ef0 xmpp-rs: update tokio_xmpp API 2020-05-30 00:45:42 +02:00
1e1f593233 tokio-xmpp: rustfmt 2020-05-30 00:45:22 +02:00
537b4825a8 tokio-xmpp: rename Client to AsyncClient 2020-05-30 00:43:53 +02:00
eb13634571 tokio-xmpp: rename OneshotClient to SimpleClient 2020-05-30 00:43:48 +02:00
3e2b51f148 tokio-xmpp: improve error logging 2020-05-30 00:43:48 +02:00
2cd1ad217b tokio-xmpp: add onshot_client 2020-05-30 00:43:48 +02:00
c13712b158 tokio-xmpp client: condense fn connect(), refactor out into stream_features 2020-05-30 00:43:35 +02:00
4d24e6bebb tokio-xmpp: name Event::Online fields, add resumed flag 2020-05-29 18:21:31 +02:00
Maxime “pep” Buquet
f8cb643590
xmpp: Add ChatMessage and GroupMessage events; API likely to change
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-12 19:55:21 +02:00
Maxime “pep” Buquet
597f5a3ccb
Update Changelogs re jid / serde
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-07 21:39:37 +02:00
Maxime “pep” Buquet
8bf643a84f
jid: implement custom (De)Serializer for a prettier visual
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-01 02:26:58 +02:00
Maxime “pep” Buquet
91c8045329
jid: impl &{Bare,Full}Jid for String
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-01 02:25:30 +02:00
Maxime “pep” Buquet
36aaa3e681
jid: Add serde support behind feature
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-30 23:24:48 +02:00
Maxime “pep” Buquet
df47130823
README: add lib descriptions
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-23 23:19:37 +02:00
Maxime “pep” Buquet
36d77bcae4
Add README
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-22 00:06:50 +02:00
Maxime “pep” Buquet
47ab4446d1
parsers: remove unused imports
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-22 00:02:54 +02:00
Maxime “pep” Buquet
d4bbeb2c6c minidom: Add todo in Prefixes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
33ee71bcb4 tokio-xmpp: update for minidom changes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
eca44f5602 jid: update for minidom changes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
fd158d9a08 parsers: rustfmt
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
fa8b9ed199 minidom: rustfmt
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
3d71e37e0c minidom: Ensure there is no colon in name when creating element
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
937e2380b9 minidom: Make ElementBuilder::prefix fail on adding duplicate prefix
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
770dff7cb0 minidom: Don't borrow prefix in Prefixes.get
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
1f2d7aa99d minidom: Rework Prefixes internal structure
Change the mapping in Prefixes to Prefix -> Namespace instead of
Namespace -> Prefix. This allows us to not have duplicate prefixes
anymore, but requires us to store the prefix on Element. This prefix is
only taken as a hint anyway and used only when coming from the reader.

This commits also partially removes the possibility to add prefixes
when creating an Element via `Element::new`, `Element::builder` or
`Element::bare`. Proper errors should be added in the following commits.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
429949102d minidom: remove unused Rc
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
6308250c17 parsers: update for minidom API changes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
40b92d64e2 minidom: clarify meaning of Element.name (being the local name)
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
171e7f1f34 minidom: ensure prefix is extracted out of provided name when creating Element
I would have liked to handle all of this in `Element::new` only, but I
also have to do it in `Element::builder` unfortunately because then
element builder then pushes prefixes it gathered itself.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
f151306fbe minidom: forcing a namespace on Element. Stop requiring prefixes.
Below is what I think I did.

A few changes:
- Change prefixes to be something less important in the API.
- Rework the Element struct to force a namespace. In XMPP everything is
  namespaced.
- Remove parent ref on what was previously NamespaceSet and is now
  Prefixes.

More specifically this means `Element::new` has changed to require
`Element`'s new new properties as parameters. `Element::builder` and
`Element::bare` now require a namespace unconditionally.
`Element::prefix` has been removed.

This new API is based on the fact that prefixes are non-essential
(really just an implementation detail) and shouldn't be visible to the
user. It is possible nonetheless to set custom prefixes for
compatibility reasons with `ElementBuilder::prefix`. **A prefix is
firstly mapped to a namespace, and then attached to an element**, there
cannot be a prefix without a namespace.

Prefix inheritance is used if possible but for the case with no
prefix ("xmlns") to be reused, we only check custom prefixes declared on
the tag itself and not ascendants. If it's already used then we generate
prefixes (ns0, ns1, ..) checking on what has been declared on all
ascendants (plus of course those already set on the current tag).

Example API:

```rust
let mut elem = ElementBuilder("stream", "http://etherx.jabber.org/streams")
  .prefix(Some(String::from("stream")), "http://etherx.jabber.org/streams)
  .prefix(None, "jabber:client")
  .attr(..)
  .build();

assert_eq!(elem.ns(), String::from("http://etherx.jabber.org/streams"));
```

See also the few tests added in src/tests.

TODO: Fix inconsistencies wrt. "prefix:name" format provided as a name
when creating an Element with `Element::new` or `Element::bare`.
`Element::builder` already handles this as it should, splitting name and
prefix.
TODO: Change `Element::name` method to `Element::local_name` to make it
more explicit.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-21 22:23:36 +02:00
Maxime “pep” Buquet
0b680a18e5
parsers: Fix jingle and jingle_rtp test_size for 32bit
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-05 19:05:12 +02:00
Maxime “pep” Buquet
080c7b8c95 CI: Remove build stage
`cargo test` rebuilds all of it anyway.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-05 15:05:16 +02:00