changeset 600:78deb15fe525 draft

Merge pull request #221 from gavinandresen/portoption -port option to listen on arbitrary port
author Jeff Garzik <jgarzik@exmulti.com>
date Mon, 16 May 2011 22:29:28 -0700
parents ae65d3563245 (current diff) edec96ae8946 (diff)
children 125c365671ee
files src/net.cpp
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -56,6 +56,10 @@
 
 
 
+unsigned short GetListenPort()
+{
+    return (unsigned short)(GetArg("-port", GetDefaultPort()));
+}
 
 void CNode::PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd)
 {
@@ -965,7 +969,7 @@
     printf("ThreadMapPort started\n");
 
     char port[6];
-    sprintf(port, "%d", GetDefaultPort());
+    sprintf(port, "%d", GetListenPort());
 
     const char * rootdescurl = 0;
     const char * multicastif = 0;
@@ -1435,14 +1439,11 @@
 
 
 
-
-
-
 bool BindListenPort(string& strError)
 {
     strError = "";
     int nOne = 1;
-    addrLocalHost.port = htons(GetDefaultPort());
+    addrLocalHost.port = htons(GetListenPort());
 
 #ifdef __WXMSW__
     // Initialize Windows Sockets
@@ -1494,7 +1495,7 @@
     memset(&sockaddr, 0, sizeof(sockaddr));
     sockaddr.sin_family = AF_INET;
     sockaddr.sin_addr.s_addr = INADDR_ANY; // bind to all IPs on this computer
-    sockaddr.sin_port = htons(GetDefaultPort());
+    sockaddr.sin_port = htons(GetListenPort());
     if (::bind(hListenSocket, (struct sockaddr*)&sockaddr, sizeof(sockaddr)) == SOCKET_ERROR)
     {
         int nErr = WSAGetLastError();
@@ -1556,7 +1557,7 @@
                     printf("ipv4 %s: %s\n", ifa->ifa_name, pszIP);
 
                 // Take the first IP that isn't loopback 127.x.x.x
-                CAddress addr(*(unsigned int*)&s4->sin_addr, 0, nLocalServices);
+                CAddress addr(*(unsigned int*)&s4->sin_addr, GetListenPort(), nLocalServices);
                 if (addr.IsValid() && addr.GetByte(3) != 127)
                 {
                     addrLocalHost = addr;