コード例 #1
0
ファイル: I2NPMessagesTest.cs プロジェクト: itfenom/i2p-cs
        public void TestSimpleDatabaseHeader5StoreCreation()
        {
            var mapping = new I2PMapping();

            mapping["One"] = "1";
            mapping["2"]   = "Two";

            var ri = new I2PRouterInfo(
                new I2PRouterIdentity(Public, PublicSigning),
                I2PDate.Now,
                new I2PRouterAddress[] { new I2PRouterAddress(new IPAddress(424242L), 773, 42, "SSU") },
                mapping,
                PrivateSigning);

            var dbsm = new DatabaseStoreMessage(ri);

            var data = dbsm.CreateHeader16.HeaderAndPayload;

            var recreated = I2NPMessage.ReadHeader16(new BufRefLen(data));

            Assert.IsTrue(recreated.MessageType == I2NPMessage.MessageTypes.DatabaseStore);
            var rdsm = (DatabaseStoreMessage)recreated.Message;

            Assert.IsTrue(rdsm.RouterInfo.Options["One"] == "1");
            Assert.IsTrue(rdsm.RouterInfo.Options["2"] == "Two");
            Assert.IsTrue(rdsm.RouterInfo.VerifySignature());
        }
コード例 #2
0
 long TryGet(I2PMapping map, string ix, long def)
 {
     try
     {
         return(long.Parse(map[ix]));
     }
     catch (Exception)
     {
         return(def);
     }
 }
コード例 #3
0
 float TryGetFloat(I2PMapping map, string ix)
 {
     try
     {
         return(float.Parse(map[ix], CultureInfo.InvariantCulture));
     }
     catch (Exception)
     {
         return(0f);
     }
 }
コード例 #4
0
        public GetDateMessage(BufRefLen reader)
            : base(ProtocolMessageType.GetDate)
        {
            Version = new I2PString(reader);

            // As of release 0.9.11, the authentication [Mapping] may be included, with the keys i2cp.username and i2cp.password.
            if (reader.Length > 0)
            {
                Mapping = new I2PMapping(reader);
            }
        }
コード例 #5
0
 public GetDateMessage(BufRef reader)
     : base(ProtocolMessageType.GetDate)
 {
     reader.Seek(4);
     if ((ProtocolMessageType)reader.Read8() != MessageType)
     {
         throw new ArgumentException("GetDateMessage( reader ) Wrong message type.");
     }
     Version = new I2PString(reader);
     Mapping = new I2PMapping(reader);
 }
コード例 #6
0
        DatabaseStoreMessage CreateDatabaseStoreMessage()
        {
            var mapping = new I2PMapping();

            mapping["One"] = "1";
            mapping["2"]   = "Two";

            var ri = new I2PRouterInfo(
                new I2PRouterIdentity(Public, PublicSigning),
                I2PDate.Now,
                new I2PRouterAddress[] { new I2PRouterAddress(new IPAddress(424242L), 773, 42, "SSU") },
                mapping,
                PrivateSigning);

            var dbsm = new DatabaseStoreMessage(ri);

            return(dbsm);
        }
コード例 #7
0
        private I2PMapping CreateMapping()
        {
            var mapping = new I2PMapping();

            mapping["SuccessfulConnects"]      = SuccessfulConnects.ToString();
            mapping["FailedConnects"]          = FailedConnects.ToString();
            mapping["InformationFaulty"]       = InformationFaulty.ToString();
            mapping["SuccessfulTunnelMember"]  = SuccessfulTunnelMember.ToString();
            mapping["DeclinedTunnelMember"]    = DeclinedTunnelMember.ToString();
            mapping["SlowHandshakeConnect"]    = SlowHandshakeConnect.ToString();
            mapping["MaxBandwidthSeen"]        = MaxBandwidthSeen.ToString(CultureInfo.InvariantCulture);
            mapping["TunnelBuildTimeout"]      = TunnelBuildTimeout.ToString();
            mapping["TunnelBuildTimeMsPerHop"] = TunnelBuildTimeMsPerHop.ToString();
            mapping["FloodfillUpdateTimeout"]  = FloodfillUpdateTimeout.ToString();
            mapping["FloodfillUpdateSuccess"]  = FloodfillUpdateSuccess.ToString();
            mapping["SuccessfulTunnelTest"]    = SuccessfulTunnelTest.ToString();
            mapping["FailedTunnelTest"]        = FailedTunnelTest.ToString();

            return(mapping);
        }
コード例 #8
0
        public DestinationStatistics(BufRef buf)
        {
            Id       = new I2PIdentHash(buf);
            LastSeen = new I2PDate(buf);
            buf.Seek(60);   // Reserved space

            var mapping = new I2PMapping(buf);

            SuccessfulConnects      = TryGet(mapping, "SuccessfulConnects");
            FailedConnects          = TryGet(mapping, "FailedConnects");
            InformationFaulty       = TryGet(mapping, "InformationFaulty");
            SuccessfulTunnelMember  = TryGet(mapping, "SuccessfulTunnelMember");
            DeclinedTunnelMember    = TryGet(mapping, "DeclinedTunnelMember");
            SlowHandshakeConnect    = TryGet(mapping, "SlowHandshakeConnect");
            MaxBandwidthSeen        = TryGetFloat(mapping, "MaxBandwidthSeen");
            TunnelBuildTimeout      = TryGet(mapping, "TunnelBuildTimeout");
            TunnelBuildTimeMsPerHop = TryGet(mapping, "TunnelBuildTimeMsPerHop", DefaultTunnelBuildTimeMsPerHop);
            FloodfillUpdateTimeout  = TryGet(mapping, "FloodfillUpdateTimeout");
            FloodfillUpdateSuccess  = TryGet(mapping, "FloodfillUpdateSuccess");
            SuccessfulTunnelTest    = TryGet(mapping, "SuccessfulTunnelTest");
            FailedTunnelTest        = TryGet(mapping, "FailedTunnelTest");
        }
コード例 #9
0
 public GetDateMessage(string ver, I2PMapping map)
     : base(ProtocolMessageType.GetDate)
 {
     Version = new I2PString(ver);
     Mapping = map;
 }