Author: nextgens
Date: 2007-05-23 00:17:52 +0000 (Wed, 23 May 2007)
New Revision: 13327

Modified:
   trunk/plugins/UPnP/UPnP.java
Log:
UPnP: Implement FredPluginIPDetector : not tested yet!

Modified: trunk/plugins/UPnP/UPnP.java
===================================================================
--- trunk/plugins/UPnP/UPnP.java        2007-05-23 00:13:04 UTC (rev 13326)
+++ trunk/plugins/UPnP/UPnP.java        2007-05-23 00:17:52 UTC (rev 13327)
@@ -3,6 +3,8 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package plugins.UPnP;

+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.Iterator;

 import plugins.UPnP.org.cybergarage.upnp.Action;
@@ -18,8 +20,10 @@
 import plugins.UPnP.org.cybergarage.upnp.StateVariable;
 import plugins.UPnP.org.cybergarage.upnp.device.DeviceChangeListener;
 import plugins.UPnP.org.cybergarage.upnp.xml.StateVariableData;
+import freenet.pluginmanager.DetectedIP;
 import freenet.pluginmanager.FredPlugin;
 import freenet.pluginmanager.FredPluginHTTP;
+import freenet.pluginmanager.FredPluginIPDetector;
 import freenet.pluginmanager.FredPluginThreadless;
 import freenet.pluginmanager.PluginHTTPException;
 import freenet.pluginmanager.PluginRespirator;
@@ -35,8 +39,10 @@
  *
  * @see http://www.upnp.org/
  * @see http://en.wikipedia.org/wiki/Universal_Plug_and_Play
+ * 
+ * TODO: add logging!
  */ 
-public class UPnP extends ControlPoint implements FredPluginHTTP, FredPlugin, 
FredPluginThreadless, DeviceChangeListener {
+public class UPnP extends ControlPoint implements FredPluginHTTP, FredPlugin, 
FredPluginThreadless, FredPluginIPDetector, DeviceChangeListener {

        /** some schemas */
        private static final String ROUTER_DEVICE = 
"urn:schemas-upnp-org:device:InternetGatewayDevice:1";
@@ -61,6 +67,15 @@
                stop();
        }

+       // FIXME: we use the first IGD we detect, so we have got only 1 ip to 
report
+       public DetectedIP[] getAddress() {
+               try {
+                       return new DetectedIP[] { new 
DetectedIP(InetAddress.getByName(getNATAddress()), DetectedIP.NOT_SUPPORTED) };
+               } catch (UnknownHostException e) {
+                       return null;
+               }
+       }
+       
        public void deviceAdded(Device dev ) {
                synchronized (lock) {
                        if(isNATPresent())


Reply via email to