aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2012-02-02 20:17:41 -0500
committerLuke Dashjr <luke-jr+git@utopios.org>2012-02-02 20:17:41 -0500
commit882e00e2159ce5e12170c7c1811236a039d8abfa (patch)
tree03e522bdc55f5a11e43c3c2cb2891895ecb704a9 /src/net.cpp
parentc13d50d8617678c8696b1f33549ed9cc3a0b554e (diff)
parentc11e2b8679e13f739a58faf2a3439d4aaed24364 (diff)
downloadbitcoin-882e00e2159ce5e12170c7c1811236a039d8abfa.tar.xz
Merge branch '0.4.x' into 0.5.0.x
Conflicts: src/main.cpp
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 10f7c62c15..7b92e874ac 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1156,11 +1156,11 @@ void ThreadMapPort2(void* parg)
{
string strDesc = "Bitcoin " + FormatFullVersion();
#ifndef UPNPDISCOVER_SUCCESS
- /* miniupnpc 1.5 */
+ /* miniupnpc 1.5 */
r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
port, port, lanaddr, strDesc.c_str(), "TCP", 0);
#else
- /* miniupnpc 1.6 */
+ /* miniupnpc 1.6 */
r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
port, port, lanaddr, strDesc.c_str(), "TCP", 0, "0");
#endif
@@ -1170,6 +1170,7 @@ void ThreadMapPort2(void* parg)
port, port, lanaddr, r, strupnperror(r));
else
printf("UPnP Port Mapping successful.\n");
+ int i = 1;
loop {
if (fShutdown || !fUseUPnP)
{
@@ -1179,7 +1180,26 @@ void ThreadMapPort2(void* parg)
FreeUPNPUrls(&urls);
return;
}
+ if (i % 600 == 0) // Refresh every 20 minutes
+ {
+#ifndef UPNPDISCOVER_SUCCESS
+ /* miniupnpc 1.5 */
+ r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
+ port, port, lanaddr, strDesc.c_str(), "TCP", 0);
+#else
+ /* miniupnpc 1.6 */
+ r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
+ port, port, lanaddr, strDesc.c_str(), "TCP", 0, "0");
+#endif
+
+ if(r!=UPNPCOMMAND_SUCCESS)
+ printf("AddPortMapping(%s, %s, %s) failed with code %d (%s)\n",
+ port, port, lanaddr, r, strupnperror(r));
+ else
+ printf("UPnP Port Mapping successful.\n");;
+ }
Sleep(2000);
+ i++;
}
} else {
printf("No valid UPnP IGDs found\n");