|
|
|
@ -359,6 +359,20 @@ namespace client
|
|
|
|
|
}
|
|
|
|
|
forward = std::make_shared<boost::asio::ip::udp::endpoint>(addr, port);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//ensure we actually received a destination
|
|
|
|
|
if (destination.empty())
|
|
|
|
|
{
|
|
|
|
|
SendMessageReply (SAM_SESSION_STATUS_INVALID_KEY, strlen(SAM_SESSION_STATUS_INVALID_KEY), true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//ensure it's a base64 string
|
|
|
|
|
if (!keys.FromBase64(destination))
|
|
|
|
|
{
|
|
|
|
|
SendMessageReply(SAM_SESSION_STATUS_INVALID_KEY, strlen(SAM_SESSION_STATUS_INVALID_KEY), true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// create destination
|
|
|
|
|
auto session = m_Owner.CreateSession (id, destination == SAM_VALUE_TRANSIENT ? "" : destination, ¶ms);
|
|
|
|
|