Example #1
0
        public void InvalidateOldTokens()
        {
            Assert.IsTrue(manager.VerifyToken(node, token), "#1");

            manager.RefreshTokens();
            Assert.IsTrue(manager.VerifyToken(node, token), "#2");

            manager.RefreshTokens();
            Assert.IsFalse(manager.VerifyToken(node, token), "#3");
        }
Example #2
0
        public DhtEngine()
        {
            var monitor = new TransferMonitor();

            BucketRefreshTimeout = TimeSpan.FromMinutes(15);
            MessageLoop          = new MessageLoop(this, monitor);
            Monitor      = monitor;
            RoutingTable = new RoutingTable();
            State        = DhtState.NotReady;
            TokenManager = new TokenManager();
            Torrents     = new Dictionary <NodeId, List <Node> > ();

            MainLoop.QueueTimeout(TimeSpan.FromMinutes(5), () => {
                if (!Disposed)
                {
                    TokenManager.RefreshTokens();
                }
                return(!Disposed);
            });
        }
Example #3
0
        /// <summary>
        /// 构造DHT引擎
        /// </summary>
        /// <param name="listener">监听对象</param>
        public DhtEngine(IDhtListener listener)
        {
            if (listener == null)
            {
                throw new ArgumentNullException(nameof(listener));
            }

            BucketRefreshTimeout = TimeSpan.FromMinutes(15);
            MessageLoop          = new MessageLoop(this, listener);
            RoutingTable         = new RoutingTable();
            State        = DhtState.NotReady;
            TokenManager = new TokenManager();
            Torrents     = new Dictionary <NodeId, List <Node> > ();

            MainLoop.QueueTimeout(TimeSpan.FromMinutes(5), () => {
                if (!Disposed)
                {
                    TokenManager.RefreshTokens();
                }
                return(!Disposed);
            });
        }