From 7804c68401198c282daefea9834cc0a6b848b992 Mon Sep 17 00:00:00 2001 From: Andrius Dagys Date: Fri, 23 Jun 2017 11:42:55 +0100 Subject: [PATCH] Add a config option to toggle auto IP discovery --- docs/source/corda-configuration-file.rst | 4 ++++ node/src/main/kotlin/net/corda/node/internal/Node.kt | 7 +++++-- .../net/corda/node/services/config/NodeConfiguration.kt | 3 ++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/source/corda-configuration-file.rst b/docs/source/corda-configuration-file.rst index daef3ac7df..8e04b7ac06 100644 --- a/docs/source/corda-configuration-file.rst +++ b/docs/source/corda-configuration-file.rst @@ -134,5 +134,9 @@ path to the node's base directory. does not exist, a developer keystore will be used if ``devMode`` is true. The node will exit if ``devMode`` is false and keystore does not exist. +:detectPublicIp: This flag toggles the auto IP detection behaviour, it is enabled by default. On startup the node will + attempt to discover its externally visible IP address first by looking for any public addresses on its network + interfaces, and then by sending an IP discovery request to the network map service. Set to ``false`` to disable. + :certificateSigningService: Certificate Signing Server address. It is used by the certificate signing request utility to obtain SSL certificate. (See :doc:`permissioning` for more information.) diff --git a/node/src/main/kotlin/net/corda/node/internal/Node.kt b/node/src/main/kotlin/net/corda/node/internal/Node.kt index f25ed8e9bc..2ff859c56d 100644 --- a/node/src/main/kotlin/net/corda/node/internal/Node.kt +++ b/node/src/main/kotlin/net/corda/node/internal/Node.kt @@ -169,8 +169,11 @@ open class Node(override val configuration: FullNodeConfiguration, private fun getAdvertisedAddress(): HostAndPort { return with(configuration) { - val publicHost = tryDetectIfNotPublicHost(p2pAddress.host) - val useHost = publicHost ?: p2pAddress.host + val useHost = if (detectPublicIp) { + tryDetectIfNotPublicHost(p2pAddress.host) ?: p2pAddress.host + } else { + p2pAddress.host + } HostAndPort.fromParts(useHost, p2pAddress.port) } } diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt index f591f89c83..c670eca9b8 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt @@ -58,7 +58,8 @@ data class FullNodeConfiguration( val notaryClusterAddresses: List, override val certificateChainCheckPolicies: List, override val devMode: Boolean = false, - val useTestClock: Boolean = false + val useTestClock: Boolean = false, + val detectPublicIp: Boolean = true ) : NodeConfiguration { /** This is not retrieved from the config file but rather from a command line argument. */ @Suppress("DEPRECATION")