mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 08:00:38 +03:00
feat: Added SAM UDP port parameter.
This commit is contained in:
parent
5657079355
commit
3ff1adf597
@ -168,9 +168,10 @@ port = 4447
|
|||||||
[sam]
|
[sam]
|
||||||
## Comment or set to 'false' to disable SAM Bridge
|
## Comment or set to 'false' to disable SAM Bridge
|
||||||
enabled = true
|
enabled = true
|
||||||
## Address and port service will listen on
|
## Address and ports service will listen on
|
||||||
# address = 127.0.0.1
|
# address = 127.0.0.1
|
||||||
# port = 7656
|
# port = 7656
|
||||||
|
# portudp = 7655
|
||||||
|
|
||||||
[bob]
|
[bob]
|
||||||
## Uncomment and set to 'true' to enable BOB command channel
|
## Uncomment and set to 'true' to enable BOB command channel
|
||||||
|
@ -149,7 +149,8 @@ namespace config {
|
|||||||
sam.add_options()
|
sam.add_options()
|
||||||
("sam.enabled", value<bool>()->default_value(true), "Enable or disable SAM Application bridge")
|
("sam.enabled", value<bool>()->default_value(true), "Enable or disable SAM Application bridge")
|
||||||
("sam.address", value<std::string>()->default_value("127.0.0.1"), "SAM listen address")
|
("sam.address", value<std::string>()->default_value("127.0.0.1"), "SAM listen address")
|
||||||
("sam.port", value<uint16_t>()->default_value(7656), "SAM listen port")
|
("sam.port", value<uint16_t>()->default_value(7656), "SAM listen TCP port")
|
||||||
|
("sam.portudp", value<uint16_t>()->default_value(0), "SAM listen UDP port")
|
||||||
("sam.singlethread", value<bool>()->default_value(true), "Sessions run in the SAM bridge's thread")
|
("sam.singlethread", value<bool>()->default_value(true), "Sessions run in the SAM bridge's thread")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -63,18 +63,19 @@ namespace client
|
|||||||
if (sam)
|
if (sam)
|
||||||
{
|
{
|
||||||
std::string samAddr; i2p::config::GetOption("sam.address", samAddr);
|
std::string samAddr; i2p::config::GetOption("sam.address", samAddr);
|
||||||
uint16_t samPort; i2p::config::GetOption("sam.port", samPort);
|
uint16_t samPortTCP; i2p::config::GetOption("sam.port", samPortTCP);
|
||||||
|
uint16_t samPortUDP; i2p::config::GetOption("sam.portudp", samPortUDP);
|
||||||
bool singleThread; i2p::config::GetOption("sam.singlethread", singleThread);
|
bool singleThread; i2p::config::GetOption("sam.singlethread", singleThread);
|
||||||
LogPrint(eLogInfo, "Clients: Starting SAM bridge at ", samAddr, ":", samPort);
|
LogPrint(eLogInfo, "Clients: Starting SAM bridge at ", samAddr, ":[", samPortTCP, "|", samPortUDP, "]");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_SamBridge = new SAMBridge (samAddr, samPort, singleThread);
|
m_SamBridge = new SAMBridge (samAddr, samPortTCP, samPortUDP, singleThread);
|
||||||
m_SamBridge->Start ();
|
m_SamBridge->Start ();
|
||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LogPrint(eLogError, "Clients: Exception in SAM bridge: ", e.what());
|
LogPrint(eLogError, "Clients: Exception in SAM bridge: ", e.what());
|
||||||
ThrowFatal ("Unable to start SAM bridge at ", samAddr, ":", samPort, ": ", e.what ());
|
ThrowFatal ("Unable to start SAM bridge at ", samAddr, ":[", samPortTCP, "|", samPortUDP,"]: ", e.what ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1244,10 +1244,10 @@ namespace client
|
|||||||
// TODO: implement datagrams
|
// TODO: implement datagrams
|
||||||
}
|
}
|
||||||
|
|
||||||
SAMBridge::SAMBridge (const std::string& address, int port, bool singleThread):
|
SAMBridge::SAMBridge (const std::string& address, int portTCP, int portUDP, bool singleThread):
|
||||||
RunnableService ("SAM"), m_IsSingleThread (singleThread),
|
RunnableService ("SAM"), m_IsSingleThread (singleThread),
|
||||||
m_Acceptor (GetIOService (), boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(address), port)),
|
m_Acceptor (GetIOService (), boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(address), portTCP)),
|
||||||
m_DatagramEndpoint (boost::asio::ip::address::from_string(address), port-1), m_DatagramSocket (GetIOService (), m_DatagramEndpoint),
|
m_DatagramEndpoint (boost::asio::ip::address::from_string(address), (!portUDP) ? portTCP-1 : portUDP), m_DatagramSocket (GetIOService (), m_DatagramEndpoint),
|
||||||
m_SignatureTypes
|
m_SignatureTypes
|
||||||
{
|
{
|
||||||
{"DSA_SHA1", i2p::data::SIGNING_KEY_TYPE_DSA_SHA1},
|
{"DSA_SHA1", i2p::data::SIGNING_KEY_TYPE_DSA_SHA1},
|
||||||
|
@ -233,7 +233,7 @@ namespace client
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
SAMBridge (const std::string& address, int port, bool singleThread);
|
SAMBridge (const std::string& address, int portTCP, int portUDP, bool singleThread);
|
||||||
~SAMBridge ();
|
~SAMBridge ();
|
||||||
|
|
||||||
void Start ();
|
void Start ();
|
||||||
|
Loading…
Reference in New Issue
Block a user