--- 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)
{