Commit graph

462 commits

Author SHA1 Message Date
Emmanuel Gil Peyrot
e52817e5cd message: Avoid identical match branches. 2017-05-18 23:14:07 +01:00
Emmanuel Gil Peyrot
f18043231c ecaps2: Avoid a useless clone. 2017-05-18 23:12:45 +01:00
Emmanuel Gil Peyrot
bbdf38d58b message: Stop parsing the payloads automatically. 2017-05-18 23:06:22 +01:00
Emmanuel Gil Peyrot
36b0bead49 message: Add stanza-id as a direct payload. 2017-05-18 23:09:30 +01:00
Emmanuel Gil Peyrot
b22acff15e hashes, ecaps2, jingle_ft: Make the algorithm a proper enum. 2017-05-18 23:09:29 +01:00
Emmanuel Gil Peyrot
4ec92b16ac Fix most clippy warnings. 2017-05-07 15:23:06 +01:00
Emmanuel Gil Peyrot
2b29748e6b message: Add support for the <thread/> element. 2017-05-07 15:09:18 +01:00
Emmanuel Gil Peyrot
da31e72357 message: Fix wrong parsing of the <body/> element, and add a test for it. 2017-05-07 15:06:11 +01:00
Emmanuel Gil Peyrot
4278c8ce2b message: Add support for the <subject/> element. 2017-05-07 15:10:04 +01:00
Emmanuel Gil Peyrot
3dfb05aab3 lib: Fix documentation. 2017-05-06 21:41:33 +01:00
Emmanuel Gil Peyrot
4142107965 message: Merge body in this module, and make it support xml:lang. 2017-05-06 21:38:23 +01:00
Emmanuel Gil Peyrot
69cfb14c77 presence: Switch to Into/TryFrom. 2017-05-06 21:24:17 +01:00
Emmanuel Gil Peyrot
f971cbd5c9 message: Switch to Into/TryFrom. 2017-05-06 21:21:34 +01:00
Emmanuel Gil Peyrot
fffaca316f iq: Switch to Into/TryFrom. 2017-05-06 21:16:56 +01:00
Emmanuel Gil Peyrot
04d90f22ee stanza_error: Switch to Into/TryFrom. 2017-05-06 21:13:53 +01:00
Emmanuel Gil Peyrot
418956c720 mam: Switch to Into/TryFrom. 2017-05-06 21:08:44 +01:00
Emmanuel Gil Peyrot
2b96751e5f eme: Switch to Into/TryFrom. 2017-05-06 21:03:42 +01:00
Emmanuel Gil Peyrot
2b49d8aa53 disco: Switch to Into/TryFrom. 2017-05-06 21:01:15 +01:00
Emmanuel Gil Peyrot
f963715e77 ecaps2: Switch to Into/TryFrom. 2017-05-06 20:58:22 +01:00
Emmanuel Gil Peyrot
2f05d02d23 forwarding: Switch to Into/TryFrom. 2017-05-06 20:53:43 +01:00
Emmanuel Gil Peyrot
8673b8f90e data_forms: Switch to Into/TryFrom. 2017-05-06 20:51:39 +01:00
Emmanuel Gil Peyrot
0dd0b444b3 media_element: Switch to Into/TryFrom. 2017-05-06 20:48:41 +01:00
Emmanuel Gil Peyrot
1ec3806629 hashes: Switch to Into/TryFrom. 2017-05-06 20:46:11 +01:00
Emmanuel Gil Peyrot
0f58e650b7 delay: Switch to Into/TryFrom. 2017-05-06 20:42:12 +01:00
Emmanuel Gil Peyrot
e451520187 chatstates: Switch to Into/TryFrom. 2017-05-06 20:33:58 +01:00
Emmanuel Gil Peyrot
a3a90e4eda jingle_ft: Switch to Into/TryFrom. 2017-05-06 20:30:52 +01:00
Emmanuel Gil Peyrot
4f11a067d8 message_correct: Switch to Into/TryFrom. 2017-05-06 20:16:45 +01:00
Emmanuel Gil Peyrot
de8fe4bf02 rsm: Switch to Into/TryFrom. 2017-05-06 20:14:45 +01:00
Emmanuel Gil Peyrot
7ebabf7e91 stanza_id: Switch to Into/TryFrom. 2017-05-06 20:10:35 +01:00
Emmanuel Gil Peyrot
151635f5fb receipts: Switch to Into/TryFrom. 2017-05-06 20:07:03 +01:00
Emmanuel Gil Peyrot
f99c667eab jingle: Make description and transport optional in content. 2017-05-06 14:58:18 +01:00
Emmanuel Gil Peyrot
8fbda37f6b jingle_ibb: Switch to Into/TryFrom. 2017-05-06 14:03:41 +01:00
Emmanuel Gil Peyrot
bb12168c41 jingle_s5b: Handle the forgotten case of an empty transport element, see §2.2. 2017-05-06 13:54:16 +01:00
Emmanuel Gil Peyrot
828b88e5b2 Add a Jingle SOCKS5 Bytestreams Transport implementation. 2017-05-06 12:49:30 +01:00
Emmanuel Gil Peyrot
51eecda4fd error: Implement From<std::string::ParseError>. 2017-05-06 12:48:42 +01:00
Emmanuel Gil Peyrot
e3acb55b49 ibb: Port to TryFrom/Into. 2017-05-04 23:11:10 +01:00
Emmanuel Gil Peyrot
033cbe777b ping: Port to TryFrom/Into. 2017-05-04 01:31:13 +01:00
Emmanuel Gil Peyrot
6c4fd8da01 jingle: Update to Into and TryFrom. 2017-05-04 01:20:28 +01:00
Emmanuel Gil Peyrot
29725b9d4d Update to minidom 0.3.0. 2017-05-04 01:20:22 +01:00
Emmanuel Gil Peyrot
765e8c3333 attention: Replace parse_* and serialise with TryFrom<Element> and Into<Element>. 2017-05-01 23:49:44 +01:00
Emmanuel Gil Peyrot
c0b7c9da88 iq: Remove unused variable causing a warning. 2017-05-01 01:50:38 +01:00
Emmanuel Gil Peyrot
7b6d444f03 delay: Use Jid for from attribute. 2017-05-01 01:50:18 +01:00
Emmanuel Gil Peyrot
f3b55350ad iq: Wire up stanza_error. 2017-05-01 01:23:56 +01:00
Emmanuel Gil Peyrot
42abbe2927 message: Wire up stanza_error. 2017-05-01 01:04:15 +01:00
Emmanuel Gil Peyrot
3dd0eb3a9b presence: Wire up stanza_error. 2017-05-01 01:02:35 +01:00
Emmanuel Gil Peyrot
2465885975 Add a stanza error parser and serialiser. 2017-05-01 01:24:45 +01:00
Emmanuel Gil Peyrot
e03a5a89e7 presence: Prevent two statuses from having the same lang. 2017-04-30 22:45:39 +01:00
Emmanuel Gil Peyrot
0abac5ad2d presence: Make statuses addressable by their xml:lang. 2017-04-30 22:07:32 +01:00
Emmanuel Gil Peyrot
1909ae33dc presence: make show, statuses and priority first-class elements. 2017-04-30 22:00:29 +01:00
Emmanuel Gil Peyrot
21398447e7 presence: Implement priority parsing. 2017-04-30 21:29:55 +01:00
Emmanuel Gil Peyrot
4ec3898c2f presence: Implement show parsing. 2017-04-30 21:03:04 +01:00
Emmanuel Gil Peyrot
0e20810a83 status, presence: Merge status into presence. 2017-04-30 20:33:53 +01:00
Emmanuel Gil Peyrot
4b90c1dc1f data_forms, disco, jingle, jingle_ft: Remove superfluous “extern crate”. 2017-04-29 22:10:38 +01:00
Emmanuel Gil Peyrot
407e4cceb4 License the project under MPL-2.0. 2017-04-29 22:14:34 +01:00
Emmanuel Gil Peyrot
7750aae5b5 presence, message, jingle_ft: Remove unneeded println!(). 2017-04-29 06:57:20 +01:00
Emmanuel Gil Peyrot
61efeb827f forwarding: Remove unused imports. 2017-04-29 06:50:57 +01:00
Emmanuel Gil Peyrot
eecb47f4ed mam: Add tests. 2017-04-29 06:41:55 +01:00
Emmanuel Gil Peyrot
0b2d46aa3a Add a MAM parser and serialiser. 2017-04-29 06:07:00 +01:00
Emmanuel Gil Peyrot
7cd4a49011 error: Add JidParseError. 2017-04-29 06:06:41 +01:00
Emmanuel Gil Peyrot
72a6eee2fd Add a RSM parser and serialiser. 2017-04-29 04:37:18 +01:00
Emmanuel Gil Peyrot
0f92a11894 Add a forwarding parser and serialiser. 2017-04-29 03:50:49 +01:00
Emmanuel Gil Peyrot
d824a161b6 message: Implement IntoElements. 2017-04-29 03:50:20 +01:00
Emmanuel Gil Peyrot
4dc585f1c9 delay: Implement IntoElements. 2017-04-29 03:50:02 +01:00
Emmanuel Gil Peyrot
8b964df645 Add a stanza-id parser and serialiser. 2017-04-29 03:23:50 +01:00
Emmanuel Gil Peyrot
b09c57ec72 ecaps2: Move hashing crates to the main library. 2017-04-29 01:31:39 +01:00
Emmanuel Gil Peyrot
45b38bcef9 iq: Wire up the IBB parser and serialiser. 2017-04-29 01:06:12 +01:00
Emmanuel Gil Peyrot
846148d618 ibb: Fix serialisation of <data/> data. 2017-04-28 23:46:32 +01:00
Emmanuel Gil Peyrot
5e4ba2701b iq: Wire up the Jingle parser and serialiser. 2017-04-28 23:46:06 +01:00
Emmanuel Gil Peyrot
4fb4727357 jingle: Remove extraneous println!. 2017-04-28 23:45:43 +01:00
Emmanuel Gil Peyrot
10a336f874 jingle: Accept any unknown child, as per the specification. 2017-04-28 23:45:27 +01:00
Emmanuel Gil Peyrot
c20d37a842 jingle: Add serialisation for <reason/>. 2017-04-28 23:45:02 +01:00
Emmanuel Gil Peyrot
de93c32cb5 jingle_ft: Add a received parser. 2017-04-28 23:43:47 +01:00
Emmanuel Gil Peyrot
eeb9b36620 jingle_ft: Make Creator into an enum, instead of a String. 2017-04-28 23:43:24 +01:00
Emmanuel Gil Peyrot
9f6eea06ce ns: Fix the hashes text-names namespaces. 2017-04-28 23:42:50 +01:00
Emmanuel Gil Peyrot
fe3300b4b0 jingle_ft: Add the forgotten desc element. 2017-04-28 23:42:27 +01:00
Emmanuel Gil Peyrot
30a596cb26 ibb: Implement serialise. 2017-04-27 19:05:51 +01:00
Emmanuel Gil Peyrot
6a48a6bf00 ecaps2, error: Update to base64 0.5. 2017-04-27 18:33:02 +01:00
Emmanuel Gil Peyrot
5d51dff9e6 disco: Bump minidom dependency to 0.2.0, which fixes xml:lang parsing. 2017-04-26 00:22:40 +01:00
Emmanuel Gil Peyrot
a0eab6c1af ecaps2: Import Digest from digest. 2017-04-26 00:20:50 +01:00
Emmanuel Gil Peyrot
7fc40dbb19 ecaps2: Remove extraneous borrowing on base64::encode. 2017-04-24 20:03:05 +01:00
Emmanuel Gil Peyrot
049ef23595 jingle_ft: Implement IntoElements on Range, and change size to be an u64. 2017-04-24 19:52:41 +01:00
Emmanuel Gil Peyrot
5abf820fad jingle_ft: Implement serialise. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
db1a87e2ee jingle: Implement serialise. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
fa10ab4ebc jingle: Implement From for String on all special attributes. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
90f1792ebc jingle_ibb: Make the fields in Transport public. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
2b19a415d4 jingle_ibb: Implement serialise. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
c71b32ae24 ibb: Implement IntoAttributeValue for Stanza. 2017-04-24 19:25:00 +01:00
Maxime “pep” Buquet
1b4c0c4589 iq: Clippify 2017-04-24 19:20:35 +01:00
Maxime “pep” Buquet
c462d230f1 ping, iq: Implement ping::serialise_ping and link to Iq. 2017-04-23 21:17:26 +01:00
Maxime “pep” Buquet
b259ab9ef2 iq: Link disco parser to Iq. 2017-04-23 21:12:27 +01:00
Maxime “pep” Buquet
04af2f3d26 Implement Iq stanzas parsing 2017-04-23 20:38:13 +01:00
Emmanuel Gil Peyrot
944cb3964e presence: Add status as a possible payload. 2017-04-23 19:32:48 +01:00
Emmanuel Gil Peyrot
93343f3a00 Add a status parser. 2017-04-23 19:28:25 +01:00
Emmanuel Gil Peyrot
948b54d073 ecaps2: Implement blake2b. 2017-04-23 19:28:03 +01:00
Emmanuel Gil Peyrot
2c95fd6786 presence: Add ecaps2 as a possible payload. 2017-04-23 18:38:53 +01:00
Emmanuel Gil Peyrot
429abb996d ecaps2: Implement serialise. 2017-04-23 18:36:37 +01:00
Emmanuel Gil Peyrot
20949c2832 hashes: Implement serialise. 2017-04-23 18:36:12 +01:00
Emmanuel Gil Peyrot
78e8a06ec2 Add a presence parser. 2017-04-23 17:30:23 +01:00
Emmanuel Gil Peyrot
6a56918484 ns: Add the namespaces of hashes functions we implement. 2017-04-23 17:30:07 +01:00
Emmanuel Gil Peyrot
c81509744f lib, message, jingle_ft: Remove unused imports. 2017-04-23 15:32:38 +01:00
Emmanuel Gil Peyrot
5e7ad720c3 Add a message parser, along with a dependency on jid. 2017-04-23 15:13:03 +01:00
Emmanuel Gil Peyrot
15634b6500 ping: Remove extraneous brackets. 2017-04-23 03:45:14 +01:00
Emmanuel Gil Peyrot
16a6ebd751 ibb: Simplify the FromStr using match. 2017-04-23 03:44:58 +01:00
Emmanuel Gil Peyrot
659eaee14e data_forms: Simplify the FromStr using match. 2017-04-23 03:42:50 +01:00
Emmanuel Gil Peyrot
90db24eed8 jingle: Simplify the FromStr using match. 2017-04-23 03:41:26 +01:00
Emmanuel Gil Peyrot
7e964b167a message_correct: Add a serialise function, and simplify the representation. 2017-04-23 03:23:13 +01:00
Emmanuel Gil Peyrot
4128c4b9ed chatstates: Add a serialise function. 2017-04-23 03:22:42 +01:00
Emmanuel Gil Peyrot
7002578bc0 body: Test the serialise function. 2017-04-23 03:22:25 +01:00
Emmanuel Gil Peyrot
cebccb363f eme: Add a serialise function. 2017-04-23 03:22:02 +01:00
Emmanuel Gil Peyrot
c6036194b1 delay: Add a serialise function. 2017-04-23 03:21:53 +01:00
Emmanuel Gil Peyrot
ab841dc375 receipts: Add a serialise function. 2017-04-23 03:21:21 +01:00
Emmanuel Gil Peyrot
54f4040251 attention: Simplify the payload type, and add a serialise function. 2017-04-23 03:20:52 +01:00
Emmanuel Gil Peyrot
ca6e65ad76 body: Add a serialise function. 2017-04-23 02:24:13 +01:00
Emmanuel Gil Peyrot
6d6ac8a380 body: Simplify the type of Body to an alias of String. 2017-04-22 20:49:17 +01:00
Emmanuel Gil Peyrot
24d563ff18 jingle: Carry the minidom Element for description, transport and security. 2017-04-22 19:30:17 +01:00
Emmanuel Gil Peyrot
ff5be32a0e Add a JingleIBB parser. 2017-04-22 19:15:48 +01:00
Emmanuel Gil Peyrot
22ec4b1913 ibb: Improve handling of optional stanza attribute. 2017-04-22 19:15:29 +01:00
Emmanuel Gil Peyrot
fbb609485b Add a JingleFT parser. 2017-04-22 17:39:21 +01:00
Emmanuel Gil Peyrot
000e5a50c2 error: Add ParseIntError to the possible errors. 2017-04-22 17:39:00 +01:00
Emmanuel Gil Peyrot
edc5961a79 hashes: Implement PartialEq on Hash. 2017-04-22 17:38:36 +01:00
Emmanuel Gil Peyrot
0778ceea7d jingle: Remove extraneous println!(). 2017-04-22 17:38:19 +01:00
Emmanuel Gil Peyrot
e1070a8b98 ecaps2: Add a parser too. 2017-04-22 16:51:10 +01:00
Emmanuel Gil Peyrot
ea2ff8a35d Add a hash parser. 2017-04-21 04:21:16 +01:00
Emmanuel Gil Peyrot
d39d13b7cb delay: Correctly parse the content data. 2017-04-21 04:01:14 +01:00
Emmanuel Gil Peyrot
cfadff3bc9 Add a Delayed Delivery parser. 2017-04-21 03:57:34 +01:00
Emmanuel Gil Peyrot
a680ab194c Add an Explicit Message Encryption parser. 2017-04-21 03:45:05 +01:00
Emmanuel Gil Peyrot
94380fdbd5 ibb: Add some more tests. 2017-04-21 03:21:06 +01:00
Emmanuel Gil Peyrot
189f17c569 ibb: Add a parser for the <close/> element. 2017-04-21 03:09:10 +01:00
Emmanuel Gil Peyrot
fb373c2b66 ibb: Add a parser for the <data/> element. 2017-04-21 03:07:21 +01:00
Emmanuel Gil Peyrot
6ba22a43e5 lib: Import base64 at the top-level, and not in a module. 2017-04-21 02:46:41 +01:00
Emmanuel Gil Peyrot
8fba5cf966 Add a Last Message Correction parser. 2017-04-21 02:07:44 +01:00
Emmanuel Gil Peyrot
9410b9682a lib: Export attention as a MessagePayload. 2017-04-21 01:56:18 +01:00
Emmanuel Gil Peyrot
458099cef0 Add an attention parser. 2017-04-21 01:53:47 +01:00
Emmanuel Gil Peyrot
6600418070 ecaps2: Remove function convert_element, used only in the tests. 2017-04-21 01:39:32 +01:00
Emmanuel Gil Peyrot
79c691e1c0 ecaps2: Add a TODO about changing algo into an enum. 2017-04-21 01:30:29 +01:00
Emmanuel Gil Peyrot
3209b04a50 Fix all warnings issued by cargo clippy. 2017-04-21 01:28:58 +01:00
Emmanuel Gil Peyrot
0da3d55e40 First attempt at a documentation. 2017-04-21 01:06:30 +01:00
Emmanuel Gil Peyrot
62d9385728 Make all parsed types implement Clone. 2017-04-21 00:41:15 +01:00
Emmanuel Gil Peyrot
88ae9aca3f ecaps2: Remove unused brackets around Blake2b. 2017-04-21 00:24:20 +01:00
Emmanuel Gil Peyrot
efedb215c4 ecaps2: Add Rust-Crypto and base64 dependencies, and implement hashing. 2017-04-21 00:01:57 +01:00
Emmanuel Gil Peyrot
7288c2c74f Import ns itself, and remove the _NS suffix on all namespaces. 2017-04-20 23:16:12 +01:00
Emmanuel Gil Peyrot
411e421732 ecaps2: Use a reference everywhere, instead of taking ownership. 2017-04-20 21:53:46 +01:00
Emmanuel Gil Peyrot
83cf57abd0 disco: Use a reference everywhere, instead of taking ownership. 2017-04-20 21:53:46 +01:00
Emmanuel Gil Peyrot
1190dd9001 disco: Add a serializer. 2017-04-20 21:03:02 +01:00
Emmanuel Gil Peyrot
e0e6119e55 disco: Relax the parsing rules for get disco#info. 2017-04-20 21:02:51 +01:00
Emmanuel Gil Peyrot
55f5435f6e body: Make the string public. 2017-04-20 01:31:03 +01:00
Emmanuel Gil Peyrot
f3c9a58862 Add a receipts parser. 2017-04-20 00:43:33 +01:00
Emmanuel Gil Peyrot
861c933c56 body, chatstates: Fix tests. 2017-04-20 00:43:17 +01:00
Emmanuel Gil Peyrot
a9993b1281 Remove the MessagePayload trait, it was a bad idea. 2017-04-20 00:14:47 +01:00
Emmanuel Gil Peyrot
b8b0494c19 Fix a stupid copy/paste syntax error. 2017-04-20 00:14:29 +01:00
Emmanuel Gil Peyrot
fc7a0517d3 Replace assert!()s with proper errors in parsers. 2017-04-19 23:41:54 +01:00
Emmanuel Gil Peyrot
6a0724d133 Add a MessagePayload trait, and implement it for Body and ChatState. 2017-04-19 23:21:53 +01:00
Emmanuel Gil Peyrot
948ecd7dd7 Add a body plugin. 2017-04-19 23:21:23 +01:00
Emmanuel Gil Peyrot
4f31727a1a Add an In-Band Bytestream parser. 2017-04-19 21:52:14 +01:00
Emmanuel Gil Peyrot
31a7d8be23 disco: Drop some unneeded derived traits from Feature. 2017-04-19 21:50:14 +01:00
Emmanuel Gil Peyrot
69f1405b9c Add a chatstate parser. 2017-04-19 19:15:57 +01:00
Emmanuel Gil Peyrot
fdc76eca3c Add a ping parser. 2017-04-19 18:59:07 +01:00
Emmanuel Gil Peyrot
87cd047a46 media_element: Import the namespace from ns. 2017-04-19 18:58:43 +01:00
Emmanuel Gil Peyrot
9d129701d0 jingle: Add an error when there is more than one <text/> in a <reason/>. 2017-04-19 02:38:10 +01:00
Emmanuel Gil Peyrot
9da488f909 Add a Jingle parser. 2017-04-19 02:27:42 +01:00
Emmanuel Gil Peyrot
82fa22cd06 disco: Rename misnamed variable. 2017-04-19 02:27:33 +01:00
Emmanuel Gil Peyrot
9cf1521775 Hello world! 2017-04-18 20:44:36 +01:00