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); }
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; } } } }
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; } } } }
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; } } } }