Skip to content

Commit

Permalink
Merge #1994
Browse files Browse the repository at this point in the history
1994: ipaddr fix r=coot a=coot

Fixes #1991 

Co-authored-by: Marcin Szamotulski <profunctor@pm.me>
  • Loading branch information
iohk-bors[bot] and coot committed Oct 20, 2020
2 parents 8aaf96f + 22ae59f commit f952368
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 23 deletions.
16 changes: 3 additions & 13 deletions cardano-node/src/Cardano/Node/Configuration/Socket.hs
Expand Up @@ -14,11 +14,10 @@ where
import Cardano.Prelude hiding (local)
import Prelude (String)
import qualified Prelude
import qualified Data.List as List
import Data.Functor (($>))

import Control.Monad.Trans.Except.Extra (handleIOExceptT)
import Network.Socket (Family (AF_INET), AddrInfo (..),
import Network.Socket (Family (AF_INET, AF_INET6), AddrInfo (..),
AddrInfoFlag (..), Socket, SocketType (..))
import qualified Network.Socket as Socket

Expand Down Expand Up @@ -167,17 +166,8 @@ gatherConfiguredSockets NodeConfiguration { ncNodeIPv4Addr,
(Nothing, Nothing) -> do

info <- nodeAddressInfo Nothing ncNodePortNumber
let (ipv4Addrs, ipv6Addrs) = List.span ((== AF_INET) . addrFamily)
info

ipv4' = case ipv4Addrs of
[] -> Nothing
(addr : _) -> Just (SocketInfo addr)

ipv6' = case ipv6Addrs of
[] -> Nothing
(addr : _) -> Just (SocketInfo addr)

let ipv4' = SocketInfo <$> find ((== AF_INET) . addrFamily) info
ipv6' = SocketInfo <$> find ((== AF_INET6) . addrFamily) info
when (isNothing $ ipv4' <|> ipv6') $
throwError NoPublicSocketGiven

Expand Down
25 changes: 15 additions & 10 deletions cardano-node/src/Cardano/Node/Run.hs
Expand Up @@ -30,7 +30,7 @@ import Data.Functor.Contravariant (contramap)
import Data.Maybe (catMaybes)
import Data.Proxy (Proxy (..))
import Data.Semigroup ((<>))
import Data.Text (Text, breakOn, pack, take, unlines)
import Data.Text (Text, breakOn, pack, take)
import qualified Data.Text as Text
import Data.Version (showVersion)
import GHC.Clock (getMonotonicTimeNSec)
Expand Down Expand Up @@ -260,15 +260,20 @@ handleSimpleNode p trace nodeTracers nc onKernel = do

ipv4 <- traverse getSocketOrSocketInfoAddr publicIPv4SocketOrAddr
ipv6 <- traverse getSocketOrSocketInfoAddr publicIPv6SocketOrAddr
traceWith tracer $ unlines
[ ""
, "**************************************"
, "Addresses: " <> show (catMaybes [ ipv4, ipv6 ])
, "DiffusionMode: " <> show (ncDiffusionMode nc)
, "DNS producers: " <> show dnsProducers
, "IP producers: " <> show ipProducers
, "**************************************"
]

meta <- mkLOMeta Notice Public
traceNamedObject
(appendName "addresses" trace)
(meta, LogMessage . Text.pack . show $ catMaybes [ipv4, ipv6])
traceNamedObject
(appendName "diffusion-mode" trace)
(meta, LogMessage . Text.pack . show . ncDiffusionMode $ nc)
traceNamedObject
(appendName "dns-producers" trace)
(meta, LogMessage . Text.pack . show $ dnsProducers)
traceNamedObject
(appendName "ip-producers" trace)
(meta, LogMessage . Text.pack . show $ ipProducers)

withShutdownHandling nc trace $ \sfds ->
Node.run
Expand Down

0 comments on commit f952368

Please sign in to comment.