public DeltaConnection(int router_port, long router_key, byte system_version_major, byte system_version_minor, DeltaCoreNetServerType server_type) { //Set vars this.http = new HttpClient(); this.system_version_major = system_version_major; this.system_version_minor = system_version_minor; this.server_type = server_type; //Open network if it isn't disabled if (router_port != -1) { net = new RouterConnection(new IPEndPoint(IPAddress.Loopback, router_port), router_key, this); } }
public List <ManagerInstance> GetConnectedInstancesByType(DeltaCoreNetServerType type) { List <ManagerInstance> found = new List <ManagerInstance>(); foreach (var i in instances) { if (i.linkedSession == null) { continue; } if (i.linkedSession.authenticatedType == type) { found.Add(i); } } return(found); }
/// <summary> /// Creates a managed app. StartupArgs are from the args used to start the application. Works with args passed by this bring run by a proccess manager. Connects too /// </summary> /// <param name="startupArgs"></param> /// <param name="system_version_major"></param> /// <param name="system_version_minor"></param> /// <param name="network"></param> /// <returns></returns> public static DeltaConnection InitDeltaManagedApp(string[] startupArgs, DeltaCoreNetServerType server_type, byte system_version_major, byte system_version_minor) { //Validate if (startupArgs.Length != 2) { throw new Exception("The startup args are not valid. This program is supposed to be run from a Delta Process Manager."); } //Log Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"Starting Delta managed app on version {system_version_major}.{system_version_minor} (lib version {LIB_VERSION_MAJOR}.{LIB_VERSION_MINOR})..."); Console.ForegroundColor = ConsoleColor.White; //Create var d = new DeltaConnection(int.Parse(startupArgs[0]), long.Parse(startupArgs[1]), system_version_major, system_version_minor, server_type); d.serverId = long.Parse(startupArgs[1]); //Connect d.InitNetworked().GetAwaiter().GetResult(); return(d); }
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 RouterSession(IServerRouterIO server, Socket sock) : base(server, sock) { authenticated = false; authenticatedType = (DeltaCoreNetServerType)(-1); }