Evgeny Poberezkin
8516b0dd5b
proxy: negotiate client-relay version, include it in PFWD commands and in encrypted forwarded transmissions ( #1144 )
...
* proxy: negotiate client-relay version, include it in PFWD commands and in encrypted forwarded transmissions
* rename
* inline
* comment
* use correct server version when encoding forwarded commands
2024-05-11 17:11:28 +01:00
Evgeny Poberezkin
9f72b249b4
Merge branch 'master' into proxy
2024-05-11 10:25:35 +01:00
Evgeny Poberezkin
727fd8b8f5
server: more efficient response to batched subscriptions ( #1141 )
...
* server: more efficient response to batched subscriptions
* add sndMsgQ for interleaving messages with replies
* remove redundant liftIO
* refactor
* refactor2
* rename
* fix
* diff
* remove comment
* remove comment
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-05-10 22:19:11 +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
Evgeny Poberezkin
b48215d341
proxy: additional configuration for SOCKS proxy usage in SMP proxy client ( #1138 )
...
* proxy: additional configuration for SOCKS proxy usage in SMP proxy client
* update
2024-05-09 15:36:02 +01:00
Evgeny Poberezkin
5cafd9d5c4
server: more efficient responses to batch subscriptions ( #1137 )
...
* server: more efficient responses to batch subscriptions
* comments
* comment
* enable tests
* LogError
2024-05-09 09:20:57 +01:00
Evgeny Poberezkin
817fd77332
Merge branch 'master' into proxy
2024-05-08 23:00:53 +01:00
Evgeny Poberezkin
b27f126bab
include server version range in transport handle ( #1135 )
...
* include server version range in transport handle
* xftp handshake
* remove coment
* simplify
* comments
2024-05-08 23:00:00 +01:00
Evgeny Poberezkin
ea21b296fd
agent: reset error count and do not report errors when consequitive timeouts happen while offline ( #1136 )
...
* agent: reset error count and do not report errors when consequitive timeouts happen while offline
* refactor
* comment
2024-05-08 15:33:51 +01:00
spaced4ndy
3f57d54832
xftp: catch exceptions in chunk download ( #1133 )
2024-05-08 16:57:04 +04:00
Evgeny Poberezkin
b40654c95d
update agent to v7/v2 SMP/NTF protocol versions ( #997 )
...
* update agent to v7/v2 SMP/NTF protocol versions
2024-05-08 13:05:06 +01:00
Evgeny Poberezkin
6d471b8be2
Merge branch 'master' into proxy
2024-05-08 00:14:06 +01:00
Alexander Bondarenko
7a07076277
transport: require ALPN for extended handshakes ( #1134 )
...
* transport: require ALPN for extended handshakes
* fix 8.10 build
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-08 00:06:09 +01:00
Evgeny Poberezkin
a70f492f4d
proxy: fallback to direct connection if destination relay does not support proxy protocol ( #1132 )
...
* proxy: fallback to direct connection if destination relay does not support proxy protocol
* move version to TransportError, refactor
2024-05-07 13:37:40 +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
e13b0df539
client: remove TLS handshake timeout ( #1129 )
...
* client: remove TLS handshake timeout
* remove comment
2024-05-05 17:05:51 +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
b586a6e90a
client: removed concurrency limit when waiting for subscription results ( #1126 )
2024-05-03 22:16:52 +01:00
Evgeny Poberezkin
6f83273318
client: increase timeout for SOCKS connection, increase timeout for direct connection ( #1123 )
2024-05-02 15:14:01 +01:00
Evgeny Poberezkin
fb5d54e0a2
Merge branch 'master' into proxy
2024-05-01 12:52:04 +01:00
Alexander Bondarenko
0d2c1d3c01
transport: reduce ping traffic ( #1118 )
...
* transport: reduce ping traffic
* make pings opt-in, enable automatically with SUB commands
* fix reduced delays
* enable pings on MSG too
* rename pingErrorCount
* check timeout counter even when not sending pings
* clean up
* reset timeout error count on any event
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-01 10:38:33 +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
66eccbecb3
upgrade SMP/NTF servers to v7/v2 protocol versions ( #996 )
...
* upgrade SMP/NTF servers to v7/v2 protocol versions
* 5.6.0.0
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-05-01 00:51:08 +01:00
Alexander Bondarenko
b931c1be37
utils: remove zstd contexts ( #1116 )
2024-04-25 09:33:22 +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
1612a7e2c7
agent: reduce sizes for per-queue e2e encryption ( #1113 )
2024-04-22 09:25:03 +01:00
Evgeny Poberezkin
2347b82b47
adjust timeouts and delayed response errors ( #1112 )
2024-04-21 22:57:07 +01:00
Alexander Bondarenko
b98fdb672d
transport: increase client timeouts, don't send command after timeout ( #1110 )
...
* transport: fix client handshake timeouts
* fix handshake timeout
* skip sending requests for timed out responses
* expose batch concurrency as PClient field
* move to NetworkConfig
* remove Request on timeout
* use record
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-20 18:17:48 +01:00
Evgeny Poberezkin
3ba3172aaf
xftp: enable ALPN in XFTP server ( #1109 )
2024-04-20 09:15:33 +01:00
Evgeny Poberezkin
2d1609f222
update envelope sizes for proxied messages, remove unnecessary proxy-relay encryption padding ( #1107 )
...
* update envelope sizes for proxied messages
* remove unnecessary padding from proxy-relay encryption
2024-04-19 20:24:25 +01:00
Alexander Bondarenko
58ede38bf4
put smp errors into proxy wrappers ( #1103 )
...
* put smp errors into proxy wrappers
* use substring in PROXY UNEXPECTED error
* fix encoding
* revert String encoding, discard invalid errors in QC
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-19 14:58:15 +01:00
Evgeny Poberezkin
7712070cb3
Merge branch 'master' into proxy
2024-04-18 23:33:06 +01:00
Evgeny Poberezkin
c00c223f3b
remove (or make optional) client key from handshakes ( #1104 )
...
* remove (or make optional) client key from handshakes
* remove comment
2024-04-18 22:43:49 +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
2f43b43225
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 >
2024-04-17 17:46:22 +01:00
Evgeny Poberezkin
ad4b5b6b71
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 >
2024-04-15 13:47:48 +01:00
Evgeny Poberezkin
98eb2742bc
Merge branch 'master' into proxy
2024-04-13 18:51:17 +01:00
Evgeny Poberezkin
ebb75ced12
extract SessionVar from AgentClient to reuse ( #1099 )
2024-04-13 18:33:12 +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
Alexander Bondarenko
875ddd80d6
SMP proxy: protocol ( #954 )
...
* WIP: proxy-related types
* test plan
* buildable with stubs
* add auth test
* update protocol
* fix
* update rfc
* update protocol/types
* disable test
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-12 18:04:29 +01:00
Alexander Bondarenko
036b7523a5
xftp: matrix test for new versions ( #1093 )
...
* xftp: matrix test for new versions
* manual matrix
* more, faster
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-12 13:28:16 +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
fbc25b171e
xftp: reply ERR AUTH when file is removed from server storage ( #1091 )
2024-04-10 23:02:48 +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
Alexander Bondarenko
91cf6841e0
http2: fix client setup ( #1090 )
...
* http2: cancel client action on setup timeout
* ignore incompatible server keys
2024-04-10 21:00:39 +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
b994fd9f0f
use sendRequest for HTTP2
2024-04-09 21:14:10 +01:00
Alexander Bondarenko
4c20ff6d00
xftp: negotiate protocol with ALPN ( #1047 )
...
* xftp: negotiate protocol with ALPN
* add RFC
* add handshake implementation
* implement extended handshake
* enable authentication
* update rfc
* Apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* cleanup
* discard trailing data
* cleanup diff
* use find
* rename
* refactor
* add x509 tests
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-09 15:03:40 +01:00
spaced4ndy
791368c7be
export lock function ( #1073 )
...
* export lock functions
* rename with tick
* simplify
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-04 15:37:31 +01:00