static public bool IsConnected(BaseProxyServer ps) { RasConnection conn = null; if (ps == null) { if (dialer != null) { conn = RasConnection.GetActiveConnectionByName(dialer.EntryName, dialer.PhoneBookPath); } } else { conn = RasConnection.GetActiveConnectionByName(ps.GetConnectionName(), RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.User)); } if (conn != null) { RasConnectionStatus st = conn.GetConnectionStatus(); if (st.ConnectionState == RasConnectionState.Connected) { return(true); } else { return(false); } } else { return(false); } }
public void ReturnsTheLocalEndPointAsExpected() { var connectionState = RasConnectionState.Connected; var phoneNumber = "12345"; var localEndpoint = IPAddress.Loopback; var remoteEndpoint = IPAddress.Any; var connectionSubState = RasConnectionSubState.None; var target = new RasConnectionStatus(connectionState, null, device.Object, phoneNumber, localEndpoint, remoteEndpoint, connectionSubState); Assert.AreEqual(localEndpoint, target.LocalEndPoint); }
public void DoesNotThrowAnErrorWithNullRemoteEndPoint() { var connectionState = RasConnectionState.Connected; var phoneNumber = "12345"; var localEndpoint = IPAddress.Loopback; IPAddress remoteEndpoint = null; var connectionSubState = RasConnectionSubState.None; var target = new RasConnectionStatus(connectionState, null, device.Object, phoneNumber, localEndpoint, remoteEndpoint, connectionSubState); Assert.Null(target.RemoteEndPoint); }
public void ReturnsErrorCodeWithValueAsExpected() { var connectionState = RasConnectionState.Connected; var phoneNumber = "12345"; var localEndpoint = IPAddress.Loopback; var remoteEndpoint = IPAddress.Any; var connectionSubState = RasConnectionSubState.None; var target = new RasConnectionStatus(connectionState, 1, device.Object, phoneNumber, localEndpoint, remoteEndpoint, connectionSubState); Assert.AreEqual(1, target.ErrorCode); }
public void ReturnsThePhoneNumberAsExpected() { var connectionState = RasConnectionState.Connected; var device = new Mock <RasDevice>(); var phoneNumber = "12345"; var localEndpoint = IPAddress.Loopback; var remoteEndpoint = IPAddress.Any; var connectionSubState = RasConnectionSubState.None; var target = new RasConnectionStatus(connectionState, device.Object, phoneNumber, localEndpoint, remoteEndpoint, connectionSubState); Assert.AreEqual(phoneNumber, target.PhoneNumber); }
public void GetConnectionStatusTest() { var expected = new RasConnectionStatus() { ConnectionState = RasConnectionState.Connected }; var mock = new Mock <IRasHelper>(); RasHelper.Instance = mock.Object; mock.Setup(o => o.GetConnectionStatus(It.IsAny <RasHandle>())).Returns(expected); var target = new RasConnection(); var actual = target.GetConnectionStatus(); Assert.AreSame(expected, actual); }
public void GetConnectionStatusTest() { RasConnectionStatus expected = new RasConnectionStatus() { ConnectionState = RasConnectionState.Connected }; Mock <IRasHelper> mock = new Mock <IRasHelper>(); RasHelper.Default = mock.Object; mock.Setup(o => o.GetConnectionStatus(It.IsAny <RasHandle>())).Returns(expected); RasConnection target = new RasConnection(); RasConnectionStatus actual = target.GetConnectionStatus(); Assert.AreSame(expected, actual); }
public void checkConnectionStatus() { try { if (connectionVar != null) { this.connectionstatus = this.connectionVar.GetConnectionStatus(); OnConnectionStatusChangedEvent(this.connectionstatus.ConnectionState); } else { OnConnectionStatusChangedEvent(RasConnectionState.Disconnected); OnClientDialCompleted(this, new DialCompletedEventArgs(null, null, false, false, false, null)); this.flagConnected = false; } } catch (Exception exception1) { OnClientExceptionEvent(exception1); } }
/// <summary> /// Retrieves the connection status for the handle specified. /// </summary> /// <param name="handle">The remote access connection handle to retrieve.</param> /// <returns>A <see cref="DotRas.RasConnectionStatus"/> object containing connection status information.</returns> /// <exception cref="DotRas.InvalidHandleException"><paramref name="handle"/> is not a valid handle.</exception> public RasConnectionStatus GetConnectionStatus(RasHandle handle) { RasConnectionStatus retval = null; IntPtr lpRasConnStatus = IntPtr.Zero; try { int size = Marshal.SizeOf(typeof(NativeMethods.RASCONNSTATUS)); NativeMethods.RASCONNSTATUS status = new NativeMethods.RASCONNSTATUS(); status.size = size; lpRasConnStatus = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(status, lpRasConnStatus, true); int ret = SafeNativeMethods.Instance.GetConnectStatus(handle, lpRasConnStatus); if (ret == NativeMethods.ERROR_INVALID_HANDLE) { ThrowHelper.ThrowInvalidHandleException(handle, "handle", Resources.Argument_InvalidHandle); } else if (ret == NativeMethods.SUCCESS) { status = Utilities.PtrToStructure<NativeMethods.RASCONNSTATUS>(lpRasConnStatus); string errorMessage = null; if (status.errorCode != NativeMethods.SUCCESS) { errorMessage = RasHelper.Instance.GetRasErrorString(status.errorCode); } retval = new RasConnectionStatus(); retval.ConnectionState = status.connectionState; retval.ErrorCode = status.errorCode; retval.ErrorMessage = errorMessage; retval.PhoneNumber = status.phoneNumber; if (!string.IsNullOrEmpty(status.deviceName) && !string.IsNullOrEmpty(status.deviceType)) { retval.Device = RasDevice.Create(status.deviceName, status.deviceType); } #if (WIN7 || WIN8) IPAddressConverter converter = new IPAddressConverter(); retval.LocalEndPoint = (IPAddress)converter.ConvertFrom(status.localEndPoint); retval.RemoteEndPoint = (IPAddress)converter.ConvertFrom(status.remoteEndPoint); retval.ConnectionSubState = status.connectionSubState; #endif } else { ThrowHelper.ThrowRasException(ret); } } catch (EntryPointNotFoundException) { ThrowHelper.ThrowNotSupportedException(Resources.Exception_NotSupportedOnPlatform); } finally { if (lpRasConnStatus != IntPtr.Zero) { Marshal.FreeHGlobal(lpRasConnStatus); } } return retval; }
public void GetConnectionStatusTest() { RasConnectionStatus actual = target.GetConnectionStatus(); Assert.IsNotNull(actual); }
public void Initialize() { OnClientMessageEvent("VPN初始化开始..."); string initProcessMessage = ""; this.AllUsersPhoneBook = new RasPhoneBook(); this.Dialer = new RasDialer(); if (!checkdnspoisoning("vpn.51sync.com")) { //kryptotelurlbackup = "http://200.63.44.24"; //kryptotelurl = "http://216.185.105.35"; initProcessMessage += "认证网络失败"; } else { initProcessMessage += "认证网络正常"; } updateIpaddress(); if (!checkdnspoisoning("vpn.51sync.com")) { //vpnoneclickurl = "http://216.185.105.35/vpnoneclick"; initProcessMessage += ";VPN网络不正常"; } else { initProcessMessage += ";VPN网络正常"; } /** * this.macAdd = macAddress = this.GetMACAddress(); * this.GetUserNamePassword(macAddress); * while (this.subscriptiontype != "ELITE" || DateTime.Parse(this.expiringDate).Date < DateTime.Now.Date) * { * macAddress = GenNewMac(macAddress); * OnClientMessageEvent("认证信息修正+" + generateNewMACCount); * generateNewMACCount++; * this.GetUserNamePassword(macAddress); * } * if (this.macAdd != macAddress) * { * OnClientMessageEvent("绑定到本机当前MAC的试用许可已过期。"); * OnClientMessageEvent("将本机MAC地址修改为"+macAddress.Replace(":","").ToUpper()+"以绕过版本许可限制。"); * } */ this.Initialized = true; OnClientMessageEvent(initProcessMessage); RasConnection conn = GetActiveConnection(); if (conn != null) { OnClientMessageEvent("当前活动VPN连接:" + conn.EntryName + ""); this.connectionVar = conn; this.connectionstatus = connectionVar.GetConnectionStatus(); this.connectionHandle = connectionVar.Handle; this.flagConnected = true; this.lastServerUsed = conn.EntryName; this.Dialer.EntryName = conn.EntryName; this.Dialer.PhoneBookPath = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.User); this.Dialer.Credentials = new NetworkCredential(this.userName, this.passWord); } OnInitializeCompletedEvent(); OnClientMessageEvent("VPN初始化完成," + ((this.publicIpAddress.Trim().Length == 0) ? ("外网IP检测失败,请访问http://ip138.com查看") : "当前连接IP:" + this.publicIpAddress + ",请点击连接")); }