f73daf4d1c
fix(core): Fix getting stuck on invalid stream ends
...
Whenever the stream ends in a weird state, for example with
`<some-tag`, initiating a new stream will confuse the XML parser
and lead errors causing the connection to get stuck.
To fix this, we had to work around xml's extension methods and implement
the extensions in the new "stream parser" where we can reset the parser
(and by reset I mean replace) and thus continue with a fresh parsing state
whenever we reconnect (or connect).
2023-05-06 20:58:34 +02:00
a8693da262
chore(xep): Formatting
2023-04-09 13:17:21 +02:00
0fb66f6aca
fix(xep,core): Fix some reconnection issues
...
- Use handleError instead of directly invoking onFailure
- Stop the ack timer only when we receive ack responses
- NoConnectionPossibleErrors are not irrecoverable
2023-04-09 13:14:53 +02:00
4d312b2100
chore(docs): Update changelog
2023-04-07 15:28:43 +02:00
c1ad646905
fix(core,xep): Fix multiple issues
...
- Fix a deadlock in the RandomBackoffReconnectionPolicy on failure
- Fix enablement of stream management happening too early
2023-04-07 15:26:49 +02:00
c88ab940c4
release: Version 0.3.1
2023-04-05 13:20:16 +02:00
916be1c927
fix(core): Fix components' stanza matching
2023-04-05 13:17:18 +02:00
7f3538875b
feat(core): Make all managers optional
2023-04-04 15:59:07 +02:00
f6efa20ff4
chore(meta): Bump versions
2023-04-04 15:55:52 +02:00
8443411f07
fix(docs): XEP-0144 -> XEP-0114
2023-04-04 15:53:57 +02:00
dc24b3c48a
chore(core): Remove useDirectTLS
2023-04-04 15:52:56 +02:00
f6abf3d5b5
feat(xep): Implement XEP-0114
2023-04-04 15:48:26 +02:00
63c84d9479
feat(core): Allow tracking the stream id
2023-04-03 23:18:10 +02:00
3e43ac22d7
feat(core): Remove getter and setter for connectionSettings
2023-04-03 17:56:31 +02:00
47d821c02e
docs(core): Add comments to NegotiationsHandler
2023-04-03 16:17:09 +02:00
355d580a9a
fix(tests): Fix negotiator tests
2023-04-03 16:15:46 +02:00
03328bdf7a
feat(core): Allow implementing different negotiation strategies
...
Fixes #27 .
2023-04-03 16:05:20 +02:00
275d6e0346
feat(core): Attempt to improve the ReconnectionPolicy
2023-04-03 13:40:13 +02:00
0d9afd546c
feat(core): Remove ignoreLock
2023-04-03 12:47:38 +02:00
3da334b5cf
feat(core): Remove the connection lock
2023-04-03 12:46:15 +02:00
ac8433f51f
chore(core): Refactor RFC6120 implementations
2023-04-02 23:33:53 +02:00
808371b271
chore(tests): Fix tests
2023-04-02 23:23:50 +02:00
7fdd83ea69
chore(xep): Clean the SASL2 implementation
2023-04-02 23:06:02 +02:00
d977a74446
feat(tests): Add an integration test for SASL2
2023-04-02 17:20:14 +02:00
29f0419154
feat(meta): Remove log redaction
2023-04-02 14:38:32 +02:00
b354ca8d0a
feat(xep): Improve the ergonomics of Bind2 negotiators
2023-04-02 13:39:43 +02:00
ec6b5ab753
feat(xep): Allow inline enablement of carbons
2023-04-02 12:44:09 +02:00
ce1815d1f3
fix(tests): Fix namespace of <bound />
2023-04-02 12:43:28 +02:00
fbb495dc2f
feat(xep): Allow inlining CSI
2023-04-01 23:16:37 +02:00
4a6aa79e56
fix(xep): When using FAST, fallback to other SASL mechanisms on failure
2023-04-01 21:42:52 +02:00
0033d0eb6e
feat(xep): Implement FAST
2023-04-01 21:10:46 +02:00
24cb05f91b
feat(xep): Handle inline stream enablement with Bind2
2023-04-01 17:38:40 +02:00
91f763ac26
feat(xep): Allow negotiating SM enabling inline with Bind2
2023-04-01 17:16:29 +02:00
51edb61443
feat(xep): Implement SASL2 inline stream resumption
2023-04-01 15:50:13 +02:00
4e01d32e90
feat(xep): Allow setting a tag when using Bind2
2023-04-01 13:15:46 +02:00
f2fe06104c
fix(core): Fix formatting
2023-04-01 13:13:19 +02:00
89fe8f0a9c
feat(core): Make the PresenceManager optional
2023-04-01 13:09:43 +02:00
9358175925
feat(xep): Inline resource binding with Bind2
2023-04-01 13:00:35 +02:00
564a237986
feat(xep): Set the resource if SASL2 resulted in a resource
2023-04-01 12:51:26 +02:00
cf425917cf
feat(core): Reset the resource if lastResource is null
2023-04-01 12:39:15 +02:00
63b7abd6f9
fix(core): Prevent resource binding if we already have a resource
2023-04-01 12:38:18 +02:00
f460e5ebe9
feat(core): Handle less resource binding in the core connection class
2023-04-01 12:28:11 +02:00
af8bc606d6
feat(xep): Guard against random data in the SASL2 result
2023-04-01 00:51:51 +02:00
30482c86f0
feat(xep): Implement inline negotiation
2023-04-01 00:47:45 +02:00
f86dbe6af8
feat(core): Verify the server signature with SASL2
2023-03-31 23:52:48 +02:00
478b5b8770
feat(core): Make SCRAM SASL2 aware
2023-03-31 21:09:16 +02:00
7ab3f4f0d9
feat(xep): Implement negotiating PLAIN via SASL2
2023-03-31 20:53:06 +02:00
2e60e9841e
feat(xep): Begin work on SASL2
2023-03-31 19:02:57 +02:00
52ad9a7ddb
fix(core): Reset the connection tracker when timing out
2023-03-31 15:53:11 +02:00
ac5e0c13b7
fix(xep): Do not subscribe to the data node
2023-03-31 15:52:50 +02:00
d4a972e073
feat(core): Close the socket on an error
2023-03-30 16:17:42 +02:00
1009a2f967
feat(core): Fix typing and remove logging parameter
2023-03-30 16:17:12 +02:00
f355f01fc8
fix(tests): Fix integration tests
2023-03-30 16:15:44 +02:00
85995d51e4
feat(core): Remove SendPingEvent
2023-03-29 17:18:03 +02:00
2557a2fe5b
feat(core): Make the ping manager optional
2023-03-29 15:25:17 +02:00
4321573dfb
fix(core): Fix reconnections not working properly
2023-03-21 12:01:22 +01:00
70d4d6c56f
feat(core): Use _testAndSetIsConnectionRunning
2023-03-18 18:41:58 +01:00
e1e492832e
chore(tests): Format and lint tests
2023-03-18 16:13:45 +01:00
de85bf848d
fix(core): Fix crash when no negotiator matches
...
Fixes #30 .
Also removes the `allowPlainAuth` attribute of `ConnectionSettings` as
users who want to disable SASL PLAIN can just not register the
negotiator or extend it.
2023-03-18 14:54:39 +01:00
7a6bf468bc
test(xep): Add a test for parsing sticker packs
2023-03-16 22:04:25 +01:00
9cb6346c4d
fix(style): Format and lint test helpers
2023-03-12 19:19:53 +01:00
f49eb66bb7
fix(xep): Fix usage of 'max' in publish options ( #33 )
...
This commit fixes two issues:
1. Fix an issue where [PubSubManager.publish] would always, if given
publish options with maxItems set to 'max', use 'max' in the
max_items publish options, even if the server indicates it does not
support that.
2. Fix an issue with the StanzaExpectation, where it would let every
stanza pass.
2023-03-12 19:11:55 +01:00
5b4dcc67b2
refactor(core): Remove XmppConnectionResult
2023-03-11 19:07:03 +01:00
9010218b10
refactor(core): Move connection errors into their own file
2023-03-11 19:06:28 +01:00
61144a10b3
fix(core): Minor API change
2023-03-11 19:01:55 +01:00
7a1f737c65
chore(meta): Bump version
2023-03-11 19:00:42 +01:00
546c032d43
fix(tests): Fix broken test
2023-03-11 18:59:40 +01:00
b1869be3d9
chore(docs): Update changelog
2023-03-11 18:59:22 +01:00
574fdfecaa
feat(core): Merge connect and connectAwaitable
2023-03-11 18:54:36 +01:00
25c778965c
feat(core): Merge connect and connectAwaitable
2023-03-11 00:10:50 +01:00
8b0f118e2d
fix(style): Format using dart format
2023-03-08 20:25:45 +01:00
38155051f5
fix(style): Format using dart format
2023-03-08 19:32:03 +01:00
1000e0756b
feat: Improve detecting new streams
...
Fixes #26 .
2023-01-31 21:11:52 +01:00
902b497526
docs: Add links to the hosted documentation
2023-01-28 15:33:21 +01:00
252cc44841
feat: Make moxxmpp docs buildable using flakes
2023-01-28 15:22:37 +01:00
96d9ce4761
feat: Don't attempt reconnections when the error is unrecoverable
...
Fixes #25 .
Should fix #24 .
2023-01-28 13:20:16 +01:00
7f294d6632
fix: Bump version requirement for moxxmpp
2023-01-27 22:03:20 +01:00
e17de9065b
feat: Bump moxxmpp_socket_tcp to 0.2.0
2023-01-27 22:01:32 +01:00
098687de45
feat: Bump moxxmpp version to 0.2.0
2023-01-27 21:57:26 +01:00
6da3342f22
feat: Make defining managers better
2023-01-27 21:54:16 +01:00
47337540f5
feat: Factor out "multiple-waiting" into its own thing
2023-01-27 21:14:35 +01:00
7e588f01b0
feat: Add DOAP
...
Fixes #11 .
2023-01-27 19:09:05 +01:00
c7c6c9dae4
feat: Update Message Replies to 0.2.0
...
Fixes #22 .
2023-01-27 19:08:57 +01:00
c77cfc4dcd
feat: Change namespaces
2023-01-27 18:34:13 +01:00
1bd61076ea
feat: Improve the API provided by the DiscoManager
...
Fixes #21 .
2023-01-27 16:26:01 +01:00
bff4a6f707
feat: Rework how the ReconnectionPolicy system works
2023-01-27 00:14:44 +01:00
1cc266c675
fix: Just use shouldEncryptElement for the envelope "validation"
2023-01-23 13:11:07 +01:00
72099dfde5
feat: Only add envelope elements that should be encrypted
2023-01-23 13:10:07 +01:00
c9c45baabc
feat: Allow easier responding to incoming stanzas
...
Should fix #20 .
2023-01-23 12:47:30 +01:00
a01022c217
feat: Bump omemo_dart
2023-01-22 19:25:52 +01:00
c3459e6820
feat: Always set a cancel reason on failure
2023-01-21 20:46:45 +01:00
e031e6d760
feat: Add cancelReason if recipient likely does not support OMEMO:2
2023-01-21 15:42:00 +01:00
6c63b53cf4
fix: Fix crash with direct server IQs
ci/woodpecker/push/woodpecker Pipeline was successful
2023-01-15 00:52:34 +01:00
1aa50699ad
feat: Improve the stanza await system
...
ci/woodpecker/push/woodpecker Pipeline was successful
This fixes an issue where publishing an avatar would fail, if returned
an error where the "from" attribute is missing from the stanza.
2023-01-14 16:28:37 +01:00
b16c9f4b30
docs: Add more doc strings
2023-01-14 15:00:02 +01:00
a8d80eaddf
fix: Add the closure expectation to the event
2023-01-14 12:41:17 +01:00
9baf1ed73c
fix: Attempt to fix reconnection issues
...
Call _reconnectionPolicy.onSuccess when negotiations are done. Never
call onFailure directly; only ever call handleError.
2023-01-14 12:39:55 +01:00
ce3ea656ad
fix: Stop ack timer on connection drops
...
Fixes #17 .
2023-01-14 12:04:52 +01:00
ed49212f5a
fix: Enabling carbons crashes
2023-01-13 15:17:21 +01:00
ad1242c47d
feat: Try to lock reconnections behind a flag
2023-01-13 15:16:51 +01:00