Esempio n. 1
0
        public bool Reconnect(VPNItem item)
        {
            if ((null == item))
            {
                LogManager.Error("VPN服务器参数获取出错!");
                return(false);
            }

            if (this.CurrentVpnItem != item)
            {
                this.CurrentVpnItem = item;
            }

            if (string.IsNullOrEmpty(this.CurrentVpnItem.EntryName) ||
                string.IsNullOrEmpty(this.CurrentVpnItem.IP) ||
                string.IsNullOrEmpty(this.CurrentVpnItem.User) ||
                string.IsNullOrEmpty(this.CurrentVpnItem.Password))
            {
                LogManager.Error("VPN 拨号参数不能为空");
                return(false);
            }
            if (!this.Reconnect())
            {
                return(false);
            }
            ReconnectManager.Sleep();
            //bool isConnected = CmdHelper.Ping(this.CurrentVpnItem.IP);
            //if (!isConnected)
            {
                // The connection attempt has completed, attempt to find the connection in the active connections.
                foreach (RasConnection connection in RasConnection.GetActiveConnections())
                {
                    if (connection.EntryName == this.CurrentVpnItem.EntryName)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 2
0
        public bool Reconnect(DetectionParamsItem detectionItem)
        {
            if ((null != detectionItem) && (detectionItem.ReconnectType == ReconnectType.Router))
            {
                RouterItem routerItem = detectionItem.Router;
                LogManager.Info(string.Format("start restart router:{0}", routerItem.IP));
                RouterBase router = this.GetRouter(routerItem.RouterType);
                router.Reconnect(routerItem);
                ReconnectManager.Sleep();

                int i = 0;
                while (i++ < ReconnectManager.TRYCOUNT)
                {
                    if (CmdHelper.PingBaidu() || CmdHelper.Ping163())
                    {
                        return(true);
                    }
                    Thread.Sleep(2 * 1000);
                }
                return(false);
            }

            return(false);
        }