Skip to content

Commit

Permalink
Merge branch 'main' of ssh.dev.azure.com:v3/translucency/ControlR/Con…
Browse files Browse the repository at this point in the history
…trolR
  • Loading branch information
bitbound committed Dec 7, 2024
2 parents 6e4f840 + b61f25b commit ea5b514
Show file tree
Hide file tree
Showing 56 changed files with 166 additions and 229 deletions.
5 changes: 2 additions & 3 deletions ControlR.Agent.Common/IpcDtos/DesktopResponseDto.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using ControlR.Libraries.Shared.Serialization;
using MessagePack;
using MessagePack;

namespace ControlR.Agent.Common.IpcDtos;

[MessagePackObject]
public record DesktopResponseDto([property: MsgPackKey] string DesktopName);
public record DesktopResponseDto([property: Key(0)] string DesktopName);
5 changes: 1 addition & 4 deletions ControlR.Agent.Common/Models/DeviceModel.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
using ControlR.Libraries.Shared.Dtos.Interfaces;
using ControlR.Libraries.Shared.Serialization;
using MessagePack;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices;

namespace ControlR.Agent.Common.Models;

Expand Down
6 changes: 0 additions & 6 deletions ControlR.Agent.Common/Services/DtoHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,6 @@ private async Task HandleDtoReceivedMessage(object subscriber, DtoReceivedMessag

case DtoType.InvokeCtrlAltDel:
{
var payload = wrapper.GetPayload<InvokeCtrlAltDelRequestDto>();
payload.VerifyType(DtoType.InvokeCtrlAltDel);

if (OperatingSystem.IsWindowsVersionAtLeast(6, 1))
{
_win32Interop.InvokeCtrlAltDel();
Expand All @@ -87,9 +84,6 @@ private async Task HandleDtoReceivedMessage(object subscriber, DtoReceivedMessag
}
case DtoType.TriggerAgentUpdate:
{
var payload = wrapper.GetPayload<TriggerAgentUpdateDto>();
payload.VerifyType(DtoType.TriggerAgentUpdate);

await _agentUpdater.CheckForUpdate();
break;
}
Expand Down
12 changes: 6 additions & 6 deletions ControlR.Agent.Common/Startup/IHostBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,6 @@ namespace ControlR.Agent.Common.Startup;

internal static class HostApplicationBuilderExtensions
{
private static void ConfigureHttpClient(IServiceProvider provider, HttpClient client)
{
var options = provider.GetRequiredService<IOptionsMonitor<AgentAppOptions>>();
client.BaseAddress = options.CurrentValue.ServerUri;
}

internal static IHostApplicationBuilder AddControlRAgent(this HostApplicationBuilder builder, StartupMode startupMode, string? instanceId)
{
instanceId = instanceId?.SanitizeForFileSystem();
Expand Down Expand Up @@ -159,4 +153,10 @@ internal static IHostApplicationBuilder AddControlRAgent(this HostApplicationBui

return builder;
}

private static void ConfigureHttpClient(IServiceProvider provider, HttpClient client)
{
var options = provider.GetRequiredService<IOptionsMonitor<AgentAppOptions>>();
client.BaseAddress = options.CurrentValue.ServerUri;
}
}
4 changes: 0 additions & 4 deletions ControlR.Streamer/Services/DtoHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ private async Task HandleDtoReceivedMessage(object subscriber, DtoReceivedMessag
{
case DtoType.CloseStreamingSession:
{
var payload = wrapper.GetPayload<CloseStreamingSessionRequestDto>();
payload.VerifyType(DtoType.CloseStreamingSession);
_logger.LogInformation("Received request to close streaming session.");
_appLifetime.StopApplication();
break;
Expand All @@ -71,8 +69,6 @@ private async Task HandleDtoReceivedMessage(object subscriber, DtoReceivedMessag
}
case DtoType.ResetKeyboardState:
{
var payload = wrapper.GetPayload<ResetKeyboardStateDto>();
payload.VerifyType(DtoType.ResetKeyboardState);
_inputSimulator.ResetKeyboardState();
break;
}
Expand Down
4 changes: 0 additions & 4 deletions ControlR.Streamer/Services/StreamerStreamingClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,6 @@ private async Task HandleMessageReceived(DtoWrapper wrapper)
{
case DtoType.CloseStreamingSession:
{
var payload = wrapper.GetPayload<CloseStreamingSessionRequestDto>();
payload.VerifyType(DtoType.CloseStreamingSession);
_logger.LogInformation("Received request to close streaming session.");
_appLifetime.StopApplication();
break;
Expand All @@ -148,8 +146,6 @@ private async Task HandleMessageReceived(DtoWrapper wrapper)
}
case DtoType.ResetKeyboardState:
{
var payload = wrapper.GetPayload<ResetKeyboardStateDto>();
payload.VerifyType(DtoType.ResetKeyboardState);
_inputSimulator.ResetKeyboardState();
break;
}
Expand Down
4 changes: 2 additions & 2 deletions ControlR.Web.Server/ControlR.Web.Server.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

<ItemGroup>
<PackageReference Include="AspNet.Security.OAuth.GitHub" Version="9.0.0" />
<PackageReference Include="Bitbound.WebSocketBridge.Common" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="9.0.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0" />
Expand All @@ -28,11 +29,10 @@
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.0" />
<PackageReference Include="Bitbound.WebSocketBridge.Common" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="9.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.10.0" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.10.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.10.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.10.0" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MessagePack" Version="2.5.192" />
<PackageReference Include="MessagePack" Version="3.0.300" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.1" />
Expand Down
28 changes: 14 additions & 14 deletions Libraries/ControlR.Libraries.Shared/Dtos/DtoWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ namespace ControlR.Libraries.Shared.Dtos;
[MessagePackObject]
public class DtoWrapper
{
[MsgPackKey]
[JsonConverter(typeof(JsonStringEnumConverter))]
public required DtoType DtoType { get; init; }
[Key(nameof(DtoType))]
[JsonConverter(typeof(JsonStringEnumConverter))]
public required DtoType DtoType { get; init; }

[MsgPackKey]
public required byte[] Payload { get; init; }
[Key(nameof(Payload))]
public required byte[] Payload { get; init; }

public static DtoWrapper Create<T>(T dto, DtoType dtoType)
{
return new DtoWrapper()
{
return new DtoWrapper()
{
DtoType = dtoType,
Payload = MessagePackSerializer.Serialize(dto)
};
}
DtoType = dtoType,
Payload = MessagePackSerializer.Serialize(dto)
};
}

public T GetPayload<T>()
{
return MessagePackSerializer.Deserialize<T>(Payload);
}
{
return MessagePackSerializer.Deserialize<T>(Payload);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record CloseStreamingSessionRequestDto() : ParameterlessDtoBase(DtoType.CloseStreamingSession);
public record CloseStreamingSessionRequestDto();
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record CloseTerminalRequestDto([property: MsgPackKey] Guid TerminalId) : ParameterlessDtoBase(DtoType.CloseTerminalRequest);
public record CloseTerminalRequestDto([property: Key(0)] Guid TerminalId);
21 changes: 11 additions & 10 deletions Libraries/ControlR.Libraries.Shared/Dtos/HubDtos/DisplayDto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,27 @@
public class DisplayDto
{

[MsgPackKey]
public string DisplayId { get; init; } = string.Empty;
[Key(nameof(DisplayId))]
public required string DisplayId { get; init; }

[MsgPackKey]
[Key(nameof(Height))]
public double Height { get; init; }

[MsgPackKey]
[Key(nameof(IsPrimary))]
public bool IsPrimary { get; init; }

[MsgPackKey]
[Key(nameof(Left))]
public double Left { get; init; }

[MsgPackKey]
public string Name { get; init; } = string.Empty;
[MsgPackKey]
[Key(nameof(Name))]
public required string Name { get; init; }

[Key(nameof(ScaleFactor))]
public double ScaleFactor { get; init; }

[MsgPackKey]
[Key(nameof(Top))]
public double Top { get; init; }

[MsgPackKey]
[Key(nameof(Width))]
public double Width { get; init; }
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record GetAgentAppSettingsDto() : ParameterlessDtoBase(DtoType.GetAgentAppSettings);
public record GetAgentAppSettingsDto();
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record GetWindowsSessionsDto() : ParameterlessDtoBase(DtoType.GetWindowsSessions);
public record GetWindowsSessionsDto();
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record InvokeCtrlAltDelRequestDto() : ParameterlessDtoBase(DtoType.InvokeCtrlAltDel);
public record InvokeCtrlAltDelRequestDto();

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ namespace ControlR.Libraries.Shared.Dtos.HubDtos;
[method: JsonConstructor]
public class PowerStateChangeDto(PowerStateChangeType type)
{
[MsgPackKey]
public PowerStateChangeType Type { get; init; } = type;
[Key(nameof(Type))]
public PowerStateChangeType Type { get; set; } = type;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record RefreshDeviceInfoRequestDto() : ParameterlessDtoBase(DtoType.RefreshDeviceInfoRequest);
public record RefreshDeviceInfoRequestDto();
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record ResetKeyboardStateDto() : ParameterlessDtoBase(DtoType.ResetKeyboardState);
public record ResetKeyboardStateDto();
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

[MessagePackObject]
public record ServerStatsDto(
[property: MsgPackKey] int AgentCount,
[property: MsgPackKey] int ViewerCount);
[property: Key(0)] int AgentCount,
[property: Key(1)] int ViewerCount);
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;
[MessagePackObject]
public record TerminalInputDto(
[property: MsgPackKey] Guid TerminalId,
[property: MsgPackKey] string Input);
[property: Key(0)] Guid TerminalId,
[property: Key(1)] string Input);
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record TerminalOutputDto(
[property: MsgPackKey] Guid TerminalId,
[property: MsgPackKey] string Output,
[property: MsgPackKey] TerminalOutputKind OutputKind,
[property: MsgPackKey] DateTimeOffset Timestamp);
[property: Key(0)] Guid TerminalId,
[property: Key(1)] string Output,
[property: Key(2)] TerminalOutputKind OutputKind,
[property: Key(3)] DateTimeOffset Timestamp);
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

[MessagePackObject]
public record TerminalSessionRequest(
[property: MsgPackKey] Guid TerminalId,
[property: MsgPackKey] string ViewerConnectionId);
[property: Key(0)] Guid TerminalId,
[property: Key(1)] string ViewerConnectionId);
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record TerminalSessionRequestResult([property: MsgPackKey] TerminalSessionKind SessionKind);
public record TerminalSessionRequestResult([property: Key(0)] TerminalSessionKind SessionKind);
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace ControlR.Libraries.Shared.Dtos.HubDtos;

[MessagePackObject]
public record TriggerAgentUpdateDto() : ParameterlessDtoBase(DtoType.TriggerAgentUpdate);
public record TriggerAgentUpdateDto();
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

[MessagePackObject]
public record WakeDeviceDto(
[property: MsgPackKey] string[] MacAddresses);
[property: Key(0)] string[] MacAddresses);
Loading

0 comments on commit ea5b514

Please sign in to comment.