示例#1
0
文件: DhtBucket.cs 项目: nandub/DeOps
        public DhtBucket(DhtRouting routing, int depth, bool lastBucket)
        {
            Depth   = depth;
            Routing = routing;
            Last    = lastBucket;

            NextRefresh = Routing.Core.TimeNow.AddMinutes(15);
        }
示例#2
0
        public DhtNetwork(OpCore core, bool lookup)
        {
            Core     = core;
            IsLookup = lookup;

            Cache = new OpCache(this); // lookup config loads cache entries

            if (IsLookup)
            {
                Core.Context.LookupConfig.Load(this);
                Lookup = Core.Context.LookupConfig;
            }

            Local          = new DhtClient();
            Local.UserID   = IsLookup ? Lookup.Ports.UserID : Utilities.KeytoID(Core.User.Settings.KeyPublic);
            Local.ClientID = (ushort)Core.RndGen.Next(1, ushort.MaxValue);

            OpID = Utilities.KeytoID(IsLookup ? LookupKey : Core.User.Settings.OpKey);

            OpCrypt = new RijndaelManaged();

            // load encryption
            if (IsLookup)
            {
                OpCrypt.Key = LookupKey;
            }
            else
            {
                OpCrypt.Key = Core.User.Settings.OpKey;
            }

            LocalAugmentedKey = GetAugmentedKey(Local.UserID);

            Protocol    = new G2Protocol();
            TcpControl  = new TcpHandler(this);
            UdpControl  = new UdpHandler(this);
            LanControl  = new LanHandler(this);
            RudpControl = new RudpHandler(this);
            LightComm   = new LightCommHandler(this);
            UPnPControl = new UPnPHandler(this);

            Routing  = new DhtRouting(this);
            Store    = new DhtStore(this);
            Searches = new DhtSearchControl(this);
        }
示例#3
0
 public DhtSearchControl(DhtNetwork network)
 {
     Network = network;
     Core    = Network.Core;
     Routing = network.Routing;
 }