spaced4ndy
c788692687
agent: servers summary types, api ( #1202 )
...
* agent: servers summary types, api [wip]
* encoding
* export
* Revert "export"
This reverts commit cd9f315fe8 .
* comment
* rename
* simplify types
* uncomment
* comment
* rework
* comment, exports
* save, restore stats wip
* remove
* rename
* save stats periodically
* sigint, sigterm experiments
* corrections
* remove some proxy stats
* increase stat
* proposed stats
* fields
* Revert "sigint, sigterm experiments"
This reverts commit f876fbd418 .
* wip
* retries -> attempts
* errs
* fix
* other errs
* more stat tracking
* sub stats
* remove xftp successes stats
* xftp stats tracking
* revert
* revert
* refactor
* remove imports
* comment
* Revert "refactor"
This reverts commit 26c368d82a .
* Revert "revert"
This reverts commit 4c9e3753b5 .
* Revert "revert"
This reverts commit 6f65644053 .
* todos
* persistence
* rename, fix
* config
* comment
* add started at to summary
* delete stats on user deletion
* reset api
* move
* getAgentServersSummary collect state logic
* corrections
* corrections
* remove
* rework
* decrease contention
* update
* more stats
* count sentProxied
* count subs
* remove unused
* comment
* remove comment
* comment
* export
* refactor
* cleanup
* intervals
* refactor
* refactor2
* refactor3
* refactor4
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-06-25 09:42:59 +04:00
Alexander Bondarenko
9e7e0d102d
smp-server: conserve resources ( #1194 )
...
* transport: force auth params, remove async wrapper
* stricter new messages
* bang more thunks
* style
* don't produce msgQuota unless requested
* strict
* refactor
* remove bangs
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-06-24 13:15:08 +01:00
Evgeny Poberezkin
d47c099ac9
docs: update protocol specifications ( #1204 )
...
* docs: update protocol specifications
* update SMP protocol (WIP)
* add proxy protocol commands and responses, amend envelope sizes in SMP protocol
* docs: update XFTP protocol (#1205 )
* docs: update XFTP protocol
* commands
* fix table of contents, move sections
* add about ids
* download encryption
* qualities
* diagram
* crypto
* sending file diagram
* fix svg
* receiving file diagram
* update commands
* update handshake
* Add updated XRCP (#1207 )
* add XRCP protocol
* add ToC
* update
* update
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* add XFTP handshake description
* update agent protocol
* fast duplex connection in agent protocol
* update agent protocol
* update overview
* typos
* queue rotation, agent API, updates
* push notifications specification
* add XRCP threat model
* XFTP threat model
* update PQDR
* agent protocol end-to-end encryption
* versions
* remove TOC details
* update
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-06-23 22:53:45 +01:00
spaced4ndy
4bbadffa37
agent: api to reconnect single server ( #1198 )
...
* agent: api to reconnect single server
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-06-16 06:27:25 -07: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
bb1d31e459
remote ctrl: differentiate RCP error when trying to connect to unknown host identity ( #1195 )
...
* remote ctrl: differentiate RCP error when trying to connect to unknown host identity
* rename
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-06-10 17:42:51 +04:00
spaced4ndy
da620c388a
xftp: start chunk upload after all chunks are prepared ( #1191 )
2024-06-06 15:50:15 +04: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
d28b17e787
xftp server: send HTTP2 error as timeout error to the client so it is treated as temporary ( #1186 )
...
* xftp server: log file reception error
* report HTTP2 error as timeout error
* reduce timeout to 5 min
* process timeout error in protocol response
* log warning on timeout/HTTP2 error
2024-05-31 22:18:28 +01:00
Evgeny Poberezkin
3a3a84c58c
server: log proxy connection errors
2024-05-31 12:20:29 +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
6e4067dc0c
add string encodings for SMPProxyMode and SMPProxyFallback
2024-05-31 09:16:00 +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
spaced4ndy
97a953550f
agent: getAgentQueuesInfo ( #1180 )
2024-05-30 14:21:29 +04:00
Alexander Bondarenko
15f0bb9e79
tcp-server: recover from accept errors ( #1179 )
...
* tcp-server: recover from accept errors
* log
* warn
* where
* retry
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-29 13:18:00 +01:00
Evgeny Poberezkin
5c2c88315a
SMP server information ( #1072 )
...
* SMP server information
* fix tests
* country codes
* smp-server: serve contact and link pages from static files (#1084 )
* smp-server: serve contact and link pages from static files
* generate index
* use params from ini
* render using ServerInformation
* tweak templates
* update
* fix some html
* smp-server: fix layout (#1097 )
* smp-server: fix layout
* port fixes to link page
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
* update server information page
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
Co-authored-by: M. Sarmad Qadeer <MSarmadQadeer@gmail.com >
* update server info
* web: improve server info page design (#1166 )
* web: improve server info page design
* web: fix font errors & some tags
* web: improve contact & invitation page layout and header
* update
* remove unused files/css
* cleanup
* fix link page
* remove unused font links
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* show contact address as is
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
Co-authored-by: M. Sarmad Qadeer <MSarmadQadeer@gmail.com >
2024-05-29 11:30:42 +01:00
Evgeny Poberezkin
63f5e76f9c
agent: treat absent proxy session as a temporary error to retry sending ( #1178 )
...
* agent: treat absent proxy session as a temporary error to retry sending
* enable all tests
2024-05-29 08:06:01 +01:00
Evgeny Poberezkin
e55ec07fe2
server: log stats for QUOTA and other errors ( #1177 )
...
* server: log stats for QUOTA errors
* fix test
* more stats
* remove duplicate column
2024-05-28 15:32:41 +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
4a96dbf871
server: preprocess proxy commands that will not be connecting to network to reduce concurrency, do not wait for destination relay responses before processing the next command ( #1174 )
...
* server: preprocess proxy commands that will not be connecting to network to reduce concurrency
* implementation
* tests
* increase proxy client concurrency
* simplify
* refactor
* refactor2
* rename
* refactor3
* fix 8.10.7
2024-05-28 09:38:47 +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
ab7b350521
agent: prevent sending not-batched client commands once requests time out ( #1173 )
2024-05-27 14:55:04 +01:00
Evgeny Poberezkin
470dc74391
ntf server: do not persist server connection errors
2024-05-24 14:25:05 +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
Evgeny Poberezkin
875a56b75a
Merge branch 'stable'
2024-05-23 16:48:11 +01:00
Alexander Bondarenko
984394d906
core: remove MonadUnliftIO ExceptT orphans ( #1169 )
2024-05-23 16:44:00 +01:00
Alexander Bondarenko
f6bb105536
utils: remove MonadError usage ( #1168 )
2024-05-23 12:47:30 +01:00
Evgeny Poberezkin
2b09ada392
agent: reduce interval for storing server connection errors to 3 seconds
2024-05-22 14:36:54 +01:00
Evgeny Poberezkin
8097df5540
agent: persist server connection error ( #1165 )
...
* agent: persist server connection
* comment, refactor
* fix tests, reduce interval for ntf server
* cleanup
* 0
2024-05-22 13:25:49 +01:00
Evgeny Poberezkin
5bff2f5537
Merge branch 'stable'
2024-05-21 23:42:49 +01:00
Evgeny Poberezkin
f50589b31a
agent: remove external timeout to resubscribe ( #1164 )
...
* agent: remove external timeout to resubscribe
* liftIO
* fix tests
2024-05-21 22:52:22 +01:00
Alexander Bondarenko
f50fa5c60b
smp-server: limit concurrency in proxy command processing ( #1162 )
...
* smp: put client proxy command processing threads under a shared semaphore
* add LIMITS.max_proc_threads to server config
* rename to PROXY.client_concurrency
* retry on strictly greater than max concurrency
* set default to 16
* rename
* fix limit
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-21 12:53:33 +01:00
Alexander Bondarenko
f89d715a99
smp server: add proxy stats ( #1157 )
...
* smp-server: add proxy counters
* count simplex.im messages
* update
* fix
* get own servers from INI
* remove export
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-20 17:07:33 +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
Alexander Bondarenko
426f47c805
smp: use session vars for reconnecting small agent ( #1152 )
...
* smp: use session vars for reconnecting small agent
* process errors
* split session and protocol functions
* add active flag to agent
* actually invoke agent shutdown
* close proxy agent too
* restore stopping ntf subscribers
2024-05-16 19:06:27 +01:00
Evgeny Poberezkin
16d79da73e
config
2024-05-15 15:15:59 +01:00
Evgeny Poberezkin
6d19033375
proxy: remember server connection error for some time
2024-05-15 12:06:42 +01:00
Evgeny Poberezkin
2d2cc86bd8
Merge pull request #1095 from simplex-chat/proxy
...
SMP proxy feature branch
2024-05-14 21:35:51 +01:00