mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-07 06:09:42 +00:00
Compare commits
6 Commits
build-test
...
0588116489
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0588116489 | ||
|
|
78a37cc00f | ||
|
|
fb90b01f6c | ||
|
|
ea55215668 | ||
|
|
58a86fa2dc | ||
|
|
ff0b6a6a6a |
@@ -1,7 +1,7 @@
|
|||||||
# for this file format description,
|
# for this file format description,
|
||||||
# see https://github.com/olivierlacan/keep-a-changelog
|
# see https://github.com/olivierlacan/keep-a-changelog
|
||||||
|
|
||||||
## [2.56.0] - 2025-02-10
|
## [2.56.0] - 2025-02-11
|
||||||
### Added
|
### Added
|
||||||
- Config params for shared local destination
|
- Config params for shared local destination
|
||||||
- AddressBook full addresses cache
|
- AddressBook full addresses cache
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
- Send ack requested flag after second SSU2 resend attempt
|
- Send ack requested flag after second SSU2 resend attempt
|
||||||
- Shorter ECIESx25519 ack request interval for datagram and I2CP sessions
|
- Shorter ECIESx25519 ack request interval for datagram and I2CP sessions
|
||||||
- Don't change datagram routing path too often if unidirectional data stream
|
- Don't change datagram routing path too often if unidirectional data stream
|
||||||
- Reduce LeaseSet and local RouterInfo publishing confimation intervals
|
- Reduce LeaseSet and local RouterInfo publishing confirmation intervals
|
||||||
- Don't delete buffer of connected routers or if an update received
|
- Don't delete buffer of connected routers or if an update received
|
||||||
- Smaller RouterInfo request timeout if sent directly
|
- Smaller RouterInfo request timeout if sent directly
|
||||||
- Persist local RouterInfo in separate thread
|
- Persist local RouterInfo in separate thread
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ getent passwd i2pd >/dev/null || \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sun Feb 09 2025 orignal <orignal@i2pmail.org> - 2.56.0
|
* Tue Feb 11 2025 orignal <orignal@i2pmail.org> - 2.56.0
|
||||||
- update to 2.56.0
|
- update to 2.56.0
|
||||||
|
|
||||||
* Mon Dec 30 2024 orignal <orignal@i2pmail.org> - 2.55.0
|
* Mon Dec 30 2024 orignal <orignal@i2pmail.org> - 2.55.0
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ getent passwd i2pd >/dev/null || \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sun Feb 09 2025 orignal <orignal@i2pmail.org> - 2.56.0
|
* Tue Feb 11 2025 orignal <orignal@i2pmail.org> - 2.56.0
|
||||||
- update to 2.56.0
|
- update to 2.56.0
|
||||||
|
|
||||||
* Mon Dec 30 2024 orignal <orignal@i2pmail.org> - 2.55.0
|
* Mon Dec 30 2024 orignal <orignal@i2pmail.org> - 2.55.0
|
||||||
|
|||||||
2
debian/changelog
vendored
2
debian/changelog
vendored
@@ -2,7 +2,7 @@ i2pd (2.56.0-1) unstable; urgency=medium
|
|||||||
|
|
||||||
* updated to version 2.56.0/0.9.65
|
* updated to version 2.56.0/0.9.65
|
||||||
|
|
||||||
-- orignal <orignal@i2pmail.org> Sun, 09 Feb 2025 16:00:00 +0000
|
-- orignal <orignal@i2pmail.org> Tue, 11 Feb 2025 16:00:00 +0000
|
||||||
|
|
||||||
i2pd (2.55.0-1) unstable; urgency=medium
|
i2pd (2.55.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
|||||||
@@ -1251,18 +1251,21 @@ namespace transport
|
|||||||
}
|
}
|
||||||
uint64_t token;
|
uint64_t token;
|
||||||
RAND_bytes ((uint8_t *)&token, 8);
|
RAND_bytes ((uint8_t *)&token, 8);
|
||||||
m_IncomingTokens.emplace (ep, std::make_pair (token, uint32_t(ts + SSU2_TOKEN_EXPIRATION_TIMEOUT)));
|
if (!token) token = 1; // token can't be zero
|
||||||
|
m_IncomingTokens.try_emplace (ep, token, uint32_t(ts + SSU2_TOKEN_EXPIRATION_TIMEOUT));
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<uint64_t, uint32_t> SSU2Server::NewIncomingToken (const boost::asio::ip::udp::endpoint& ep)
|
std::pair<uint64_t, uint32_t> SSU2Server::NewIncomingToken (const boost::asio::ip::udp::endpoint& ep)
|
||||||
{
|
{
|
||||||
m_IncomingTokens.erase (ep); // drop previous
|
|
||||||
uint64_t token;
|
uint64_t token;
|
||||||
RAND_bytes ((uint8_t *)&token, 8);
|
RAND_bytes ((uint8_t *)&token, 8);
|
||||||
auto ret = std::make_pair (token, uint32_t(i2p::util::GetSecondsSinceEpoch () + SSU2_NEXT_TOKEN_EXPIRATION_TIMEOUT));
|
if (!token) token = 1; // token can't be zero
|
||||||
m_IncomingTokens.emplace (ep, ret);
|
uint32_t expires = i2p::util::GetSecondsSinceEpoch () + SSU2_NEXT_TOKEN_EXPIRATION_TIMEOUT;
|
||||||
return ret;
|
auto [it, inserted] = m_IncomingTokens.try_emplace (ep, token, expires);
|
||||||
|
if (!inserted)
|
||||||
|
it->second = { token, expires }; // override
|
||||||
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::shared_ptr<SSU2Session> > SSU2Server::FindIntroducers (int maxNumIntroducers,
|
std::vector<std::shared_ptr<SSU2Session> > SSU2Server::FindIntroducers (int maxNumIntroducers,
|
||||||
|
|||||||
@@ -315,22 +315,28 @@ namespace tunnel
|
|||||||
void OutboundTunnel::SendTunnelDataMsgTo (const uint8_t * gwHash, uint32_t gwTunnel, std::shared_ptr<i2p::I2NPMessage> msg)
|
void OutboundTunnel::SendTunnelDataMsgTo (const uint8_t * gwHash, uint32_t gwTunnel, std::shared_ptr<i2p::I2NPMessage> msg)
|
||||||
{
|
{
|
||||||
TunnelMessageBlock block;
|
TunnelMessageBlock block;
|
||||||
|
block.tunnelID = 0; // Initialize tunnelID to a default value
|
||||||
|
|
||||||
if (gwHash)
|
if (gwHash)
|
||||||
{
|
{
|
||||||
block.hash = gwHash;
|
block.hash = gwHash;
|
||||||
if (gwTunnel)
|
if (gwTunnel)
|
||||||
{
|
{
|
||||||
block.deliveryType = eDeliveryTypeTunnel;
|
block.deliveryType = eDeliveryTypeTunnel;
|
||||||
block.tunnelID = gwTunnel;
|
block.tunnelID = gwTunnel; // Set tunnelID only if gwTunnel is non-zero
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
block.deliveryType = eDeliveryTypeRouter;
|
block.deliveryType = eDeliveryTypeRouter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
block.deliveryType = eDeliveryTypeLocal;
|
block.deliveryType = eDeliveryTypeLocal;
|
||||||
block.data = msg;
|
}
|
||||||
|
|
||||||
SendTunnelDataMsgs ({block});
|
block.data = msg;
|
||||||
|
SendTunnelDataMsgs({block});
|
||||||
}
|
}
|
||||||
|
|
||||||
void OutboundTunnel::SendTunnelDataMsgs (const std::vector<TunnelMessageBlock>& msgs)
|
void OutboundTunnel::SendTunnelDataMsgs (const std::vector<TunnelMessageBlock>& msgs)
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogPrint (eLogCritical, "Clients: Can't open file ", fullPath, " Creating new one with signature type ", sigType, " crypto type ", cryptoType);
|
LogPrint (eLogInfo, "Clients: Can't open file ", fullPath, " Creating new one with signature type ", sigType, " crypto type ", cryptoType);
|
||||||
keys = i2p::data::PrivateKeys::CreateRandomKeys (sigType, cryptoType, true);
|
keys = i2p::data::PrivateKeys::CreateRandomKeys (sigType, cryptoType, true);
|
||||||
std::ofstream f (fullPath, std::ofstream::binary | std::ofstream::out);
|
std::ofstream f (fullPath, std::ofstream::binary | std::ofstream::out);
|
||||||
size_t len = keys.GetFullLen ();
|
size_t len = keys.GetFullLen ();
|
||||||
@@ -871,7 +871,7 @@ namespace client
|
|||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogWarning, "Clients: Unknown section type = ", type, " of ", name, " in ", tunConf);
|
LogPrint (eLogError, "Clients: Unknown section type = ", type, " of ", name, " in ", tunConf);
|
||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user