Пример #1
0
        private void LaunchInstance(NodeStatus node, Socket socket)
        {
            try
            {
                var executable    = Properties.Settings.Default.executable;
                var homeDirectory = Properties.Settings.Default.homeDirectory;

                Launcher launcher     = new Launcher(executable, homeDirectory, argumentsTemplate, DebugLog);
                var      socketHandle = socket.Handle.ToInt32();
                Process  p            = launcher.launchTelnetNode(node.Node, socketHandle);
                p.WaitForExit();
                socket.Shutdown(SocketShutdown.Both);
                socket.Close();
            }
            catch (SocketException e)
            {
                Console.WriteLine(e.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            finally
            {
                nodeManager.freeNode(node);
                OnNodeUpdated(node);
            }
        }
Пример #2
0
        private void LaunchInstance(NodeStatus node, Socket socket)
        {
            try
            {
                var executable = (node.NodeType == NodeType.BBS)
          ? Properties.Settings.Default.executable : Properties.Settings.Default.binkpExecutable;

                var homeDirectory = Properties.Settings.Default.homeDirectory;

                Launcher launcher     = new Launcher(executable, homeDirectory, argumentsTemplate, DebugLog);
                var      socketHandle = socket.Handle.ToInt32();
                using (Process p = launcher.launchSocketNode(node.Node, socketHandle))
                {
                    if (p != null)
                    {
                        p.WaitForExit();
                    }
                }
            }
            catch (Exception e)
            {
                DebugLog(e.ToString());
            }
            finally
            {
                try
                {
                    // Let's try to shutdown in a try..catch incase it's already closed.
                    socket.Shutdown(SocketShutdown.Both);
                    socket.Close();
                }
                catch (SocketException e)
                {
                    Debug.WriteLine(e.ToString());
                }
                finally
                {
                    nodeManager.freeNode(node);
                    OnNodeUpdated(node);

                    // Decrement the # active sessions.
                    DecrementConnection(node.RemoteAddress);
                }
            }
        }