Commit Graph

212 Commits

Author SHA1 Message Date
Evgeny Poberezkin 401053161e Merge branch 'master' into ep/rfc-rotation 2022-09-09 17:06:38 +01:00
Evgeny Poberezkin 6adbc56021 try async commands without servers on different servers (#516)
* refactor

* retry commands with different servers

* refactor

* remove comment

Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>

Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
2022-09-09 12:30:27 +01:00
Evgeny Poberezkin ecdd08e080 Merge branch 'master' into ep/rfc-rotation 2022-09-08 22:40:05 +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 cb97459a0b remove connId from nextRcvQueueMsgs key 2022-09-06 15:50:30 +01:00
Evgeny Poberezkin a58ea2a969 Merge branch 'master' into ep/rfc-rotation 2022-09-06 15:19:38 +01:00
Evgeny Poberezkin da5058a0c4 remove connId from message delivery queue keys (#515) 2022-09-06 14:39:50 +01:00
JRoberts b215bd954d remove token if token replace fails with permanent error (#511) 2022-08-31 21:12:44 +04:00
Evgeny Poberezkin 0c7bdda219 add next queues to DuplexConnection 2022-08-28 09:14:17 +01:00
Evgeny Poberezkin a8caab810a store methods 2022-08-27 17:35:54 +01:00
Evgeny Poberezkin bfd9dafe1e choose different server for reply queue and during rotation 2022-08-27 14:52:57 +01:00
Evgeny Poberezkin 1ddf56f0e1 add QTEST to the rotation protocol 2022-08-27 11:34:40 +01:00
Evgeny Poberezkin b7dd971e3f switch message delivery 2022-08-26 21:31:44 +01:00
Evgeny Poberezkin b50f773dcd change message delivery loop 2022-08-26 14:54:58 +01:00
Evgeny Poberezkin b558eb8243 process queue switch messages 2022-08-25 23:44:35 +01:00
Evgeny Poberezkin a8c3f5c6b5 rename columns 2022-08-25 21:42:58 +01:00
Evgeny Poberezkin cac30ca341 refactor store 2022-08-25 21:14:56 +01:00
Evgeny Poberezkin 2f77f16276 process rotation messages 2022-08-25 20:38:35 +01:00
Evgeny Poberezkin 0152832f8e add agent SWITCH event, update DH e2e key in reply queue address 2022-08-25 16:19:42 +01:00
Evgeny Poberezkin 02b81ae2fe Merge branch 'master' into ep/rfc-rotation 2022-08-25 14:27:03 +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 3a897020c8 add TODOs to secure confirmed queue on subscription 2022-08-25 09:43:54 +01:00
Evgeny Poberezkin b6759f8f7d rqNewMsg 2022-08-25 09:36:12 +01:00
Evgeny Poberezkin a98708d206 store functions 2022-08-24 17:23:28 +01:00
Evgeny Poberezkin cb62df187f agent function stubs for queue rotation 2022-08-24 13:32:44 +01:00
Evgeny Poberezkin 5bfecaa227 update sub-protocol for queue rotation 2022-08-23 20:06:03 +01:00
Evgeny Poberezkin 470208f621 additional queue colums 2022-08-23 19:26:55 +01:00
Evgeny Poberezkin 0846a2ddb6 add next queue IDs 2022-08-23 14:31:37 +01:00
Evgeny Poberezkin 4440815016 SMP server: respond with the current number of queue messages to suspend command (OFF) 2022-08-22 22:27:37 +01:00
Evgeny Poberezkin 5b1a25a696 update rfc and protocol messages 2022-08-22 14:57:27 +01:00
Evgeny Poberezkin 30aa8b9ded messages for queue rotation 2022-08-21 13:38:49 +01:00
Evgeny Poberezkin a7b39b710c fix toggleConnectionNtfs (#503) 2022-08-20 13:26:25 +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 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 7d99c4b35c reconnect agent clients on any network config change (#489)
* reconnect agent clients on any network config change

* add Eq instances
2022-08-03 09:59:49 +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 eb1f9370c1 fix GET from contact connection (#480) 2022-07-21 19:42:31 +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 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 7a238812b7 ntf server: fix resubscribing to SMP server after it was restarted, test (#465) 2022-07-08 14:46:01 +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 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
JRoberts 9695786aa5 ntf: separate types into their own module (#444) 2022-06-30 14:31:36 +04:00