userlibandfileserver/fileserver/sfile/sf_nbs.cpp
changeset 299 b5a01337d018
parent 176 af6ec97d9189
equal deleted inserted replaced
297:b2826f67641f 299:b5a01337d018
    80 //
    80 //
    81 	{
    81 	{
    82 	TInt r=ParseSubstPtr0(aRequest,aRequest->Src());
    82 	TInt r=ParseSubstPtr0(aRequest,aRequest->Src());
    83 	if (r!=KErrNone)
    83 	if (r!=KErrNone)
    84 		return(r);
    84 		return(r);
    85 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysMkDir,&KCapFsPriMkDir,&KCapFsROMkDir, __PLATSEC_DIAGNOSTIC_STRING("Make Directory"));
    85 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysMkDir,&KCapFsPriMkDir,&KCapFsROMkDir, __PLATSEC_DIAGNOSTIC_STRING("Make Directory"));
    86 	return(r);
    86 	return(r);
    87 	}
    87 	}
    88 
    88 
    89 
    89 
    90 TInt TFsRmDir::DoRequestL(CFsRequest* aRequest)
    90 TInt TFsRmDir::DoRequestL(CFsRequest* aRequest)
   108 //
   108 //
   109 	{
   109 	{
   110 	TInt r=ParseSubstPtr0(aRequest,aRequest->Src());
   110 	TInt r=ParseSubstPtr0(aRequest,aRequest->Src());
   111 	if (r!=KErrNone)
   111 	if (r!=KErrNone)
   112 		return(r);
   112 		return(r);
   113 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysRmDir,&KCapFsPriRmDir,&KCapFsRORmDir, __PLATSEC_DIAGNOSTIC_STRING("Remove Directory"));
   113 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysRmDir,&KCapFsPriRmDir,&KCapFsRORmDir, __PLATSEC_DIAGNOSTIC_STRING("Remove Directory"));
   114 	return(r);
   114 	return(r);
   115 	}
   115 	}
   116 
   116 
   117 
   117 
   118 TInt TFsDelete::DoRequestL(CFsRequest* aRequest)
   118 TInt TFsDelete::DoRequestL(CFsRequest* aRequest)
   130 //
   130 //
   131 	{
   131 	{
   132 	TInt r=ParseNoWildSubstCheckPtr0(aRequest,aRequest->Src());
   132 	TInt r=ParseNoWildSubstCheckPtr0(aRequest,aRequest->Src());
   133 	if (r!=KErrNone)
   133 	if (r!=KErrNone)
   134 		return(r);
   134 		return(r);
   135 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysDelete,&KCapFsPriDelete,&KCapFsRODelete, __PLATSEC_DIAGNOSTIC_STRING("Delete"));
   135 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysDelete,&KCapFsPriDelete,&KCapFsRODelete, __PLATSEC_DIAGNOSTIC_STRING("Delete"));
   136 	return(r);
   136 	return(r);
   137 	}
   137 	}
   138 
   138 
   139 
   139 
   140 TInt TFsRename::DoRequestL(CFsRequest* aRequest)
   140 TInt TFsRename::DoRequestL(CFsRequest* aRequest)
   157 //
   157 //
   158 	{
   158 	{
   159 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());
   159 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());
   160 	if (r!=KErrNone)
   160 	if (r!=KErrNone)
   161 		return(r);
   161 		return(r);
   162 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysRename,&KCapFsPriRename,&KCapFsRORename, __PLATSEC_DIAGNOSTIC_STRING("File Server Rename"));
   162 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysRename,&KCapFsPriRename,&KCapFsRORename, __PLATSEC_DIAGNOSTIC_STRING("File Server Rename"));
   163 	if(r!=KErrNone)
   163 	if(r!=KErrNone)
   164 		return(r);
   164 		return(r);
   165 	TDrive* pOldDrive=aRequest->Drive();
   165 	TDrive* pOldDrive=aRequest->Drive();
   166 	if ((r=ParseNoWildSubstCheckPathPtr1(aRequest,aRequest->Dest()))!=KErrNone)
   166 	if ((r=ParseNoWildSubstCheckPathPtr1(aRequest,aRequest->Dest()))!=KErrNone)
   167 		return(r);
   167 		return(r);
   168 	r=PathCheck(aRequest,aRequest->Dest().FullName().Mid(2),&KCapFsSysRename,&KCapFsPriRename,&KCapFsRORename, __PLATSEC_DIAGNOSTIC_STRING("File Server Rename"));	
   168 	r=PathCheck(aRequest->Message(),aRequest->Dest().FullName().Mid(2),&KCapFsSysRename,&KCapFsPriRename,&KCapFsRORename, __PLATSEC_DIAGNOSTIC_STRING("File Server Rename"));	
   169 	if(r == KErrNone)
   169 	if(r == KErrNone)
   170 		{
   170 		{
   171 		if (pOldDrive!=aRequest->Drive())
   171 		if (pOldDrive!=aRequest->Drive())
   172 			r=KErrArgument;
   172 			r=KErrArgument;
   173 		}
   173 		}
   195 //
   195 //
   196 	{
   196 	{
   197 	TInt r=ParseNoWildSubstCheckPtr0(aRequest,aRequest->Src());
   197 	TInt r=ParseNoWildSubstCheckPtr0(aRequest,aRequest->Src());
   198 	if (r!=KErrNone)
   198 	if (r!=KErrNone)
   199 		return(r);
   199 		return(r);
   200 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysReplace,&KCapFsPriReplace,&KCapFsROReplace, __PLATSEC_DIAGNOSTIC_STRING("File Server Replace"));	
   200 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysReplace,&KCapFsPriReplace,&KCapFsROReplace, __PLATSEC_DIAGNOSTIC_STRING("File Server Replace"));	
   201 	if(r!=KErrNone)
   201 	if(r!=KErrNone)
   202 		return(r);
   202 		return(r);
   203 	TDrive* pOldDrive=aRequest->Drive();
   203 	TDrive* pOldDrive=aRequest->Drive();
   204 	if ((r=ParseNoWildSubstCheckPtr1(aRequest,aRequest->Dest()))!=KErrNone)
   204 	if ((r=ParseNoWildSubstCheckPtr1(aRequest,aRequest->Dest()))!=KErrNone)
   205 		return(r);
   205 		return(r);
   206 	r=PathCheck(aRequest,aRequest->Dest().FullName().Mid(2),&KCapFsSysReplace,&KCapFsPriReplace,&KCapFsROReplace, __PLATSEC_DIAGNOSTIC_STRING("File Server Replace"));	
   206 	r=PathCheck(aRequest->Message(),aRequest->Dest().FullName().Mid(2),&KCapFsSysReplace,&KCapFsPriReplace,&KCapFsROReplace, __PLATSEC_DIAGNOSTIC_STRING("File Server Replace"));	
   207 	if(r == KErrNone)
   207 	if(r == KErrNone)
   208 		{
   208 		{
   209 		if (pOldDrive!=aRequest->Drive())
   209 		if (pOldDrive!=aRequest->Drive())
   210 			r=KErrArgument;
   210 			r=KErrArgument;
   211 		}
   211 		}
   240 	if (r!=KErrNone)
   240 	if (r!=KErrNone)
   241 		return(r);
   241 		return(r);
   242 
   242 
   243 	// Check the capabilites but always allow the entry to be read for private, system and 
   243 	// Check the capabilites but always allow the entry to be read for private, system and 
   244 	// resource directories as long as there are no sub folders or files specified
   244 	// resource directories as long as there are no sub folders or files specified
   245 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsEntry, __PLATSEC_DIAGNOSTIC_STRING("Entry"), ETrue);	
   245 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsEntry, __PLATSEC_DIAGNOSTIC_STRING("Entry"), ETrue);	
   246 
   246 
   247 	return(r);
   247 	return(r);
   248 	}
   248 	}
   249 
   249 
   250 
   250 
   275 //
   275 //
   276 	{
   276 	{
   277 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());
   277 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());
   278 	if (r!=KErrNone)
   278 	if (r!=KErrNone)
   279 		return(r);
   279 		return(r);
   280  	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysSetEntry,&KCapFsPriSetEntry,&KCapFsROSetEntry, __PLATSEC_DIAGNOSTIC_STRING("Set Entry"));	
   280  	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysSetEntry,&KCapFsPriSetEntry,&KCapFsROSetEntry, __PLATSEC_DIAGNOSTIC_STRING("Set Entry"));	
   281 	return(r);
   281 	return(r);
   282 	}
   282 	}
   283 
   283 
   284 LOCAL_C void FsReadFileSectionFileClose(CFsRequest* aRequest, CFileShare* aShare)
   284 LOCAL_C void FsReadFileSectionFileClose(CFsRequest* aRequest, CFileShare* aShare)
   285 	{
   285 	{
   388 //
   388 //
   389 	{
   389 	{
   390 	TInt r=ParseNoWildSubstFileCheckPtr1(aRequest,aRequest->Src());
   390 	TInt r=ParseNoWildSubstFileCheckPtr1(aRequest,aRequest->Src());
   391 	if (r!=KErrNone)
   391 	if (r!=KErrNone)
   392 		return(r);
   392 		return(r);
   393 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysReadFileSection,&KCapFsPriReadFileSection, __PLATSEC_DIAGNOSTIC_STRING("Read File Section"));	
   393 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysReadFileSection,&KCapFsPriReadFileSection, __PLATSEC_DIAGNOSTIC_STRING("Read File Section"));	
   394 	return(r);
   394 	return(r);
   395 	}
   395 	}
   396 
   396 
   397 
   397 
   398 
   398 
   479 //
   479 //
   480 	{
   480 	{
   481 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());	
   481 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());	
   482 	if (r!=KErrNone)
   482 	if (r!=KErrNone)
   483 		return(r);
   483 		return(r);
   484 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysGetShortName,&KCapFsPriGetShortName, __PLATSEC_DIAGNOSTIC_STRING("Get Short Name"));	
   484 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysGetShortName,&KCapFsPriGetShortName, __PLATSEC_DIAGNOSTIC_STRING("Get Short Name"));	
   485 	return(r);
   485 	return(r);
   486 	}
   486 	}
   487 
   487 
   488 
   488 
   489 TInt TFsGetLongName::DoRequestL(CFsRequest* aRequest)
   489 TInt TFsGetLongName::DoRequestL(CFsRequest* aRequest)
   506 //
   506 //
   507 	{
   507 	{
   508 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());	
   508 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());	
   509 	if (r!=KErrNone)
   509 	if (r!=KErrNone)
   510 		return(r);
   510 		return(r);
   511 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysGetLongName,&KCapFsPriGetLongName, __PLATSEC_DIAGNOSTIC_STRING("Get Long Name"));	
   511 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysGetLongName,&KCapFsPriGetLongName, __PLATSEC_DIAGNOSTIC_STRING("Get Long Name"));	
   512 	return(r);
   512 	return(r);
   513 	}
   513 	}
   514 
   514 
   515 
   515 
   516 TInt TFsIsFileInRom::DoRequestL(CFsRequest* aRequest)
   516 TInt TFsIsFileInRom::DoRequestL(CFsRequest* aRequest)
   535 //
   535 //
   536 	{	
   536 	{	
   537 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());	
   537 	TInt r=ParseNoWildSubstCheckPathPtr0(aRequest,aRequest->Src());	
   538 	if (r!=KErrNone)
   538 	if (r!=KErrNone)
   539 		return (r);
   539 		return (r);
   540 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysIsFileInRom,&KCapFsPriIsFileInRom, __PLATSEC_DIAGNOSTIC_STRING("Is File In Rom"));	
   540 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysIsFileInRom,&KCapFsPriIsFileInRom, __PLATSEC_DIAGNOSTIC_STRING("Is File In Rom"));	
   541 	return(r);
   541 	return(r);
   542 	}
   542 	}
   543 
   543 
   544 
   544 
   545 TInt TFsIsValidName::Initialise(CFsRequest* /*aRequest*/)
   545 TInt TFsIsValidName::Initialise(CFsRequest* /*aRequest*/)