public static Connector AsyncPrepareSocket(ISocketWithTimeoutClient client, LocalShellTerminalParam param) { Connector c = new Connector(param, client); GUtil.CreateThread(new ThreadStart(c.AsyncConnect)).Start(); return(c); }
//接続先のSocketを準備して返す。失敗すればparentを親にしてエラーを表示し、nullを返す。 public static ConnectionTag PrepareSocket(IWin32Window parent, LocalShellTerminalParam param) { try { return(new Connector(param).Connect()); } catch (Exception ex) { string key = IsCygwin(param)? "Message.CygwinUtil.FailedToConnect" : "Message.SFUUtil.FailedToConnect"; GUtil.Warning(parent, GEnv.Strings.GetString(key) + ex.Message); return(null); } }
public void ApplyParam(LocalShellTerminalParam param) { _param = param; if (param is CygwinTerminalParam) { this.Text = GApp.Strings.GetString("Form.CygwinLoginDialog.TextCygwin"); } else { this.Text = GApp.Strings.GetString("Form.CygwinLoginDialog.TextSFU"); } }
protected static void PrepareEnv(LocalShellTerminalParam p) { if (!_cygwinDLL_loaded && IsCygwin(p)) { //初回のみ、cygwin.dllがロードできるように環境変数を追加 SFUのときは余計だが char[] buf = new char[1024]; int n = Win32.GetEnvironmentVariable("PATH", buf, buf.Length); string newval = new string(buf, 0, n) + ";" + CygwinUtil.GuessRootDirectory() + "\\bin"; Win32.SetEnvironmentVariable("PATH", newval); _cygwinDLL_loaded = true; } }
public CommandResult NewConnection(TerminalParam p) { if (!CheckPaneCount()) { return(CommandResult.Denied); } ConnectionTag con = null; if (p is TCPTerminalParam) { TCPTerminalParam param = (TCPTerminalParam)p; if (param.IsSSH) { SSHShortcutLoginDialog dlg = new SSHShortcutLoginDialog((SSHTerminalParam)param); if (GCUtil.ShowModalDialog(_frame, dlg) == DialogResult.OK) { con = dlg.Result; } } else { con = CommunicationUtil.CreateNewConnection(param); } } else if (p is SerialTerminalParam) { SerialTerminalParam param = (SerialTerminalParam)p; con = CommunicationUtil.CreateNewSerialConnection(_frame, param); } else if (p is LocalShellTerminalParam) { LocalShellTerminalParam param = (LocalShellTerminalParam)p; con = CommunicationUtil.CreateNewLocalShellConnection(_frame, param); } if (con != null) { AddNewTerminal(con); return(CommandResult.Success); } else { return(CommandResult.Cancelled); } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (_param == null) { _param = new CygwinTerminalParam(); //デフォルト値で埋める } else { _param = (LocalShellTerminalParam)_param.Clone(); } _param.RenderProfile = null; _param.Caption = null; _homeDirectoryBox.Text = _param.Home; _shellBox.Text = _param.Shell; StringCollection c = GApp.ConnectionHistory.LogPaths; foreach (string p in c) { _logFileBox.Items.Add(p); } if (GApp.Options.DefaultLogType != LogType.None) { _logTypeBox.SelectedIndex = (int)GApp.Options.DefaultLogType; string t = GUtil.CreateLogFileName("cygwin"); _logFileBox.Items.Add(t); _logFileBox.Text = t; } else { _logTypeBox.SelectedIndex = 0; } AdjustUI(); }
public ConnectionTag SilentNewConnection(TerminalParam p) { if (!CheckPaneCount()) { return(null); } ConnectionTag con = null; if (p is SSHTerminalParam) { SSHTerminalParam tp = (SSHTerminalParam)p; con = CommunicationUtil.CreateNewConnection(tp, null); } else if (p is TelnetTerminalParam) { TelnetTerminalParam tp = (TelnetTerminalParam)p; con = CommunicationUtil.CreateNewConnection(tp); } else if (p is SerialTerminalParam) { SerialTerminalParam tp = (SerialTerminalParam)p; con = CommunicationUtil.CreateNewSerialConnection(_frame, tp); } else if (p is LocalShellTerminalParam) { LocalShellTerminalParam tp = (LocalShellTerminalParam)p; con = CommunicationUtil.CreateNewLocalShellConnection(_frame, tp); } if (con != null) { AddNewTerminal(con); } return(con); }
public static ConnectionTag CreateNewLocalShellConnection(IWin32Window parent, LocalShellTerminalParam param) { return(LocalShellUtil.PrepareSocket(parent, param)); }
public Connector(LocalShellTerminalParam param, ISocketWithTimeoutClient client) { _param = param; _client = client; }
public Connector(LocalShellTerminalParam param) { _param = param; }
private static bool IsCygwin(LocalShellTerminalParam tp) { return(tp is CygwinTerminalParam); }