mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2026-03-29 15:20:21 +00:00
store shared routing path and with Java separately
This commit is contained in:
@@ -28,7 +28,7 @@ namespace garlic
|
||||
{
|
||||
GarlicRoutingSession::GarlicRoutingSession (GarlicDestination * owner, bool attachLeaseSet):
|
||||
m_Owner (owner), m_LeaseSetUpdateStatus (attachLeaseSet ? eLeaseSetUpdated : eLeaseSetDoNotSend),
|
||||
m_LeaseSetUpdateMsgID (0)
|
||||
m_LeaseSetUpdateMsgID (0), m_IsWithJava (false)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,6 @@ namespace garlic
|
||||
// for streaming only
|
||||
int rtt; // RTT
|
||||
uint32_t updateTime; // seconds since epoch
|
||||
bool isJava; // based on choked value
|
||||
};
|
||||
|
||||
class GarlicDestination;
|
||||
@@ -131,6 +130,9 @@ namespace garlic
|
||||
|
||||
std::shared_ptr<GarlicRoutingPath> GetSharedRoutingPath ();
|
||||
void SetSharedRoutingPath (std::shared_ptr<GarlicRoutingPath> path);
|
||||
|
||||
bool IsWithJava () const { return m_IsWithJava; }
|
||||
void SetIsWithJava (bool isWithJava) { m_IsWithJava = isWithJava; }
|
||||
|
||||
GarlicDestination * GetOwner () const { return m_Owner; }
|
||||
void SetOwner (GarlicDestination * owner) { m_Owner = owner; }
|
||||
@@ -154,6 +156,7 @@ namespace garlic
|
||||
uint64_t m_LeaseSetSubmissionTime; // in milliseconds
|
||||
|
||||
std::shared_ptr<GarlicRoutingPath> m_SharedRoutingPath;
|
||||
bool m_IsWithJava; // based on choked value from streaming
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -426,11 +426,7 @@ namespace stream
|
||||
LogPrint (eLogDebug, "Streaming: limit window size for java client");
|
||||
m_MaxWindowSize = 32;
|
||||
m_IsJavaClient = true;
|
||||
if (m_RoutingSession)
|
||||
{
|
||||
auto path = m_RoutingSession->GetSharedRoutingPath ();
|
||||
if (path) path->isJava = true;
|
||||
}
|
||||
if (m_RoutingSession) m_RoutingSession->SetIsWithJava (true);
|
||||
}
|
||||
m_WindowDropTargetSize = MIN_WINDOW_SIZE;
|
||||
m_LastWindowDropSize = 0;
|
||||
@@ -772,7 +768,7 @@ namespace stream
|
||||
if (m_RoutingSession)
|
||||
m_RoutingSession->SetSharedRoutingPath (
|
||||
std::make_shared<i2p::garlic::GarlicRoutingPath> (
|
||||
i2p::garlic::GarlicRoutingPath{m_CurrentOutboundTunnel, m_CurrentRemoteLease, (int)m_RTT, 0, false}));
|
||||
i2p::garlic::GarlicRoutingPath{m_CurrentOutboundTunnel, m_CurrentRemoteLease, (int)m_RTT, 0}));
|
||||
m_IsFirstACK = false;
|
||||
}
|
||||
if (acknowledged)
|
||||
@@ -1287,9 +1283,9 @@ namespace stream
|
||||
m_CurrentOutboundTunnel = routingPath->outboundTunnel;
|
||||
m_CurrentRemoteLease = routingPath->remoteLease;
|
||||
m_RTT = routingPath->rtt;
|
||||
m_IsJavaClient = routingPath->isJava;
|
||||
if (m_IsJavaClient) m_MaxWindowSize = 32;
|
||||
}
|
||||
m_IsJavaClient = m_RoutingSession->IsWithJava ();
|
||||
if (m_IsJavaClient) m_MaxWindowSize = 32;
|
||||
}
|
||||
|
||||
auto ts = i2p::util::GetMillisecondsSinceEpoch ();
|
||||
|
||||
Reference in New Issue
Block a user