Browse Source

fix #1253 handle incorrect values of SIGNATURE_TYPE and CRYPTO_TYPE

pull/1258/head
orignal 6 years ago
parent
commit
9e12cff317
  1. 22
      libi2pd_client/SAM.cpp

22
libi2pd_client/SAM.cpp

@ -1027,11 +1027,29 @@ namespace client
{ {
auto it = params->find (SAM_PARAM_SIGNATURE_TYPE); auto it = params->find (SAM_PARAM_SIGNATURE_TYPE);
if (it != params->end ()) if (it != params->end ())
{
// TODO: extract string values // TODO: extract string values
signatureType = std::stoi(it->second); try
{
signatureType = std::stoi(it->second);
}
catch (const std::exception& ex)
{
LogPrint (eLogWarning, "SAM: ", SAM_PARAM_SIGNATURE_TYPE, "error: ", ex.what ());
}
}
it = params->find (SAM_PARAM_CRYPTO_TYPE); it = params->find (SAM_PARAM_CRYPTO_TYPE);
if (it != params->end ()) if (it != params->end ())
cryptoType = std::stoi(it->second); {
try
{
cryptoType = std::stoi(it->second);
}
catch (const std::exception& ex)
{
LogPrint (eLogWarning, "SAM: ", SAM_PARAM_CRYPTO_TYPE, "error: ", ex.what ());
}
}
} }
localDestination = i2p::client::context.CreateNewLocalDestination (true, signatureType, cryptoType, params); localDestination = i2p::client::context.CreateNewLocalDestination (true, signatureType, cryptoType, params);
} }

Loading…
Cancel
Save