Evgeny Poberezkin
d2ea913feb
sized builder
2024-01-08 21:10:15 +00:00
Evgeny Poberezkin
0e0a5fe6c0
tests
2024-01-08 20:14:34 +00:00
Evgeny Poberezkin
94ce06e1e9
reduce delay
2024-01-08 19:25:15 +00:00
Evgeny Poberezkin
032191bd20
remove logs
2024-01-08 19:12:42 +00:00
Evgeny Poberezkin
3c0c890bcb
more delay, less worker delay
2024-01-08 19:06:14 +00:00
Evgeny Poberezkin
cc2c1e0dae
delays
2024-01-08 18:52:55 +00:00
Evgeny Poberezkin
58a188376b
debug2
2024-01-08 16:51:59 +00:00
Evgeny Poberezkin
34e8b9dbe7
debug test
2024-01-08 16:21:52 +00:00
Evgeny Poberezkin
2303f278fd
increase timeout in test
2024-01-08 13:13:25 +00:00
Evgeny Poberezkin
27d77e2d76
refactor
2024-01-08 10:02:24 +00:00
Evgeny Poberezkin
85e9b74252
use Builder for batching commands
2024-01-07 22:19:06 +00:00
Alexander Bondarenko
34056b9d7b
xftp-server: add control port ( #951 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-05 17:36:19 +00:00
Alexander Bondarenko
b4495bb4f0
xftp-server: fix stats ( #944 )
...
* xftp-server: fix stats
* count file expirations
* rename
* simplify
* check files size
* store and fix fileSize check
* do
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-05 11:30:27 +00:00
Alexander Bondarenko
36298f2cea
smp-server: update stats ( #943 )
...
* smp-server: check queue balance in stats vs store
* smp-server: add msgExpired stats
* add msgExpired stats
* split expire/stats transactions
* count and pass msgExpired explicitly
* save/load qCount and use it for checking store
2024-01-02 21:24:17 +00:00
Alexander Bondarenko
7eb7bd5e81
xftp-server: add inactiveClientExpiration ( #936 )
...
* xftp-server: add inactiveClientExpiration
* fix test config
* add test
* add xftpPing
* switch to PCEUnexpectedResponse
* remove watchdog when server quits
* rename, loop
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-12-27 20:31:19 +00:00
spaced4ndy
e43e4860b9
xftp: file workers cycle through pending files based on retries count (limit number of iterations per work item to prevent stuck delivery) ( #930 )
...
* xftp: test file reception - shouldn't get stuck if file is deleted on server
* comment
* expiration test
* approach
* wip
* sort by retries in other works, revert some diff
* revert diff
* modify tests
* refactor
* refactor
* remove prints
* apply to other workers
* remove import
* comment
* refactor
* revert queue size
* fix test
* rename
* comment, correct number of retries
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-12-26 22:20:25 +00:00
Alexander Bondarenko
efe7ce27e7
control: add delete command ( #933 )
...
* control: add delete command
* logDeleteQueue only when found
* use default StrEncoding for CPDelete arg
* move stats update from main transaction
* use size
* stabilize AUTH timing tests
* more iterations
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-12-26 20:20:12 +00:00
Evgeny Poberezkin
577e3cf14d
agent: add server msg IDs to agent logs, disable 2 tests ( #934 )
...
* agent: race when using agent via TCP
* remove logs
* enable tests
* comments
* use different databases for different clients
* enable all tests
2023-12-26 17:50:39 +00:00
Evgeny Poberezkin
7ddeca50e4
agent: mark work items failed ( #931 )
...
* agent: mark work items failed (WIP)
* add tests, created_at
* getWorkItem for snd and rcv files
* fix
* tests
* fix
* tests
* test
* tests
* rename
* fix,refactor
* add indexes
* update schema
* do not try to get more work when resuming an existing worker
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-12-26 17:00:42 +04:00
Evgeny Poberezkin
2489333c87
agent: use DB to queue async commands and messages ( #929 )
...
* agent: use DB to queue async commands and messages
* fix message delivery, async commands dont work
* fix async commands
* remove comment
* rename
* comment
* balance agent operation
* empty lines
* balance another agent operation
* diff
* worker
* qAddress
* fix incorrect queue ID in v1
* types for queues
* fix test
* update index
2023-12-23 12:59:53 +00:00
Evgeny Poberezkin
1c2604f6a3
agent: background mode for agent NSE ( #924 )
2023-12-22 08:59:07 +00:00
Evgeny Poberezkin
13a60d1d39
use ChaChaDRG as the source of randomness ( #920 )
...
* use ChaChaDRG as the source of randomness
* remove functions using entropy directly
* comment
2023-12-21 00:12:08 +00:00
Alexander Bondarenko
7c27357eb2
server: stop inactive clients without subscriptions, additional monitoring via control port ( #901 )
...
* fix thread labelling points
* add subscription thread labels
* add explicit sections for sockets/sessions/disconnects
* adjust label threads wrt. next blocking op
* WIP: emit event on server finish
So the event log wouldn't be cut short giving
false impression of unterminated sessions.
* add handshake timeout
* hack server socket stats
* trace closeTLS exceptions
* fix build
* clean up disconnectTransport
* make disconnectTransport terminating
Thus, participating in racyAny_ around it.
* trach snd/rcv time separately, log clients as CSV
* add direct client counting/stats
* add csv dump for socket threads
* guard socket threads dump from older GHC
* cut socket thread listing into socket-threads command
* store client creation time for stats
* wrap tls setup in timeout and labels
* server: expire clients without subscriptions
* fix check for subscriptions
* remove excess tracing
* move hardcoded timeouts to configs
* cleanup
* fix tests
* wrap direct queue waits in timeout
* rewrite old TCP wrappers with their SocketState variants
* add testInactiveWithSubs
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-12-19 15:50:45 +00:00
Evgeny Poberezkin
560dc55312
agent: notify about polled message processing (for iOS notifications) ( #908 )
...
* agent: notify about polled message processing (for iOS notifications)
* optionally keep key and support re-opening database
* exports
* test that cannot reopen when created with keepKey: false
* set max number of messages to receive for a notification to 3
2023-12-11 13:03:53 +00:00
Alexander Bondarenko
117168ccce
raise mtl version to 2.3.1 ( #912 )
...
* raise mtl version to 2.3.1
* fix test on 8.10
2023-12-02 11:43:36 +00:00
Alexander Bondarenko
6bffcc8503
compatibility with GHC 8.10.7 ( #906 )
...
* build with ghc-8.10
* add 8.10 to matrix
* cleanup
* stats
* remove getField
* agent
* server
* remote
* space
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-29 12:53:06 +00:00
Evgeny Poberezkin
cc8b8cd10d
agent: fix hanging test ( #907 )
2023-11-28 22:25:58 +00:00
Alexander Bondarenko
febf9019e2
remote: add controller address preferences ( #905 )
...
* remote: add controller address preferences
* suppress localhost from breaking multicast discovery w/o prefs
* rewrite findCtrlAddress
* refactor
* refactor2
* add tests
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-28 14:12:29 +00:00
Evgeny Poberezkin
8fa369f9d3
5.4.0: xftp 1.1.3, ntf 1.6.4 ( #903 )
...
* 5.4.0: xftp 1.2.0, ntf 1.7.0
* upgrade ghc in github job
* change xftp, ntf versions
* shorter predicate for exception in test
2023-11-26 22:20:42 +00:00
IC Rainbow
8ac97ed700
add retry around removing tmp dir
2023-11-21 21:30:53 +02:00
IC Rainbow
79d9f41fd8
add delay to testDuplicateMessage
2023-11-21 20:10:14 +02:00
IC Rainbow
2fe408666e
fix testAsyncCommandsRestore test
2023-11-21 19:54:10 +02:00
Alexander Bondarenko
40ba94ce72
remote: add multicast discovery w/ encrypted announce ( #895 )
...
* Implement multicast discovery
* replace rcConnectMulticast with explicit discoverRCCtrl
* add multicast source/invitation host check
* remove JSON encoding for multicast invitations
* add specific error for announcing "new" controllers
* rename
* set size, rename
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-17 17:56:14 +00:00
Evgeny Poberezkin
e0b7942e45
remote: return tls with remote host before host confirmation ( #894 )
2023-11-13 19:25:53 +00:00
Evgeny Poberezkin
bd06b47a9d
return TLS session on remote connection step ( #891 )
2023-11-09 22:27:30 +00:00
Evgeny Poberezkin
248144f3de
do not use previous KEM shared secret in multicast packets and in host HELLO ( #888 )
...
* do not use previous KEM shared secret in multicast packets and in host HELLO
* simplify
2023-11-08 12:06:10 +00:00
Alexander Bondarenko
1a8dfb4cbe
agent: xrcp implementation for connection via link (no multicast) ( #884 )
...
* WIP: start working on connection invites
startSession/OOB is broken now - the port isn't coming from the actualy assigned one.
* Add invite types
* clean old invite-related types
* apply renames
* Move SessionKeys from Invitation
* Stub host-side keys and handle
* move keys and handles to Types
* add Simplex.RemoteControl.Client
* more keys
* progress
* crypto for sessions
* progress to multicast
* multicast crypto
* add RC TLS server
* agent api for remote control
* WIP: tls client
* fix test
* update encoding to include nonce
* add TODO
* update
* Use network-info to find TransportHost
* request and submit tls client certificate
* WIP: add missing bits for testing RC client
* RCEncryptedHello encoding
* add block encoding
* refactor
* validate known host certificate
* remove some spaghetti
* functional API to host/ctrl clients
* refactor connectRCCtrl_
* refactor connectRCHost
* question
* add type
* fix RC session
* update doc
* update doc 2
* add block on confirmation
* remove unused parameter
* export CtrlSessKeys
* export
* fix parsing
* move test of xrcp handshake
* move KEM to HELLO step
* fix JSON
* type
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-07 13:05:18 +00:00
Evgeny Poberezkin
a5fed340e2
hybrid shared secret X25519 + sntrup761 ( #881 )
...
* hybrid shared secret X25519 + sntrup761
* use IORef
* enable all tests
* update
* update
* use newtype
* move withDRG
2023-11-01 10:33:15 +00:00
Evgeny Poberezkin
ce796ec225
Merge branch 'master' into xrcp
2023-11-01 09:24:06 +00:00
Evgeny Poberezkin
4660ee9cff
agent: revert to TVar ( #883 )
2023-11-01 09:15:51 +00:00
Evgeny Poberezkin
70bf665938
Merge branch 'master' into xrcp
2023-10-31 23:52:45 +00:00
Evgeny Poberezkin
b5f733d2db
agent: use IORef for DRG ( #882 )
2023-10-31 23:52:13 +00:00
Evgeny Poberezkin
c22c15a2e8
sntrup761 ( #865 )
...
* add sntrup761 source
* it compiles
* Wrap bindings in non-FFI types
Test passes with a dummy RNG.
* pass ChaChaDRG via FunPtr
* Add iOS smoke test at createAgentStore
* style
* add "ssl" library dep
Attempt to fix missing _SHA512 symbol on macos.
* remove sha512 wrapper and use openssl directly
* restore names, remove dummy RNG
* Revert "remove sha512 wrapper and use openssl directly"
This reverts commit f9f7781f09 .
* restore code from RFC
* shorter names
* enable all tests
* remove run test
---------
Co-authored-by: IC Rainbow <aenor.realm@gmail.com >
2023-10-31 22:44:46 +00:00
Evgeny Poberezkin
511d793b92
derive JSON instances with TH ( #869 )
...
* derive JSON instances with TH
* defaultJSON
* remove ToJSON
2023-10-26 09:20:30 +01:00
Evgeny Poberezkin
cf8b9c12ff
remove test dependencies ( #861 )
...
* remove test dependencies
* .hlint.yaml
2023-10-22 10:50:36 +01:00
Evgeny Poberezkin
9d12d76078
add fourmolu ( #868 )
...
* add fourmolu
* linebreak
* simplify
* comment
2023-10-22 09:20:14 +01:00
spaced4ndy
80905c0822
test concurrent send and receipts ( #866 )
2023-10-19 20:08:58 +04:00
spaced4ndy
1ad69cf74f
agent: always parse connection request uri as simplex:/ ( #863 )
2023-10-16 18:25:56 +04:00
Evgeny Poberezkin
fda1284ae4
agent: support closing and re-opening store ( #855 )
...
* agent: support closing and re-opening store
* add closed flag, tests
2023-09-27 12:50:24 +01:00
Evgeny Poberezkin
887ccbcf6c
Merge branch 'master' into master-ghc9
2023-09-10 18:00:33 +01:00