Evgeny Poberezkin
0fa40fbfb0
fix: connection-level locks ( #543 )
...
* fix: connection-level locks
* add context to store error
* convert SERatchetNotFound to CONN NOT_FOUND
2022-10-04 14:36:51 +01:00
Evgeny Poberezkin
f4baa5d672
increase concurrency with per-connection locks ( #542 )
...
* increase concurrency with per-connection locks
* only send CONNECT if the client wasnt connected already
2022-10-04 09:58:19 +01:00
Evgeny Poberezkin
29332a5e9f
lints ( #539 )
...
* lints
* revert
* add import
* remove StrictData
2022-10-01 11:51:52 +01:00
Evgeny Poberezkin
413aad5139
allow passing agent store instead of path and key ( #535 )
2022-09-23 18:45:00 +01:00
Evgeny Poberezkin
f8505d4add
make function processing sql rows module-level ( #533 )
2022-09-22 12:12:24 +01:00
Evgeny Poberezkin
41d3c14157
secure queue asynchronously ( #532 )
...
* secure queue asynchronously
* delete commands with internal logic errors
2022-09-20 15:11:35 +01:00
Evgeny Poberezkin
d4962daf11
internal async commands ( #530 )
...
* internal async commands
* rename
* remove GADT from AgentCommand
2022-09-18 14:02:20 +01:00
Evgeny Poberezkin
abb3f20ed5
replace TVar with IORef in execSQL ( #531 )
2022-09-18 13:25:06 +01:00
Evgeny Poberezkin
a3f58fdc6b
api to execute any sql query ( #529 )
...
* api to execute any sql query
* agent api
2022-09-17 15:08:58 +01:00
Evgeny Poberezkin
e3e05d474d
wrap agent command for async command processing, to allow extension with internal commands ( #528 )
...
* wrap agent command for async command processing, to allow extension with internal commands
* change encoding for constructor
2022-09-17 14:08:49 +01:00
Evgeny Poberezkin
13a9eee0cf
cancel threads asynchronously ( #527 )
2022-09-17 00:18:58 +01:00
Evgeny Poberezkin
959ae34f16
fix agent not stopping and race conditions ( #526 )
...
* fix agent not stopping and race conditions
* simplify
2022-09-16 13:42:13 +01:00
Evgeny Poberezkin
afecefc3ad
Merge branch 'master' into sqlcipher
2022-09-14 18:22:46 +01:00
JRoberts
e328ae5d06
closeAgentClient async commands clean up ( #523 )
2022-09-12 18:15:32 +01:00
JRoberts
4bf9f2b535
Eq for ACommandTag ( #520 )
2022-09-10 22:03:51 +04:00
Evgeny Poberezkin
bab6a1577b
correlation IDs and command tags for async commands ( #519 )
...
* agent protocol command tags
* store/send async command correlation IDs
* fix, refactor
* delete failed command
2022-09-10 16:33:15 +01:00
Evgeny Poberezkin
42a96d6d00
refactor agent subscriptions with TMap2 ( #517 )
...
* refactor agent subscriptions with TMap2
* refactor
* refactor
* comment
2022-09-09 16:31:57 +01:00
JRoberts
882d2b123b
agent async commands ( #513 )
...
* wip
* wip
* wip
* wip
* don't delete conn on join failure in async mode
* test restart
* remove unused pragma
* simplify restore
* rename variable
* refactor
* refactor
* split
* remove error
* prohibit async join via contact request
* refactor subscribeConnections
* simplify
* resum command processing on subscriptions
* unfocus tests
* schema
* remove do
* rename variable
* corrections
* move code
* refactor getPendingCommands
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-09-08 20:27:56 +04:00
Evgeny Poberezkin
da5058a0c4
remove connId from message delivery queue keys ( #515 )
2022-09-06 14:39:50 +01:00
Evgeny Poberezkin
50c210c5c0
remove database key from SQLiteStore ( #514 )
2022-09-05 12:55:14 +01:00
Evgeny Poberezkin
e4b47825b5
functions to create and close store ( #512 )
2022-09-02 15:42:37 +01:00
Evgeny Poberezkin
26d149d17c
interpolate sql strings ( #510 )
2022-08-31 17:57:38 +01:00
Evgeny Poberezkin
e4b77ed9e6
use SQLCipher ( #507 )
...
* use SQLCipher
* pass database key via options, use local direct-sqlcipher and sqlcipher-simple
* update stack.yaml
* use dependencies in git
* update sqlcipher dependencies
2022-08-30 12:31:41 +01:00
Evgeny Poberezkin
5894f91927
fix connections passed to ntf supervisor to include pending, not only active ( #506 )
...
* fix connections passed to ntf supervisor to include pending, not only active
* fix
* fix 2
2022-08-30 08:26:42 +01:00
Evgeny Poberezkin
1459a0613a
set invitation as not accepted in case of join error ( #505 )
...
* set invitation as not accepted in case of join error
* remove unused name
2022-08-25 12:17:55 +01:00
Evgeny Poberezkin
212a9bc4ab
enable/disable connection notifications ( #501 )
...
* enable/disable connection notifications
* filter connections when intializing/disabling subscriptions
* fix
* fix 2
* add delay
* increase test delay
* increase test delay
* fix
* increase test delays
* increase test delays
2022-08-19 15:23:57 +01:00
Evgeny Poberezkin
3fc9afbb35
move servers update before migration (so it re-tries in case of crash)
2022-08-18 08:39:22 +01:00
Evgeny Poberezkin
b2d4bfd0a8
split migration to multiple transactions (trying to prevent Android crash) ( #502 )
2022-08-17 22:08:01 +01:00
Evgeny Poberezkin
cfab5a18d3
move server update to SQL migration ( #500 )
2022-08-16 21:31:19 +01:00
Evgeny Poberezkin
0437796232
support multiple server hosts with notifications ( #498 )
...
* support multiple server hosts with notifications
* remove unused type
* remove unused import
* update server hosts during parsing
2022-08-14 21:10:34 +01:00
Evgeny Poberezkin
02bba01c16
send host events when server hosts are connected and disconnected ( #496 )
2022-08-13 11:57:36 +01:00
Evgeny Poberezkin
68138c08d2
support multiple server hostnames per queue ( #494 )
...
* store SMP client version per queue
* use versioned format for queue addresses (not compatible with v1)
* multiple server hosts in queue URI/data, versioned encoding (cross-version tests fail)
* choose server host based on socksProxy setting
* test works
* multiple server addresses mostly work
* add onion hosts for provided servers
* update SMP hosts
2022-08-12 11:32:04 +01:00
Evgeny Poberezkin
6bfaa4985e
expire messages after 2 days, increase max message sending interval ( #490 )
...
* expire messages after 2 days, increase max message sending interval
* rename
2022-08-11 10:15:08 +01:00
Evgeny Poberezkin
e9db0a1162
allow passing all network configuration to the agent ( #488 )
2022-08-02 13:30:00 +01:00
Evgeny Poberezkin
fcaddb7848
agent functions to get/set network configuration ( #484 )
...
* agent functions to get/set network configuration
* fix condition
2022-07-25 13:50:46 +01:00
Evgeny Poberezkin
d788c3ca95
access servers via SOCKS proxy ( #482 )
...
* access servers via SOCKS proxy
* config to pass tcp timeout and option SOCKS5 proxy to the agent
2022-07-23 13:57:10 +01:00
Evgeny Poberezkin
d810db4eed
send servers in agent events ( #478 )
...
* send servers in agent events
* remove some changes
* command/function to get connection servers
* getConnectionServers return type
2022-07-20 13:56:43 +01:00
Evgeny Poberezkin
1ce63bee44
create notification subscriptions in batch subscribe ( #477 )
...
* create notification subscriptions in batch subscribe
* refactor
* refactor
2022-07-19 09:30:17 +01:00
Evgeny Poberezkin
6bbe1dfc66
use batch commands to resubscribe agent on server re-connection ( #473 )
2022-07-18 07:26:41 +01:00
Evgeny Poberezkin
a6f401041a
SMP protocol v4: batching multiple server commands/responses in a transport block ( #470 )
...
* batch server commands in one transport block
* subscribe to multiple queues using batched commands
* agent method to subscribe to multiple queues using batched commands
* refactor
* test for batched subscriptions
* delete part of connections in batched test
* add resubscribeConnections
* remove comment
* update SMP protocol doc
2022-07-17 10:10:38 +01:00
Evgeny Poberezkin
cc798145d2
suspend agent without delay ( #463 )
...
* suspend agent without delay
* suspend/activate in separate atomically
2022-07-06 13:58:58 +01:00
Evgeny Poberezkin
abd694bd5a
parameterize protocol server by scheme ( #459 )
2022-07-05 21:56:14 +01:00
Evgeny Poberezkin
9c1b43791c
SMP v3: encrypt message timestamp and flags together with the body between server and recipient ( #457 )
...
* SMP v3: encrypt message timestamp and flags together with the body between server and recipient
* v3 tests
* update protocol doc
* add test for max size message
* delay in notifications test
* simplify v3
* encrypt server message to the recipient when sent
* refactor
* exit on error restoring the messages
* refactor, increase test timeout
* style
* add prints to the test
* remove error from unsafeMaxLenBS
* update protocol
* lint, improve test, change func param
2022-07-05 21:08:05 +01:00
Evgeny Poberezkin
4c0164c49e
fix: support msgFlag NULL in sql ( #458 )
2022-07-03 13:05:16 +01:00
JRoberts
57d83ae42d
ntf: notify client about ntf supervisor internal errors ( #455 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-07-02 12:27:09 +04:00
Evgeny Poberezkin
f9cd7e5416
suspend ntf operations when agent is suspended ( #453 )
...
* suspend ntf operations when agent is suspended
* end and begin ntf operation on loop
2022-07-01 22:43:18 +01:00
Evgeny Poberezkin
6b6ea78eac
ntf server error handling ( #448 )
...
* ntf server error handling
* refactor
* fix
2022-07-01 12:25:08 +01:00
Evgeny Poberezkin
238a2e7fe9
handle ntf supervisor errors ( #451 )
2022-07-01 15:22:20 +04:00
JRoberts
82eff6c757
ntf: internal error if ntf server is not configured at SCHK on AUTH error ( #450 )
...
* ntf: internal error if ntf server is not configured at SCHK on AUTH error
* refactor
* rename
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-07-01 14:09:05 +04:00
JRoberts
0392f849aa
ntf: reset subscription on SCHK AUTH error; launch only required workers ( #449 )
2022-07-01 13:19:56 +04:00