Evgeny Poberezkin
b11bb9f52e
Merge branch 'master' into short-links
2024-09-09 16:01:23 +01:00
spaced4ndy
946e16339e
agent: process last notification from list ( #1307 )
2024-09-09 16:42:14 +04:00
spaced4ndy
092ed088ca
ntf: support for multiple messages encoding ( #1305 )
2024-09-09 16:03:17 +04:00
Evgeny
dab1980d79
xftp: report receive file error with redirected file ID, when redirect is present ( #1304 )
...
* xftp: report receive file error with redirected file ID, when redirect is present
* fix test
2024-09-09 08:08:16 +01:00
Evgeny Poberezkin
36b49b66f8
Merge branch 'master' into short-links
2024-09-05 15:10:25 +01:00
Evgeny
137ebc1cad
servers: reduce memory used for period stats ( #1298 )
2024-09-02 23:12:08 +01:00
Evgeny
d5efe3406a
agent: fix race when sending a message to the deleted connection ( #1296 )
2024-09-02 15:07:16 +01:00
Evgeny
ce6777b68d
newtype for server entity IDs, fix TRcvQueues ( #1290 )
...
* put DRG state to IORef, split STM transaction of sending notification (#1288 )
* put DRG state to IORef, split STM transaction of sending notification
* remove comment
* remove comment
* add comment
* revert version
* newtype for server entity IDs, fix TRcvQueues
* Revert "put DRG state to IORef, split STM transaction of sending notification (#1288 )"
This reverts commit 517933d189 .
* logServer
2024-08-30 12:50:02 +01:00
Evgeny
655e7ad7d5
smp server: get message queue faster, avoiding STM contention if queue exists, split transaction for notification delivery ( #1289 )
...
* put DRG state to IORef, split STM transaction of sending notification (#1288 )
* put DRG state to IORef, split STM transaction of sending notification
* remove comment
* remove comment
* add comment
* revert version
* smp server: get message queue faster, avoiding STM contention if queue exists
* IORef for counter
* Revert "put DRG state to IORef, split STM transaction of sending notification (#1288 )"
This reverts commit 517933d189 .
* version
* remove IORef
* split notification delivery transations
* revert version
2024-08-30 11:53:22 +01:00
Evgeny
2e7e476f81
smp server: remove "expensive" stats ( #1285 )
2024-08-28 18:20:44 +01:00
Evgeny
2c9ad74599
smp server: batch END responses when subscribed client switches (version 2) ( #1283 )
...
* fix incorrect entity ID for notification subscription END when queue is deleted
* throttle sending ENDs
* fix stats
* clean up
2024-08-28 10:14:41 +01:00
Evgeny
16cf5c8628
smp server: stats for END events and for SUB/DEL event batches ( #1281 )
...
* smp server: count queued and sent END events
* fix
* shadowing
* stats for batches
* fix
2024-08-26 14:58:18 +01:00
Evgeny
53e829a21c
agent: store query errors, reduce slow query threshold to 1ms ( #1277 )
...
* agent: collect query errors stats
* simplify
* test
* use microseconds
* parens
* revert change to track all queries, reduce threshold to 1 ms
2024-08-24 14:51:26 +01:00
Evgeny
ab4acadcc1
agent: fix stuck connection commands when server is not responding ( #1276 )
...
* agent: fix stuck connection commands when server is not responding
* fix
* rename
* test SKEY retry
2024-08-24 13:54:20 +01:00
Diogo
1cbf8c0015
agent: support changing user of the new connection ( #1267 )
...
* agent: support new connection user id update
* another way for assertion
* add more tests to setConnUserId
* remove fdescribes
* allow rcv connection to change user id
* add functional test to api
* remove fdescribe
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-08-20 10:57:09 +01:00
Evgeny
571d148bdf
agent: do not start delivery workers when there are no messages to deliver ( #1263 )
...
* agent: use weak ThreadId and forkIO in workers instead of async (reduce memory)
* agent: do not start and exit delivery workers when there are no messages to deliver (#1264 )
* agent: exit delivery workers when no messages to deliver
* only start delivery workers when there are pending messages
* fix
* focus test
* enable all tests
* lift
* do not exit workers when there is no work
2024-08-18 21:30:06 +01:00
Evgeny
7762b4d364
reduce the number of STM transactions ( #1255 )
...
* reduce the number of STM transactions
* reduce STM more
* refactor
* remove more
2024-08-09 16:38:46 +01:00
Evgeny
f4d1a33ed8
agent: retry loop that resumes subscriptions as soon as agent is moved to foreground, suspend retry loops while agent is suspended ( #1249 )
...
* agent: retry loop that resumes subscriptions as soon as agent is moved to foreground, suspend retry loops while agent is suspended
* reset retry enterval when moving to foreground
* account for network state too
* simplify
* typo
* simplify
2024-08-05 15:09:46 +01:00
Evgeny Poberezkin
03ea151be5
agent: support additional messages for connection in message batches ( #1247 )
...
* agent: support additional messages for connection in message batches
* fix, test
* test 2 connections
* use TVar instead of TMVar for GHC 8.10.7
2024-07-30 17:12:29 +01:00
Evgeny Poberezkin
4599dafa16
smp client: api to send/receive data blobs directly and via proxy, tests ( #1246 )
...
* smp client: api to send/receive data blobs directly and via proxy, tests
* fix test
2024-07-27 07:50:25 +01:00
Evgeny Poberezkin
fd009fe0d9
smp server: persistence for data blobs ( #1245 )
2024-07-25 21:46:47 +01:00
Evgeny Poberezkin
eee8c0ba78
Merge branch 'master' into short-links
2024-07-25 16:07:02 +01:00
Evgeny Poberezkin
5fa3c149e9
smp server: fix server-info, additional stats, allow expiring inactive clients which have prohibit subscriptions only (iOS NSE clients) ( #1237 )
...
* smp server: fix server-info
* fix
* faster saving messages
* remove comment
* move ProhibitSub out of TVar
* subscription stats
* stabilize test
* order
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* more notification stats
* count ntf stats
* update server-info
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-07-25 16:06:40 +01:00
Evgeny Poberezkin
a10d128cdc
Merge branch 'master' into short-links
2024-07-25 13:15:34 +01:00
Evgeny Poberezkin
f334843e01
smp server: key-value storage (for short invitation links) ( #1206 )
...
* rfc: short invitation links
* shorter
* types
* server implementation, client functions
* test
* update rfc
* test name
2024-07-25 13:15:03 +01:00
Evgeny Poberezkin
9093c7b120
agent, ntf server: only mark subscriptions as pending that were created by the disconnected client ( #1242 )
...
* ntf server: only mark subscriptions as pending if the disconnected client is current
* add sessionId to subscribed queue
* add sessionId to subscriptions in ntf server agent
* fix
2024-07-25 13:07:28 +01:00
Evgeny Poberezkin
051bf38bc7
agent: remove delays in notification processing, add notification stats ( #1235 )
...
* agent: remove delays in notification processing, add notification stats
* do not replace token after failed check
* more stats
* refactor
* fix
* backwards compatible JSON parsing
* retry deleting subscription on temporary error
* remove attempts to get multiple notification messages
* fix JSON decoding to be backwards compatible
2024-07-22 15:42:34 +01:00
spaced4ndy
7565ddd91c
agent: initialize ratchet on processing confirmation to support decryption of messages received before allowConnection; return SndQueueSecured from joinConnection, acceptContact ( #1233 )
2024-07-18 19:54:14 +04:00
Evgeny Poberezkin
e59a098e66
smp server: remove subscriptions from the clients when queues are deleted ( #1234 )
...
* smp server: remove subscriptions from the clients when queues are deleted
* remove ntf subscriptions, update stats
* add GET stats
2024-07-18 10:59:48 +01:00
Evgeny Poberezkin
784d36d691
socks mode encoding ( #1231 )
...
* socks mode encoding
* test delays
* test delay
* unused import
2024-07-15 20:28:24 +01:00
Evgeny Poberezkin
291039159f
ntf server: use SOCKS proxy to connect to onion-only SMP servers ( #1229 )
...
* ntf server: use SOCKS proxy to connect to onion-only SMP servers
* fix test
2024-07-14 23:19:02 +01:00
Evgeny Poberezkin
d4fa0af350
ntf: additional tests for token registration when server and device are restarted ( #1230 )
...
* ntf: additional tests for token registration when server and device are restarted
* test response timeouts
2024-07-14 17:57:34 +01:00
Evgeny Poberezkin
8dd54ced0e
agent: retry proxied command on NO_SESSION error, to prevent failure of proxied interactive commands (like joining connection) ( #1227 )
2024-07-13 10:06:48 +01:00
Evgeny Poberezkin
e56bd0b47b
agent: add known servers ( #1225 )
...
* agent: add known servers
* test delays
* ServerCfg
* json encoding
* enabledServerCfg
* checkUserServers
2024-07-12 12:41:55 +01:00
Evgeny Poberezkin
21abc5cabe
smp server: reduce the number of threads by delivering message to subscription when it is sent ( #1222 )
...
* smp server: reduce the number of threads by delivering message to subscription when it is sent
* test delay
* test delay
2024-07-08 23:12:01 +01:00
Evgeny Poberezkin
6e76221e07
agent: fix possible dead lock between sending and receiving messages, stress test for message delivery ( #1224 )
...
* agent: fix possible dead lock between sending and receiving messages, stress test for message delivery
* deliver events after the lock is released
* delayed delivery in command processing too
* tests: increase message expiration time
2024-07-08 21:47:42 +01:00
Evgeny Poberezkin
743676421d
ntf server: simplify and optimize subscriptions in server agent ( #1219 )
...
* increase queue size
* simplify
* refactor to optimize memory usage and performance
* comment
* refactor
* test delays
2024-07-07 21:17:12 +01:00
Evgeny Poberezkin
9d0774a58e
agent: add queue information ( #1217 )
...
* agent: add queue information to "debug delivery" response
* fix test
* rename
* encodings
2024-07-03 19:32:27 +01:00
Evgeny Poberezkin
ce732c0efb
agent: enable fast handshake (revert #1215 ) ( #1216 )
...
* Revert "agent: disable fast handshake (#1215 )"
This reverts commit aa1d8d6c8b .
* remove import
* test delays
2024-07-03 18:05:27 +01:00
Evgeny Poberezkin
aa1d8d6c8b
agent: disable fast handshake ( #1215 )
2024-07-02 13:40:37 +01:00
Evgeny Poberezkin
a6b542b301
Merge branch 'master' into fast-connection
2024-06-30 15:00:28 +01:00
Evgeny Poberezkin
6a54a58a0d
agent: remove legacy statistics ( #1211 )
...
* agent: remove legacy statistics
* delays after disposeAgent
* delays
* enable all tests
* more delays
2024-06-30 12:50:42 +01:00
Evgeny Poberezkin
9ee684b0f4
rfc: faster handshake protocol ( #1203 )
...
* rfc: faster handshake protocol
* update
* 1 message
* SKEY
* use SKEY for both parties
* test
* update doc
* NEW command parameter
* add k=s param to queue URI
* fix
* add sndSecure field to queues
* make sender key non-optional in SndQueue (WIP, tests fail)
* fast handshake sometimes works (many tests fail)
* correctly handle SKEY retries, avoiding to re-generate the keys
* handle SKEY retries during async connection
* fix most tests (1 test fails)
* remove do
* fix contact requests encoding/tests
* export
* fix: ignore duplicate confirmations, fixes testBatchedPendingMessages
* do not store sndSecure in store log if it is false to allow server downgrade
* add connection invitation encoding tests
2024-06-30 08:36:24 +01:00
Evgeny Poberezkin
388d77b61a
ntf stats on SMP server ( #1197 )
...
* log undelivered notifications
* type
* add counters and encoding
* rename
* diff
* style
* style2
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-06-15 20:05:45 -07:00
Alexander Bondarenko
6597f6f0ed
tests: add proxy connection refused test ( #1200 )
2024-06-15 19:27:58 -07:00
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