From c91a9471be7a96311a7e1452a3624aa557bc185d Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 30 Jul 2014 15:31:36 +0200 Subject: [PATCH] Add IsReachable(net) function Allows other parts of the program to query for reachable status of a network. Similar to IsLimited(net). --- src/net.cpp | 10 ++++++++-- src/net.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 62124514c8..27f71e45dc 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -307,12 +307,18 @@ bool IsLocal(const CService& addr) return mapLocalHost.count(addr) > 0; } +/** check whether a given network is one we can probably connect to */ +bool IsReachable(enum Network net) +{ + LOCK(cs_mapLocalHost); + return vfReachable[net] && !vfLimited[net]; +} + /** check whether a given address is in a network we can probably connect to */ bool IsReachable(const CNetAddr& addr) { - LOCK(cs_mapLocalHost); enum Network net = addr.GetNetwork(); - return vfReachable[net] && !vfLimited[net]; + return IsReachable(net); } bool GetMyExternalIP2(const CService& addrConnect, const char* pszGet, const char* pszKeyword, CNetAddr& ipRet) diff --git a/src/net.h b/src/net.h index 2d9325abf9..8656766e26 100644 --- a/src/net.h +++ b/src/net.h @@ -106,6 +106,7 @@ bool AddLocal(const CNetAddr& addr, int nScore = LOCAL_NONE); bool SeenLocal(const CService& addr); bool IsLocal(const CService& addr); bool GetLocal(CService &addr, const CNetAddr *paddrPeer = NULL); +bool IsReachable(enum Network net); bool IsReachable(const CNetAddr &addr); void SetReachable(enum Network net, bool fFlag = true); CAddress GetLocalAddress(const CNetAddr *paddrPeer = NULL);