[freenet-cvs] r13327 - trunk/plugins/UPnP
nextgens at freenetproject.org
nextgens at freenetproject.org
Wed May 23 00:17:52 UTC 2007
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())
More information about the cvs
mailing list