Skip to content

Commit a5266d4

Browse files
committed
net: Add alternative port for onion service
This change allows to distinguish incoming Tor connections from others.
1 parent b3273cf commit a5266d4

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

src/chainparamsbase.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,20 @@ const CBaseChainParams& BaseParams()
3737
return *globalChainBaseParams;
3838
}
3939

40+
/**
41+
* Port numbers for incoming Tor connections (8334, 18334, 38334, 18445) have
42+
* been chosen arbitrarily to keep ranges of used ports tight.
43+
*/
4044
std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const std::string& chain)
4145
{
4246
if (chain == CBaseChainParams::MAIN) {
43-
return MakeUnique<CBaseChainParams>("", 8332);
47+
return MakeUnique<CBaseChainParams>("", 8332, 8334);
4448
} else if (chain == CBaseChainParams::TESTNET) {
45-
return MakeUnique<CBaseChainParams>("testnet3", 18332);
49+
return MakeUnique<CBaseChainParams>("testnet3", 18332, 18334);
4650
} else if (chain == CBaseChainParams::SIGNET) {
47-
return MakeUnique<CBaseChainParams>("signet", 38332);
51+
return MakeUnique<CBaseChainParams>("signet", 38332, 38334);
4852
} else if (chain == CBaseChainParams::REGTEST) {
49-
return MakeUnique<CBaseChainParams>("regtest", 18443);
53+
return MakeUnique<CBaseChainParams>("regtest", 18443, 18445);
5054
}
5155
throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain));
5256
}

src/chainparamsbase.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,15 @@ class CBaseChainParams
2727

2828
const std::string& DataDir() const { return strDataDir; }
2929
int RPCPort() const { return nRPCPort; }
30+
uint16_t OnionServiceTargetPort() const { return m_onion_service_target_port; }
3031

3132
CBaseChainParams() = delete;
32-
CBaseChainParams(const std::string& data_dir, int rpc_port) : nRPCPort(rpc_port), strDataDir(data_dir) {}
33+
CBaseChainParams(const std::string& data_dir, int rpc_port, uint16_t onion_service_target_port)
34+
: nRPCPort(rpc_port), m_onion_service_target_port(onion_service_target_port), strDataDir(data_dir) {}
3335

3436
private:
3537
int nRPCPort;
38+
const uint16_t m_onion_service_target_port;
3639
std::string strDataDir;
3740
};
3841

0 commit comments

Comments
 (0)