userlibandfileserver/fileserver/sfile/sf_request.cpp
branchanywhere
changeset 20 d63d727ee0a6
parent 15 4122176ea935
child 81 e7d2d738d3c2
--- a/userlibandfileserver/fileserver/sfile/sf_request.cpp	Tue Dec 08 08:11:42 2009 +0100
+++ b/userlibandfileserver/fileserver/sfile/sf_request.cpp	Mon Jan 04 12:25:19 2010 +0100
@@ -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)
 					{