@@ -33,7 +33,6 @@ enum Network ParseNetwork(std::string net) {
33
33
if (net == " ipv4" ) return NET_IPV4;
34
34
if (net == " ipv6" ) return NET_IPV6;
35
35
if (net == " tor" ) return NET_TOR;
36
- if (net == " i2p" ) return NET_I2P;
37
36
return NET_UNROUTABLE;
38
37
}
39
38
@@ -492,7 +491,6 @@ void CNetAddr::SetIP(const CNetAddr& ipIn)
492
491
}
493
492
494
493
static const unsigned char pchOnionCat[] = {0xFD ,0x87 ,0xD8 ,0x7E ,0xEB ,0x43 };
495
- static const unsigned char pchGarliCat[] = {0xFD ,0x60 ,0xDB ,0x4D ,0xDD ,0xB5 };
496
494
497
495
bool CNetAddr::SetSpecial (const std::string &strName)
498
496
{
@@ -505,15 +503,6 @@ bool CNetAddr::SetSpecial(const std::string &strName)
505
503
ip[i + sizeof (pchOnionCat)] = vchAddr[i];
506
504
return true ;
507
505
}
508
- if (strName.size ()>11 && strName.substr (strName.size () - 11 , 11 ) == " .oc.b32.i2p" ) {
509
- std::vector<unsigned char > vchAddr = DecodeBase32 (strName.substr (0 , strName.size () - 11 ).c_str ());
510
- if (vchAddr.size () != 16 -sizeof (pchGarliCat))
511
- return false ;
512
- memcpy (ip, pchOnionCat, sizeof (pchGarliCat));
513
- for (unsigned int i=0 ; i<16 -sizeof (pchGarliCat); i++)
514
- ip[i + sizeof (pchGarliCat)] = vchAddr[i];
515
- return true ;
516
- }
517
506
return false ;
518
507
}
519
508
@@ -561,7 +550,7 @@ bool CNetAddr::IsIPv4() const
561
550
562
551
bool CNetAddr::IsIPv6 () const
563
552
{
564
- return (!IsIPv4 () && !IsTor () && ! IsI2P () );
553
+ return (!IsIPv4 () && !IsTor ());
565
554
}
566
555
567
556
bool CNetAddr::IsRFC1918 () const
@@ -625,11 +614,6 @@ bool CNetAddr::IsTor() const
625
614
return (memcmp (ip, pchOnionCat, sizeof (pchOnionCat)) == 0 );
626
615
}
627
616
628
- bool CNetAddr::IsI2P () const
629
- {
630
- return (memcmp (ip, pchGarliCat, sizeof (pchGarliCat)) == 0 );
631
- }
632
-
633
617
bool CNetAddr::IsLocal () const
634
618
{
635
619
// IPv4 loopback
@@ -688,7 +672,7 @@ bool CNetAddr::IsValid() const
688
672
689
673
bool CNetAddr::IsRoutable () const
690
674
{
691
- return IsValid () && !(IsRFC1918 () || IsRFC3927 () || IsRFC4862 () || (IsRFC4193 () && !IsTor () && ! IsI2P () ) || IsRFC4843 () || IsLocal ());
675
+ return IsValid () && !(IsRFC1918 () || IsRFC3927 () || IsRFC4862 () || (IsRFC4193 () && !IsTor ()) || IsRFC4843 () || IsLocal ());
692
676
}
693
677
694
678
enum Network CNetAddr::GetNetwork () const
@@ -702,18 +686,13 @@ enum Network CNetAddr::GetNetwork() const
702
686
if (IsTor ())
703
687
return NET_TOR;
704
688
705
- if (IsI2P ())
706
- return NET_I2P;
707
-
708
689
return NET_IPV6;
709
690
}
710
691
711
692
std::string CNetAddr::ToStringIP () const
712
693
{
713
694
if (IsTor ())
714
695
return EncodeBase32 (&ip[6 ], 10 ) + " .onion" ;
715
- if (IsI2P ())
716
- return EncodeBase32 (&ip[6 ], 10 ) + " .oc.b32.i2p" ;
717
696
CService serv (*this , 0 );
718
697
struct sockaddr_storage sockaddr;
719
698
socklen_t socklen = sizeof (sockaddr);
@@ -818,14 +797,8 @@ std::vector<unsigned char> CNetAddr::GetGroup() const
818
797
nStartByte = 6 ;
819
798
nBits = 4 ;
820
799
}
821
- else if (IsI2P ())
822
- {
823
- nClass = NET_I2P;
824
- nStartByte = 6 ;
825
- nBits = 4 ;
826
- }
827
800
// for he.net, use /36 groups
828
- else if (GetByte (15 ) == 0x20 && GetByte (14 ) == 0x11 && GetByte (13 ) == 0x04 && GetByte (12 ) == 0x70 )
801
+ else if (GetByte (15 ) == 0x20 && GetByte (14 ) == 0x01 && GetByte (13 ) == 0x04 && GetByte (12 ) == 0x70 )
829
802
nBits = 36 ;
830
803
// for the rest of the IPv6 network, use /32 groups
831
804
else
@@ -909,11 +882,6 @@ int CNetAddr::GetReachabilityFrom(const CNetAddr *paddrPartner) const
909
882
case NET_IPV4: return REACH_IPV4; // Tor users can connect to IPv4 as well
910
883
case NET_TOR: return REACH_PRIVATE;
911
884
}
912
- case NET_I2P:
913
- switch (ourNet) {
914
- default : return REACH_DEFAULT;
915
- case NET_I2P: return REACH_PRIVATE;
916
- }
917
885
case NET_TEREDO:
918
886
switch (ourNet) {
919
887
default : return REACH_DEFAULT;
@@ -929,8 +897,7 @@ int CNetAddr::GetReachabilityFrom(const CNetAddr *paddrPartner) const
929
897
case NET_TEREDO: return REACH_TEREDO;
930
898
case NET_IPV6: return REACH_IPV6_WEAK;
931
899
case NET_IPV4: return REACH_IPV4;
932
- case NET_I2P: return REACH_PRIVATE; // assume connections from unroutable addresses are
933
- case NET_TOR: return REACH_PRIVATE; // either from Tor/I2P, or don't care about our address
900
+ case NET_TOR: return REACH_PRIVATE; // either from Tor, or don't care about our address
934
901
}
935
902
}
936
903
}
@@ -1079,7 +1046,7 @@ std::string CService::ToStringPort() const
1079
1046
1080
1047
std::string CService::ToStringIPPort () const
1081
1048
{
1082
- if (IsIPv4 () || IsTor () || IsI2P () ) {
1049
+ if (IsIPv4 () || IsTor ()) {
1083
1050
return ToStringIP () + " :" + ToStringPort ();
1084
1051
} else {
1085
1052
return " [" + ToStringIP () + " ]:" + ToStringPort ();
0 commit comments