userlibandfileserver/fileserver/sfile/sf_request.cpp
changeset 15 4122176ea935
parent 0 a41df078684a
child 81 e7d2d738d3c2
--- a/userlibandfileserver/fileserver/sfile/sf_request.cpp	Mon Oct 19 15:55:17 2009 +0100
+++ b/userlibandfileserver/fileserver/sfile/sf_request.cpp	Mon Dec 21 16:14:42 2009 +0000
@@ -1642,7 +1642,7 @@
 
 TBool CFsMessageRequest::DispatchToPlugin()
 //
-//
+// Common route: Receive -> Process -> Dispatch -> DispatchToPlugin
 //
 	{
 	TInt drivenumber = DriveNumber();
@@ -1694,8 +1694,21 @@
 					{
 					// The plugin has processed synchronously (case 1)
 					//  - Pass the message on to the next plugin
-					FsPluginManager::NextPlugin(iCurrentPlugin, this,(TBool)ETrue);
-					continue;
+					if(FsFunction() != EFsPluginOpen)
+					    {
+	                    FsPluginManager::NextPlugin(iCurrentPlugin, this,(TBool)ETrue);
+	                    continue;
+					    }
+					else // FsFunction == EFsPluginOpen
+					    {
+					    /* 
+					     * PluginOpen requests should not be passed down the plugin stack.
+					     * 
+
+					     */
+					    iCurrentPlugin = NULL;
+					    continue;
+					    }
 					}
 				else if(err == KPluginMessageComplete)
 					{