-
Notifications
You must be signed in to change notification settings - Fork 3
chore: add Vpn.Service app for Manager #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Implements a basic .NET hosted service manager architecture with Microsoft.Extensions - Adds a Manager and ManagerService for handling Manager lifecycle - Adds a ManagerRpcService for managing the RPC server and passing requests to the Manager singleton - Adds a Downloader for handling singleflight for downloading files - Implements downloading with progress reporting, ETag validation, and Authenticode validation
This PR is getting huge so I'm going to get this merged so I can request reviews in smaller chunks going forward. Most of this is the boilerplate which enables writing the actual application code (although I probably could've done the Downloader in another PR at the very least :/) |
_handler = handler; | ||
|
||
// Yes, this is the best way to get an unused port using HttpListener. | ||
// It sucks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😭
[RegularExpression(@"^([a-zA-Z0-9_-]+\.)*[a-zA-Z0-9_-]+$")] | ||
public string ServiceRpcPipeName { get; set; } = "Coder.Desktop.Vpn"; | ||
|
||
// TODO: pick a better default path |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably just AppData?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't be writable by users so it will definitely be in ProgramData or Program Files
Also:
TODO:
AuthenticodeDownloadValidator
tests with binaries (I guess download them from somewhere and cache them during the test?)ClientMessage
and merge upstream, updatevpn.proto
ClientMessage
requests/responsesRelates to #2