diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp --- a/bitcoin/src/db.cpp d6b10e7037e8aefbf0cc1a8b76985401e6f4670c8d514bbfda2b7002e466df964be9f4bde71b739f31ed636369abd34816a9433338c1ef5c3bb21e801e4f83e0 +++ b/bitcoin/src/db.cpp c5aa0633f19e5ed97f1d80509a84bd8aeeb42ade44eb1b45a1220c429b78c3943a2dfc83da82fa9cdb87dc9563a1278d2033c20b5e2da83252e36407a470df93 @@ -927,7 +927,6 @@ if (strKey == "fMinimizeOnClose") ssValue >> fMinimizeOnClose; if (strKey == "fUseProxy") ssValue >> fUseProxy; if (strKey == "addrProxy") ssValue >> addrProxy; - if (fHaveUPnP && strKey == "fUseUPnP") ssValue >> fUseUPnP; } else if (strType == "minversion") { @@ -950,9 +949,6 @@ printf("fMinimizeOnClose = %d\n", fMinimizeOnClose); printf("fUseProxy = %d\n", fUseProxy); printf("addrProxy = %s\n", addrProxy.ToString().c_str()); - if (fHaveUPnP) - printf("fUseUPnP = %d\n", fUseUPnP); - // Rewrite encrypted wallets of versions 0.4.0 and 0.5.0rc: if (fIsEncrypted && (nFileVersion == 40000 || nFileVersion == 50000)) diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp --- a/bitcoin/src/init.cpp 0a8227f07119a5ac88e550780a2c74482859d71119f19ce45096044703826751850f64ee5f06b57e4a0641f61d9d1a9f4c55946ee2eba25aa192f9a334a7ae8a +++ b/bitcoin/src/init.cpp 9c1e59cf1a30c33950cf5d6ffc202437bff08724cba0d4c07ed7390a6fa17bb5451a96ec2bde1b87b2b137bb0c908c32d985deea918d7b28767ed5db489de649 @@ -188,13 +188,6 @@ " -bantime= \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)\n") + " -maxreceivebuffer=\t " + _("Maximum per-connection receive buffer, *1000 bytes (default: 10000)\n") + " -maxsendbuffer=\t " + _("Maximum per-connection send buffer, *1000 bytes (default: 10000)\n") + -#ifdef USE_UPNP -#if USE_UPNP - " -noupnp \t " + _("Don't attempt to use UPnP to map the listening port\n") + -#else - " -upnp \t " + _("Attempt to use UPnP to map the listening port\n") + -#endif -#endif " -paytxfee= \t " + _("Fee per kB to add to transactions you send\n") + #if !defined(WIN32) " -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") + @@ -460,8 +453,6 @@ SoftSetArg("-nolisten", true); SoftSetArg("-noirc", true); SoftSetArg("-nodnsseed", true); - SoftSetArg("-noupnp", true); - SoftSetArg("-upnp", false); SoftSetArg("-dns", false); } @@ -469,10 +460,6 @@ fNoListen = GetBoolArg("-nolisten"); // Command-line args override in-wallet settings: - if (mapArgs.count("-upnp")) - fUseUPnP = GetBoolArg("-upnp"); - else if (mapArgs.count("-noupnp")) - fUseUPnP = !GetBoolArg("-noupnp"); if (!fNoListen) { diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp --- a/bitcoin/src/main.cpp e37a9eb6a10745a2b0f52aacd915809961d5663185cce5792862579d340d6c98c1633a669a04fcd76835839ee13fda982e9b8ed3f190de24583f1a50167dee3b +++ b/bitcoin/src/main.cpp a7068b5bf1b556401086d790ea0e8e130206ef0e51900a45ecc79e1cbdc3b4bbac5c89cb538be8048825730829389a7be7801b1dcc8b8357f107769661f9cb98 @@ -57,11 +57,6 @@ int nLimitProcessors = 1; int fMinimizeToTray = true; int fMinimizeOnClose = true; -#if USE_UPNP -int fUseUPnP = true; -#else -int fUseUPnP = false; -#endif ////////////////////////////////////////////////////////////////////////////// diff -uNr a/bitcoin/src/main.h b/bitcoin/src/main.h --- a/bitcoin/src/main.h 06542e40fa8b01bbfe6964e46b6ffdf605e42f2daad2a14a64c3d70fd72a3adda5ade3adae4d5016397f2c98249583d9b72462ff66e7ea4704e20083a639094a +++ b/bitcoin/src/main.h 57c05aea806dfb1e168fdcbf670b99cdccbbae072142cb62a946a309e77de15abc7661f24f82291a80ae578951fd009bb1560dd4dd756ad17d84e8089089e45b @@ -40,11 +40,6 @@ static const int COINBASE_MATURITY = 100; // Threshold for nLockTime: below this value it is interpreted as block number, otherwise as UNIX timestamp. static const int LOCKTIME_THRESHOLD = 500000000; // Tue Nov 5 00:53:20 1985 UTC -#ifdef USE_UPNP -static const int fHaveUPnP = true; -#else -static const int fHaveUPnP = false; -#endif @@ -74,7 +69,6 @@ extern int nLimitProcessors; extern int fMinimizeToTray; extern int fMinimizeOnClose; -extern int fUseUPnP; diff -uNr a/bitcoin/src/makefile.linux-mingw b/bitcoin/src/makefile.linux-mingw --- a/bitcoin/src/makefile.linux-mingw a2bbf273fb5d7681b473c79c9e8ca64eaba740e76b4d7276072cdf2d36726d83e92744344a31016cc05104c54df4a9b030b429f1da32a095243555dcc61af2cc +++ b/bitcoin/src/makefile.linux-mingw e8be933efe74bc8f6f30a1d7f90445917b4d20102697f3d31325204f7b2ef74889666c2dc2867886ca5a6523131608563e8a84628a0a598f94dbc0125af01517 @@ -4,8 +4,6 @@ DEPSDIR:=/usr/i586-mingw32msvc -USE_UPNP:=0 - INCLUDEPATHS= \ -I"$(DEPSDIR)/boost_1_47_0" \ -I"$(DEPSDIR)/db-4.8.30.NC/build_unix" \ @@ -53,11 +51,6 @@ wallet.h -ifdef USE_UPNP - LIBPATHS += -L"$(DEPSDIR)/miniupnpc" - LIBS += -l miniupnpc -l iphlpapi - DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP) -endif LIBS += -l mingwthrd -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix --- a/bitcoin/src/makefile.unix e7748ee5e13edd5b95c8ffcd5f4909ff4f7cf98961a7581028adaf25f6ff79ca51d520811d06fca8ced7efa1fec31e5f06e90f672b8c37b3d62acf50ee744c01 +++ b/bitcoin/src/makefile.unix 28104225888cbbe6b4309934f09c086c792a4d57011f80860353a343233e4f6b0d378299cb5ed86df8af3b36aa357ac7e1eaf58a5990c6c1f6f0e4dccf9fdcef @@ -2,8 +2,6 @@ # Distributed under the MIT/X11 software license, see the accompanying # file license.txt or http://www.opensource.org/licenses/mit-license.php. -USE_UPNP:=0 - DEFS=-DNOPCH DEFS += $(addprefix -I,$(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH)) @@ -31,14 +29,6 @@ -l ssl \ -l crypto -ifndef USE_UPNP - override USE_UPNP = - -endif -ifneq (${USE_UPNP}, -) - LIBS += -l miniupnpc - DEFS += -DUSE_UPNP=$(USE_UPNP) -endif - ifneq (${USE_SSL}, 0) DEFS += -DUSE_SSL endif diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp --- a/bitcoin/src/net.cpp b72b573ba77b095e2497e297ba5b02aa68317f67438ee070fee86e129a95b85dc9b5ca98e96441bb2b3b98263dd88630990c913affbabf890641f349d1c6da47 +++ b/bitcoin/src/net.cpp 50f2bf26c02d6edbd0aec5a3e5b3ddceaffab27c16d51a4dd972e42e01871d8e34314f525e9394211801c9ea7d1bd8f8266ae214b30a8e645ce207bf5f3bbd92 @@ -14,12 +14,6 @@ #include #endif -#ifdef USE_UPNP -#include -#include -#include -#include -#endif using namespace std; using namespace boost; @@ -29,9 +23,6 @@ void ThreadMessageHandler2(void* parg); void ThreadSocketHandler2(void* parg); void ThreadOpenConnections2(void* parg); -#ifdef USE_UPNP -void ThreadMapPort2(void* parg); -#endif void ThreadDNSAddressSeed2(void* parg); bool OpenNetworkConnection(const CAddress& addrConnect); @@ -1110,153 +1101,6 @@ -#ifdef USE_UPNP -void ThreadMapPort(void* parg) -{ - IMPLEMENT_RANDOMIZE_STACK(ThreadMapPort(parg)); - try - { - vnThreadsRunning[5]++; - ThreadMapPort2(parg); - vnThreadsRunning[5]--; - } - catch (std::exception& e) { - vnThreadsRunning[5]--; - PrintException(&e, "ThreadMapPort()"); - } catch (...) { - vnThreadsRunning[5]--; - PrintException(NULL, "ThreadMapPort()"); - } - printf("ThreadMapPort exiting\n"); -} - -void ThreadMapPort2(void* parg) -{ - printf("ThreadMapPort started\n"); - - char port[6]; - sprintf(port, "%d", GetListenPort()); - - const char * multicastif = 0; - const char * minissdpdpath = 0; - struct UPNPDev * devlist = 0; - char lanaddr[64]; - -#ifndef UPNPDISCOVER_SUCCESS - /* miniupnpc 1.5 */ - devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0); -#else - /* miniupnpc 1.6 */ - int error = 0; - devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0, 0, &error); -#endif - - struct UPNPUrls urls; - struct IGDdatas data; - int r; - - r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)); - if (r == 1) - { - if (!addrLocalHost.IsRoutable()) - { - char externalIPAddress[40]; - r = UPNP_GetExternalIPAddress(urls.controlURL, data.first.servicetype, externalIPAddress); - if(r != UPNPCOMMAND_SUCCESS) - printf("UPnP: GetExternalIPAddress() returned %d\n", r); - else - { - if(externalIPAddress[0]) - { - printf("UPnP: ExternalIPAddress = %s\n", externalIPAddress); - CAddress addrExternalFromUPnP(externalIPAddress, 0, false, nLocalServices); - if (addrExternalFromUPnP.IsRoutable()) - addrLocalHost = addrExternalFromUPnP; - } - else - printf("UPnP: GetExternalIPAddress failed.\n"); - } - } - - string strDesc = "Bitcoin " + FormatFullVersion(); -#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"); - int i = 1; - loop { - if (fShutdown || !fUseUPnP) - { - r = UPNP_DeletePortMapping(urls.controlURL, data.first.servicetype, port, "TCP", 0); - printf("UPNP_DeletePortMapping() returned : %d\n", r); - freeUPNPDevlist(devlist); devlist = 0; - 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"); - freeUPNPDevlist(devlist); devlist = 0; - if (r != 0) - FreeUPNPUrls(&urls); - loop { - if (fShutdown || !fUseUPnP) - return; - Sleep(2000); - } - } -} - -void MapPort(bool fMapPort) -{ - if (fUseUPnP != fMapPort) - { - fUseUPnP = fMapPort; - WriteSetting("fUseUPnP", fUseUPnP); - } - if (fUseUPnP && vnThreadsRunning[5] < 1) - { - if (!CreateThread(ThreadMapPort, NULL)) - printf("Error: ThreadMapPort(ThreadMapPort) failed\n"); - } -} -#else -void MapPort(bool /* unused fMapPort */) -{ - // Intentionally left blank. -} -#endif @@ -1872,10 +1716,6 @@ if (!CreateThread(ThreadDNSAddressSeed, NULL)) printf("Error: CreateThread(ThreadDNSAddressSeed) failed\n"); - // Map ports with UPnP - if (fHaveUPnP) - MapPort(fUseUPnP); - // Get addresses from IRC and advertise ours if (!CreateThread(ThreadIRCSeed, NULL)) printf("Error: CreateThread(ThreadIRCSeed) failed\n"); @@ -1903,9 +1743,6 @@ nTransactionsUpdated++; int64 nStart = GetTime(); while (vnThreadsRunning[0] > 0 || vnThreadsRunning[1] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0 -#ifdef USE_UPNP - || vnThreadsRunning[5] > 0 -#endif ) { if (GetTime() - nStart > 20) @@ -1917,7 +1754,6 @@ if (vnThreadsRunning[2] > 0) printf("ThreadMessageHandler still running\n"); if (vnThreadsRunning[3] > 0) printf("ThreadBitcoinMiner still running\n"); if (vnThreadsRunning[4] > 0) printf("ThreadRPCServer still running\n"); - if (fHaveUPnP && vnThreadsRunning[5] > 0) printf("ThreadMapPort still running\n"); if (vnThreadsRunning[6] > 0) printf("ThreadDNSAddressSeed still running\n"); while (vnThreadsRunning[2] > 0 || vnThreadsRunning[4] > 0) Sleep(20);