Browse Source

Add *.b32.i2p address detection

pull/66/head
chertov 11 years ago
parent
commit
fd08dc72bd
  1. 21
      HTTPServer.cpp

21
HTTPServer.cpp

@ -311,7 +311,19 @@ namespace util
{ {
i2p::data::IdentHash destination; i2p::data::IdentHash destination;
std::string fullAddress; std::string fullAddress;
if (address.find (".i2p") != std::string::npos) if (address.find(".b32.i2p") != std::string::npos)
{
if (i2p::data::Base32ToByteStream(address.c_str(), address.length() - strlen(".b32.i2p"), (uint8_t *)destination, 32) != 32)
{
LogPrint ("Invalid Base32 address ", address);
SendReply ("<html>" + itoopieImage + "<br>Invalid Base32 address");
return;
}
fullAddress = address;
}
else
{
if (address.find(".i2p") != std::string::npos)
{ {
auto addr = i2p::data::netdb.FindAddress(address); auto addr = i2p::data::netdb.FindAddress(address);
if (!addr) if (!addr)
@ -325,14 +337,15 @@ namespace util
} }
else else
{ {
if (i2p::data::Base32ToByteStream (address.c_str (), address.length (), (uint8_t *)destination, 32) != 32) if (i2p::data::Base32ToByteStream(address.c_str(), address.length(), (uint8_t *)destination, 32) != 32)
{ {
LogPrint ("Invalid Base32 address ", address); LogPrint("Invalid Base32 address ", address);
SendReply ("<html>" + itoopieImage + "<br>Invalid Base32 address"); SendReply("<html>" + itoopieImage + "<br>Invalid Base32 address");
return; return;
} }
fullAddress = address + ".b32.i2p"; fullAddress = address + ".b32.i2p";
} }
}
auto leaseSet = i2p::data::netdb.FindLeaseSet (destination); auto leaseSet = i2p::data::netdb.FindLeaseSet (destination);
if (!leaseSet || !leaseSet->HasNonExpiredLeases ()) if (!leaseSet || !leaseSet->HasNonExpiredLeases ())

Loading…
Cancel
Save