mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-09 15:50:26 +03:00
Up level for some logs to critical
This commit is contained in:
parent
a80aeb6715
commit
354a04f0f6
@ -47,7 +47,7 @@ namespace util
|
|||||||
I2PService service((PSTR)SERVICE_NAME);
|
I2PService service((PSTR)SERVICE_NAME);
|
||||||
if (!I2PService::Run(service))
|
if (!I2PService::Run(service))
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Service failed to run w/err 0x%08lx\n", GetLastError());
|
LogPrint(eLogCritical, "Daemon: Service failed to run w/err 0x%08lx\n", GetLastError());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -119,12 +119,12 @@ void I2PService::Start(DWORD dwArgc, PSTR *pszArgv)
|
|||||||
}
|
}
|
||||||
catch (DWORD dwError)
|
catch (DWORD dwError)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Start error: ", dwError);
|
LogPrint(eLogCritical, "Win32Service: Start error: ", dwError);
|
||||||
SetServiceStatus(SERVICE_STOPPED, dwError);
|
SetServiceStatus(SERVICE_STOPPED, dwError);
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: failed to start: ", EVENTLOG_ERROR_TYPE);
|
LogPrint(eLogCritical, "Win32Service: failed to start: ", EVENTLOG_ERROR_TYPE);
|
||||||
SetServiceStatus(SERVICE_STOPPED);
|
SetServiceStatus(SERVICE_STOPPED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -162,7 +162,7 @@ void I2PService::Stop()
|
|||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Failed to stop: ", EVENTLOG_ERROR_TYPE);
|
LogPrint(eLogCritical, "Win32Service: Failed to stop: ", EVENTLOG_ERROR_TYPE);
|
||||||
SetServiceStatus(dwOriginalState);
|
SetServiceStatus(dwOriginalState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -191,12 +191,12 @@ void I2PService::Pause()
|
|||||||
}
|
}
|
||||||
catch (DWORD dwError)
|
catch (DWORD dwError)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Pause error: ", dwError);
|
LogPrint(eLogCritical, "Win32Service: Pause error: ", dwError);
|
||||||
SetServiceStatus(SERVICE_RUNNING);
|
SetServiceStatus(SERVICE_RUNNING);
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Failed to pause: ", EVENTLOG_ERROR_TYPE);
|
LogPrint(eLogCritical, "Win32Service: Failed to pause: ", EVENTLOG_ERROR_TYPE);
|
||||||
SetServiceStatus(SERVICE_RUNNING);
|
SetServiceStatus(SERVICE_RUNNING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,12 +215,12 @@ void I2PService::Continue()
|
|||||||
}
|
}
|
||||||
catch (DWORD dwError)
|
catch (DWORD dwError)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Continue error: ", dwError);
|
LogPrint(eLogCritical, "Win32Service: Continue error: ", dwError);
|
||||||
SetServiceStatus(SERVICE_PAUSED);
|
SetServiceStatus(SERVICE_PAUSED);
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Failed to resume: ", EVENTLOG_ERROR_TYPE);
|
LogPrint(eLogCritical, "Win32Service: Failed to resume: ", EVENTLOG_ERROR_TYPE);
|
||||||
SetServiceStatus(SERVICE_PAUSED);
|
SetServiceStatus(SERVICE_PAUSED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -238,11 +238,11 @@ void I2PService::Shutdown()
|
|||||||
}
|
}
|
||||||
catch (DWORD dwError)
|
catch (DWORD dwError)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Shutdown error: ", dwError);
|
LogPrint(eLogCritical, "Win32Service: Shutdown error: ", dwError);
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Win32Service: Failed to shut down: ", EVENTLOG_ERROR_TYPE);
|
LogPrint(eLogCritical, "Win32Service: Failed to shut down: ", EVENTLOG_ERROR_TYPE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ namespace util
|
|||||||
restricted = idents.size() > 0;
|
restricted = idents.size() > 0;
|
||||||
}
|
}
|
||||||
if(!restricted)
|
if(!restricted)
|
||||||
LogPrint(eLogError, "Daemon: No trusted routers of families specified");
|
LogPrint(eLogCritical, "Daemon: No trusted routers of families specified");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hidden; i2p::config::GetOption("trust.hidden", hidden);
|
bool hidden; i2p::config::GetOption("trust.hidden", hidden);
|
||||||
@ -310,7 +310,7 @@ namespace util
|
|||||||
LogPrint(eLogInfo, "Daemon: Transports started");
|
LogPrint(eLogInfo, "Daemon: Transports started");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Failed to start Transports");
|
LogPrint(eLogCritical, "Daemon: Failed to start Transports");
|
||||||
/** shut down netdb right away */
|
/** shut down netdb right away */
|
||||||
i2p::transport::transports.Stop();
|
i2p::transport::transports.Stop();
|
||||||
i2p::data::netdb.Stop();
|
i2p::data::netdb.Stop();
|
||||||
@ -329,7 +329,7 @@ namespace util
|
|||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Daemon: Failed to start Webconsole: ", ex.what ());
|
LogPrint (eLogCritical, "Daemon: Failed to start Webconsole: ", ex.what ());
|
||||||
ThrowFatal ("Unable to start webconsole at ", httpAddr, ":", httpPort, ": ", ex.what ());
|
ThrowFatal ("Unable to start webconsole at ", httpAddr, ":", httpPort, ": ", ex.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -338,8 +338,8 @@ namespace util
|
|||||||
i2p::tunnel::tunnels.Start();
|
i2p::tunnel::tunnels.Start();
|
||||||
|
|
||||||
LogPrint(eLogInfo, "Daemon: Starting Router context");
|
LogPrint(eLogInfo, "Daemon: Starting Router context");
|
||||||
i2p::context.Start();
|
i2p::context.Start();
|
||||||
|
|
||||||
LogPrint(eLogInfo, "Daemon: Starting Client");
|
LogPrint(eLogInfo, "Daemon: Starting Client");
|
||||||
i2p::client::context.Start ();
|
i2p::client::context.Start ();
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ namespace util
|
|||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Daemon: Failed to start I2PControl: ", ex.what ());
|
LogPrint (eLogCritical, "Daemon: Failed to start I2PControl: ", ex.what ());
|
||||||
ThrowFatal ("Unable to start I2PControl service at ", i2pcpAddr, ":", i2pcpPort, ": ", ex.what ());
|
ThrowFatal ("Unable to start I2PControl service at ", i2pcpAddr, ":", i2pcpPort, ": ", ex.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ namespace http {
|
|||||||
|
|
||||||
static void SetLogLevel (const std::string& level)
|
static void SetLogLevel (const std::string& level)
|
||||||
{
|
{
|
||||||
if (level == "none" || level == "error" || level == "warn" || level == "info" || level == "debug")
|
if (level == "none" || level == "critical" || level == "error" || level == "warn" || level == "info" || level == "debug")
|
||||||
i2p::log::Logger().SetLogLevel(level);
|
i2p::log::Logger().SetLogLevel(level);
|
||||||
else {
|
else {
|
||||||
LogPrint(eLogError, "HTTPServer: Unknown loglevel set attempted");
|
LogPrint(eLogError, "HTTPServer: Unknown loglevel set attempted");
|
||||||
@ -625,10 +625,10 @@ namespace http {
|
|||||||
if (storeType == i2p::data::NETDB_STORE_TYPE_LEASESET)
|
if (storeType == i2p::data::NETDB_STORE_TYPE_LEASESET)
|
||||||
ls.reset (new i2p::data::LeaseSet (leaseSet->GetBuffer(), leaseSet->GetBufferLen()));
|
ls.reset (new i2p::data::LeaseSet (leaseSet->GetBuffer(), leaseSet->GetBufferLen()));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ls.reset (new i2p::data::LeaseSet2 (storeType));
|
ls.reset (new i2p::data::LeaseSet2 (storeType));
|
||||||
ls->Update (leaseSet->GetBuffer(), leaseSet->GetBufferLen(), false);
|
ls->Update (leaseSet->GetBuffer(), leaseSet->GetBufferLen(), false);
|
||||||
}
|
}
|
||||||
if (!ls) return;
|
if (!ls) return;
|
||||||
s << "<div class=\"leaseset listitem";
|
s << "<div class=\"leaseset listitem";
|
||||||
if (ls->IsExpired())
|
if (ls->IsExpired())
|
||||||
@ -748,11 +748,12 @@ namespace http {
|
|||||||
|
|
||||||
auto loglevel = i2p::log::Logger().GetLogLevel();
|
auto loglevel = i2p::log::Logger().GetLogLevel();
|
||||||
s << "<b>" << tr("Logging level") << "</b><br>\r\n";
|
s << "<b>" << tr("Logging level") << "</b><br>\r\n";
|
||||||
s << " <a class=\"button" << (loglevel == eLogNone ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=none&token=" << token << "\"> none </a> \r\n";
|
s << " <a class=\"button" << (loglevel == eLogNone ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=none&token=" << token << "\"> none </a> \r\n";
|
||||||
s << " <a class=\"button" << (loglevel == eLogError ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=error&token=" << token << "\"> error </a> \r\n";
|
s << " <a class=\"button" << (loglevel == eLogCritical ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=critical&token=" << token << "\"> none </a> \r\n";
|
||||||
s << " <a class=\"button" << (loglevel == eLogWarning ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=warn&token=" << token << "\"> warn </a> \r\n";
|
s << " <a class=\"button" << (loglevel == eLogError ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=error&token=" << token << "\"> error </a> \r\n";
|
||||||
s << " <a class=\"button" << (loglevel == eLogInfo ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=info&token=" << token << "\"> info </a> \r\n";
|
s << " <a class=\"button" << (loglevel == eLogWarning ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=warn&token=" << token << "\"> warn </a> \r\n";
|
||||||
s << " <a class=\"button" << (loglevel == eLogDebug ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=debug&token=" << token << "\"> debug </a><br>\r\n<br>\r\n";
|
s << " <a class=\"button" << (loglevel == eLogInfo ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=info&token=" << token << "\"> info </a> \r\n";
|
||||||
|
s << " <a class=\"button" << (loglevel == eLogDebug ? " selected" : "") << "\" href=\"" << webroot << "?cmd=" << HTTP_COMMAND_LOGLEVEL << "&level=debug&token=" << token << "\"> debug </a><br>\r\n<br>\r\n";
|
||||||
|
|
||||||
uint16_t maxTunnels = i2p::tunnel::tunnels.GetMaxNumTransitTunnels ();
|
uint16_t maxTunnels = i2p::tunnel::tunnels.GetMaxNumTransitTunnels ();
|
||||||
s << "<b>" << tr("Transit tunnels limit") << "</b><br>\r\n";
|
s << "<b>" << tr("Transit tunnels limit") << "</b><br>\r\n";
|
||||||
@ -1481,7 +1482,7 @@ namespace http {
|
|||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "HTTPServer: Runtime exception: ", ex.what ());
|
LogPrint (eLogCritical, "HTTPServer: Runtime exception: ", ex.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,7 @@ namespace client
|
|||||||
try {
|
try {
|
||||||
m_Service.run ();
|
m_Service.run ();
|
||||||
} catch (std::exception& ex) {
|
} catch (std::exception& ex) {
|
||||||
LogPrint (eLogError, "I2PControl: Runtime exception: ", ex.what ());
|
LogPrint (eLogCritical, "I2PControl: Runtime exception: ", ex.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ namespace transport
|
|||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "UPnP: Runtime exception: ", ex.what ());
|
LogPrint (eLogCritical, "UPnP: Runtime exception: ", ex.what ());
|
||||||
PortMapping ();
|
PortMapping ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ namespace i2p
|
|||||||
|
|
||||||
if (pid < 0) // error
|
if (pid < 0) // error
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Could not fork: ", strerror(errno));
|
LogPrint(eLogCritical, "Daemon: Could not fork: ", strerror(errno));
|
||||||
std::cerr << "i2pd: Could not fork: " << strerror(errno) << std::endl;
|
std::cerr << "i2pd: Could not fork: " << strerror(errno) << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -91,7 +91,7 @@ namespace i2p
|
|||||||
int sid = setsid();
|
int sid = setsid();
|
||||||
if (sid < 0)
|
if (sid < 0)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Could not create process group.");
|
LogPrint(eLogCritical, "Daemon: Could not create process group.");
|
||||||
std::cerr << "i2pd: Could not create process group." << std::endl;
|
std::cerr << "i2pd: Could not create process group." << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -121,10 +121,10 @@ namespace i2p
|
|||||||
LogPrint(eLogInfo, "Daemon: Set max number of open files to ",
|
LogPrint(eLogInfo, "Daemon: Set max number of open files to ",
|
||||||
nfiles, " (system limit is ", limit.rlim_max, ")");
|
nfiles, " (system limit is ", limit.rlim_max, ")");
|
||||||
} else {
|
} else {
|
||||||
LogPrint(eLogError, "Daemon: Can't set max number of open files: ", strerror(errno));
|
LogPrint(eLogCritical, "Daemon: Can't set max number of open files: ", strerror(errno));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LogPrint(eLogError, "Daemon: limits.openfiles exceeds system limit: ", limit.rlim_max);
|
LogPrint(eLogCritical, "Daemon: limits.openfiles exceeds system limit: ", limit.rlim_max);
|
||||||
}
|
}
|
||||||
uint32_t cfsize; i2p::config::GetOption("limits.coresize", cfsize);
|
uint32_t cfsize; i2p::config::GetOption("limits.coresize", cfsize);
|
||||||
if (cfsize) // core file size set
|
if (cfsize) // core file size set
|
||||||
@ -134,14 +134,14 @@ namespace i2p
|
|||||||
if (cfsize <= limit.rlim_max) {
|
if (cfsize <= limit.rlim_max) {
|
||||||
limit.rlim_cur = cfsize;
|
limit.rlim_cur = cfsize;
|
||||||
if (setrlimit(RLIMIT_CORE, &limit) != 0) {
|
if (setrlimit(RLIMIT_CORE, &limit) != 0) {
|
||||||
LogPrint(eLogError, "Daemon: Can't set max size of coredump: ", strerror(errno));
|
LogPrint(eLogCritical, "Daemon: Can't set max size of coredump: ", strerror(errno));
|
||||||
} else if (cfsize == 0) {
|
} else if (cfsize == 0) {
|
||||||
LogPrint(eLogInfo, "Daemon: coredumps disabled");
|
LogPrint(eLogInfo, "Daemon: coredumps disabled");
|
||||||
} else {
|
} else {
|
||||||
LogPrint(eLogInfo, "Daemon: Set max size of core files to ", cfsize / 1024, "Kb");
|
LogPrint(eLogInfo, "Daemon: Set max size of core files to ", cfsize / 1024, "Kb");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LogPrint(eLogError, "Daemon: limits.coresize exceeds system limit: ", limit.rlim_max);
|
LogPrint(eLogCritical, "Daemon: limits.coresize exceeds system limit: ", limit.rlim_max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ namespace i2p
|
|||||||
pidFH = open(pidfile.c_str(), O_RDWR | O_CREAT, 0600);
|
pidFH = open(pidfile.c_str(), O_RDWR | O_CREAT, 0600);
|
||||||
if (pidFH < 0)
|
if (pidFH < 0)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Could not create pid file ", pidfile, ": ", strerror(errno));
|
LogPrint(eLogCritical, "Daemon: Could not create pid file ", pidfile, ": ", strerror(errno));
|
||||||
std::cerr << "i2pd: Could not create pid file " << pidfile << ": " << strerror(errno) << std::endl;
|
std::cerr << "i2pd: Could not create pid file " << pidfile << ": " << strerror(errno) << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -163,7 +163,7 @@ namespace i2p
|
|||||||
#ifndef ANDROID
|
#ifndef ANDROID
|
||||||
if (lockf(pidFH, F_TLOCK, 0) != 0)
|
if (lockf(pidFH, F_TLOCK, 0) != 0)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Could not lock pid file ", pidfile, ": ", strerror(errno));
|
LogPrint(eLogCritical, "Daemon: Could not lock pid file ", pidfile, ": ", strerror(errno));
|
||||||
std::cerr << "i2pd: Could not lock pid file " << pidfile << ": " << strerror(errno) << std::endl;
|
std::cerr << "i2pd: Could not lock pid file " << pidfile << ": " << strerror(errno) << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -173,7 +173,7 @@ namespace i2p
|
|||||||
ftruncate(pidFH, 0);
|
ftruncate(pidFH, 0);
|
||||||
if (write(pidFH, pid, strlen(pid)) < 0)
|
if (write(pidFH, pid, strlen(pid)) < 0)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Daemon: Could not write pidfile ", pidfile, ": ", strerror(errno));
|
LogPrint(eLogCritical, "Daemon: Could not write pidfile ", pidfile, ": ", strerror(errno));
|
||||||
std::cerr << "i2pd: Could not write pidfile " << pidfile << ": " << strerror(errno) << std::endl;
|
std::cerr << "i2pd: Could not write pidfile " << pidfile << ": " << strerror(errno) << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -259,7 +259,7 @@ namespace data
|
|||||||
publicKeyLength = i2p::crypto::EDDSA25519_PUBLIC_KEY_LENGTH;
|
publicKeyLength = i2p::crypto::EDDSA25519_PUBLIC_KEY_LENGTH;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LogPrint (eLogError, "Blinding: Can't blind signature type ", (int)m_SigType);
|
LogPrint (eLogCritical, "Blinding: Can't blind signature type ", (int)m_SigType);
|
||||||
}
|
}
|
||||||
return publicKeyLength;
|
return publicKeyLength;
|
||||||
}
|
}
|
||||||
@ -289,7 +289,7 @@ namespace data
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
LogPrint (eLogError, "Blinding: Can't blind signature type ", (int)m_SigType);
|
LogPrint (eLogCritical, "Blinding: Can't blind signature type ", (int)m_SigType);
|
||||||
}
|
}
|
||||||
return publicKeyLength;
|
return publicKeyLength;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ namespace client
|
|||||||
if (authType >= i2p::data::ENCRYPTED_LEASESET_AUTH_TYPE_NONE && authType <= i2p::data::ENCRYPTED_LEASESET_AUTH_TYPE_PSK)
|
if (authType >= i2p::data::ENCRYPTED_LEASESET_AUTH_TYPE_NONE && authType <= i2p::data::ENCRYPTED_LEASESET_AUTH_TYPE_PSK)
|
||||||
m_AuthType = authType;
|
m_AuthType = authType;
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Destination: Unknown auth type ", authType);
|
LogPrint (eLogCritical, "Destination: Unknown auth type ", authType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
it = params->find (I2CP_PARAM_LEASESET_PRIV_KEY);
|
it = params->find (I2CP_PARAM_LEASESET_PRIV_KEY);
|
||||||
@ -117,7 +117,7 @@ namespace client
|
|||||||
m_LeaseSetPrivKey.reset (new i2p::data::Tag<32>());
|
m_LeaseSetPrivKey.reset (new i2p::data::Tag<32>());
|
||||||
if (m_LeaseSetPrivKey->FromBase64 (it->second) != 32)
|
if (m_LeaseSetPrivKey->FromBase64 (it->second) != 32)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Destination: Invalid value i2cp.leaseSetPrivKey ", it->second);
|
LogPrint(eLogCritical, "Destination: Invalid value i2cp.leaseSetPrivKey ", it->second);
|
||||||
m_LeaseSetPrivKey.reset (nullptr);
|
m_LeaseSetPrivKey.reset (nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,7 +125,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception & ex)
|
catch (std::exception & ex)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Destination: Unable to parse parameters for destination: ", ex.what());
|
LogPrint(eLogCritical, "Destination: Unable to parse parameters for destination: ", ex.what());
|
||||||
}
|
}
|
||||||
SetNumTags (numTags);
|
SetNumTags (numTags);
|
||||||
m_Pool = i2p::tunnel::tunnels.CreateTunnelPool (inLen, outLen, inQty, outQty, inVar, outVar);
|
m_Pool = i2p::tunnel::tunnels.CreateTunnelPool (inLen, outLen, inQty, outQty, inVar, outVar);
|
||||||
@ -1014,12 +1014,12 @@ namespace client
|
|||||||
else if (authType == i2p::data::ENCRYPTED_LEASESET_AUTH_TYPE_PSK)
|
else if (authType == i2p::data::ENCRYPTED_LEASESET_AUTH_TYPE_PSK)
|
||||||
ReadAuthKey (I2CP_PARAM_LEASESET_CLIENT_PSK, params);
|
ReadAuthKey (I2CP_PARAM_LEASESET_CLIENT_PSK, params);
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Destination: Unexpected auth type ", authType);
|
LogPrint (eLogCritical, "Destination: Unexpected auth type ", authType);
|
||||||
if (m_AuthKeys->size ())
|
if (m_AuthKeys->size ())
|
||||||
LogPrint (eLogInfo, "Destination: ", m_AuthKeys->size (), " auth keys read");
|
LogPrint (eLogInfo, "Destination: ", m_AuthKeys->size (), " auth keys read");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Destination: No auth keys read for auth type ", authType);
|
LogPrint (eLogCritical, "Destination: No auth keys read for auth type ", authType);
|
||||||
m_AuthKeys = nullptr;
|
m_AuthKeys = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1028,7 +1028,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception & ex)
|
catch (std::exception & ex)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Destination: Unable to parse parameters for destination: ", ex.what());
|
LogPrint(eLogCritical, "Destination: Unable to parse parameters for destination: ", ex.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1336,7 +1336,7 @@ namespace client
|
|||||||
f1.write ((char *)keys->priv, 256);
|
f1.write ((char *)keys->priv, 256);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LogPrint(eLogError, "Destinations: Can't save keys to ", path);
|
LogPrint(eLogCritical, "Destinations: Can't save keys to ", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientDestination::CreateNewLeaseSet (const std::vector<std::shared_ptr<i2p::tunnel::InboundTunnel> >& tunnels)
|
void ClientDestination::CreateNewLeaseSet (const std::vector<std::shared_ptr<i2p::tunnel::InboundTunnel> >& tunnels)
|
||||||
@ -1413,7 +1413,7 @@ namespace client
|
|||||||
if (pubKey.FromBase64 (it.second.substr (pos+1)))
|
if (pubKey.FromBase64 (it.second.substr (pos+1)))
|
||||||
m_AuthKeys->push_back (pubKey);
|
m_AuthKeys->push_back (pubKey);
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Destination: Unexpected auth key ", it.second.substr (pos+1));
|
LogPrint (eLogCritical, "Destination: Unexpected auth key ", it.second.substr (pos+1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -77,14 +77,14 @@ namespace data
|
|||||||
verifier->SetPublicKey (signingKey);
|
verifier->SetPublicKey (signingKey);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogWarning, "Family: elliptic curve ", curve, " is not supported");
|
LogPrint (eLogCritical, "Family: elliptic curve ", curve, " is not supported");
|
||||||
}
|
}
|
||||||
EC_KEY_free (ecKey);
|
EC_KEY_free (ecKey);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
LogPrint (eLogWarning, "Family: Certificate key type ", keyType, " is not supported");
|
LogPrint (eLogCritical, "Family: Certificate key type ", keyType, " is not supported");
|
||||||
}
|
}
|
||||||
EVP_PKEY_free (pkey);
|
EVP_PKEY_free (pkey);
|
||||||
if (verifier && cn)
|
if (verifier && cn)
|
||||||
@ -93,7 +93,7 @@ namespace data
|
|||||||
SSL_free (ssl);
|
SSL_free (ssl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Family: Can't open certificate file ", filename);
|
LogPrint (eLogCritical, "Family: Can't open certificate file ", filename);
|
||||||
SSL_CTX_free (ctx);
|
SSL_CTX_free (ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ namespace data
|
|||||||
int numCertificates = 0;
|
int numCertificates = 0;
|
||||||
|
|
||||||
if (!i2p::fs::ReadDir(certDir, files)) {
|
if (!i2p::fs::ReadDir(certDir, files)) {
|
||||||
LogPrint(eLogWarning, "Family: Can't load family certificates from ", certDir);
|
LogPrint(eLogError, "Family: Can't load family certificates from ", certDir);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,13 +185,13 @@ namespace data
|
|||||||
delete[] b64;
|
delete[] b64;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogWarning, "Family: elliptic curve ", curve, " is not supported");
|
LogPrint (eLogCritical, "Family: elliptic curve ", curve, " is not supported");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SSL_free (ssl);
|
SSL_free (ssl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Family: Can't open keys file: ", filename);
|
LogPrint (eLogCritical, "Family: Can't open keys file: ", filename);
|
||||||
SSL_CTX_free (ctx);
|
SSL_CTX_free (ctx);
|
||||||
return sig;
|
return sig;
|
||||||
}
|
}
|
||||||
|
@ -369,7 +369,7 @@ namespace data
|
|||||||
void IdentityEx::CreateVerifier ()
|
void IdentityEx::CreateVerifier ()
|
||||||
{
|
{
|
||||||
if (!m_Verifier)
|
if (!m_Verifier)
|
||||||
{
|
{
|
||||||
auto verifier = CreateVerifier (GetSigningKeyType ());
|
auto verifier = CreateVerifier (GetSigningKeyType ());
|
||||||
if (verifier)
|
if (verifier)
|
||||||
{
|
{
|
||||||
@ -388,7 +388,7 @@ namespace data
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_Verifier.reset (verifier);
|
m_Verifier.reset (verifier);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<i2p::crypto::CryptoKeyEncryptor> IdentityEx::CreateEncryptor (CryptoKeyType keyType, const uint8_t * key)
|
std::shared_ptr<i2p::crypto::CryptoKeyEncryptor> IdentityEx::CreateEncryptor (CryptoKeyType keyType, const uint8_t * key)
|
||||||
@ -755,7 +755,7 @@ namespace data
|
|||||||
i2p::crypto::CreateECIESX25519AEADRatchetRandomKeys (priv, pub);
|
i2p::crypto::CreateECIESX25519AEADRatchetRandomKeys (priv, pub);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LogPrint (eLogError, "Identity: Crypto key type ", (int)type, " is not supported");
|
LogPrint (eLogCritical, "Identity: Crypto key type ", (int)type, " is not supported");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ namespace data
|
|||||||
LogPrint (eLogDebug, "LeaseSet: Read num=", (int)num);
|
LogPrint (eLogDebug, "LeaseSet: Read num=", (int)num);
|
||||||
if (!num || num > MAX_NUM_LEASES)
|
if (!num || num > MAX_NUM_LEASES)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "LeaseSet: Rncorrect number of leases", (int)num);
|
LogPrint (eLogError, "LeaseSet: Incorrect number of leases", (int)num);
|
||||||
m_IsValid = false;
|
m_IsValid = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -127,13 +127,13 @@ namespace log {
|
|||||||
void Log::SetLogLevel (const std::string& level_) {
|
void Log::SetLogLevel (const std::string& level_) {
|
||||||
std::string level=str_tolower(level_);
|
std::string level=str_tolower(level_);
|
||||||
if (level == "none") { m_MinLevel = eLogNone; }
|
if (level == "none") { m_MinLevel = eLogNone; }
|
||||||
else if (level == "critical") { m_MinLevel = eLogCritical}
|
else if (level == "critical") { m_MinLevel = eLogCritical; }
|
||||||
else if (level == "error") { m_MinLevel = eLogError; }
|
else if (level == "error") { m_MinLevel = eLogError; }
|
||||||
else if (level == "warn") { m_MinLevel = eLogWarning; }
|
else if (level == "warn") { m_MinLevel = eLogWarning; }
|
||||||
else if (level == "info") { m_MinLevel = eLogInfo; }
|
else if (level == "info") { m_MinLevel = eLogInfo; }
|
||||||
else if (level == "debug") { m_MinLevel = eLogDebug; }
|
else if (level == "debug") { m_MinLevel = eLogDebug; }
|
||||||
else {
|
else {
|
||||||
LogPrint(eLogError, "Log: Unknown loglevel: ", level);
|
LogPrint(eLogCritical, "Log: Unknown loglevel: ", level);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LogPrint(eLogInfo, "Log: Logging level set to ", level);
|
LogPrint(eLogInfo, "Log: Logging level set to ", level);
|
||||||
@ -216,7 +216,7 @@ namespace log {
|
|||||||
m_LogStream = os;
|
m_LogStream = os;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LogPrint(eLogError, "Log: Can't open file ", path);
|
LogPrint(eLogCritical, "Log: Can't open file ", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Log::SendTo (std::shared_ptr<std::ostream> os) {
|
void Log::SendTo (std::shared_ptr<std::ostream> os) {
|
||||||
|
@ -1242,7 +1242,7 @@ namespace transport
|
|||||||
boost::system::error_code e;
|
boost::system::error_code e;
|
||||||
auto itr = m_Resolver.resolve(q, e);
|
auto itr = m_Resolver.resolve(q, e);
|
||||||
if(e)
|
if(e)
|
||||||
LogPrint(eLogError, "NTCP2: Failed to resolve proxy ", e.message());
|
LogPrint(eLogCritical, "NTCP2: Failed to resolve proxy ", e.message());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_ProxyEndpoint.reset (new boost::asio::ip::tcp::endpoint(*itr));
|
m_ProxyEndpoint.reset (new boost::asio::ip::tcp::endpoint(*itr));
|
||||||
@ -1270,7 +1270,7 @@ namespace transport
|
|||||||
}
|
}
|
||||||
catch ( std::exception & ex )
|
catch ( std::exception & ex )
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "NTCP2: Failed to bind to v4 port ", address->port, ex.what());
|
LogPrint(eLogCritical, "NTCP2: Failed to bind to v4 port ", address->port, ex.what());
|
||||||
ThrowFatal ("Unable to start IPv4 NTCP2 transport at port ", address->port, ": ", ex.what ());
|
ThrowFatal ("Unable to start IPv4 NTCP2 transport at port ", address->port, ": ", ex.what ());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1313,7 +1313,7 @@ namespace transport
|
|||||||
}
|
}
|
||||||
catch ( std::exception & ex )
|
catch ( std::exception & ex )
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "NTCP2: Failed to bind to v6 port ", address->port, ": ", ex.what());
|
LogPrint(eLogCritical, "NTCP2: Failed to bind to v6 port ", address->port, ": ", ex.what());
|
||||||
ThrowFatal ("Unable to start IPv6 NTCP2 transport at port ", address->port, ": ", ex.what ());
|
ThrowFatal ("Unable to start IPv6 NTCP2 transport at port ", address->port, ": ", ex.what ());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -153,7 +153,7 @@ namespace data
|
|||||||
return ProcessSU3Stream (s);
|
return ProcessSU3Stream (s);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Reseed: Can't open file ", filename);
|
LogPrint (eLogCritical, "Reseed: Can't open file ", filename);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -170,7 +170,7 @@ namespace data
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Reseed: Can't open file ", filename);
|
LogPrint (eLogCritical, "Reseed: Can't open file ", filename);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,7 +278,7 @@ namespace data
|
|||||||
|
|
||||||
if (verify) // not verified
|
if (verify) // not verified
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Reseed: SU3 verification failed");
|
LogPrint (eLogCritical, "Reseed: SU3 verification failed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,7 +492,7 @@ namespace data
|
|||||||
SSL_free (ssl);
|
SSL_free (ssl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Reseed: Can't open certificate file ", filename);
|
LogPrint (eLogCritical, "Reseed: Can't open certificate file ", filename);
|
||||||
SSL_CTX_free (ctx);
|
SSL_CTX_free (ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -534,17 +534,17 @@ namespace data
|
|||||||
}
|
}
|
||||||
// check for valid proxy url schema
|
// check for valid proxy url schema
|
||||||
if (proxyUrl.schema != "http" && proxyUrl.schema != "socks") {
|
if (proxyUrl.schema != "http" && proxyUrl.schema != "socks") {
|
||||||
LogPrint(eLogError, "Reseed: Bad proxy url: ", proxy);
|
LogPrint(eLogCritical, "Reseed: Bad proxy url: ", proxy);
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LogPrint(eLogError, "Reseed: Bad proxy url: ", proxy);
|
LogPrint(eLogCritical, "Reseed: Bad proxy url: ", proxy);
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
i2p::http::URL url;
|
i2p::http::URL url;
|
||||||
if (!url.parse(address)) {
|
if (!url.parse(address)) {
|
||||||
LogPrint(eLogError, "Reseed: Failed to parse url: ", address);
|
LogPrint(eLogCritical, "Reseed: Failed to parse url: ", address);
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
url.schema = "https";
|
url.schema = "https";
|
||||||
|
@ -99,7 +99,7 @@ namespace transport
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "SSU2: Can't start server because port not specified");
|
LogPrint (eLogCritical, "SSU2: Can't start server because port not specified");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (found)
|
if (found)
|
||||||
@ -224,7 +224,7 @@ namespace transport
|
|||||||
}
|
}
|
||||||
catch (std::exception& ex )
|
catch (std::exception& ex )
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "SSU2: Failed to bind to ", localEndpoint, ": ", ex.what());
|
LogPrint (eLogCritical, "SSU2: Failed to bind to ", localEndpoint, ": ", ex.what());
|
||||||
ThrowFatal ("Unable to start SSU2 transport on ", localEndpoint, ": ", ex.what ());
|
ThrowFatal ("Unable to start SSU2 transport on ", localEndpoint, ": ", ex.what ());
|
||||||
}
|
}
|
||||||
return socket;
|
return socket;
|
||||||
|
@ -84,7 +84,7 @@ namespace transport
|
|||||||
m_Server (server), m_Address (addr), m_RemoteTransports (0),
|
m_Server (server), m_Address (addr), m_RemoteTransports (0),
|
||||||
m_DestConnID (0), m_SourceConnID (0), m_State (eSSU2SessionStateUnknown),
|
m_DestConnID (0), m_SourceConnID (0), m_State (eSSU2SessionStateUnknown),
|
||||||
m_SendPacketNum (0), m_ReceivePacketNum (0), m_LastDatetimeSentPacketNum (0),
|
m_SendPacketNum (0), m_ReceivePacketNum (0), m_LastDatetimeSentPacketNum (0),
|
||||||
m_IsDataReceived (false), m_WindowSize (SSU2_MIN_WINDOW_SIZE),
|
m_IsDataReceived (false), m_WindowSize (SSU2_MIN_WINDOW_SIZE),
|
||||||
m_RTT (SSU2_RESEND_INTERVAL), m_RTO (SSU2_RESEND_INTERVAL*SSU2_kAPPA), m_RelayTag (0),
|
m_RTT (SSU2_RESEND_INTERVAL), m_RTO (SSU2_RESEND_INTERVAL*SSU2_kAPPA), m_RelayTag (0),
|
||||||
m_ConnectTimer (server.GetService ()), m_TerminationReason (eSSU2TerminationReasonNormalClose),
|
m_ConnectTimer (server.GetService ()), m_TerminationReason (eSSU2TerminationReasonNormalClose),
|
||||||
m_MaxPayloadSize (SSU2_MIN_PACKET_SIZE - IPV6_HEADER_SIZE - UDP_HEADER_SIZE - 32) // min size
|
m_MaxPayloadSize (SSU2_MIN_PACKET_SIZE - IPV6_HEADER_SIZE - UDP_HEADER_SIZE - 32) // min size
|
||||||
@ -928,7 +928,7 @@ namespace transport
|
|||||||
{
|
{
|
||||||
LogPrint (eLogError, "SSU2: Non zero packet number in SessionConfirmed");
|
LogPrint (eLogError, "SSU2: Non zero packet number in SessionConfirmed");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// check if fragmented
|
// check if fragmented
|
||||||
uint8_t numFragments = header.h.flags[0] & 0x0F;
|
uint8_t numFragments = header.h.flags[0] & 0x0F;
|
||||||
if (numFragments > 1)
|
if (numFragments > 1)
|
||||||
@ -1884,7 +1884,7 @@ namespace transport
|
|||||||
auto r = i2p::data::netdb.FindRouter (GetRemoteIdentity ()->GetIdentHash ()); // Alice's RI
|
auto r = i2p::data::netdb.FindRouter (GetRemoteIdentity ()->GetIdentHash ()); // Alice's RI
|
||||||
if (r && (r->IsUnreachable () || !i2p::data::netdb.PopulateRouterInfoBuffer (r))) r = nullptr;
|
if (r && (r->IsUnreachable () || !i2p::data::netdb.PopulateRouterInfoBuffer (r))) r = nullptr;
|
||||||
if (!r) LogPrint (eLogWarning, "SSU2: RelayRequest Alice's router info not found");
|
if (!r) LogPrint (eLogWarning, "SSU2: RelayRequest Alice's router info not found");
|
||||||
|
|
||||||
uint8_t payload[SSU2_MAX_PACKET_SIZE];
|
uint8_t payload[SSU2_MAX_PACKET_SIZE];
|
||||||
size_t payloadSize = r ? CreateRouterInfoBlock (payload, m_MaxPayloadSize - len - 32, r) : 0;
|
size_t payloadSize = r ? CreateRouterInfoBlock (payload, m_MaxPayloadSize - len - 32, r) : 0;
|
||||||
if (!payloadSize && r)
|
if (!payloadSize && r)
|
||||||
@ -2817,13 +2817,13 @@ namespace transport
|
|||||||
uint8_t payload[SSU2_MAX_PACKET_SIZE];
|
uint8_t payload[SSU2_MAX_PACKET_SIZE];
|
||||||
size_t payloadSize = 0;
|
size_t payloadSize = 0;
|
||||||
if (m_SendPacketNum > m_LastDatetimeSentPacketNum + SSU2_SEND_DATETIME_NUM_PACKETS)
|
if (m_SendPacketNum > m_LastDatetimeSentPacketNum + SSU2_SEND_DATETIME_NUM_PACKETS)
|
||||||
{
|
{
|
||||||
payload[0] = eSSU2BlkDateTime;
|
payload[0] = eSSU2BlkDateTime;
|
||||||
htobe16buf (payload + 1, 4);
|
htobe16buf (payload + 1, 4);
|
||||||
htobe32buf (payload + 3, (i2p::util::GetMillisecondsSinceEpoch () + 500)/1000);
|
htobe32buf (payload + 3, (i2p::util::GetMillisecondsSinceEpoch () + 500)/1000);
|
||||||
payloadSize += 7;
|
payloadSize += 7;
|
||||||
m_LastDatetimeSentPacketNum = m_SendPacketNum;
|
m_LastDatetimeSentPacketNum = m_SendPacketNum;
|
||||||
}
|
}
|
||||||
payloadSize += CreateAckBlock (payload + payloadSize, m_MaxPayloadSize - payloadSize);
|
payloadSize += CreateAckBlock (payload + payloadSize, m_MaxPayloadSize - payloadSize);
|
||||||
payloadSize += CreatePaddingBlock (payload + payloadSize, m_MaxPayloadSize - payloadSize);
|
payloadSize += CreatePaddingBlock (payload + payloadSize, m_MaxPayloadSize - payloadSize);
|
||||||
SendData (payload, payloadSize);
|
SendData (payload, payloadSize);
|
||||||
|
@ -200,10 +200,10 @@ namespace transport
|
|||||||
i2p::context.SetStatusV6 (eRouterStatusProxy);
|
i2p::context.SetStatusV6 (eRouterStatusProxy);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint(eLogError, "Transports: Unsupported NTCP2 proxy URL ", ntcp2proxy);
|
LogPrint(eLogCritical, "Transports: Unsupported NTCP2 proxy URL ", ntcp2proxy);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint(eLogError, "Transports: Invalid NTCP2 proxy URL ", ntcp2proxy);
|
LogPrint(eLogCritical, "Transports: Invalid NTCP2 proxy URL ", ntcp2proxy);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_NTCP2Server = new NTCP2Server ();
|
m_NTCP2Server = new NTCP2Server ();
|
||||||
@ -225,10 +225,10 @@ namespace transport
|
|||||||
i2p::context.SetStatusV6 (eRouterStatusProxy);
|
i2p::context.SetStatusV6 (eRouterStatusProxy);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint(eLogError, "Transports: Can't set SSU2 proxy ", ssu2proxy);
|
LogPrint(eLogCritical, "Transports: Can't set SSU2 proxy ", ssu2proxy);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint(eLogError, "Transports: Invalid SSU2 proxy URL ", ssu2proxy);
|
LogPrint(eLogCritical, "Transports: Invalid SSU2 proxy URL ", ssu2proxy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -661,7 +661,7 @@ namespace client
|
|||||||
this, std::placeholders::_1));
|
this, std::placeholders::_1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Addressbook: Can't start subscriptions: missing shared local destination");
|
LogPrint (eLogCritical, "Addressbook: Can't start subscriptions: missing shared local destination");
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddressBook::StopSubscriptions ()
|
void AddressBook::StopSubscriptions ()
|
||||||
|
@ -74,7 +74,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Clients: Exception in SAM bridge: ", e.what());
|
LogPrint(eLogCritical, "Clients: Exception in SAM bridge: ", e.what());
|
||||||
ThrowFatal ("Unable to start SAM bridge at ", samAddr, ":[", samPortTCP, "|", samPortUDP,"]: ", e.what ());
|
ThrowFatal ("Unable to start SAM bridge at ", samAddr, ":[", samPortTCP, "|", samPortUDP,"]: ", e.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -92,7 +92,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Clients: Exception in BOB bridge: ", e.what());
|
LogPrint(eLogCritical, "Clients: Exception in BOB bridge: ", e.what());
|
||||||
ThrowFatal ("Unable to start BOB bridge at ", bobAddr, ":", bobPort, ": ", e.what ());
|
ThrowFatal ("Unable to start BOB bridge at ", bobAddr, ":", bobPort, ": ", e.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -112,7 +112,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Clients: Exception in I2CP: ", e.what());
|
LogPrint(eLogCritical, "Clients: Exception in I2CP: ", e.what());
|
||||||
ThrowFatal ("Unable to start I2CP at ", i2cpAddr, ":", i2cpPort, ": ", e.what ());
|
ThrowFatal ("Unable to start I2CP at ", i2cpAddr, ":", i2cpPort, ": ", e.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -279,7 +279,7 @@ namespace client
|
|||||||
s.read ((char *)buf, len);
|
s.read ((char *)buf, len);
|
||||||
if(!keys.FromBuffer (buf, len))
|
if(!keys.FromBuffer (buf, len))
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Clients: Failed to load keyfile ", filename);
|
LogPrint (eLogCritical, "Clients: Failed to load keyfile ", filename);
|
||||||
success = false;
|
success = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -288,7 +288,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Clients: Can't open file ", fullPath, " Creating new one with signature type ", sigType, " crypto type ", cryptoType);
|
LogPrint (eLogCritical, "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 ();
|
||||||
@ -633,7 +633,7 @@ namespace client
|
|||||||
ins.first->second->Start ();
|
ins.first->second->Start ();
|
||||||
}
|
}
|
||||||
ins.first->second->isUpdated = true;
|
ins.first->second->isUpdated = true;
|
||||||
LogPrint(eLogError, "Clients: I2P Client forward for endpoint ", end, " already exists");
|
LogPrint(eLogCritical, "Clients: I2P Client forward for endpoint ", end, " already exists");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -785,7 +785,7 @@ namespace client
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ins.first->second->isUpdated = true;
|
ins.first->second->isUpdated = true;
|
||||||
LogPrint(eLogError, "Clients: I2P Server Forward for destination/port ", m_AddressBook.ToAddress(localDestination->GetIdentHash()), "/", port, " already exists");
|
LogPrint(eLogCritical, "Clients: I2P Server Forward for destination/port ", m_AddressBook.ToAddress(localDestination->GetIdentHash()), "/", port, " already exists");
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -851,7 +851,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "Clients: Can't read tunnel ", name, " params: ", ex.what ());
|
LogPrint (eLogCritical, "Clients: Can't read tunnel ", name, " params: ", ex.what ());
|
||||||
ThrowFatal ("Unable to start tunnel ", name, ": ", ex.what ());
|
ThrowFatal ("Unable to start tunnel ", name, ": ", ex.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -883,7 +883,7 @@ namespace client
|
|||||||
if (localDestination) localDestination->Acquire ();
|
if (localDestination) localDestination->Acquire ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint(eLogError, "Clients: Failed to load HTTP Proxy key");
|
LogPrint(eLogCritical, "Clients: Failed to load HTTP Proxy key");
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -892,7 +892,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Clients: Exception in HTTP Proxy: ", e.what());
|
LogPrint(eLogCritical, "Clients: Exception in HTTP Proxy: ", e.what());
|
||||||
ThrowFatal ("Unable to start HTTP Proxy at ", httpProxyAddr, ":", httpProxyPort, ": ", e.what ());
|
ThrowFatal ("Unable to start HTTP Proxy at ", httpProxyAddr, ":", httpProxyPort, ": ", e.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -930,7 +930,7 @@ namespace client
|
|||||||
if (localDestination) localDestination->Acquire ();
|
if (localDestination) localDestination->Acquire ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint(eLogError, "Clients: Failed to load SOCKS Proxy key");
|
LogPrint(eLogCritical, "Clients: Failed to load SOCKS Proxy key");
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -940,7 +940,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Clients: Exception in SOCKS Proxy: ", e.what());
|
LogPrint(eLogCritical, "Clients: Exception in SOCKS Proxy: ", e.what());
|
||||||
ThrowFatal ("Unable to start SOCKS Proxy at ", socksProxyAddr, ":", socksProxyPort, ": ", e.what ());
|
ThrowFatal ("Unable to start SOCKS Proxy at ", socksProxyAddr, ":", socksProxyPort, ": ", e.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1283,7 +1283,7 @@ namespace client
|
|||||||
}
|
}
|
||||||
catch (const std::exception& ex)
|
catch (const std::exception& ex)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "SAM: Runtime exception: ", ex.what ());
|
LogPrint (eLogCritical, "SAM: Runtime exception: ", ex.what ());
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user