|
|
@ -311,6 +311,18 @@ namespace util |
|
|
|
{ |
|
|
|
{ |
|
|
|
i2p::data::IdentHash destination; |
|
|
|
i2p::data::IdentHash destination; |
|
|
|
std::string fullAddress; |
|
|
|
std::string fullAddress; |
|
|
|
|
|
|
|
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) |
|
|
|
if (address.find(".i2p") != std::string::npos) |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto addr = i2p::data::netdb.FindAddress(address); |
|
|
|
auto addr = i2p::data::netdb.FindAddress(address); |
|
|
@ -333,6 +345,7 @@ namespace util |
|
|
|
} |
|
|
|
} |
|
|
|
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 ()) |
|
|
|