public static void ChangeTunnelStatus(TunnelStatuses tunnelStatus, bool saveTunnelStatus = true) { TunnelHelper.CurrentTunnelStatus = tunnelStatus; ServiceSettings serviceSettings = SettingsHelper.GetSettings(); if (saveTunnelStatus) { Settings settings = new Settings(); settings.CurrentTunnelStatus = (int)tunnelStatus; settings.Save(); } if (tunnelStatus == TunnelStatuses.Started) { WcfServerHelper.BroadcastRemoteCallback(x => x.EventToLog("Plink Starting", DateTime.Now), true); if (ProcessHelper.StartPlink()) { TunnelPingHelper.OpenTunnelPingListener(); WcfServerHelper.BroadcastRemoteCallback(x => x.EventToLog("Plink Started: " + ProcessHelper.GetPlinkArguments(serviceSettings), DateTime.Now), true); } else { ChangeTunnelStatus(TunnelStatuses.Paused); } } else { WcfServerHelper.BroadcastRemoteCallback(x => x.EventToLog("Plink Stopping", DateTime.Now), true); TunnelPingHelper.CloseTunnelPingListener(); ProcessHelper.StopPlink(); } WcfServerHelper.BroadcastRemoteCallback(x => x.TunnelStatusChanged(tunnelStatus), true); }
public void TunnelStatusChanged(TunnelStatuses tunnelStatus) { if (TunnelStatusChangedEvent != null) { TunnelStatusChangedEvent(this, tunnelStatus); } }
private void ServiceRemotingCallback_TunnelStatusChangedEvent(object sender, TunnelStatuses tunnelStatus) { btnChangeTunnelStatus.Invoke(new MethodInvoker(() => { if (tunnelStatus == TunnelStatuses.Started) { btnChangeTunnelStatus.Image = Resources.control_pause_blue; btnChangeTunnelStatus.Text = "Stop Tunnel"; } else if (tunnelStatus == TunnelStatuses.Paused) { btnChangeTunnelStatus.Image = Resources.control_play_blue; btnChangeTunnelStatus.Text = "Start Tunnel"; } btnChangeTunnelStatus.Enabled = true; })); }
public void ChangeTunnelStatus(TunnelStatuses tunnelStatus) { TunnelHelper.ChangeTunnelStatus(tunnelStatus); }