[freenet-cvs] r15801 - trunk/freenet/src/freenet/node/fcp

saces at freenetproject.org saces at freenetproject.org
Sat Nov 17 21:18:45 UTC 2007


Author: saces
Date: 2007-11-17 21:18:45 +0000 (Sat, 17 Nov 2007)
New Revision: 15801

Modified:
   trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java
   trunk/freenet/src/freenet/node/fcp/FCPMessage.java
Log:
limit fcp commands from plugins to fcp.AllowedFullAccess only

Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java	2007-11-17 21:06:14 UTC (rev 15800)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java	2007-11-17 21:18:45 UTC (rev 15801)
@@ -82,7 +82,11 @@
 			try {
 				if(Logger.shouldLog(Logger.DEBUG, this))
 					Logger.debug(this, "Incoming FCP message:\n"+messageType+'\n'+fs.toString());
-				msg = FCPMessage.create(messageType, fs, handler.bf, handler.server.core.persistentTempBucketFactory, handler.server.node.pluginManager);
+				// fcp commands from plugins are only visible if full access
+				if (handler.hasFullAccess())
+					msg = FCPMessage.create(messageType, fs, handler.bf, handler.server.core.persistentTempBucketFactory, handler.server.node.pluginManager);
+				else
+					msg = FCPMessage.create(messageType, fs, handler.bf, handler.server.core.persistentTempBucketFactory, null);
 				if(msg == null) continue;
 			} catch (MessageInvalidException e) {
 				if(firstMessage) {

Modified: trunk/freenet/src/freenet/node/fcp/FCPMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPMessage.java	2007-11-17 21:06:14 UTC (rev 15800)
+++ trunk/freenet/src/freenet/node/fcp/FCPMessage.java	2007-11-17 21:18:45 UTC (rev 15801)
@@ -91,25 +91,29 @@
 			return new WatchGlobal(fs);
 		if(name.equals("Void"))
 			return null;
+
 		// We reached here? Must be a plugin. find it
+		// if pluginmanager == null it is *not* full access or a bug ;)
+		// plugins.HelloFCP.HelloFCP.Ping
 		
-		// plugins.HelloFCP.HelloFCP.Ping
-		// split at last point
-		int lp = name.lastIndexOf('.'); 
-		if (lp > 2) {
-			String plugname = name.substring(0, lp);
-			String plugcmd = name.substring(lp+1);
+		if (pluginmanager != null) {			
+			// split at last point
+			int lp = name.lastIndexOf('.'); 
+			if (lp > 2) {
+				String plugname = name.substring(0, lp);
+				String plugcmd = name.substring(lp+1);
 			
-			System.err.println("plugname: " + plugname);
-			System.err.println("plugcmd: " + plugcmd);
+				System.err.println("plugname: " + plugname);
+				System.err.println("plugcmd: " + plugcmd);
 		
-			FredPluginFCP plug = pluginmanager.getFCPPlugin(plugname);
-			if (plug != null) {
-				System.err.println("plug found: " + plugname);
-				FCPMessage msg = plug.create(plugcmd, fs);
-				if (msg != null) {
-					System.err.println("plug cmd seems valid: " + plugcmd);
-					return msg;
+				FredPluginFCP plug = pluginmanager.getFCPPlugin(plugname);
+				if (plug != null) {
+					System.err.println("plug found: " + plugname);
+					FCPMessage msg = plug.create(plugcmd, fs);
+					if (msg != null) {
+						System.err.println("plug cmd seems valid: " + plugcmd);
+						return msg;
+					}
 				}
 			}
 		}




More information about the cvs mailing list