aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2012-05-13 01:26:14 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2012-05-13 01:26:14 +0200
commit5a3cb32e5942adbfb5af90808013c1dde3c03fcf (patch)
tree91e93cba67ad9a600f18589b2ac25f2b80bc4064
parent139d2f7c294c2489151b0b5df9b5351aaeaffa97 (diff)
Take -port into account when resolving -bind's
-rw-r--r--src/init.cpp8
-rw-r--r--src/net.cpp6
-rw-r--r--src/net.h3
3 files changed, 8 insertions, 9 deletions
diff --git a/src/init.cpp b/src/init.cpp
index fe07ed7275..d26d5d73e4 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -611,14 +611,14 @@ bool AppInit2(int argc, char* argv[])
std::string strError;
if (mapArgs.count("-bind")) {
BOOST_FOREACH(std::string strBind, mapMultiArgs["-bind"]) {
- fBound |= Bind(CService(strBind, GetDefaultPort(), false));
+ fBound |= Bind(CService(strBind, GetListenPort(), false));
}
} else {
struct in_addr inaddr_any;
inaddr_any.s_addr = INADDR_ANY;
- fBound |= Bind(CService(inaddr_any, GetDefaultPort()));
+ fBound |= Bind(CService(inaddr_any, GetListenPort()));
#ifdef USE_IPV6
- fBound |= Bind(CService(in6addr_any, GetDefaultPort()));
+ fBound |= Bind(CService(in6addr_any, GetListenPort()));
#endif
}
if (!fBound)
@@ -628,7 +628,7 @@ bool AppInit2(int argc, char* argv[])
if (mapArgs.count("-externalip"))
{
BOOST_FOREACH(string strAddr, mapMultiArgs["-externalip"])
- AddLocal(CNetAddr(strAddr, fNameLookup), LOCAL_MANUAL);
+ AddLocal(CService(strAddr, GetListenPort(), fNameLookup), LOCAL_MANUAL);
}
if (mapArgs.count("-paytxfee"))
diff --git a/src/net.cpp b/src/net.cpp
index 53b69d2769..951595e680 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -231,11 +231,9 @@ bool AddLocal(const CService& addr, int nScore)
return true;
}
-bool AddLocal(const CNetAddr& addr, int nScore, int port)
+bool AddLocal(const CNetAddr &addr, int nScore)
{
- if (port == -1)
- port = GetListenPort();
- return AddLocal(CService(addr, port), nScore);
+ return AddLocal(CService(addr, GetListenPort()), nScore);
}
/** Make a particular network entirely off-limits (no automatic connects to it) */
diff --git a/src/net.h b/src/net.h
index 8fe8c0047d..3755c765d3 100644
--- a/src/net.h
+++ b/src/net.h
@@ -38,6 +38,7 @@ CNode* FindNode(const CNetAddr& ip);
CNode* FindNode(const CService& ip);
CNode* ConnectNode(CAddress addrConnect, const char *strDest = NULL, int64 nTimeout=0);
void MapPort(bool fMapPort);
+unsigned short GetListenPort();
bool BindListenPort(const CService &bindAddr, std::string& strError=REF(std::string()));
void StartNode(void* parg);
bool StopNode();
@@ -58,7 +59,7 @@ enum
void SetLimited(enum Network net, bool fLimited = true);
bool IsLimited(const CNetAddr& addr);
bool AddLocal(const CService& addr, int nScore = LOCAL_NONE);
-bool AddLocal(const CNetAddr& addr, int nScore = LOCAL_NONE, int port = -1);
+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);