spaced4ndy
2bec353eae
xftp: add command to delete rcv file; agent manages save path ( #692 )
2023-03-20 20:08:38 +04:00
Evgeny Poberezkin
02eb1e9822
add stateTVar imports for compatibility with older hackage index in nix builds
2023-03-18 07:57:25 +00:00
Evgeny Poberezkin
e33d5b5184
use different constraint for non-error functions ( #690 )
2023-03-17 16:01:24 +04:00
spaced4ndy
9255d48b69
xftp: move delay to replica ( #688 )
2023-03-16 18:12:38 +04:00
spaced4ndy
db120b6d2e
xftp: pass save path to agent ( #685 )
2023-03-14 19:16:25 +04:00
Evgeny Poberezkin
ddc2da8fe4
xftp: agent API for xftp commands and events ( #684 )
...
* xftp: agent API for xftp commands and events
* fix tests
* fix tests 2
* xftp: update agent send api
* update API to make temp path optional
* revert tmp path changes (fixes send)
---------
Co-authored-by: spacedandy <8711996+spaced4ndy@users.noreply.github.com >
2023-03-13 09:04:23 +00:00
Evgeny Poberezkin
3fe1f3c822
rename FileParty constructors
2023-03-11 10:05:07 +00:00
spaced4ndy
c1266d55a4
xftp: experimental send api wip ( #682 )
2023-03-10 20:43:10 +04:00
spaced4ndy
cf8f78f518
xftp: add random bytestring entity id for rcv files ( #681 )
2023-03-10 20:32:37 +04:00
spaced4ndy
cc2066473c
xftp: cleanup complete & error files tmp paths; remove save path before decrypting if exists ( #677 )
2023-03-10 14:26:34 +04:00
Evgeny Poberezkin
8fde8e1344
xftp: agent command entities ( #676 )
...
* xftp: agent command entities
* progress event
* parameterize agent command by entity
* refactor
* Eq instance for APartyCmdTag
2023-03-10 09:10:52 +00:00
spaced4ndy
e9f949f117
xftp: resume file reception and decryption on agent restart ( #673 )
2023-03-07 13:29:28 +04:00
spacedandy
cc38deb65d
Merge branch 'master' into xftp
2023-03-03 19:16:12 +04:00
spaced4ndy
cf147397a4
xftp: agent receive file ( #637 )
...
* xftp: agent receive file draft
* receiveFile more stubs, changes to types, schema
* cabal file
* comments
* xftp_server_id
* schema changes, get client, local worker/action
* agent env, save file description, adjust schema
* client stubs
* download chunk wip, store, schema, types
* remove commented code
* read file description, schema, types
* check received, decrypt
* remove pure
* todo
* add XFTP to agent client
* add user id
* agent test
* tests
* rename supervisor into agent
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-03-03 18:50:16 +04:00
Evgeny Poberezkin
2f7c115207
retryInterval functions pass current interval to the action, to resume with the same interval on restart (improve battery consumption) ( #670 )
2023-03-03 14:12:36 +00:00
spaced4ndy
c0dcf283eb
server_key_hash fields ( #643 )
...
* server_key_hash fields
* test
* refactor
* fix
* order
* use sync command in test
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-02-17 21:24:32 +00:00
Evgeny Poberezkin
cfe995325a
agent: prevent batch deletions from failing on one connection sql error ( #628 )
...
* agent: prevent error reading one connection failing batched subscription
* prevent batch deletions from failing on one connection sql error
* rename
2023-02-04 20:46:45 +00:00
Evgeny Poberezkin
b59669a65e
refactor functions operating on single connections using batch functions ( #620 )
...
* refactor functions operating on single connections using batch functions
* update tests
2023-01-24 13:14:13 +00:00
Evgeny Poberezkin
2ccef1690b
events sent by the agent when queue, connection and user are deleted asynchronously ( #619 )
...
* events sent by the agent when queue, connection and user are deleted asynchronously
* update test
* more tests
* add user tests
* queries
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2023-01-24 11:12:07 +00:00
Evgeny Poberezkin
d4fc638478
async batch connection deletion ( #617 )
...
* async batch connection deletion
* delete user record with connections, async connection deletion
* updates
* update query
2023-01-21 13:41:16 +00:00
Evgeny Poberezkin
a854b5f2b2
batched queue deletion ( #611 )
...
* batched queue deletion
* only re-connect client on subscribe errors, not in all batch commands
* add test, fix
* correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
* refactor
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2023-01-19 16:53:28 +00:00
Evgeny Poberezkin
324e01300d
execute asynchronous commands for correct users, include session in messages from SMP clients to agent ( #608 )
...
* execute asynchronous commands for correct users
* pass transport session to message processing to avoid race condition
* account for server changes when determining unused servers
* enable one test
* enable all tests, remove log
2023-01-16 11:06:19 +00:00
Evgeny Poberezkin
b549910c17
support switching session mode, transport session now uses connection ID ( #607 )
...
* support switching session mode, transport session now uses connection ID
* refactor
2023-01-16 08:51:41 +00:00
Evgeny Poberezkin
9c9ba8c25c
subscribe users in different sessions ( #602 )
...
* subscribe users in different sessions
* remove comments
* include userId to rcv queue map key
* use hash of userId[:entityId] as SOCKS proxy username
2023-01-13 09:58:39 +00:00
Evgeny Poberezkin
a0a092747a
Merge branch 'master' into users
2023-01-12 16:37:59 +00:00
Evgeny Poberezkin
1f12697279
strict writes to STM, remove type class ( #600 )
2023-01-12 14:59:46 +00:00
Evgeny Poberezkin
f4ad3a983e
support users in agent to isolate traffic of different users ( #598 )
...
* users table, isolate traffic sessions by users or by queues
* remove extra indices
* corrections
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2023-01-11 17:47:20 +04:00
JRoberts
698b5c4146
set correct snd queue as primary on QTEST ( #596 )
2023-01-09 10:37:57 +00:00
Evgeny Poberezkin
acfa65200a
deduplicate connections in connect/disconnect responses, log errors in tPut ( #593 )
...
* remove TODO for old handshake version (this HELLO is not sent now)
* deduplicate connections in responses and verify server in the list of subscribed queues
* log transport and LargeMsg in tPut (the results it returns are only used in the tests)
* refactor
* refactor
2023-01-06 17:14:49 +00:00
Evgeny Poberezkin
61e0c346df
simplify C.sign, Crypto tests, triage TODOs ( #592 )
...
* simplify C.sign, Crypto tests, triage TODOs
* update condition
* remove todos
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2023-01-06 15:34:05 +00:00
JRoberts
11c235a8a3
check token status when sending verification notification ( #594 )
2023-01-06 19:16:55 +04:00
Evgeny Poberezkin
058e3ac55e
send/process "quota exceeded" message from SMP server when sender gets ERR QUOTA ( #585 )
...
* send "quota exceeded" message from SMP server when sender gets ERR QUOTA (ignored in the agent for now)
* send msg quota to the recipient to indicate that sender got ERR QUOTA, test
* switch between slow/fast retry intervals (tests do not pass yet)
* send QCONT message, refactor RetryInterval, test
* refactor
* remove comment
* remove space
* unit test for withRetryLock2
* refactor
2023-01-04 14:10:13 +00:00
Evgeny Poberezkin
aa17cc55c1
collect agent stats ( #579 )
...
* collect agent stats
* remove comment
2022-12-26 12:02:20 +00:00
Evgeny Poberezkin
fb21d9836e
agent: api to get hash of ratchet associated data for connection verification ( #577 )
...
* agent: api to get hash of ratchet associated data for connection verification
* enable all tests
* correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-12-09 09:41:12 +00:00
Evgeny Poberezkin
e4842f4f47
agent: include server address string into BROKER errors ( #575 )
...
* agent: include server address string into BROKER errors
* eol
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-11-30 08:25:07 +00:00
Evgeny Poberezkin
f3b6ed4db0
agent API for SMP server test ( #563 )
...
* agent API for SMP server test
* add JSON encoding
2022-11-15 07:50:46 +00:00
Evgeny Poberezkin
e281efdcb8
server: SMP basic auth ( #561 )
...
* server: SMP basic auth
* update ini default
* rfc, types
* tests
* update INI file
* typo
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
* refactor
* update INI options, log new queue creation mode on start (on/off/requires auth)
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-11-12 22:29:36 +00:00
JRoberts
d9a0e78b04
add optional client data field to ConnectionRequestUri ( #551 )
...
* add optional auxiliary data field to ConnectionRequestUri
* remove import
* fix, test
* fix StrEncoding Char
* data only in sync command, type
* fixing
* queryParamStr
* safeDecodeUtf8
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-11-01 13:42:44 +04:00
Evgeny Poberezkin
4beaafa35a
add queue directions to SWITCH events ( #553 )
2022-11-01 08:44:32 +00:00
Evgeny Poberezkin
8d9816809f
simplify queue rotation protocol ( #550 )
...
* simplify queue rotation protocol
* use simplified rotation protocol, update tests
* simplify schema
* delete all connection queues
* refactor
* switch notifications to the new queue, tests
* remove TODO
* refactor
* rfc correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
* remove duplicate set active
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-10-31 13:33:28 +04:00
Evgeny Poberezkin
eb5c1c78cb
connection queue redundancy and rotation ( #521 )
...
* rfc: queue rotation
* update rfc
* messages for queue rotation
* allow multiple subscribed queues per connection in Agent/Client.hs
* refactor
* fix module name
* allow multiple queues in duplex connection type
* update commands
* add indices
* addConnectionRcvQueue
* switch connection to another queue (WIP)
* update schema/protocol
* switching queue works, but sending messages after the switch fails
* messages are delivered after rotation
* use connection-scoped queue ID
* rename queue records fields
* refactor using SMPQueue class/instances
* simplify queries
* QKEY: check queue is not secured, refactor
* update rfc
* mark queue as primary in QUSE
* queue rotation errors
* fix async ack
* fix async ACK to send OK
* correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
* use SWCH command
* rename
* take into account only active queue subscription when determining connection result if at least one queue is active
* remove comment
* only enable notifications for connections with enableNtfs = True
* async test (WIP)
* async queue rotation test
* simplify combining results
* test with 2 servers
* fix unused subscribeConnection
* switch to cabal build
* increase build timeout
* increase delay in async test
* skip queue rotation tests
* build matrix
* step name
* use ubuntu-18.04 in build matrix
* enable rotation tests
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-10-29 18:57:01 +01:00
Evgeny Poberezkin
19aef52135
debug agent locks
2022-10-22 16:43:14 +01:00
Evgeny Poberezkin
d06bb2b9c5
use KDF in X3DH ( #548 )
...
* use KDF in X3DH
* configure ratchet version via agent config, test matrix
* add comment
2022-10-20 11:03:19 +01:00
JRoberts
f97c1a7712
agent: acceptContactAsync functional api ( #545 )
2022-10-13 19:46:32 +04:00
Evgeny Poberezkin
10e0e58ec3
improve concurrency by not holding connection lock while async command retries ( #544 )
...
* improve concurrency by not holding connection lock while async command retries
* fix
* debug test
2022-10-09 18:00:42 +01:00
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
9cd5f96fe4
import
2022-09-30 12:36:21 +01:00
JRoberts
a2eea4f18f
add deleteConnectionAsync functional api ( #538 )
2022-09-29 21:11:36 +04:00