Added ConnectedTime property to Client's UserState

- Fixed cross threading bug on form closing
This commit is contained in:
MaxXor 2015-07-10 16:36:34 +02:00
parent deaca4af40
commit 9993ff0f89
3 changed files with 16 additions and 14 deletions

View File

@ -194,8 +194,8 @@ namespace xServer.Core.Networking
{
try
{
AddTypesToSerializer(typeof (IPacket), packets);
_parentServer = server;
AddTypesToSerializer(typeof(IPacket), packets);
Initialize();
_handle = sock;
@ -217,7 +217,8 @@ namespace xServer.Core.Networking
private void Initialize()
{
AddTypeToSerializer(typeof (IPacket), typeof (UnknownPacket));
AddTypeToSerializer(typeof(IPacket), typeof(UnknownPacket));
Value = new UserState();
}
private void AsyncReceive(IAsyncResult result)

View File

@ -1,4 +1,6 @@
using System.Drawing;
using System;
using System.Drawing;
using System.Windows.Forms;
using xServer.Core.Helper;
using xServer.Core.ReverseProxy;
using xServer.Forms;
@ -7,6 +9,7 @@ namespace xServer.Core.Networking
{
public class UserState
{
public DateTime ConnectedTime { get; private set; }
public string Version { get; set; }
public string OperatingSystem { get; set; }
public string AccountType { get; set; }
@ -39,6 +42,7 @@ namespace xServer.Core.Networking
public UserState()
{
ConnectedTime = DateTime.UtcNow; // set time when client connected
IsAuthenticated = false;
LastDesktopSeen = true;
LastDirectorySeen = true;
@ -49,21 +53,21 @@ namespace xServer.Core.Networking
public void DisposeForms()
{
if (FrmRdp != null)
FrmRdp.Close();
FrmRdp.Invoke((MethodInvoker)delegate { FrmRdp.Close(); });
if (FrmTm != null)
FrmTm.Close();
FrmTm.Invoke((MethodInvoker)delegate { FrmTm.Close(); });
if (FrmFm != null)
FrmFm.Close();
FrmFm.Invoke((MethodInvoker)delegate { FrmFm.Close(); });
if (FrmSi != null)
FrmSi.Close();
FrmSi.Invoke((MethodInvoker)delegate { FrmSi.Close(); });
if (FrmRs != null)
FrmRs.Close();
FrmRs.Invoke((MethodInvoker)delegate { FrmRs.Close(); });
if (FrmStm != null)
FrmStm.Close();
FrmStm.Invoke((MethodInvoker)delegate { FrmStm.Close(); });
if (FrmKl != null)
FrmKl.Close();
FrmKl.Invoke((MethodInvoker)delegate { FrmKl.Close(); });
if (FrmProxy != null)
FrmProxy.Close();
FrmProxy.Invoke((MethodInvoker)delegate { FrmProxy.Close(); });
}
}
}

View File

@ -209,9 +209,6 @@ namespace xServer.Forms
{
if (connected)
{
client.Value = new UserState();
// Initialize the UserState so we can store values in there if we need to.
new Core.Packets.ServerPackets.InitializeCommand().Execute(client);
}
else