Exemple #1
0
        public int GetStatus()
        {
            RasDialUC.RASCONN[] lpRasconn = new RasDialUC.RASCONN[1];
            int lpcb           = Marshal.SizeOf(typeof(RasDialUC.RASCONN));
            int lpcConnections = 0;

            lpRasconn[0].dwSize = checked ((uint)lpcb);
            while (true)
            {
                int num1 = RasDialUC.RasEnumConnections(lpRasconn, ref lpcb, ref lpcConnections);
                if (lpcConnections != 0)
                {
                    switch (num1)
                    {
                    case 0:
                        goto label_8;

                    case 603:
                        lpRasconn = new RasDialUC.RASCONN[checked (lpcConnections - 1 + 1)];
                        int num2  = Marshal.SizeOf(typeof(RasDialUC.RASCONN));
                        int num3  = 0;
                        int num4  = checked (lpcConnections - 1);
                        int index = num3;
                        while (index <= num4)
                        {
                            lpRasconn[index].dwSize = checked ((uint)num2);
                            checked { ++index; }
                        }
                        lpcb = checked (num2 * lpcConnections);
                        continue;

                    default:
                        goto label_7;
                    }
                }
                else
                {
                    goto label_14;
                }
            }
label_7:
            lpcConnections = 0;
            goto label_14;
label_8:
            int num5 = 0;
            int num6   = checked (lpcConnections - 1);
            int index1 = num5;

            while (index1 <= num6 && Operators.CompareString(lpRasconn[index1].szEntryName, this.MainOptions.EntryName, false) != 0)
            {
                checked { ++index1; }
            }
            if (index1 == lpcConnections)
            {
                lpcConnections = 0;
            }
            else
            {
                this.MainHeader = lpRasconn[index1].hRasConn;
                RasDialUC.RASCONNSTATUS lpRasConnStatus = new RasDialUC.RASCONNSTATUS();
                lpRasConnStatus.dwSize = Marshal.SizeOf(typeof(RasDialUC.RASCONNSTATUS));
                RasDialUC.RasGetConnectStatus(lpRasconn[index1].hRasConn, out lpRasConnStatus);
                lpcConnections = (int)lpRasConnStatus.rasconnstate;
            }
label_14:
            return(lpcConnections);
        }
Exemple #2
0
        public void Connect()
        {
            if (Operators.ConditionalCompareObjectEqual(NewLateBinding.LateGet(this.GlobalOBJ, (Type)null, "InvokeRequired", new object[0], (string[])null, (Type[])null, (bool[])null), (object)true, false))
            {
                NewLateBinding.LateCall(this.GlobalOBJ, (Type)null, "BeginInvoke", new object[2]
                {
                    (object)new RasDialUC.d_Connect(this.Connect),
                    (object)new object[0]
                }, (string[])null, (Type[])null, (bool[])null, true);
            }
            else if (this.GetStatus() == 8192)
            {
                RAS_Variable.clsTXT_VPN fnVpn = RAS_Variable.FN_VPN;
                string sText = "You are already connected.";
                fnVpn.TXT(ref sText);
            }
            else
            {
                if (!Information.IsNothing((object)this.tmrMonitorConnected))
                {
                    this.tmrMonitorConnected.Stop();
                    this.tmrMonitorConnected.Elapsed -= new ElapsedEventHandler(this.tmrMonitorConnected_Elapsed);
                    this.tmrMonitorConnected          = (Timer)null;
                }
                if (MyProject.Forms.frmMain_RasDialex.AutoConnectRasDial)
                {
                    this.tmrMonitorConnected           = new Timer();
                    this.tmrMonitorConnected.AutoReset = false;
                    this.tmrMonitorConnected.Elapsed  += new ElapsedEventHandler(this.tmrMonitorConnected_Elapsed);
                    this.tmrMonitorConnected.Interval  = (double)this.WaitConnected;
                    this.tmrMonitorConnected.Start();
                }
                switch (this.VPN_Reboot_Method)
                {
                case 0:
                    if (!this.OptionsOK)
                    {
                        this.ErrorSend(100040);
                        break;
                    }
                    IntPtr lprasDialExtensions;
                    IntPtr lphRasConn;
                    int    num = RasDialUC.RasDial(lprasDialExtensions, (string)null, ref this.MainOptions, 1U, (Delegate)this.del, ref lphRasConn);
                    if (num != 0)
                    {
                        this.ErrorSend(checked (num + 50000));
                        break;
                    }
                    this.MainHeader = lphRasConn;
                    break;

                case 1:
                    try
                    {
                        MyProject.Forms.frmMain_RasDialex.lblMon.Text = "Hard Connect";
                        string  str1    = Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\rasdial.exe";
                        Process process = new Process();
                        process.StartInfo.FileName = str1;
                        string str2 = Strings.Trim(MyProject.Forms.frmMain_RasDialex.txtEntryName.Text) + " " + Strings.Trim(MyProject.Forms.frmMain_RasDialex.txtUserName.Text) + " " + Strings.Trim(MyProject.Forms.frmMain_RasDialex.txtPassword.Text) + " /PHONE:" + Strings.Trim(MyProject.Forms.frmMain_RasDialex.txtPhoneNumber.Text);
                        process.StartInfo.Arguments   = str2;
                        process.StartInfo.WindowStyle = !MyProject.Forms.frmMain_RasDialex.VisibleCMD ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal;
                        process.Start();
                        _FUNCTION.clsTXT fn    = _FUNCTION.FN;
                        string           sText = str1 + " " + str2;
                        fn.TXT(ref sText);
                        break;
                    }
                    catch (Exception ex)
                    {
                        ProjectData.SetProjectError(ex);
                        Exception        exception = ex;
                        _FUNCTION.clsTXT fn        = _FUNCTION.FN;
                        string           sText     = "RasDialEx Error: " + exception.Message;
                        fn.TXT(ref sText);
                        this.ErrorSend(100041);
                        ProjectData.ClearProjectError();
                        break;
                    }

                case 2:
                    try
                    {
                        string externalProgram = MyProject.Forms.frmMain_RasDialex.ExternalProgram;
                        new Process()
                        {
                            StartInfo =
                            {
                                FileName    = externalProgram,
                                Arguments   = MyProject.Forms.frmMain_RasDialex.ExternalProgram_ParamConnect,
                                WindowStyle = (!MyProject.Forms.frmMain_RasDialex.VisibleCMD ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal)
                            }
                        }.Start();
                        _FUNCTION.clsTXT fn    = _FUNCTION.FN;
                        string           sText = externalProgram + " " + MyProject.Forms.frmMain_RasDialex.ExternalProgram_ParamConnect;
                        fn.TXT(ref sText);
                        break;
                    }
                    catch (Exception ex)
                    {
                        ProjectData.SetProjectError(ex);
                        Exception        exception = ex;
                        _FUNCTION.clsTXT fn        = _FUNCTION.FN;
                        string           sText     = "RasDialEx Error: " + exception.Message;
                        fn.TXT(ref sText);
                        this.ErrorSend(100041);
                        ProjectData.ClearProjectError();
                        break;
                    }
                }
            }
        }
Exemple #3
0
        public void Close()
        {
            if (Operators.ConditionalCompareObjectEqual(NewLateBinding.LateGet(this.GlobalOBJ, (Type)null, "InvokeRequired", new object[0], (string[])null, (Type[])null, (bool[])null), (object)true, false))
            {
                NewLateBinding.LateCall(this.GlobalOBJ, (Type)null, "BeginInvoke", new object[2]
                {
                    (object)new RasDialUC.d_Close(this.Close),
                    (object)new object[0]
                }, (string[])null, (Type[])null, (bool[])null, true);
            }
            else
            {
                this.MonitorDisconnect = RasDialUC.myMonitorDisconnect.StartDisconnect;
                if (!Information.IsNothing((object)this.tmrMonitorDisconnect))
                {
                    this.tmrMonitorDisconnect.Stop();
                    this.tmrMonitorDisconnect.Elapsed -= new ElapsedEventHandler(this.tmrMonitorDisconnect_Elapsed);
                    this.tmrMonitorDisconnect          = (Timer)null;
                }
                if (MyProject.Forms.frmMain_RasDialex.AutoConnectRasDial)
                {
                    this.tmrMonitorDisconnect           = new Timer();
                    this.tmrMonitorDisconnect.AutoReset = false;
                    this.tmrMonitorDisconnect.Elapsed  += new ElapsedEventHandler(this.tmrMonitorDisconnect_Elapsed);
                    this.tmrMonitorDisconnect.Interval  = 15000.0;
                    this.tmrMonitorDisconnect.Start();
                }
                switch (this.VPN_Reboot_Method)
                {
                case 0:
                    if (!this.OptionsOK)
                    {
                        this.ErrorSend(100040);
                        break;
                    }
                    if (this.GetStatus() == 0)
                    {
                        this.send_Disconnected();
                        break;
                    }
                    if (this.MainHeader == IntPtr.Zero)
                    {
                        this.send_Disconnected();
                        break;
                    }
                    int num = RasDialUC.RasHangUp(this.MainHeader);
                    if (num == 0)
                    {
                        break;
                    }
                    this.ErrorSend(checked (num + 70000));
                    break;

                case 1:
                    try
                    {
                        string  str1    = Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\rasdial.exe";
                        Process process = new Process();
                        process.StartInfo.FileName = str1;
                        string str2 = Strings.Trim(MyProject.Forms.frmMain_RasDialex.txtEntryName.Text) + " /disconnect";
                        process.StartInfo.Arguments   = str2;
                        process.StartInfo.WindowStyle = !MyProject.Forms.frmMain_RasDialex.VisibleCMD ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal;
                        process.Start();
                        _FUNCTION.clsTXT fn    = _FUNCTION.FN;
                        string           sText = str1 + " " + str2;
                        fn.TXT(ref sText);
                        break;
                    }
                    catch (Exception ex)
                    {
                        ProjectData.SetProjectError(ex);
                        Exception        exception = ex;
                        _FUNCTION.clsTXT fn        = _FUNCTION.FN;
                        string           sText     = "RasDialEx Error: " + exception.Message;
                        fn.TXT(ref sText);
                        ProjectData.ClearProjectError();
                        break;
                    }

                case 2:
                    try
                    {
                        string externalProgram = MyProject.Forms.frmMain_RasDialex.ExternalProgram;
                        new Process()
                        {
                            StartInfo =
                            {
                                FileName    = externalProgram,
                                Arguments   = MyProject.Forms.frmMain_RasDialex.ExternalProgram_ParamDisconnect,
                                WindowStyle = (!MyProject.Forms.frmMain_RasDialex.VisibleCMD ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal)
                            }
                        }.Start();
                        _FUNCTION.clsTXT fn    = _FUNCTION.FN;
                        string           sText = externalProgram + " " + MyProject.Forms.frmMain_RasDialex.ExternalProgram_ParamDisconnect;
                        fn.TXT(ref sText);
                        break;
                    }
                    catch (Exception ex)
                    {
                        ProjectData.SetProjectError(ex);
                        Exception        exception = ex;
                        _FUNCTION.clsTXT fn        = _FUNCTION.FN;
                        string           sText     = "RasDialEx Error: " + exception.Message;
                        fn.TXT(ref sText);
                        ProjectData.ClearProjectError();
                        break;
                    }
                }
            }
        }
Exemple #4
0
        private void TimerStatus_Tick(object sender, ElapsedEventArgs e)
        {
            RasDialUC.RASCONN[] lpRasconn = new RasDialUC.RASCONN[1];
            int lpcb = Marshal.SizeOf(typeof(RasDialUC.RASCONN));

            lpRasconn[0].dwSize = checked ((uint)lpcb);
            int num1;

            while (true)
            {
                num1 = RasDialUC.RasEnumConnections(lpRasconn, ref lpcb, ref this.ConnectionCount);
                switch (num1)
                {
                case 0:
                    goto label_9;

                case 603:
                    lpRasconn = new RasDialUC.RASCONN[checked (this.ConnectionCount - 1 + 1)];
                    int num2  = Marshal.SizeOf(typeof(RasDialUC.RASCONN));
                    int num3  = 0;
                    int num4  = checked (this.ConnectionCount - 1);
                    int index = num3;
                    while (index <= num4)
                    {
                        lpRasconn[index].dwSize = checked ((uint)num2);
                        checked { ++index; }
                    }
                    lpcb = checked (num2 * this.ConnectionCount);
                    continue;

                default:
                    goto label_6;
                }
            }
label_6:
            int num5 = checked (num1 + 60000);

            if (this.PreviousStatus != 8192 && this.PreviousStatus != -1)
            {
                return;
            }
            this.ChangeDisconnect();
            return;

label_9:
            if (this.ConnectionCount == 0)
            {
                if (this.PreviousStatus != 8192 && this.PreviousStatus != -1)
                {
                    return;
                }
                this.ChangeDisconnect();
            }
            else
            {
                int num2  = 0;
                int num3  = checked (this.ConnectionCount - 1);
                int index = num2;
                while (index <= num3 && Operators.CompareString(lpRasconn[index].szEntryName, this.MainOptions.EntryName, false) != 0)
                {
                    checked { ++index; }
                }
                if (index == this.ConnectionCount)
                {
                    if (this.PreviousStatus != 8192 && this.PreviousStatus != -1)
                    {
                        return;
                    }
                    this.ChangeDisconnect();
                }
                else
                {
                    RasDialUC.RASCONNSTATUS lpRasConnStatus = new RasDialUC.RASCONNSTATUS();
                    lpRasConnStatus.dwSize = Marshal.SizeOf(typeof(RasDialUC.RASCONNSTATUS));
                    RasDialUC.RasGetConnectStatus(lpRasconn[index].hRasConn, out lpRasConnStatus);
                    if (lpRasConnStatus.rasconnstate == (RasDialUC.RASCONNSTATE) this.PreviousStatus)
                    {
                        return;
                    }
                    switch (lpRasConnStatus.rasconnstate)
                    {
                    case RasDialUC.RASCONNSTATE.RASCS_Connected:
                        this.PreviousStatus = (int)lpRasConnStatus.rasconnstate;
                        this.send_Connected();
                        break;

                    case RasDialUC.RASCONNSTATE.RASCS_Disconnected:
                        this.ChangeDisconnect();
                        break;
                    }
                }
            }
        }