[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r14404: Archive miniupnp patches (now in a Vidalia branch) (in torbrowser/trunk/src: archived-patches current-patches)



Author: sjm217
Date: 2008-04-21 15:34:36 -0400 (Mon, 21 Apr 2008)
New Revision: 14404

Added:
   torbrowser/trunk/src/archived-patches/vidalia-miniupnp.patch
Removed:
   torbrowser/trunk/src/current-patches/vidalia-miniupnp.patch
Log:
Archive miniupnp patches (now in a Vidalia branch)

Copied: torbrowser/trunk/src/archived-patches/vidalia-miniupnp.patch (from rev 14340, torbrowser/trunk/src/current-patches/vidalia-miniupnp.patch)
===================================================================
--- torbrowser/trunk/src/archived-patches/vidalia-miniupnp.patch	                        (rev 0)
+++ torbrowser/trunk/src/archived-patches/vidalia-miniupnp.patch	2008-04-21 19:34:36 UTC (rev 14404)
@@ -0,0 +1,185 @@
+Index: src/vidalia/config/serversettings.cpp
+===================================================================
+--- src/vidalia/config/serversettings.cpp	(revision 2498)
++++ src/vidalia/config/serversettings.cpp	(working copy)
+@@ -137,7 +137,7 @@
+   if (isServerEnabled()) {
+     /* Configure UPnP device to forward DirPort and OrPort */
+     /* TODO: does isServerEnabled() return true when a server is just set up? */
+-    configurePortForwarding();
++    configurePortForwarding(true);
+     rc = torControl()->setConf(confValues(), errmsg);
+   } else { 
+     QStringList resetKeys;
+@@ -156,6 +156,7 @@
+                 << SETTING_BANDWIDTH_BURST;
+     }
+     rc = torControl()->resetConf(resetKeys, errmsg);
++    configurePortForwarding(false);
+   }
+   return rc;
+ }
+@@ -165,11 +166,16 @@
+ /* TODO: init_upnp() will block for up to 2 seconds. We should fire off a thread */
+ /** Configure UPnP device to forward DirPort and ORPort */
+ void
+-ServerSettings::configurePortForwarding()
++ServerSettings::configurePortForwarding(boolean enable)
+ {
+ #ifdef USE_MINIUPNPC
+   UPNPControl *pUNPControl = UPNPControl::Instance();
+-  pUNPControl->forwardPort(getORPort());
++
++  if (enable) {
++    pUNPControl->forwardPort(getORPort());
++  } else {
++    pUNPControl->disableForwarding();
++  }
+ #endif
+ }
+ 
+Index: src/vidalia/config/serversettings.h
+===================================================================
+--- src/vidalia/config/serversettings.h	(revision 2498)
++++ src/vidalia/config/serversettings.h	(working copy)
+@@ -93,7 +93,7 @@
+   QHash<QString,QString> confValues();
+ 
+   /** Configure UPnP device to forward DirPort and ORPort */
+-  void configurePortForwarding();
++  void configurePortForwarding(boolean enable);
+ };
+ 
+ #endif
+Index: src/vidalia/config/upnpcontrol.cpp
+===================================================================
+--- src/vidalia/config/upnpcontrol.cpp	(revision 2498)
++++ src/vidalia/config/upnpcontrol.cpp	(working copy)
+@@ -27,6 +27,7 @@
+ UPNPControl::UPNPControl()
+ {
+   init_upnp();
++  forwardedPort = 0;
+ }
+ 
+ int
+@@ -68,9 +69,42 @@
+   
+   // Output the mapping
+   printf("(external):%s -> %s:%s\n", sPort, intClient, intPort);
++  fflush(stdout);
++
++  // Save the mapping
++  forwardedPort = port;
++
+   return 0;
+ }
+ 
++int
++UPNPControl::disableForwarding()
++{
++  char sPort[6];
++
++  if (0 == forwardedPort)
++    return 0;
++
++  // Convert the port number to a string
++  snprintf(sPort, sizeof(sPort), "%d", forwardedPort);
++
++  int retval = UPNP_DeletePortMapping(urls.controlURL, data.servicetype, sPort, "TCP");
++  if(UPNPCOMMAND_SUCCESS != retval) {
++    printf("DeletePortMapping() failed with code %d\n", retval);
++    return 1;
++  }
++
++  // Output the cancelled mapping
++  printf("(external):%s -> <>\n", sPort);
++  fflush(stdout);
++
++  // Save the mapping
++  forwardedPort = 0;
++
++  return 0;
++}
++
++
+ /** Based on http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch */
+ void
+ UPNPControl::init_upnp()
+@@ -78,52 +112,13 @@
+   struct UPNPDev * devlist;
+   int retval;
+ 
+-  printf("TB : init_upnp()\n");
+-
+   memset(&urls, 0, sizeof(struct UPNPUrls));
+   memset(&data, 0, sizeof(struct IGDdatas));
+ 
+   devlist = upnpDiscover(2000, NULL, NULL);
+   retval = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
+-  printf("UPNP: %d", retval);
++  printf("GetValidIGD returned: %d\n", retval);
++  fflush(stdout);
+ 
+   freeUPNPDevlist(devlist);
+ }
+-
+-/** Based on http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch */
+-void
+-UPNPControl::upnp_add_redir(const char * addr, int port)
+-{
+-	char port_str[16];
+-	int r;
+-	printf("TB : upnp_add_redir (%s, %d)\n", addr, port);
+-	if(urls.controlURL[0] == '\0')
+-	{
+-		printf("TB : the init was not done !\n");
+-		fflush(stdout);
+-		return;
+-	}
+-	
+-	r = UPNP_AddPortMapping(urls.controlURL, data.servicetype,
+-	                        port_str, port_str, addr, 0, "TCP");
+-	if(r==0)
+-		printf("AddPortMapping(%s, %s, %s) failed\n", port_str, port_str, addr);
+-	fflush(stdout);
+-}
+-
+-/** Based on http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch */
+-void
+-UPNPControl::upnp_rem_redir(int port)
+-{
+-	char port_str[16];
+-	int t;
+-	printf("TB : upnp_rem_redir (%d)\n", port);
+-	if(urls.controlURL[0] == '\0')
+-	{
+-		printf("TB : the init was not done !\n");
+-		fflush(stdout);
+-		return;
+-	}
+-	sprintf(port_str, "%d", port);
+-	UPNP_DeletePortMapping(urls.controlURL, data.servicetype, port_str, "TCP");
+-}
+Index: src/vidalia/config/upnpcontrol.h
+===================================================================
+--- src/vidalia/config/upnpcontrol.h	(revision 2498)
++++ src/vidalia/config/upnpcontrol.h	(working copy)
+@@ -31,6 +31,7 @@
+ public:
+   static UPNPControl* Instance();
+   int forwardPort(quint16 port);
++  int disableForwarding();
+ protected:
+   UPNPControl();
+ private:
+@@ -43,6 +44,9 @@
+   void init_upnp();
+   void upnp_add_redir (const char * addr, int port);
+   void upnp_rem_redir(int port);
++
++  /* Currently forwarded port */
++  quint16 forwardedPort;
+ };
+ 
+ #endif 

Deleted: torbrowser/trunk/src/current-patches/vidalia-miniupnp.patch
===================================================================
--- torbrowser/trunk/src/current-patches/vidalia-miniupnp.patch	2008-04-20 05:23:31 UTC (rev 14403)
+++ torbrowser/trunk/src/current-patches/vidalia-miniupnp.patch	2008-04-21 19:34:36 UTC (rev 14404)
@@ -1,185 +0,0 @@
-Index: src/vidalia/config/serversettings.cpp
-===================================================================
---- src/vidalia/config/serversettings.cpp	(revision 2498)
-+++ src/vidalia/config/serversettings.cpp	(working copy)
-@@ -137,7 +137,7 @@
-   if (isServerEnabled()) {
-     /* Configure UPnP device to forward DirPort and OrPort */
-     /* TODO: does isServerEnabled() return true when a server is just set up? */
--    configurePortForwarding();
-+    configurePortForwarding(true);
-     rc = torControl()->setConf(confValues(), errmsg);
-   } else { 
-     QStringList resetKeys;
-@@ -156,6 +156,7 @@
-                 << SETTING_BANDWIDTH_BURST;
-     }
-     rc = torControl()->resetConf(resetKeys, errmsg);
-+    configurePortForwarding(false);
-   }
-   return rc;
- }
-@@ -165,11 +166,16 @@
- /* TODO: init_upnp() will block for up to 2 seconds. We should fire off a thread */
- /** Configure UPnP device to forward DirPort and ORPort */
- void
--ServerSettings::configurePortForwarding()
-+ServerSettings::configurePortForwarding(boolean enable)
- {
- #ifdef USE_MINIUPNPC
-   UPNPControl *pUNPControl = UPNPControl::Instance();
--  pUNPControl->forwardPort(getORPort());
-+
-+  if (enable) {
-+    pUNPControl->forwardPort(getORPort());
-+  } else {
-+    pUNPControl->disableForwarding();
-+  }
- #endif
- }
- 
-Index: src/vidalia/config/serversettings.h
-===================================================================
---- src/vidalia/config/serversettings.h	(revision 2498)
-+++ src/vidalia/config/serversettings.h	(working copy)
-@@ -93,7 +93,7 @@
-   QHash<QString,QString> confValues();
- 
-   /** Configure UPnP device to forward DirPort and ORPort */
--  void configurePortForwarding();
-+  void configurePortForwarding(boolean enable);
- };
- 
- #endif
-Index: src/vidalia/config/upnpcontrol.cpp
-===================================================================
---- src/vidalia/config/upnpcontrol.cpp	(revision 2498)
-+++ src/vidalia/config/upnpcontrol.cpp	(working copy)
-@@ -27,6 +27,7 @@
- UPNPControl::UPNPControl()
- {
-   init_upnp();
-+  forwardedPort = 0;
- }
- 
- int
-@@ -68,9 +69,42 @@
-   
-   // Output the mapping
-   printf("(external):%s -> %s:%s\n", sPort, intClient, intPort);
-+  fflush(stdout);
-+
-+  // Save the mapping
-+  forwardedPort = port;
-+
-   return 0;
- }
- 
-+int
-+UPNPControl::disableForwarding()
-+{
-+  char sPort[6];
-+
-+  if (0 == forwardedPort)
-+    return 0;
-+
-+  // Convert the port number to a string
-+  snprintf(sPort, sizeof(sPort), "%d", forwardedPort);
-+
-+  int retval = UPNP_DeletePortMapping(urls.controlURL, data.servicetype, sPort, "TCP");
-+  if(UPNPCOMMAND_SUCCESS != retval) {
-+    printf("DeletePortMapping() failed with code %d\n", retval);
-+    return 1;
-+  }
-+
-+  // Output the cancelled mapping
-+  printf("(external):%s -> <>\n", sPort);
-+  fflush(stdout);
-+
-+  // Save the mapping
-+  forwardedPort = 0;
-+
-+  return 0;
-+}
-+
-+
- /** Based on http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch */
- void
- UPNPControl::init_upnp()
-@@ -78,52 +112,13 @@
-   struct UPNPDev * devlist;
-   int retval;
- 
--  printf("TB : init_upnp()\n");
--
-   memset(&urls, 0, sizeof(struct UPNPUrls));
-   memset(&data, 0, sizeof(struct IGDdatas));
- 
-   devlist = upnpDiscover(2000, NULL, NULL);
-   retval = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
--  printf("UPNP: %d", retval);
-+  printf("GetValidIGD returned: %d\n", retval);
-+  fflush(stdout);
- 
-   freeUPNPDevlist(devlist);
- }
--
--/** Based on http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch */
--void
--UPNPControl::upnp_add_redir(const char * addr, int port)
--{
--	char port_str[16];
--	int r;
--	printf("TB : upnp_add_redir (%s, %d)\n", addr, port);
--	if(urls.controlURL[0] == '\0')
--	{
--		printf("TB : the init was not done !\n");
--		fflush(stdout);
--		return;
--	}
--	
--	r = UPNP_AddPortMapping(urls.controlURL, data.servicetype,
--	                        port_str, port_str, addr, 0, "TCP");
--	if(r==0)
--		printf("AddPortMapping(%s, %s, %s) failed\n", port_str, port_str, addr);
--	fflush(stdout);
--}
--
--/** Based on http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch */
--void
--UPNPControl::upnp_rem_redir(int port)
--{
--	char port_str[16];
--	int t;
--	printf("TB : upnp_rem_redir (%d)\n", port);
--	if(urls.controlURL[0] == '\0')
--	{
--		printf("TB : the init was not done !\n");
--		fflush(stdout);
--		return;
--	}
--	sprintf(port_str, "%d", port);
--	UPNP_DeletePortMapping(urls.controlURL, data.servicetype, port_str, "TCP");
--}
-Index: src/vidalia/config/upnpcontrol.h
-===================================================================
---- src/vidalia/config/upnpcontrol.h	(revision 2498)
-+++ src/vidalia/config/upnpcontrol.h	(working copy)
-@@ -31,6 +31,7 @@
- public:
-   static UPNPControl* Instance();
-   int forwardPort(quint16 port);
-+  int disableForwarding();
- protected:
-   UPNPControl();
- private:
-@@ -43,6 +44,9 @@
-   void init_upnp();
-   void upnp_add_redir (const char * addr, int port);
-   void upnp_rem_redir(int port);
-+
-+  /* Currently forwarded port */
-+  quint16 forwardedPort;
- };
- 
- #endif