changeset 516:6c4585f789a3 draft

Merge branch 'upnp' of https://github.com/TheBlueMatt/bitcoin
author Gavin Andresen <gavinandresen@gmail.com>
date Tue, 12 Apr 2011 14:22:12 -0400
parents b43fbcc70dcb (current diff) f8f1611a0303 (diff)
children 6ebd81dbf18c
files db.cpp init.cpp main.cpp main.h net.cpp ui.cpp
diffstat 30 files changed, 362 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/build-msw.txt
+++ b/build-msw.txt
@@ -3,7 +3,8 @@
 file license.txt or http://www.opensource.org/licenses/mit-license.php.
 This product includes software developed by the OpenSSL Project for use in
 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
-cryptographic software written by Eric Young (eay@cryptsoft.com).
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
 
 
 WINDOWS BUILD NOTES
@@ -25,23 +26,26 @@
 ------------
 Libraries you need to download separately and build:
 
-                default path  download
-wxWidgets       \wxwidgets-2.9.1-mgw   http://www.wxwidgets.org/downloads/
-OpenSSL         \openssl-1.0.0c-mgw    http://www.openssl.org/source/
-Berkeley DB     \db-4.7.25.NC-mgw      http://www.oracle.com/technology/software/products/berkeley-db/index.html
-Boost           \boost-1.43.0-mgw      http://www.boost.org/users/download/
+                default path               download
+wxWidgets       \wxwidgets-2.9.1-mgw       http://www.wxwidgets.org/downloads/
+OpenSSL         \openssl-1.0.0c-mgw        http://www.openssl.org/source/
+Berkeley DB     \db-4.7.25.NC-mgw          http://www.oracle.com/technology/software/products/berkeley-db/index.html
+Boost           \boost-1.43.0-mgw          http://www.boost.org/users/download/
+miniupnpc       \upnpc-exe-win32-20110215  http://miniupnp.tuxfamily.org/files/
 
 Their licenses:
 wxWidgets      LGPL 2.1 with very liberal exceptions
 OpenSSL        Old BSD license with the problematic advertising requirement
 Berkeley DB    New BSD license with additional requirement that linked software must be free open source
 Boost          MIT-like license
+miniupnpc      New (3-clause) BSD license
 
 Versions used in this release:
 wxWidgets    2.9.1
 OpenSSL      1.0.0c
 Berkeley DB  4.7.25.NC
 Boost        1.43.0
+miniupnpc    1.5-20110215
 
 
 Notes
@@ -90,6 +94,15 @@
 building with boost 1.45.0 failed because of boost ticket 4614, 4258
 builds fine with boost 1.43.0
 
+MiniUPnPc
+---------
+Building miniupnpc failed on Windows Server 2003, thus it is expected that a binary copy will be used.
+See http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=642
+UPnP support is optional, make with USE_UPNP= to disable it.
+
+Get upnpc-exe-win32-20110215.zip and unzip it to \upnpc-exe-win32-20110215
+Get miniupnpc-1.5.20110215.tar.gz and copy *.h to \upnpc-exe-win32-20110215\miniupnpc
+
 Bitcoin
 -------
 DOS prompt:
--- a/build-osx.txt
+++ b/build-osx.txt
@@ -3,7 +3,8 @@
 file license.txt or http://www.opensource.org/licenses/mit-license.php.
 This product includes software developed by the OpenSSL Project for use in
 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
-cryptographic software written by Eric Young (eay@cryptsoft.com).
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
 
 
 Mac OS X build instructions
@@ -108,11 +109,51 @@
 
 output should look like this:
 
-ib/libcrypto.a: Mach-O universal binary with 2 architectures
+lib/libcrypto.a: Mach-O universal binary with 2 architectures
 lib/libcrypto.a (for architecture i386):	current ar archive random library
 lib/libcrypto.a (for architecture x86_64):	current ar archive random library
 
 
+miniupnpc
+---------
+
+The process for miniupnpc (optional) is similar to that of OpenSSL.
+
+Download from http://miniupnp.tuxfamily.org/files/.
+
+cd ~/bitcoin/deps
+tar xvf ~/Downloads/miniupnpc-1.5.tar
+mv miniupnpc-1.5 miniupnpc-1.5-x86_64
+tar xvf ~/Downloads/miniupnpc-1.5.tar
+mv miniupnpc-1.5 miniupnpc-1.5-i386
+# build x86_64 (64 bit intel) binary
+cd miniupnpc-1.5-x86_64
+export CFLAGS="-arch x86_64"
+export LDFLAGS="-arch x86_64"
+export PREFIX="/Users/macuser/bitcoin/deps"
+make && make install
+# build i386 (32 bit intel) binary
+cd miniupnpc-1.5-i386
+export CFLAGS="-arch i386"
+export LDFLAGS="-arch i386"
+export PREFIX="/Users/macuser/bitcoin/deps"
+make
+
+# combine the libs
+cd ~/bitcoin/deps
+lipo -arch i386 miniupnpc-1.5-i386/libminiupnpc.a -arch x86_64 miniupnpc-1.5-x86_64/libminiupnpc.a -o lib/libminiupnpc.a -create
+
+Verify your binaries
+
+file lib/libminiupnpc.a
+
+output should look like this:
+
+lib/libminiupnpc.a: Mach-O universal binary with 2 architectures
+lib/libminiupnpc.a (for architecture i386):	current ar archive random library
+lib/libminiupnpc.a (for architecture x86_64):	current ar archive random library
+
+
 Berkeley DB
 -----------
 
--- a/build-unix.txt
+++ b/build-unix.txt
@@ -3,7 +3,8 @@
 file license.txt or http://www.opensource.org/licenses/mit-license.php.
 This product includes software developed by the OpenSSL Project for use in
 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
-cryptographic software written by Eric Young (eay@cryptsoft.com).
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
 
 
 UNIX BUILD NOTES
@@ -36,10 +37,15 @@
 and build it yourself.  See the build instructions and configure parameters
 below.
 
+Requires miniupnpc for UPnP port mapping.  To compile with UPnP support,
+install miniupnpc and compile after setting USE_UPNP.  It can be downloaded
+from http://miniupnp.tuxfamily.org/files/.  
+
 Licenses of statically linked libraries:
 wxWidgets      LGPL 2.1 with very liberal exceptions
 Berkeley DB    New BSD license with additional requirement that linked software must be free open source
 Boost          MIT-like license
+miniupnpc      New (3-clause) BSD license
 
 Versions used in this release:
 GCC          4.3.3
@@ -47,6 +53,7 @@
 wxWidgets    2.9.0
 Berkeley DB  4.7.25.NC
 Boost        1.37
+miniupnpc    1.5
 
 
 Notes
@@ -73,6 +80,15 @@
 ldconfig
 
 
+miniupnpc
+---------
+tar -xzvf miniupnpc-1.5.tar.gz
+cd miniupnpc-1.5
+make
+sudo su
+make install
+
+
 Berkeley DB
 -----------
 You need Berkeley DB 4.7.  Don't use 4.8, the database/log0000* files
--- a/db.cpp
+++ b/db.cpp
@@ -790,7 +790,7 @@
                 if (strKey == "fMinimizeOnClose")   ssValue >> fMinimizeOnClose;
                 if (strKey == "fUseProxy")          ssValue >> fUseProxy;
                 if (strKey == "addrProxy")          ssValue >> addrProxy;
-
+                if (fHaveUPnP && strKey == "fUseUPnP")           ssValue >> fUseUPnP;
             }
         }
         pcursor->close();
@@ -807,6 +807,8 @@
     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);
 
 
     // Upgrade
--- a/init.cpp
+++ b/init.cpp
@@ -159,6 +159,13 @@
             "  -addnode=<ip>    \t  "   + _("Add a node to connect to\n") +
             "  -connect=<ip>    \t\t  " + _("Connect only to the specified node\n") +
             "  -nolisten        \t  "   + _("Don't accept connections from outside\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=<amt>  \t  "   + _("Fee per KB to add to transactions you send\n") +
 #ifdef GUI
             "  -server          \t\t  " + _("Accept command line and JSON-RPC commands\n") +
@@ -456,6 +463,17 @@
             wxMessageBox(_("Warning: -paytxfee is set very high.  This is the transaction fee you will pay if you send a transaction."), "Bitcoin", wxOK | wxICON_EXCLAMATION);
     }
 
+    if (fHaveUPnP)
+    {
+#if USE_UPNP
+    if (GetBoolArg("-noupnp"))
+        fUseUPnP = false;
+#else
+    if (GetBoolArg("-upnp"))
+        fUseUPnP = true;
+#endif
+    }
+
     //
     // Create the main window and start the node
     //
index eb0ca5ddf360c07a8c6e080806eb82546fe7953e..5d5ec90e2363b3229f5698b0d1ba0cf2e3fb8257
GIT binary patch
literal 16242
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
Cn~j11
--- a/locale/de/LC_MESSAGES/bitcoin.po
+++ b/locale/de/LC_MESSAGES/bitcoin.po
@@ -1,9 +1,11 @@
 # DataWraith <DataWraith@web.de>, 2010.
 msgid ""
 msgstr ""
+"Project-Id-Version: \n"
 "POT-Creation-Date: 2010-05-26 22:02-0000\n"
 "PO-Revision-Date: 2010-06-03 13:11+0200\n"
 "Last-Translator: DataWraith\n"
+"Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -707,7 +709,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -718,7 +720,8 @@
 "\n"
 "Dieses Produkt enthält Software, die vom OpenSSL-Projekt zur Nutzung im\n"
 "OpenSSL Toolkit (http://www.openssl.org/) geschrieben wurde sowie\n"
-"kryptographische Software von Eric Young (eay@cryptsoft.com)."
+"kryptographische Software von Eric Young (eay@cryptsoft.com)\n"
+"und UPnP-Software, entwickelt von Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
index 0677b6b5ca68014c23d52f50fea1ac2c14cb602c..234acbd011a6f04047117c236f18a12dc2363e5f
GIT binary patch
literal 16064
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
WT{~Yzu+<t*!y<*3>v-ha$o~SEy0tz4
--- a/locale/es/LC_MESSAGES/bitcoin.po
+++ b/locale/es/LC_MESSAGES/bitcoin.po
@@ -734,7 +734,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -745,7 +745,7 @@
 "\n"
 "Este producto incluye software desarrollado por OpenSSL Project para su uso en el\n"
 "OpenSSL Toolkit (http://www.openssl.org/) y software criptografico escrito por \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard."
 
 #: ../../../uibase.cpp:613
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
index 6e97eff7d121a9f9aff8d2dfd3d04671ff1c94c5..f4d669b4c01b4cda7742b30dc9737d88b8befe43
GIT binary patch
literal 15859
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
VjoULOm@6Yi6@1sUo%_z{zX9<MNnQW|
--- a/locale/fr/LC_MESSAGES/bitcoin.po
+++ b/locale/fr/LC_MESSAGES/bitcoin.po
@@ -739,7 +739,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -750,7 +750,7 @@
 "\n"
 "Ce produit comprend des composants logiciels développés pour le Projet OpenSSL \n"
 "OpenSSL Toolkit (http://www.openssl.org/) ainsi que des composants cryptographiques \n"
-"écrits par Eric Young (eay@cryptsoft.com)."
+"écrits par Eric Young (eay@cryptsoft.com) et des logiciels UPnP écrits par Thomas Bernard.."
 
 #: ../../../uibase.cpp:613
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
index 706386487fe981fe2368ac1ac102cea35d211171..93470180374ed067441d74f63f21ccd783d23bc4
GIT binary patch
literal 15725
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
Je<@tT{125atzrNG
--- a/locale/it/LC_MESSAGES/bitcoin.po
+++ b/locale/it/LC_MESSAGES/bitcoin.po
@@ -705,7 +705,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -714,9 +714,9 @@
 "Distribuito sotto la licenza software MIT/X11, guarda il file license.txt\n"
 "incluso oppure su http://www.opensource.org/licenses/mit-license.php.\n"
 "\n"
-"Questo prodoto include software sviluppato dal progetto OpenSSL per\n"
+"Questo prodotto include software sviluppato dal progetto OpenSSL per\n"
 "l'uso del (http://www.openssl.org/) e il software criptografico scritto\n"
-"da Eric Young (eay@cryptsoft.com)."
+"da Eric Young (eay@cryptsoft.com) e UPnP software scritto da Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
index 8b1e6a50f6863172e58e2d2eae44b7c07b25b11c..11a547e411c66c81576f0e073cc4fbe78827d8b4
GIT binary patch
literal 15598
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
C;ALF^
--- a/locale/nl/LC_MESSAGES/bitcoin.po
+++ b/locale/nl/LC_MESSAGES/bitcoin.po
@@ -706,7 +706,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2011 Bitcoin-ontwikkelaars\n"
 "\n"
@@ -717,7 +717,8 @@
 "\n"
 "Dit product bevat software ontwikkeld door het OpenSSL project for gebruik \n"
 "in de OpenSSL Toolkit (http://www.openssl.org/), en cryptografische \n"
-"software geschreven door Eric Young (eay@cryptsoft.com)."
+"software geschreven door Eric Young (eay@cryptsoft.com)) en UPnP software geschreven\n"
+"door Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
index 7c662c15406aa356736341ff740a6f0098a6390b..20e100f578d4effd13e14dfd43061c9b24b2be25
GIT binary patch
literal 15767
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
--- a/locale/pt/LC_MESSAGES/bitcoin.po
+++ b/locale/pt/LC_MESSAGES/bitcoin.po
@@ -705,7 +705,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -716,7 +716,8 @@
 "http://www.opensource.org/licenses/mit-license.php.\n"
 "Este producto inclui software desenvolvido pelo projecto OpenSSL, para \n"
 "ser utilizado no OpenSSL Toolkit (http://www.openssl.org) e software de \n"
-"criptografia desenvolvido por Eric Young (eay@cryptsoft.com)."
+"criptografia desenvolvido por Eric Young (eay@cryptsoft.com)\n"
+"e UPnP software escrito por Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
index 4af3e0dfa08f0155df59f1d7ee736d7d3fade128..b44c10ad47263ed7130b28abb929ee457524bafe
GIT binary patch
literal 21763
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
HfyRFUq&rpX
--- a/locale/ru/LC_MESSAGES/bitcoin.po
+++ b/locale/ru/LC_MESSAGES/bitcoin.po
@@ -769,7 +769,7 @@
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Все права защищены (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -780,7 +780,7 @@
 "\n"
 "Этот продукт включает ПО, разработанное проектом OpenSSL для использования в\n"
 "OpenSSL Toolkit (http://www.openssl.org/), и криптографическое ПО, написанное\n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) и UPnP программного обеспечения, написанного Thomas Bernard."
 
 #: ../../../uibase.cpp:613
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
--- a/main.cpp
+++ b/main.cpp
@@ -65,6 +65,14 @@
 int nLimitProcessors = 1;
 int fMinimizeToTray = true;
 int fMinimizeOnClose = true;
+#ifdef USE_UPNP
+#if USE_UPNP
+int fUseUPnP = true;
+#else
+int fUseUPnP = false;
+#endif
+#endif
+
 
 
 
--- a/main.h
+++ b/main.h
@@ -22,6 +22,11 @@
 static const int64 MAX_MONEY = 21000000 * COIN;
 inline bool MoneyRange(int64 nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); }
 static const int COINBASE_MATURITY = 100;
+#ifdef USE_UPNP
+static const int fHaveUPnP = true;
+#else
+static const int fHaveUPnP = false;
+#endif
 
 
 
@@ -55,6 +60,7 @@
 extern int nLimitProcessors;
 extern int fMinimizeToTray;
 extern int fMinimizeOnClose;
+extern int fUseUPnP;
 
 
 
--- a/makefile.mingw
+++ b/makefile.mingw
@@ -2,6 +2,7 @@
 # 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
 
 INCLUDEPATHS= \
  -I"C:\boost-1.43.0-mgw" \
@@ -25,8 +26,7 @@
  -l boost_program_options-mgw45-mt-s-1_43 \
  -l boost_thread-mgw45-mt-s-1_43 \
  -l db_cxx \
- -l eay32 \
- -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
+ -l eay32
 
 DEFS=-DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH
 DEBUGFLAGS=-g -D__WXDEBUG__
@@ -34,6 +34,15 @@
 HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
     script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
 
+ifdef USE_UPNP
+ INCLUDEPATHS += -I"C:\upnpc-exe-win32-20110215"
+ LIBPATHS += -L"C:\upnpc-exe-win32-20110215"
+ LIBS += -l miniupnpc -l iphlpapi
+ DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
+endif
+
+LIBS += -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
+
 OBJS= \
     obj/util.o \
     obj/script.o \
--- a/makefile.osx
+++ b/makefile.osx
@@ -16,6 +16,8 @@
 
 WXLIBS=$(shell $(DEPSDIR)/bin/wx-config --libs --static)
 
+USE_UPNP:=0
+
 LIBS= -dead_strip \
  $(DEPSDIR)/lib/libdb_cxx-4.8.a \
  $(DEPSDIR)/lib/libboost_system.a \
@@ -44,6 +46,11 @@
     obj/init.o \
     cryptopp/obj/sha.o \
     cryptopp/obj/cpu.o
+
+ifdef USE_UPNP
+	LIBS += $(DEPSDIR)/lib/libminiupnpc.a
+	DEFS += -DUSE_UPNP=$(USE_UPNP)
+endif
 	
 
 all: bitcoin
--- a/makefile.unix
+++ b/makefile.unix
@@ -8,6 +8,10 @@
 
 WXLIBS=$(shell wx-config --libs)
 
+USE_UPNP:=0
+
+DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL
+
 # for boost 1.37, add -mt to the boost libraries
 LIBS= \
  -Wl,-Bstatic \
@@ -17,13 +21,20 @@
    -l boost_thread \
    -l db_cxx \
    -l ssl \
-   -l crypto \
+   -l crypto
+
+ifdef USE_UPNP
+	LIBS += -l miniupnpc
+	DEFS += -DUSE_UPNP=$(USE_UPNP)
+endif
+
+LIBS+= \
  -Wl,-Bdynamic \
    -l gthread-2.0 \
    -l z \
    -l dl
 
-DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL
+
 DEBUGFLAGS=-g -D__WXDEBUG__
 CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS)
 HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
--- a/net.cpp
+++ b/net.cpp
@@ -4,11 +4,21 @@
 
 #include "headers.h"
 
+#ifdef USE_UPNP
+#include <miniupnpc/miniwget.h>
+#include <miniupnpc/miniupnpc.h>
+#include <miniupnpc/upnpcommands.h>
+#include <miniupnpc/upnperrors.h>
+#endif
+
 static const int MAX_OUTBOUND_CONNECTIONS = 8;
 
 void ThreadMessageHandler2(void* parg);
 void ThreadSocketHandler2(void* parg);
 void ThreadOpenConnections2(void* parg);
+#ifdef USE_UPNP
+void ThreadMapPort2(void* parg);
+#endif
 bool OpenNetworkConnection(const CAddress& addrConnect);
 
 
@@ -857,6 +867,109 @@
 
 
 
+#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", ntohs(GetDefaultPort()));
+
+    const char * rootdescurl = 0;
+    const char * multicastif = 0;
+    const char * minissdpdpath = 0;
+    struct UPNPDev * devlist = 0;
+    char lanaddr[64];
+
+    devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0);
+
+    struct UPNPUrls urls;
+    struct IGDdatas data;
+    int r;
+
+    if (UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)) == 1)
+    {
+        char intClient[16];
+        char intPort[6];
+
+#ifndef __WXMSW__
+        r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
+	                        port, port, lanaddr, 0, "TCP", 0);
+#else
+        r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
+	                        port, port, lanaddr, 0, "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");
+        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;
+            }
+            Sleep(2000);
+        }
+    } else {
+        printf("No valid UPnP IGDs found\n");
+        freeUPNPDevlist(devlist); devlist = 0;
+        FreeUPNPUrls(&urls);
+        loop {
+            if (fShutdown)
+                return;
+            Sleep(2000);
+        }
+    }
+}
+
+void MapPort(bool fMapPort)
+{
+    if (fUseUPnP != fMapPort)
+    {
+        fUseUPnP = fMapPort;
+        CWalletDB().WriteSetting("fUseUPnP", fUseUPnP);
+    }
+    if (fUseUPnP && vnThreadsRunning[5] < 1)
+    {
+        if (!CreateThread(ThreadMapPort, NULL))
+            printf("Error: ThreadMapPort(ThreadMapPort) failed\n");
+    }
+}
+#endif
+
+
+
+
+
+
+
+
+
+
 static const char *strDNSSeed[] = {
     "bitseed.xf2.org",
     "bitseed.bitcoin.org.uk",
@@ -1410,6 +1523,10 @@
     // Start threads
     //
 
+    // 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");
@@ -1435,7 +1552,11 @@
     fShutdown = true;
     nTransactionsUpdated++;
     int64 nStart = GetTime();
-    while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0)
+    while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
+#ifdef USE_UPNP
+        || vnThreadsRunning[5] > 0
+#endif
+    )
     {
         if (GetTime() - nStart > 20)
             break;
@@ -1446,6 +1567,7 @@
     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");
     while (vnThreadsRunning[2] > 0 || vnThreadsRunning[4] > 0)
         Sleep(20);
     Sleep(50);
--- a/net.h
+++ b/net.h
@@ -30,6 +30,7 @@
 CNode* ConnectNode(CAddress addrConnect, int64 nTimeout=0);
 void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1);
 bool AnySubscribed(unsigned int nChannel);
+void MapPort(bool fMapPort);
 void DNSAddressSeed();
 bool BindListenPort(string& strError=REF(string()));
 void StartNode(void* parg);
--- a/ui.cpp
+++ b/ui.cpp
@@ -1665,6 +1665,10 @@
     m_checkBoxStartOnSystemStartup->SetValue(fTmpStartOnSystemStartup = GetStartOnSystemStartup());
     m_checkBoxMinimizeToTray->SetValue(fMinimizeToTray);
     m_checkBoxMinimizeOnClose->SetValue(fMinimizeOnClose);
+    if (fHaveUPnP)
+        m_checkBoxUseUPnP->SetValue(fUseUPnP);
+    else
+        m_checkBoxUseUPnP->Enable(false);
     m_checkBoxUseProxy->SetValue(fUseProxy);
     m_textCtrlProxyIP->Enable(fUseProxy);
     m_textCtrlProxyPort->Enable(fUseProxy);
@@ -1784,6 +1788,13 @@
         walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
     }
 
+    if (fHaveUPnP && fUseUPnP != m_checkBoxUseUPnP->GetValue())
+    {
+        fUseUPnP = m_checkBoxUseUPnP->GetValue();
+        walletdb.WriteSetting("fUseUPnP", fUseUPnP);
+        MapPort(fUseUPnP);
+    }
+
     fUseProxy = m_checkBoxUseProxy->GetValue();
     walletdb.WriteSetting("fUseProxy", fUseProxy);
 
--- a/uibase.cpp
+++ b/uibase.cpp
@@ -371,6 +371,9 @@
 	m_checkBoxMinimizeToTray = new wxCheckBox( m_panelMain, wxID_ANY, _("&Minimize to the tray instead of the taskbar"), wxDefaultPosition, wxDefaultSize, 0 );
 	bSizer69->Add( m_checkBoxMinimizeToTray, 0, wxALL, 5 );
 	
+	m_checkBoxUseUPnP = new wxCheckBox( m_panelMain, wxID_ANY, _("Map port using &UPnP"), wxDefaultPosition, wxDefaultSize, 0 );
+	bSizer69->Add( m_checkBoxUseUPnP, 0, wxALL, 5 );
+	
 	m_checkBoxMinimizeOnClose = new wxCheckBox( m_panelMain, wxID_ANY, _("M&inimize to the tray on close"), wxDefaultPosition, wxDefaultSize, 0 );
 	bSizer69->Add( m_checkBoxMinimizeOnClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 	
@@ -544,7 +547,7 @@
 	
 	bSizer631->Add( 0, 4, 0, wxEXPAND, 5 );
 	
-	m_staticTextMain = new wxStaticText( this, wxID_ANY, _("Copyright (c) 2009-2011 Bitcoin Developers\n\nThis is experimental software.\n\nDistributed under the MIT/X11 software license, see the accompanying file \nlicense.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the \nOpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \nEric Young (eay@cryptsoft.com)."), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticTextMain = new wxStaticText( this, wxID_ANY, _("Copyright (c) 2009-2011 Bitcoin Developers\n\nThis is experimental software.\n\nDistributed under the MIT/X11 software license, see the accompanying file \nlicense.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the \nOpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \nEric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticTextMain->Wrap( -1 );
 	bSizer631->Add( m_staticTextMain, 0, wxALL, 5 );
 	
--- a/uibase.h
+++ b/uibase.h
@@ -170,6 +170,7 @@
 		wxStaticText* m_staticText35;
 		wxCheckBox* m_checkBoxStartOnSystemStartup;
 		wxCheckBox* m_checkBoxMinimizeToTray;
+		wxCheckBox* m_checkBoxUseUPnP;
 		wxCheckBox* m_checkBoxMinimizeOnClose;
 		wxCheckBox* m_checkBoxUseProxy;
 		
--- a/uiproject.fbp
+++ b/uiproject.fbp
@@ -2124,6 +2124,62 @@
                                                 </object>
                                                 <object class="sizeritem" expanded="1">
                                                     <property name="border">5</property>
+                                                    <property name="flag">wxALL</property>
+                                                    <property name="proportion">0</property>
+                                                    <object class="wxCheckBox" expanded="1">
+                                                        <property name="bg"></property>
+                                                        <property name="checked">0</property>
+                                                        <property name="context_help"></property>
+                                                        <property name="enabled">1</property>
+                                                        <property name="fg"></property>
+                                                        <property name="font"></property>
+                                                        <property name="hidden">0</property>
+                                                        <property name="id">wxID_ANY</property>
+                                                        <property name="label">Map port using &amp;UPnP</property>
+                                                        <property name="maximum_size"></property>
+                                                        <property name="minimum_size"></property>
+                                                        <property name="name">m_checkBoxUseUPnP</property>
+                                                        <property name="permission">protected</property>
+                                                        <property name="pos"></property>
+                                                        <property name="size"></property>
+                                                        <property name="style"></property>
+                                                        <property name="subclass"></property>
+                                                        <property name="tooltip"></property>
+                                                        <property name="validator_data_type"></property>
+                                                        <property name="validator_style">wxFILTER_NONE</property>
+                                                        <property name="validator_type">wxDefaultValidator</property>
+                                                        <property name="validator_variable"></property>
+                                                        <property name="window_extra_style"></property>
+                                                        <property name="window_name"></property>
+                                                        <property name="window_style"></property>
+                                                        <event name="OnChar"></event>
+                                                        <event name="OnCheckBox"></event>
+                                                        <event name="OnEnterWindow"></event>
+                                                        <event name="OnEraseBackground"></event>
+                                                        <event name="OnKeyDown"></event>
+                                                        <event name="OnKeyUp"></event>
+                                                        <event name="OnKillFocus"></event>
+                                                        <event name="OnLeaveWindow"></event>
+                                                        <event name="OnLeftDClick"></event>
+                                                        <event name="OnLeftDown"></event>
+                                                        <event name="OnLeftUp"></event>
+                                                        <event name="OnMiddleDClick"></event>
+                                                        <event name="OnMiddleDown"></event>
+                                                        <event name="OnMiddleUp"></event>
+                                                        <event name="OnMotion"></event>
+                                                        <event name="OnMouseEvents"></event>
+                                                        <event name="OnMouseWheel"></event>
+                                                        <event name="OnPaint"></event>
+                                                        <event name="OnRightDClick"></event>
+                                                        <event name="OnRightDown"></event>
+                                                        <event name="OnRightUp"></event>
+                                                        <event name="OnSetFocus"></event>
+                                                        <event name="OnSize"></event>
+                                                        <event name="OnUpdateUI"></event>
+                                                    </object>
+                                                </object>
+                                                <object class="sizeritem" expanded="1">
+                                                    <property name="border">5</property>
                                                     <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
                                                     <property name="proportion">0</property>
                                                     <object class="wxCheckBox" expanded="1">
@@ -3345,7 +3401,7 @@
                                                 <property name="font"></property>
                                                 <property name="hidden">0</property>
                                                 <property name="id">wxID_ANY</property>
-                                                <property name="label">Copyright (c) 2009-2011 Bitcoin Developers&#x0A;&#x0A;This is experimental software.&#x0A;&#x0A;Distributed under the MIT/X11 software license, see the accompanying file &#x0A;license.txt or http://www.opensource.org/licenses/mit-license.php.&#x0A;&#x0A;This product includes software developed by the OpenSSL Project for use in the &#x0A;OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by &#x0A;Eric Young (eay@cryptsoft.com).</property>
+                                                <property name="label">Copyright (c) 2009-2011 Bitcoin Developers&#x0A;&#x0A;This is experimental software.&#x0A;&#x0A;Distributed under the MIT/X11 software license, see the accompanying file &#x0A;license.txt or http://www.opensource.org/licenses/mit-license.php.&#x0A;&#x0A;This product includes software developed by the OpenSSL Project for use in the &#x0A;OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by &#x0A;Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</property>
                                                 <property name="maximum_size"></property>
                                                 <property name="minimum_size"></property>
                                                 <property name="name">m_staticTextMain</property>