private void HandleLoginCommand(RouterSession session, RouterMessage msg) { //Get details DeltaCoreNetServerType type = (DeltaCoreNetServerType)BitConverter.ToInt32(msg.payload, 0); long loginKey = BitConverter.ToInt64(msg.payload, 4); //Find the linked instance ManagerInstance instance = null; lock (this.session.instances) { foreach (var s in this.session.instances) { if (loginKey == s.id) { instance = s; } } } //If this failed, abort if (instance == null) { logger.Log("HandleLoginCommand", $"Logging in client {session.GetDebugName()} with key {loginKey} FAILED. Dropping client...", DeltaLogLevel.Medium); io.DropClient(session); return; } //Set properties on session session.authenticatedType = type; instance.linkedSession = session; session.linkedInstance = instance; session.authenticated = true; //Log logger.Log("HandleLoginCommand", $"Logged in client {session.GetDebugName()} as {type.ToString().ToUpper()} as {instance.id} (v {instance.version_id}).", DeltaLogLevel.Low); }
public override string GetDebugName() { return($"[PORT={((IPEndPoint)RemoteEndPoint).Port}, AUTH={authenticated.ToString().ToUpper()}, TYPE={authenticatedType.ToString()}, INSTANCE={linkedInstance?.id}]"); }