Evgeny Poberezkin
bbf9e28696
xftp: add server to client encryption layer with cryptobox ( #646 )
...
* xftp: add server to client encryption layer with cryptobox
* workarounds for http2
* update http2 commit
* remove TODOs
2023-02-22 09:03:18 +00:00
Evgeny Poberezkin
15637e545b
Merge branch 'master' into xftp
2023-02-17 21:40:35 +00:00
Evgeny Poberezkin
2ddfb044fc
parameterize protocol by error type ( #644 )
2023-02-17 20:46:01 +00:00
Stanislav Dmitrenko
bccef0ba47
files: server and client spike - basic upload/download ( #591 )
...
* Files: main, env, stats, storeLog
* Better + transport
* Executable
* Env
* Update Client.hs, Server.hs, and 4 more files...
* Answer on request
* Delay
* Temp file
* Bypass cert check
* update package.yml, rename
* update store log
* extend HTTP2 transport
* refactor caStore
* HTTP2 body
* update server stats
* file server/client framework
* verify server commands
* process FNEW command, CLI test works
* simple XFTP server test (fails)
* fix test, refactor
* upload chunk works
* receive file chunk in the client
* remove transport handshake
* typo
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fix names
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-02-13 13:36:02 +00:00
Evgeny Poberezkin
eb1723acce
refactor transport encoding, make client IO error "temporary" ( #634 )
...
* file server/client framework
* refactor
* make IOError temporary
* fix test
2023-02-10 19:06:28 +00:00
Evgeny Poberezkin
b342b1dc59
extend HTTP2 transport ( #632 )
...
* extend HTTP2 transport
* refactor caStore
* HTTP2 body
* enable test
* remove maxBodySize
2023-02-09 23:09:24 +00:00
Evgeny Poberezkin
f66e8239f4
Merge branch 'master' into users
2023-01-19 17:45:31 +00:00
Evgeny Poberezkin
56eea29ec3
end SMP client connection after configured number of PING errors, reset PING error count on any success ( #615 )
...
* end SMP client connection after configured number of PING errors, reset PING error count on any success
* only terminate client on PING timeout
* refactor
* comment
2023-01-19 17:45:06 +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
1f12697279
strict writes to STM, remove type class ( #600 )
2023-01-12 14:59:46 +00:00
Evgeny Poberezkin
b328492dc9
4.2.0 ( #597 )
2023-01-09 11:16:25 +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
874f9f5cd6
option to enable/disable TLS handshake error logs (disable by default) ( #581 )
...
* option to enable/disable TLS handshake error logs (disable by default)
* refactor
2022-12-27 10:13:51 +00:00
Evgeny Poberezkin
1d3a604988
refactor SMP client, NTF server store ( #580 )
...
* refactor SMP client, NTF server store
* remove undefined
2022-12-26 18:54:28 +00:00
Evgeny Poberezkin
f53c1f5559
server: clear folders during initialization instead of deleting them ( #572 )
2022-11-28 07:40:59 +00:00
Evgeny Poberezkin
43fb513ef7
initialize SMP server interactively, CLI options ( #566 )
...
* initialize SMP server interactively, CLI options
* correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
* corrections
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-11-18 19:07:41 +00:00
Evgeny Poberezkin
fbccca9947
refactor server CLIs ( #565 )
...
* refactor server CLIs
* refactor
2022-11-18 08:37:03 +00:00
Evgeny Poberezkin
40000047af
server: refactor CLIs, tests ( #564 )
...
* server: refactor CLIs, tests
* add files, test
* rename Executable -> Main
2022-11-17 19:43:01 +00:00
Evgeny Poberezkin
374526a11b
server: specialize monad ( #557 )
2022-11-03 11:47:28 +00:00
Evgeny Poberezkin
6fc3b26970
server: time/detect blocked message delivery actions ( #546 )
...
* server: log slow operations
* v3.3.1
* base-64 encode IDs
* fixing test
* log
* log
* revert
* log
* fix
* reduce timeout
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-11-02 20:13:09 +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
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
29332a5e9f
lints ( #539 )
...
* lints
* revert
* add import
* remove StrictData
2022-10-01 11:51:52 +01:00
JRoberts
b215bd954d
remove token if token replace fails with permanent error ( #511 )
2022-08-31 21:12:44 +04:00
Evgeny Poberezkin
0437796232
support multiple server hosts with notifications ( #498 )
...
* support multiple server hosts with notifications
* remove unused type
* remove unused import
* update server hosts during parsing
2022-08-14 21:10:34 +01:00
Evgeny Poberezkin
68138c08d2
support multiple server hostnames per queue ( #494 )
...
* store SMP client version per queue
* use versioned format for queue addresses (not compatible with v1)
* multiple server hosts in queue URI/data, versioned encoding (cross-version tests fail)
* choose server host based on socksProxy setting
* test works
* multiple server addresses mostly work
* add onion hosts for provided servers
* update SMP hosts
2022-08-12 11:32:04 +01:00
Evgeny Poberezkin
b76ef03dbe
ntf: server stats ( #487 )
...
* nts: server stats
* ntf: collect stats, refactor
* rename property
* fixes
2022-08-01 08:42:23 +01:00
Evgeny Poberezkin
a6f401041a
SMP protocol v4: batching multiple server commands/responses in a transport block ( #470 )
...
* batch server commands in one transport block
* subscribe to multiple queues using batched commands
* agent method to subscribe to multiple queues using batched commands
* refactor
* test for batched subscriptions
* delete part of connections in batched test
* add resubscribeConnections
* remove comment
* update SMP protocol doc
2022-07-17 10:10:38 +01:00
Evgeny Poberezkin
9f5e6bfd19
ntf protocol version negotiation ( #467 )
2022-07-09 12:04:13 +01:00
Evgeny Poberezkin
7a238812b7
ntf server: fix resubscribing to SMP server after it was restarted, test ( #465 )
2022-07-08 14:46:01 +01:00
Evgeny Poberezkin
991548b64d
ntf server: do not resubscribe to error/ended subscriptions on restart ( #464 )
2022-07-06 18:20:49 +01:00
Evgeny Poberezkin
abd694bd5a
parameterize protocol server by scheme ( #459 )
2022-07-05 21:56:14 +01:00
Evgeny Poberezkin
9c1b43791c
SMP v3: encrypt message timestamp and flags together with the body between server and recipient ( #457 )
...
* SMP v3: encrypt message timestamp and flags together with the body between server and recipient
* v3 tests
* update protocol doc
* add test for max size message
* delay in notifications test
* simplify v3
* encrypt server message to the recipient when sent
* refactor
* exit on error restoring the messages
* refactor, increase test timeout
* style
* add prints to the test
* remove error from unsafeMaxLenBS
* update protocol
* lint, improve test, change func param
2022-07-05 21:08:05 +01:00
Evgeny Poberezkin
2c52c514c0
ntf: fix TRPL to send verification to the new token ( #456 )
2022-07-02 15:07:20 +01:00
Evgeny Poberezkin
6b6ea78eac
ntf server error handling ( #448 )
...
* ntf server error handling
* refactor
* fix
2022-07-01 12:25:08 +01:00
JRoberts
c3012173e3
ntf: recover from failed/in-deletion subscriptions ( #446 )
...
* ntf: recover from failed/in-deletion subscriptions
* check NASNew status on subscription recover
* carryOnWithDeletion
* logs
* SCHK
2022-06-30 20:18:12 +04:00
Evgeny Poberezkin
f6a321e198
handle SMP errors in ntf subscriber ( #441 )
2022-06-30 16:04:01 +01:00
JRoberts
c82fae72f2
ntf: refactor NtfSubAction ( #445 )
2022-06-30 15:34:16 +04:00
JRoberts
9695786aa5
ntf: separate types into their own module ( #444 )
2022-06-30 14:31:36 +04:00
Evgeny Poberezkin
56ef95e8ae
ntf: fix null action ts ( #443 )
...
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-06-30 14:01:34 +04:00
JRoberts
2c7cad5378
ntf: update subscription status, error handling on SMP errors / agent events ( #439 )
...
* ntf: error handling on SMP errors / agent events
* refactor
* CASubError case
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* refactor
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* fix lint
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-29 15:14:44 +04:00
JRoberts
09b51dc44f
ntf: retry to deliver notification with new push client ( #437 )
...
* ntf: retry to deliver notification with new push client
* update statuses
* remove token update
* increase tokenTTL
2022-06-28 22:03:06 +04:00
Evgeny Poberezkin
85d507d5d3
ntf-server store log ( #435 )
...
* ntf-server store log
* ntf serevr: restore log when server is started, save compacted store log
* log ntf server store changes
* test, store log works
* update ntf-server exe
2022-06-28 17:10:50 +01:00
Evgeny Poberezkin
0c7c0d066d
support dev/prod APNS hosts ( #433 )
...
* support dev/prod APNS hosts
* fix test
2022-06-27 19:20:23 +01:00
JRoberts
3d6ad64d62
ntf: registerNtfToken rework, notification modes ( #431 )
...
* check mode for new subscriptions
* check token inside actions
* migration - apple -> apns
* wip
* register logic, modes
* update mode, cron config, verify token changes
* refactor
* fix test
* NTFMODE
* server: delete subscriptions on deleteToken
* refactor markNtfSubscriptionForDeletion
* remove NTFMODE
* remove subscriptions when token is deleted
* refactor
* lint
* test
* check ntfMode
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-27 21:54:35 +04:00
Evgeny Poberezkin
a8260290e7
token encodings ( #430 )
2022-06-25 16:17:39 +01:00
JRoberts
2809963a2e
ntf: register token with NotificationsMode ( #429 )
2022-06-25 17:34:08 +04:00
JRoberts
9e0e6b1afc
ntf: server retry to deliver notification ( #426 )
...
* ntf: server retry to deliver notification
* refactor
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-24 20:40:35 +04:00
Evgeny Poberezkin
b82452fe03
add category to mutable content notification ( #424 )
2022-06-24 15:35:50 +01:00