spaced4ndy
3c0cd7efcc
agent: separate type for agent file errors ( #1185 )
2024-06-05 18:44:32 +04:00
Evgeny Poberezkin
3d605310ed
agent: remove protocol encodings and agent TCP server ( #1189 )
...
* rfc: remove agent protocol encodings
* agent: remove protocol encodings and agent TCP server
* update
* remove unused code
* remove
* move tests
* add delay to tests
* stabilize test
* test
* more delays
* reduce delays
* enable all tests
* delays
* style
2024-06-05 14:34:40 +01:00
Evgeny Poberezkin
3dab330480
use throwE instead of throwError ( #1187 )
...
* use throwE instead of throwError
* test delay
2024-06-05 11:20:50 +01:00
Evgeny Poberezkin
d12ea92055
agent: report correct errors from xftp handshake so they are treated as temporary ( #1184 )
...
* agent: report correct errors from xftp handshake so they are treated as temporary
* disable slow servers test
* remove comments
* all tests
* remove duplicate functions
2024-05-31 09:47:47 +01:00
Evgeny Poberezkin
88f1b727e0
SMP protocol extension to debug subscribed SMP queues ( #1181 )
...
* SMP protocol extension to debug subscribed SMP queues
* fix, test
* corrections
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* increase delays
* increase timeout
* delay
* delay
* enable all tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-05-30 18:49:43 +01:00
Evgeny Poberezkin
199f85ec62
agent: send MWARN on QUOTA errors ( #1176 )
...
* agent: send MWARN on QUOTA errors
* fix tests
2024-05-28 11:56:57 +01:00
Evgeny Poberezkin
c8b2bb2ae1
agent: process message sent in expired response to ACK (it will increase duplicates count) ( #1175 )
2024-05-28 08:35:43 +01:00
Evgeny Poberezkin
2ff5f5a832
agent: add context to CMD error ( #1167 )
...
* agent: add context to CMD error
* tests, more warnings
* fix tests
* log TBQueue sizes
* log locks
* more logs
* log sendMessagesB
* fix test
* log length
* refactor
* remove logging
* revert lock scope change
* cleanup
* add string error to A_PROHIBITED
* remove
* remove test limitations
* language
2024-05-24 14:13:01 +01:00
Evgeny Poberezkin
e7a73a4c89
Merge branch 'stable'
2024-05-23 22:04:06 +01:00
Evgeny Poberezkin
6309f92c68
agent: fail if non-unique connection IDs are passed to sendMessages ( #1170 )
2024-05-23 22:01:57 +01:00
Alexander Bondarenko
8fe18c4f6d
core: use catMaybes to collect optional replies ( #1161 )
...
* core: use catMaybes to collect optional replies
* style
* rollback agent changes and add a note
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-20 15:48:21 +01:00
spaced4ndy
2e5433676e
xftp: check proxy before downloading from unknown server ( #1102 )
...
* xftp: check proxy before downloading from unknown server
* corrections
* remove import
* tests
* comment
* tests
* don't wrap into internal error
* fix tests
2024-05-20 14:14:04 +01:00
Evgeny Poberezkin
8b21f7ef2a
agent: aggregate multiple expired subscription responses into a single UP event ( #1160 )
...
* agent: aggregate multiple expired subscription responses into a single UP event
* clean up
* refactor processing of expired responses
* refactor
* refactor 2
* refactor unexpectedResponse
2024-05-20 07:56:51 +01:00
Evgeny Poberezkin
7a15ea59c9
Merge branch 'stable'
2024-05-19 07:58:00 +01:00
Evgeny Poberezkin
1bb6a5c43b
agent: do not increase network activity interval while offline ( #1159 )
...
* agent: do not increase network activity interval while offline
* test
2024-05-19 07:50:47 +01:00
Evgeny Poberezkin
077ca9c046
Merge branch 'stable'
2024-05-17 15:38:06 +01:00
Evgeny Poberezkin
33f6d2f1da
agent: optimize waiting for user network to avoid contention for state updates from multiple threads ( #1155 )
...
* haskell magic
* update
* agent: optimize waiting for user network with TChan
* clean up
* Int64
* use TVar
* cleanup
* fix
* testing
* update
2024-05-17 15:12:05 +01:00
spaced4ndy
b33e8f4370
agent: reconnect xftp clients ( #1156 )
2024-05-17 14:23:59 +01:00
spaced4ndy
00a2dde727
Merge branch 'master' into proxy
2024-05-14 10:41:06 +04:00
Evgeny Poberezkin
512afa1e2b
agent: count received duplicate messages ( #1148 )
...
* agent: count received duplicate messages
* count total too
* names
* fix
* tuple
2024-05-13 15:16:20 +01:00
Evgeny Poberezkin
c4c983348f
Merge branch 'master' into proxy
2024-05-13 14:13:52 +01:00
Evgeny Poberezkin
4455b8bd0e
agent: do not throw exception when command is created for deleted connection ( #1150 )
...
* agent: do not throw exception when command is created for deleted connection
* convert database busy/locked to critical alert
2024-05-13 08:10:40 +01:00
Evgeny Poberezkin
91cc48aabe
agent: do not mark subscriptions on expired sessions as active, mark delayed subscriptions as active on the same session, do not cancel sending expired commands ( #1127 )
...
* agent: do not mark subscriptions on expired sessions as active, do mark delayed subscriptions as active on the same session, SUBOK response in the next SMP protocol version
* client: prevent sub actions from zombie sessions (#1122 )
* client: prevent sub actions from zombie sessions
* error handling
* add AERR to pass background errors to client
* switch to activeClientSession
* put closeClient under activeClientSession
* rename
* remove AERR, do not skip processing
* move check and state update to one transaction
* catch extra UPs
* fix
* check queue is still pending before making it active
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* do not forward agent error
* revert not expiring sending subs
* fixes
* track subscription responses better
* add pending connection
* Revert "revert not expiring sending subs"
This reverts commit 4310a69391 .
* do not expire sending commands
* rename
* fix race
* function
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-05-12 17:47:08 +01:00
Evgeny Poberezkin
b7afb725fd
proxy: send MWARN event to user on server version or host more errors ( #1140 )
...
* proxy: include delivery path in SENT event
* send MWARN event to user on server version or host more errors
* Revert "proxy: include delivery path in SENT event"
This reverts commit 5c476718ec .
2024-05-10 10:55:19 +01:00
Alexander Bondarenko
c85f6a2f0e
proxy: reporting errors ( #1108 )
...
* smp-proxy: iron out errors
* treat proxy timeouts as temporary
* update errors
* proxy errors (missing encoding)
* update
* enable tests
* update
* update
* fix
* fix
* simplify
* test
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-06 22:00:42 +01:00
Evgeny Poberezkin
f22daf5cb6
Merge branch 'master' into proxy
2024-05-06 15:26:11 +01:00
Evgeny Poberezkin
ee8e4067b0
agent: prepare connection record before joining to prevent race conditions ( #1128 )
...
* agent: prepare connection record before joining to prevent race conditions
* prepare connection for contact address as well
* clean up
2024-05-05 12:12:19 +01:00
Evgeny Poberezkin
fb5d54e0a2
Merge branch 'master' into proxy
2024-05-01 12:52:04 +01:00
Evgeny Poberezkin
6d60de2429
proxy: agent implementation ( #1106 )
...
* proxy: agent implementation
* revert change
* update rfc
* test stuck subscription mock
* store proxy sessions inside SMP client var
* rename
* create and use proxy session
* tests
* return proxy in SENT event
* rename, more tests
* rename
* more tests
* remove comment
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-05-01 08:48:33 +01:00
Evgeny Poberezkin
fe28e02be7
agent: make version independent of PQ enqryption support ( #1114 )
...
* agent: make version independent of PQ enqryption support
* remove comment
2024-04-22 13:40:24 +01:00
Evgeny Poberezkin
2347b82b47
adjust timeouts and delayed response errors ( #1112 )
2024-04-21 22:57:07 +01:00
Evgeny Poberezkin
a3b229f668
SMP proxy: low level client and server implementation ( #1096 )
...
* SMP proxy: low level client and server implementation
* SMP proxy: server implementation (#1098 )
* wip
* PRXY command
* progress
* SMP Proxy: client-level implementation (#1101 )
* buildable
* encode messages
* update pkey
* fix queue types
* wrap SEND in proxy lookup
* WIP proxy client
* WIP
* post-rebase fixes
* encode something with something
* cleanup
* update
* fix nonce/corrId in batchingTests
* WIP: dig into createSMPProxySession
* agent
* test progress
* pass the test
* parameterize transport handle with transport peer to include server certificate (#1100 )
* parameterize transport handle with transport peer to include server certificate
* include server certificate into THandle
* load server chain and sign key
* fix key type
* fix for 8.10
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
Co-authored-by: IC Rainbow <aenor.realm@gmail.com >
* cleanup
* add 2-server test
* remove subsumed test
* checkCredentials for BrokerMsg
* skip batching tests
* remove userId param
* remove agent changes
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
* remove unused type
* icrease test timeout
* reduce transport block
* envelope sizes
* don't fork unless have proxied commands to process
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
Co-authored-by: IC Rainbow <aenor.realm@gmail.com >
2024-04-18 22:35:17 +01:00
Evgeny Poberezkin
b741b65700
use online status in network information ( #1094 )
...
* use online status in network information
* test
* refactor
* flip condition
* fix
2024-04-12 22:22:24 +01:00
spaced4ndy
3b1dd6dff9
agent: notify about available quota ( #1087 )
...
* agent: notify about available quota
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-11 09:38:12 +01:00
Evgeny Poberezkin
8fa9ed6317
wait for user network availability ( #1085 )
...
* ghc-options
* wait for user network availability
* test
* update
* comment
* refactor
* slow config
* line
* waitForUserNetwork in xftp and ntf workers
* refactor
* refactor with registerDelay
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-04-10 21:50:05 +01:00
Evgeny Poberezkin
1219446996
dispose agent instances, fix tests, ( #1089 )
...
* dispose agent instances in tests
* fix quota test
* tests: fix tests with -threaded (#1088 )
* fix some tests
* match RTS opts with apps
* less verbose rts stats
* enable sqlite extended error codes
* clean up
* unfocus
* remove extendedErrorCode
It's actually setExtendedResultCodes, which isn't yet available.
* diff
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* fix switch test
* fix
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-04-10 19:34:02 +01:00
Evgeny Poberezkin
6ded721daa
remove monad typeclasses to reduce overhead ( #1077 )
...
* remove monad typeclasses to reduce overhead
* remove unliftIO
* StrictData
* inline
* optional agent port
* avoid MonadUnliftIO instance (#1078 )
* avoid MonadUnliftIO instance
* simpler liftError'
* rename
* narrow down instance
* revert
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* logServer
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-03-31 20:50:35 +01:00
Evgeny Poberezkin
b32259d048
notify about critical error on agent crash ( #1062 )
...
* notify about critical error on agent crash
* waitUntilActive
* disposeAgent
* fix
2024-03-21 14:54:57 +00:00
spaced4ndy
293a2ca3f1
agent: remove withStoreCtx ( #1044 )
2024-03-13 13:33:59 +04:00
Alexander Bondarenko
2cad0cb201
core: check ACK handling with return type ( #1041 )
...
* core: check ACK handling with return type
* fix ratchet sync
* add SQL Locked to dbBusyLoop
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-11 19:06:53 +00:00
Evgeny Poberezkin
851ed2d02e
pqdr: more tests, pass e2e version to rcEncrypt from config ( #1040 )
...
* pqdr: more tests, pass e2e version to rcEncrypt from config
* fix
2024-03-10 13:29:03 +00:00
Evgeny Poberezkin
054b6edb14
pqdr: clean up ( #1039 )
2024-03-10 11:27:31 +00:00
Evgeny Poberezkin
dab55e0a9b
pqdr: return agent version from connection request version & PQ support check api
2024-03-08 23:13:21 +00:00
Evgeny Poberezkin
8ff4c628b5
pqdr: make envelope sizes dependent on version, test enabling PQ ( #1035 )
2024-03-08 08:28:15 +00:00
spaced4ndy
5e23fa6cfc
agent pq: connRequestPQSupport api ( #1034 )
2024-03-07 19:44:48 +04:00
Evgeny Poberezkin
11288866f9
pqdr: refactor
2024-03-07 12:41:10 +00:00
Evgeny Poberezkin
07fa75ec49
pqdr: agent api to confirm PQ encryption support during connection handshake, fix incorrect PQ support ( #1032 )
...
* pqdr: agent api to confirm PQ encryption support during connection handshake
* fix CONF, tests
* fix REQ, tests
* remove unused
2024-03-07 08:35:40 +00:00
Evgeny Poberezkin
4ffb6a348a
pqdr: use different newtypes for supporting and enabling PQ encryption in connections ( #1031 )
...
* pqdr: use different newtypes for supporting and enabling PQ encryption in connections
* rename field, fix test
* refactor
2024-03-06 21:28:03 +00:00
Evgeny Poberezkin
b435a4dacb
envelope sizes dependent on PQ encryption ( #1028 )
...
* envelope sizes dependent on PQ encryption (WIP)
* add "supported" flag to ratchets, update this flag on ratchet resync
* change connection PQ status on sendMessage
* comment, fix
* refactor
2024-03-06 16:38:30 +00:00
Evgeny Poberezkin
b050cf5027
double ratchet versioning for post-quantum encryption ( #1025 )
...
* correctly parse new Ratchet fields when omitted
* rfc: migrating connection versions to pqdr
* update rfc
* WIP (dont commit)
* rename versions
* update ratchet version based on PQ encryption feature flag
* remove duplicate function
* synchronize ratchet, fix tests, refactor
* comments
* test
* pattern
2024-03-05 17:07:15 +00:00