Example #1
0
        private void Disconnect()
        {
            Networking.DisableRetryConnect = true;
            Logging.SetStatus("Disconnecting...", Logging.Colors.Yellow);
            lbLog.Log("Closing OpenVpn...");
            ControlHelpers.StartProcess("taskkill", "/F /IM openvpn-gui.exe");
            ControlHelpers.StartProcess("taskkill", "/F /IM openvpn.exe");
            Network.ResetNetworkInterfaces();
            lbLog.Log("Flushing DNS...");
            ControlHelpers.StartProcess(@"ipconfig.exe", @"/flushdns");
            ControlHelpers.StartProcess(@"ipconfig.exe", @"/registerdns");
            btnSaveApps_Click(null, null);

            //wait for dns flush
            //await ControlHelpers.Sleep(10000);
            Network.ClosePrograms(); //**dont add await here it causes hang
            Networking.DisableDisconnect = true;
            Network.EnableAllNeworkInterfaces();

            Task.Delay(60000).ContinueWith((t) =>
            {
                Networking.DisableRetryConnect = false;
            });

            //Task.Run(() =>
            //{


            //});
            //delayReconnect.Start();

            Logging.SetStatus("OpenVPN Disconnected", Logging.Colors.Red);
        }