[freenet-cvs] r12000 - in trunk/freenet/src/freenet/node: . useralerts

toad at freenetproject.org toad at freenetproject.org
Tue Mar 6 18:30:52 UTC 2007


Author: toad
Date: 2007-03-06 18:30:51 +0000 (Tue, 06 Mar 2007)
New Revision: 12000

Added:
   trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java
Modified:
   trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
Log:
Link to the firewall/router page on the wiki when telling the user to forward the port

Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java	2007-03-06 18:04:30 UTC (rev 11999)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java	2007-03-06 18:30:51 UTC (rev 12000)
@@ -12,6 +12,7 @@
 import freenet.node.useralerts.UserAlert;
 import freenet.pluginmanager.DetectedIP;
 import freenet.pluginmanager.FredPluginIPDetector;
+import freenet.support.HTMLNode;
 import freenet.support.Logger;
 import freenet.support.transport.ip.IPUtil;
 
@@ -21,16 +22,83 @@
  */
 public class IPDetectorPluginManager {
 	
+	public class MyUserAlert implements UserAlert {
+
+		final short code;
+		final boolean suggestPortForward;
+		final String text;
+		final String title;
+		
+		public MyUserAlert(String title, String text, boolean suggestPortForward, short code) {
+			this.title = title;
+			this.text = text;
+			this.suggestPortForward = suggestPortForward;
+			this.code = code;
+		}
+
+		public String dismissButtonText() {
+			return null;
+		}
+
+		public HTMLNode getHTMLText() {
+			HTMLNode node = new HTMLNode("div");
+			node.addChild("#", text);
+			if(suggestPortForward) {
+				node.addChild("#", " You may want to ");
+				node.addChild("a", "href", "/?_CHECKED_HTTP_=http://wiki.freenetproject.org/FirewallAndRouterIssues", "forward the port");
+				node.addChild("#", " manually.");
+			}
+			return node;
+		}
+
+		public short getPriorityClass() {
+			return code;
+		}
+
+		public String getText() {
+			if(!suggestPortForward) return text;
+			StringBuffer sb = new StringBuffer();
+			sb.append(text);
+			sb.append(" You may want to forward the port manually. (See http://wiki.freenetproject.org/FirewallAndRouterIssues ).");
+			return sb.toString();
+		}
+
+		public String getTitle() {
+			return title;
+		}
+
+		public boolean isValid() {
+			return true;
+		}
+
+		public void isValid(boolean validity) {
+			// Ignore
+		}
+
+		public void onDismiss() {
+			// Ignore
+		}
+
+		public boolean shouldUnregisterOnDismiss() {
+			return false;
+		}
+
+		public boolean userCanDismiss() {
+			return false;
+		}
+
+	}
+
 	static boolean logMINOR;
 	private final NodeIPDetector detector;
 	private final Ticker ticker;
 	private final Node node;
 	FredPluginIPDetector[] plugins;
-	private final SimpleUserAlert noConnectionAlert;
-	private final SimpleUserAlert symmetricAlert;
-	private final SimpleUserAlert portRestrictedAlert;
-	private final SimpleUserAlert restrictedAlert;
-	private final SimpleUserAlert connectedAlert;
+	private final MyUserAlert noConnectionAlert;
+	private final MyUserAlert symmetricAlert;
+	private final MyUserAlert portRestrictedAlert;
+	private final MyUserAlert restrictedAlert;
+	private final MyUserAlert connectedAlert;
 	private ProxyUserAlert proxyAlert;
 	
 	IPDetectorPluginManager(Node node, NodeIPDetector detector) {
@@ -39,26 +107,24 @@
 		this.node = node;
 		this.ticker = node.ps;
 		this.detector = detector;
-		noConnectionAlert = new SimpleUserAlert(false, "No UDP connectivity", 
+		noConnectionAlert = new MyUserAlert("No UDP connectivity",
 				"Your internet connection does not appear to support UDP. " +
 				"Unless this detection is wrong, it is unlikely that Freenet will work on your computer at present.",
-				UserAlert.CRITICAL_ERROR);
-		symmetricAlert = new SimpleUserAlert(false, "Symmetric firewall detected",
+				false, UserAlert.ERROR);
+		symmetricAlert = new MyUserAlert("Symmetric firewall detected",
 				"Your internet connection appears to be behind a symmetric NAT or firewall. " +
 				"You will probably only be able to connect to users directly connected to the internet or behind " +
-				"restricted cone NATs. You should forward the UDP port "+node.portNumber+" manually on your router.",
-				UserAlert.ERROR);
-		portRestrictedAlert = new SimpleUserAlert(true, "Port restricted cone NAT detected",
+				"restricted cone NATs.", true, UserAlert.ERROR);				
+		portRestrictedAlert = new MyUserAlert("Port restricted cone NAT detected",
 				"Your internet connection appears to be behind a port-restricted NAT (router). "+
-				"You will be able to connect to most other users, but not those behind symmetric NATs. " +
-				"You should forward the UDP port "+node.portNumber+" manually on your router.", UserAlert.MINOR);
-		restrictedAlert = new SimpleUserAlert(true, "Restricted cone NAT detected",
+				"You will be able to connect to most other users, but not those behind symmetric NATs.", 
+				true, UserAlert.MINOR);
+		restrictedAlert = new MyUserAlert("Restricted cone NAT detected",
 				"Your internet connection appears to be behind a \"restricted cone\" NAT (router). "+
-				"You should be able to connect to most other users. " +
-				"You should forward the UDP port "+node.portNumber+" manually on your router.", UserAlert.WARNING);
-		connectedAlert = new SimpleUserAlert(true, "Direct internet connection detected",
+				"You should be able to connect to most other users.", true, UserAlert.WARNING);
+		connectedAlert = new MyUserAlert("Direct internet connection detected",
 				"You appear to be directly connected to the internet. Congratulations, you should be able to connect "+
-				"to any other freenet node.", UserAlert.MINOR);
+				"to any other freenet node.", true, UserAlert.MINOR);
 	}
 
 	/** Start the detector plugin manager. This includes running the plugin, if there

Added: trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java	                        (rev 0)
+++ trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java	2007-03-06 18:30:51 UTC (rev 12000)
@@ -0,0 +1,59 @@
+package freenet.node.useralerts;
+
+import freenet.support.HTMLNode;
+
+public class SimpleHTMLUserAlert implements UserAlert {
+
+	final boolean canDismiss;
+	final String title;
+	final HTMLNode content;
+	final short type;
+	
+	public SimpleHTMLUserAlert(boolean canDismiss, String title, HTMLNode content, short type) {
+		this.canDismiss = canDismiss;
+		this.title = title;
+		this.content = content;
+		this.type = type;
+	}
+
+	public boolean userCanDismiss() {
+		return canDismiss;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public String getText() {
+		return content.getContent();
+	}
+
+	public HTMLNode getHTMLText() {
+		return content;
+	}
+
+	public short getPriorityClass() {
+		return type;
+	}
+
+	public boolean isValid() {
+		return true;
+	}
+
+	public void isValid(boolean validity) {
+		// Do nothing
+	}
+
+	public String dismissButtonText() {
+		return "Hide";
+	}
+
+	public boolean shouldUnregisterOnDismiss() {
+		return true;
+	}
+	
+	public void onDismiss() {
+		// do nothing on alert dismissal
+	}
+	
+}




More information about the cvs mailing list