Alexander Bondarenko
a75fce8dfa
Fix hostStore path and check before removing ( #3375 )
2023-11-15 15:57:29 +00:00
Evgeny Poberezkin
b71daed3ec
core: include session code in all session states ( #3374 )
2023-11-15 13:17:31 +00:00
Alexander Bondarenko
fa9d61caa4
remove host store in deleteRemoteHost ( #3373 )
2023-11-15 13:09:52 +00:00
Evgeny Poberezkin
d4ba1bbe69
core: update remote host session state ( #3371 )
2023-11-14 22:27:21 +00:00
Evgeny Poberezkin
0a4920daae
core: encrypt stored/loaded remote files ( #3366 )
...
* core: encrypt stored/loaded remote files
* simplexmq
* constant
2023-11-14 16:44:12 +00:00
Evgeny Poberezkin
c91625b32a
core: update remote host session state, terminate TLS in one more case ( #3364 )
...
* core: update remote host session state, terminate TLS in one more case
* name
2023-11-13 20:16:34 +00:00
Alexander Bondarenko
598b6659cc
core: better handling of remote errors ( #3358 )
...
* Allow ExitCode exceptions to do their job
* Use appropriate error type
* Close TLS server when cancelling connected remote host
* Add timeout errors
* Bump simplexmq
* extract common timeout value
2023-11-13 18:39:41 +00:00
Evgeny Poberezkin
72b25385ba
core: event when new remote host added ( #3355 )
2023-11-12 21:43:43 +00:00
Evgeny Poberezkin
92e3f576ca
core: return controller app info in response when connecting, validate ID key ( #3353 )
2023-11-12 14:40:49 +00:00
Evgeny Poberezkin
8e3e58cac8
core: update remote controller name ( #3352 )
2023-11-12 12:40:13 +00:00
Evgeny Poberezkin
8b67ff7a00
core: remote error handling ( #3347 )
...
* core: remote error handling
* fix test, show DB errors
2023-11-11 16:03:12 +00:00
Alexander Bondarenko
227007c8f6
add /switch remote host ( #3342 )
...
* Add SwitchRemoteHost
* Add message test
* Match remote prefix and the rest of the line
* Move prefix match to utils
2023-11-10 17:49:23 +00:00
Evgeny Poberezkin
02225df274
core: remote control command/response encryption and signing inside TLS ( #3339 )
...
* core: remote control command/response encryption inside TLS (except files, no signing)
* sign/verify
* update simplexmq
* fix lazy
* remove RSNone
2023-11-10 16:10:10 +00:00
Alexander Bondarenko
f41861c026
core: terminate remote control TLS connection on both sides ( #3338 )
...
* handle session setup errors
* add command/async wrapper
* move furniture around
* detect disconnects and force them with closeConnection
* simplify http server log
* close TLS in other cases
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-11-09 22:43:44 +00:00
Alexander Bondarenko
6d4febb669
core: handle remote control session setup errors ( #3332 )
...
* handle session setup errors
* add command/async wrapper
* move furniture around
2023-11-09 18:25:05 +00:00
Evgeny Poberezkin
3dd62ab05a
core: remove Hello from the app remote protocol ( #3336 )
2023-11-09 09:37:56 +00:00
Alexander Bondarenko
b729144773
core: use xrcp protocol for desktop/mobile connection ( #3305 )
...
* WIP: start working on /connect remote ctrl
OOB is broken, requires fixing simplexmq bits.
* WIP: pull CtrlCryptoHandle from xrcp
* place xrcp stubs
* WIP: start switching to RemoteControl.Client types
* fix http2 sha
* fix sha256map.nix
* fix cabal.project
* update RC test
* WIP: add new remote session
* fix compilation
* simplify
* attach HTTP2 server to TLS
* starting host session in controller (WIP)
* more WIP
* compiles
* compiles2
* wip
* pass startRemote' test
* async to poll for events from host, test to send messages fails
* move xrcp handshake test to simplexmq
* detect session stops
* fix connectRemoteCtrl
* use step type
* app info
* WIP: pairing stores
* plug in hello/appInfo/pairings
* negotiate app version
* update simplexmw, remove KEM secrets from DB
* fix file tests
* tone down http2 shutdown errors
* Add stored session test
* bump simplexmq tag
* update simplexmq
* refactor, fix
* removed unused errors
* rename fields, remove unused file
* rename errors
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-11-08 20:13:52 +00:00
Evgeny Poberezkin
8482dbfd99
core: update remote API commands/events ( #3295 )
...
* core: update remote API
* Add session verification event between tls and http2
* roll back char_ '@' parsers
* use more specific parser for verification codes
* cabal.project.local for mac
---------
Co-authored-by: IC Rainbow <aenor.realm@gmail.com>
2023-11-01 19:08:36 +00:00
Alexander Bondarenko
02c0cd5619
Cut at attaching http server/client ( #3299 )
...
* Cut at attaching http server/client
* switch to xrcp branch
2023-11-01 10:48:58 +00:00
Alexander Bondarenko
be44632b0b
implement some of the robust discovery rfc ( #3283 )
...
* implement robust discovery
* remove qualified
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-10-30 14:00:54 +00:00
Evgeny Poberezkin
d90da57f12
core: store/get remote files ( #3289 )
...
* core: store remote files (wip)
* fix/test store remote file
* get remote file
* get file
* validate remote file metadata before sending to controller
* CLI commands, test
* update store method
2023-10-29 19:06:32 +00:00
Alexander Bondarenko
0d1a080a6e
remote protocol ( #3225 )
...
* draft remote protocol types and external api
* types (it compiles)
* add error
* move remote controller from http to remote host client protocol
* refactor (doesnt compile)
* fix compile
* Connect remote session
* WIP: wire in remote protocol
* add commands and events
* cleanup
* fix desktop shutdown
* prepare for testing remote files
* Add file IO
* update simplexmq to master
with http2 to 4.1.4
* use json transcoder
* update simplexmq
* collapse RemoteHostSession states
* fold RemoteHello back into the protocol command
move http-command-response-http wrapper to protocol
* use sendRemoteCommand with optional attachments
use streaming request/response
* ditch lazy body streaming
* fix formatting
* put body builder/processor closer together
* wrap handleRemoteCommand around sending files
* handle ChatError's too
* remove binary, use 32-bit encoding for JSON bodies
* enable tests
* refactor
* refactor request handling
* return ChatError
* Flatten remote host
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-10-22 09:42:19 +01:00
Evgeny Poberezkin
fc1bba8817
remote: refactor (WIP) ( #3222 )
...
* remote: refactor (WIP)
* refactor discoverRemoteCtrls
* refactor processRemoteCommand, storeRemoteFile
* refactor fetchRemoteFile
* refactor startRemoteHost, receiving files
* refactor relayCommand
2023-10-15 14:17:36 +01:00
Evgeny Poberezkin
41b86e07f1
core: update api ( #3221 )
2023-10-15 00:18:04 +01:00
Evgeny Poberezkin
f5e9bd4f8b
core: add set display name ( #3216 )
...
* core: add set display name
* enable all tests
2023-10-14 13:10:06 +01:00
Evgeny Poberezkin
5e6aaffb09
simplify remote api, add ios api ( #3213 )
2023-10-13 22:35:30 +01:00
Alexander Bondarenko
193361c09a
core: fix remote handshake test ( #3209 )
...
* Fix remoteHandshakeTest
Sidesteps some yet to be uncovered bug when
mobile stops its side before the desktop.
* remove ambiguous update warning
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-10-13 18:53:04 +01:00
Evgeny Poberezkin
392447ea33
core: fix test
2023-10-13 17:52:27 +01:00
Evgeny Poberezkin
73652e4bba
Merge branch 'master' into remote-desktop
2023-10-12 10:43:59 +01:00
Evgeny Poberezkin
c2a858b06e
core: convert single-field to tagged JSON encoding ( #3183 )
...
* core: convert single-field to tagged JSON encoding
* rename
* rename
* fixes, test
* refactor
2023-10-11 19:11:01 +01:00
Alexander Bondarenko
6f5ba54f7b
core: remote session files ( #3189 )
...
* Receiving files on CRRcvFileComplete
* Add remote /fr test
* Add broken startFileTransfer notice
* Sending files with SendFile/SendImage
With tests for SendFile.
* Add APISendMessage handling
* Test file preconditions
No files should be in stores before actual sending.
* Fix mobile paths in storeFile
2023-10-11 09:45:05 +01:00
Alexander Bondarenko
91561da351
core: http transport for remote session ( #3178 )
...
* Wire some of the session endpoints
* Start sending remote commands
* Expand remote controller
- Fix queues for pumping to remote
- Add 3-way test
- WIP: Add TTY wrapper for remote hosts
- Stop remote controller w/o ids to match starting
* Fix view events
* Drop notifications, add message test
* refactor, receive test
* hunt down stray asyncs
* Take discovery sockets in brackets
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-10-07 14:23:24 +01:00
Alexander Bondarenko
fc9db9c381
core: add FromJSON instance to ChatResponse ( #3129 )
...
* Start adding FromJSON instances to ChatResponse
* progress
* FromJSON instance for ChatResponse compiles
* restore removed encodings
* remove comment
* diff
* update simplexmq, use TH for JSON
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-10-05 19:49:20 +01:00
Alexander Bondarenko
0bcf5c9c66
Add commands for remote session credentials ( #3161 )
...
* Add remote host commands
* Make startRemoteHost async
* Add tests
* Trim randomStorePath to 16 chars
* Add chat command tests
* add view, use view output in test
* enable all tests
* Fix discovery listener host
Must use any, not broadcast on macos.
* Fix missing do
* address, names
* Fix session host flow
* fix test
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-10-04 16:36:10 +01:00
IC Rainbow
6c0d1b5f15
Notify about handover errors
2023-09-29 16:53:05 +03:00
IC Rainbow
af2df8d489
Rewrite remote controller
2023-09-29 15:01:05 +03:00
IC Rainbow
cccb3e33fb
Plug discovery into remote controller UI
2023-09-27 18:24:38 +03:00
IC Rainbow
77410e5d5e
Add remote host discovery
2023-09-27 13:40:19 +03:00
Alexander Bondarenko
3e29c664ac
core: remote host/controller types ( #3104 )
...
* Start sprinkling ZoneId everywhere
* Draft zone/satellite/host api
* Add zone dispatching
* Add command relaying handler
* Parse commands and begin DB
* Implement discussed things
* Resolve some comments
* Resolve more stuff
* Make bots ignore remoteHostId from queues
* Fix tests and stub more
* Untangle cmd relaying
* Resolve comments
* Add more http2 client funs
* refactor, rename
* rename
* remove empty tests
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-09-27 09:41:02 +01:00