fix exit info

pull/495/head
Jeff Becker 5 years ago
parent 3da6551e82
commit 20e398b684
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -33,12 +33,12 @@ namespace llarp
if(!bencode_start_dict(buf)) if(!bencode_start_dict(buf))
return false; return false;
if(!inet_ntop(AF_INET6, (void*)&address, tmp, sizeof(tmp))) if(!inet_ntop(AF_INET6, address.s6_addr, tmp, sizeof(tmp)))
return false; return false;
if(!BEncodeWriteDictString("a", std::string(tmp), buf)) if(!BEncodeWriteDictString("a", std::string(tmp), buf))
return false; return false;
if(!inet_ntop(AF_INET6, (void*)&netmask, tmp, sizeof(tmp))) if(!inet_ntop(AF_INET6, netmask.s6_addr, tmp, sizeof(tmp)))
return false; return false;
if(!BEncodeWriteDictString("b", std::string(tmp), buf)) if(!BEncodeWriteDictString("b", std::string(tmp), buf))
return false; return false;

@ -28,7 +28,7 @@ namespace llarp
memset(address.s6_addr, 0, 16); memset(address.s6_addr, 0, 16);
address.s6_addr[11] = 0xff; address.s6_addr[11] = 0xff;
address.s6_addr[10] = 0xff; address.s6_addr[10] = 0xff;
memcpy(address.s6_addr + 12, &ipv4_exit, 4); memcpy(address.s6_addr + 12, &ipv4_exit.n, 4);
memset(netmask.s6_addr, 0xff, 16); memset(netmask.s6_addr, 0xff, 16);
} }

@ -1004,11 +1004,10 @@ namespace llarp
} }
bool bool
IsBogonRange(__attribute__((unused)) const in6_addr& host, IsBogonRange(const in6_addr&, const in6_addr&)
__attribute__((unused)) const in6_addr& netmask)
{ {
// TODO: implement me // TODO: implement me
return true; return false;
} }
bool bool

@ -302,7 +302,10 @@ namespace llarp
for(const auto &exit : exits) for(const auto &exit : exits)
{ {
if(IsBogonRange(exit.address, exit.netmask)) if(IsBogonRange(exit.address, exit.netmask))
{
llarp::LogError("bogon exit: ", exit);
return false; return false;
}
} }
if(!VerifySignature(crypto)) if(!VerifySignature(crypto))
{ {

@ -31,10 +31,12 @@ TEST_F(RCTest, TestSignVerify)
RC_t rc; RC_t rc;
SecKey_t encr; SecKey_t encr;
SecKey_t sign; SecKey_t sign;
crypto.encryption_keygen(encr); crypto.encryption_keygen(encr);
crypto.identity_keygen(sign); crypto.identity_keygen(sign);
rc.enckey = encr.toPublic(); rc.enckey = encr.toPublic();
rc.pubkey = sign.toPublic(); rc.pubkey = sign.toPublic();
rc.exits.emplace_back(rc.pubkey, llarp::nuint32_t{50000});
ASSERT_TRUE(rc.netID == netid); ASSERT_TRUE(rc.netID == netid);
ASSERT_TRUE(rc.netID == llarp::NetID::DefaultValue()); ASSERT_TRUE(rc.netID == llarp::NetID::DefaultValue());
ASSERT_TRUE(rc.Sign(&crypto, sign)); ASSERT_TRUE(rc.Sign(&crypto, sign));

Loading…
Cancel
Save