mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 08:14:15 +00:00
parent
ff12421d60
commit
95c4a87ccc
25
SAM.cpp
25
SAM.cpp
@ -343,19 +343,24 @@ namespace client
|
|||||||
if (m_Session)
|
if (m_Session)
|
||||||
{
|
{
|
||||||
i2p::data::IdentityEx dest;
|
i2p::data::IdentityEx dest;
|
||||||
dest.FromBase64 (destination);
|
size_t len = dest.FromBase64(destination);
|
||||||
context.GetAddressBook ().InsertAddress (dest);
|
if (len > 0)
|
||||||
auto leaseSet = m_Session->localDestination->FindLeaseSet (dest.GetIdentHash ());
|
|
||||||
if (leaseSet)
|
|
||||||
Connect (leaseSet);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
m_Session->localDestination->RequestDestination (dest.GetIdentHash (),
|
context.GetAddressBook().InsertAddress(dest);
|
||||||
std::bind (&SAMSocket::HandleConnectLeaseSetRequestComplete,
|
auto leaseSet = m_Session->localDestination->FindLeaseSet(dest.GetIdentHash());
|
||||||
shared_from_this (), std::placeholders::_1));
|
if (leaseSet)
|
||||||
|
Connect(leaseSet);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_Session->localDestination->RequestDestination(dest.GetIdentHash(),
|
||||||
|
std::bind(&SAMSocket::HandleConnectLeaseSetRequestComplete,
|
||||||
|
shared_from_this(), std::placeholders::_1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
SendMessageReply(SAM_SESSION_STATUS_INVALID_KEY, strlen(SAM_SESSION_STATUS_INVALID_KEY), true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SendMessageReply (SAM_STREAM_STATUS_INVALID_ID, strlen(SAM_STREAM_STATUS_INVALID_ID), true);
|
SendMessageReply (SAM_STREAM_STATUS_INVALID_ID, strlen(SAM_STREAM_STATUS_INVALID_ID), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
SAM.h
1
SAM.h
@ -28,6 +28,7 @@ namespace client
|
|||||||
const char SAM_SESSION_CREATE_REPLY_OK[] = "SESSION STATUS RESULT=OK DESTINATION=%s\n";
|
const char SAM_SESSION_CREATE_REPLY_OK[] = "SESSION STATUS RESULT=OK DESTINATION=%s\n";
|
||||||
const char SAM_SESSION_CREATE_DUPLICATED_ID[] = "SESSION STATUS RESULT=DUPLICATED_ID\n";
|
const char SAM_SESSION_CREATE_DUPLICATED_ID[] = "SESSION STATUS RESULT=DUPLICATED_ID\n";
|
||||||
const char SAM_SESSION_CREATE_DUPLICATED_DEST[] = "SESSION STATUS RESULT=DUPLICATED_DEST\n";
|
const char SAM_SESSION_CREATE_DUPLICATED_DEST[] = "SESSION STATUS RESULT=DUPLICATED_DEST\n";
|
||||||
|
const char SAM_SESSION_STATUS_INVALID_KEY[] = "SESSION STATUS RESULT=INVALID_KEY\n";
|
||||||
const char SAM_STREAM_CONNECT[] = "STREAM CONNECT";
|
const char SAM_STREAM_CONNECT[] = "STREAM CONNECT";
|
||||||
const char SAM_STREAM_STATUS_OK[] = "STREAM STATUS RESULT=OK\n";
|
const char SAM_STREAM_STATUS_OK[] = "STREAM STATUS RESULT=OK\n";
|
||||||
const char SAM_STREAM_STATUS_INVALID_ID[] = "STREAM STATUS RESULT=INVALID_ID\n";
|
const char SAM_STREAM_STATUS_INVALID_ID[] = "STREAM STATUS RESULT=INVALID_ID\n";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user