f3d906e69b
feat(core): Re-add xmlns for StanzaHandler
2023-05-07 00:13:25 +02:00
483cb0d7f1
fix(core): Fix stream parsing breaking after some time
2023-05-07 00:09:35 +02:00
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
890fcfb506
feat: Do initialization inline
2023-01-13 14:44:06 +01:00
d7723615fe
fix: Fix message quote generation
2023-01-13 13:39:18 +01:00
6517065a1a
feat: Track stanza responses as a tuple of (to, id)
...
Also fixes an invalid test case in the XEP-0198 tests, where
the IQ reply sets the "to" instead of the "from".
2023-01-10 12:50:07 +01:00
9223a7d403
feat: Add docs for including a tagged version
2023-01-10 12:25:56 +01:00
7ce6703c5b
tests: Fix the XEP-0198 test
2023-01-09 12:53:22 +01:00
37261cddbb
fix: Run Stream Management very early
2023-01-09 12:48:30 +01:00
98e5324409
fix: Copy the pre handler's encryption state
2023-01-07 22:18:20 +01:00
a69c2a23f2
fix: Bump omemo_dart version
2023-01-07 22:18:05 +01:00
d8de093e4d
fix: Somewhat fix OMEMO
2023-01-07 21:57:56 +01:00
678564dbb3
fix: Roster request being treated as a roster push
2023-01-07 21:23:45 +01:00
09d2601e85
fix: Compare groups
2023-01-07 19:58:46 +01:00
41560682a1
fix: Handle roster items staying the same
2023-01-07 19:03:35 +01:00
473f8e4bb6
tests: Fix tests
2023-01-07 18:40:36 +01:00
67446285c1
feat: Refactor RosterPushEvent to RosterPushResult
2023-01-07 18:36:18 +01:00
e12f4688d3
feat: Trigger an event when the roster changes
2023-01-07 18:32:15 +01:00
2581bbe203
feat: Document the RosterStateManager better
2023-01-07 18:11:41 +01:00
995f2e0248
feat: Integrate the BaseRosterStateManager with the RosterManager
2023-01-07 16:26:15 +01:00
e2c8f79429
feat: Add a management class for roster state
2023-01-07 15:51:10 +01:00
763c93857d
feat: Simplify the JID parser
...
Fixes #13 .
2023-01-04 17:19:37 +01:00
55d2ef9c25
style: Remove newline
2023-01-02 17:53:06 +01:00
f37cbd1616
feat: Allow specifying XEP-0449's access model
2023-01-02 17:52:55 +01:00
2a3449d0f2
fix: Fix user avatar update being triggered for every PubSub event
2023-01-02 17:35:47 +01:00
596693c206
feat: Update to omemo_dart 0.4.1
2023-01-02 13:58:27 +01:00
22aa07c4ba
feat: Propagate errors and encrypt to self if carbons are enabled
2023-01-02 13:52:06 +01:00
62001c1e29
feat: Upgrade omemo_dart to 0.4.0
2023-01-01 18:17:41 +01:00
ca85c94fe5
fix: Fix wrong XML serialisation
2023-01-01 16:38:54 +01:00
637e1e25a6
feat: Migrate to the new omemo_dart API
2023-01-01 16:19:25 +01:00
09696c1c4d
fix: Fix VCard and User Avatar queries being encrypted
2022-12-25 13:05:16 +01:00
298a8342b8
docs: Add funding.yml
2022-12-23 15:18:53 +01:00
d64220426b
feat: Implement XEP-0449
2022-12-19 14:14:05 +01:00
88efdc361c
fix: Only add a <body> element when specified
2022-12-09 12:52:00 +01:00
cc1b371198
feat: Allow clients to read Message Processing Hints
2022-12-09 12:46:17 +01:00
d9e4a3c1d4
feat: Implement XEP-0444
2022-12-06 14:09:07 +01:00
0ae13acca0
chore(release): publish packages
...
- moxxmpp@0.1.6+1
- moxxmpp_socket_tcp@0.1.2+9
2022-11-26 15:48:48 +01:00
d383fa31ae
fix: Fix LMC not working
2022-11-26 15:48:29 +01:00
d1de394cd9
chore(release): publish packages
...
- moxxmpp@0.1.6
- moxxmpp_socket_tcp@0.1.2+8
2022-11-26 15:09:05 +01:00
14c48bcc64
feat: Implement XEP-0308
2022-11-26 15:08:20 +01:00
138edffb0a
chore(release): publish packages
...
- moxxmpp@0.1.5
- moxxmpp_socket_tcp@0.1.2+7
2022-11-22 22:49:41 +01:00
eb8f6ba17a
feat: Message events now contain the stanza error, if available
2022-11-22 22:49:10 +01:00
beff05765b
chore(release): publish packages
...
- moxxmpp@0.1.4
- moxxmpp_socket_tcp@0.1.2+6
2022-11-21 16:06:49 +01:00
3b7ded3b96
fix: Only stanza-id required 'sid:0' support
2022-11-21 15:27:53 +01:00
edc86a10b3
feat: Implement parsing and sending of retractions
2022-11-20 23:43:58 +01:00
39e9c55fae
chore(release): publish packages
...
- moxxmpp@0.1.3+1
- moxxmpp_socket_tcp@0.1.2+5
2022-11-19 22:50:39 +01:00
1b2c567787
fix: Expose the error classes
2022-11-19 22:50:28 +01:00
d3955479f7
chore(release): publish packages
...
- moxxmpp@0.1.3
- moxxmpp_socket_tcp@0.1.2+4
2022-11-19 22:32:56 +01:00
300a52f9fe
refactor: Replace MayFail by Result
2022-11-19 22:26:02 +01:00
2e3472d88f
feat: Rework how the negotiator system works
...
We can now return what exactly made a connection attempt fail.
2022-11-19 21:48:28 +01:00
6b106fe365
test: Add integration test for ExponentialBackoffReconnectionPolicy
2022-11-16 20:48:18 +01:00