From 3ed865055683975bfe126ffcf60c1f279b4fbfbc Mon Sep 17 00:00:00 2001 From: Jared Goodwin Date: Fri, 12 Jul 2019 10:51:19 -0700 Subject: [PATCH] Fixed a bug where unattended remote control sessions were not being reconnected after unexpected disconnect. --- Server/CurrentVersion.txt | 2 +- Server/Data/ApplicationDbContext.cs | 2 +- Server/Data/DataService.cs | 9 +-------- Server/Services/RCBrowserSocketHub.cs | 6 ++++-- Server/Services/RCDeviceSocketHub.cs | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Server/CurrentVersion.txt b/Server/CurrentVersion.txt index b4c1e43a..4ded305c 100644 --- a/Server/CurrentVersion.txt +++ b/Server/CurrentVersion.txt @@ -1 +1 @@ -2019.07.05.1321 +2019.07.12.0945 diff --git a/Server/Data/ApplicationDbContext.cs b/Server/Data/ApplicationDbContext.cs index 2613b0cf..3faed7e2 100644 --- a/Server/Data/ApplicationDbContext.cs +++ b/Server/Data/ApplicationDbContext.cs @@ -38,7 +38,7 @@ namespace Remotely.Server.Data protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); - + builder.Entity().ToTable("RemotelyUsers"); builder.Entity().ToTable("RemotelyUsers"); diff --git a/Server/Data/DataService.cs b/Server/Data/DataService.cs index e9d06a9a..7cc90fc3 100644 --- a/Server/Data/DataService.cs +++ b/Server/Data/DataService.cs @@ -13,23 +13,16 @@ namespace Remotely.Server.Data { public class DataService { - public DataService( - ApplicationDbContext context, - ApplicationConfig appConfig, - UserManager userManager - ) + public DataService(ApplicationDbContext context, ApplicationConfig appConfig) { RemotelyContext = context; AppConfig = appConfig; - UserManager = userManager; } private ApplicationConfig AppConfig { get; set; } private ApplicationDbContext RemotelyContext { get; set; } - private UserManager UserManager { get; set; } - public void AddOrUpdateCommandContext(CommandContext commandContext) { var existingContext = RemotelyContext.CommandContexts.Find(commandContext.ID); diff --git a/Server/Services/RCBrowserSocketHub.cs b/Server/Services/RCBrowserSocketHub.cs index 81e9716c..84734bcc 100644 --- a/Server/Services/RCBrowserSocketHub.cs +++ b/Server/Services/RCBrowserSocketHub.cs @@ -192,10 +192,11 @@ namespace Remotely.Server.Services ScreenCasterID = screenCasterID; Mode = (RemoteControlMode)remoteControlMode; RequesterName = requesterName; + var sessionInfo = RCDeviceSocketHub.SessionInfoList.FirstOrDefault(x => x.Value.RCSocketID == screenCasterID).Value; if (Mode == RemoteControlMode.Unattended) { - var serviceID = RCDeviceSocketHub.SessionInfoList.FirstOrDefault(x => x.Value.RCSocketID == screenCasterID).Value?.ServiceID; - var deviceID = DeviceSocketHub.ServiceConnections[serviceID].ID; + sessionInfo.Mode = RemoteControlMode.Unattended; + var deviceID = DeviceSocketHub.ServiceConnections[sessionInfo.ServiceID].ID; if (Context.User.Identity.IsAuthenticated && DataService.DoesUserHaveAccessToDevice(deviceID, Context.UserIdentifier)) { await RCDeviceHub.Clients.Client(screenCasterID).SendAsync("GetScreenCast", Context.ConnectionId, requesterName); @@ -203,6 +204,7 @@ namespace Remotely.Server.Services } else { + sessionInfo.Mode = RemoteControlMode.Normal; await Clients.Caller.SendAsync("RequestingScreenCast"); await RCDeviceHub.Clients.Client(screenCasterID).SendAsync("RequestScreenCast", Context.ConnectionId, requesterName); } diff --git a/Server/Services/RCDeviceSocketHub.cs b/Server/Services/RCDeviceSocketHub.cs index 0810fadc..8310b7c1 100644 --- a/Server/Services/RCDeviceSocketHub.cs +++ b/Server/Services/RCDeviceSocketHub.cs @@ -139,7 +139,7 @@ namespace Remotely.Server.Services await Task.Delay(100); } - if (SessionInfo.Mode == Shared.Enums.RemoteControlMode.Unattended) + if (SessionInfo.Mode == Shared.Enums.RemoteControlMode.Normal) { await RCBrowserHub.Clients.Clients(ViewerList).SendAsync("ScreenCasterDisconnected"); }