92 User::LeaveIfError(RegisterIntercept(EFsEntry, EPreIntercept)); |
92 User::LeaveIfError(RegisterIntercept(EFsEntry, EPreIntercept)); |
93 User::LeaveIfError(RegisterIntercept(EFsSetEntry, EPreIntercept)); |
93 User::LeaveIfError(RegisterIntercept(EFsSetEntry, EPreIntercept)); |
94 User::LeaveIfError(RegisterIntercept(EFsFileSeek, EPreIntercept)); |
94 User::LeaveIfError(RegisterIntercept(EFsFileSeek, EPreIntercept)); |
95 User::LeaveIfError(RegisterIntercept(EFsPluginDoControl, EPreIntercept)); |
95 User::LeaveIfError(RegisterIntercept(EFsPluginDoControl, EPreIntercept)); |
96 User::LeaveIfError(RegisterIntercept(EFsPluginDoRequest, EPreIntercept)); |
96 User::LeaveIfError(RegisterIntercept(EFsPluginDoRequest, EPreIntercept)); |
|
97 User::LeaveIfError(RegisterIntercept(EFsVolume, EPreIntercept)); |
97 |
98 |
98 |
99 |
99 _LOG(_L("Modifier Plugin: Enabled intercepts.")); |
100 _LOG(_L("Modifier Plugin: Enabled intercepts.")); |
100 |
101 |
101 iInterceptsEnabled = ETrue; |
102 iInterceptsEnabled = ETrue; |
129 User::LeaveIfError(UnregisterIntercept(EFsReplace, EPreIntercept)); |
130 User::LeaveIfError(UnregisterIntercept(EFsReplace, EPreIntercept)); |
130 User::LeaveIfError(UnregisterIntercept(EFsRename, EPreIntercept)); |
131 User::LeaveIfError(UnregisterIntercept(EFsRename, EPreIntercept)); |
131 User::LeaveIfError(UnregisterIntercept(EFsEntry, EPreIntercept)); |
132 User::LeaveIfError(UnregisterIntercept(EFsEntry, EPreIntercept)); |
132 User::LeaveIfError(UnregisterIntercept(EFsSetEntry, EPreIntercept)); |
133 User::LeaveIfError(UnregisterIntercept(EFsSetEntry, EPreIntercept)); |
133 User::LeaveIfError(UnregisterIntercept(EFsFileSeek, EPreIntercept)); |
134 User::LeaveIfError(UnregisterIntercept(EFsFileSeek, EPreIntercept)); |
|
135 User::LeaveIfError(UnregisterIntercept(EFsVolume, EPreIntercept)); |
134 |
136 |
135 _LOG(_L("Modifier Plugin: Disabled intercepts.")); |
137 _LOG(_L("Modifier Plugin: Disabled intercepts.")); |
136 |
138 |
137 iInterceptsEnabled = EFalse; |
139 iInterceptsEnabled = EFalse; |
138 } |
140 } |
150 |
152 |
151 TInt function = aRequest.Function(); |
153 TInt function = aRequest.Function(); |
152 |
154 |
153 if(aRequest.IsPostOperation()) |
155 if(aRequest.IsPostOperation()) |
154 { |
156 { |
155 _LOG2(_L("Modifier Plugin::DoRequestL for Function %d in Post-Interception"),function); |
157 _LOG2(_L("CModifierPlugin::DoRequestL for Function %d in Post-Interception"),function); |
156 } |
158 } |
157 else |
159 else |
158 { |
160 { |
159 _LOG2(_L("Modifier Plugin::DoRequestL for Function %d in Pre-Interception"),function); |
161 _LOG2(_L("CModifierPlugin::DoRequestL for Function %d in Pre-Interception"),function); |
160 } |
162 } |
161 |
163 |
162 switch(function) |
164 switch(function) |
163 { |
165 { |
164 case EFsFileRead: |
166 case EFsFileRead: |
165 TRAP(err, FsFileReadL(aRequest)); |
167 TRAP(err, FsFileReadL(aRequest)); |
166 break; |
168 break; |
523 else |
529 else |
524 { |
530 { |
525 _LOG(_L("CModifierPlugin::FsFileSizeL, pre intercept")); |
531 _LOG(_L("CModifierPlugin::FsFileSizeL, pre intercept")); |
526 if(extension.CompareF(_L(".size")) == 0) |
532 if(extension.CompareF(_L(".size")) == 0) |
527 { |
533 { |
528 _LOG(_L("ModifierPlugin::FsFileSizeL")); |
534 _LOG(_L("CModifierPlugin::FsFileSizeL")); |
529 |
535 |
530 RFilePlugin fileplugin(aRequest); |
536 RFilePlugin fileplugin(aRequest); |
531 TInt err = fileplugin.AdoptFromClient(); |
537 TInt err = fileplugin.AdoptFromClient(); |
532 iLastError = err; |
538 iLastError = err; |
533 iLineNumber = __LINE__; |
539 iLineNumber = __LINE__; |
701 iLineNumber = __LINE__; |
707 iLineNumber = __LINE__; |
702 if(err!=KErrNone) |
708 if(err!=KErrNone) |
703 User::Leave(err); //trapped in DoRequestL |
709 User::Leave(err); //trapped in DoRequestL |
704 |
710 |
705 err = fsplugin.ReadFileSection(filename, pos, tempBufPtr, length); |
711 err = fsplugin.ReadFileSection(filename, pos, tempBufPtr, length); |
706 _LOG2(_L("CModifierPlugin::FsReadFileSectionL, FileRead returned %d"), err); |
712 _LOG2(_L("CModifierPlugin::FileRead, FileRead returned %d"), err); |
707 iLastError = err; |
713 iLastError = err; |
708 iLineNumber = __LINE__; |
714 iLineNumber = __LINE__; |
709 if(err!=KErrNone) |
715 if(err!=KErrNone) |
710 User::Leave(err); //trapped in DoRequestL |
716 User::Leave(err); //trapped in DoRequestL |
711 |
717 |
712 |
718 |
713 err = aRequest.Write(TFsPluginRequest::EData, tempBufPtr); |
719 err = aRequest.Write(TFsPluginRequest::EData, tempBufPtr); |
714 _LOG2(_L("CModifierPlugin::FsReadFileSectionL, ClientWrite returned %d"), err); |
720 _LOG2(_L("CModifierPlugin::FileRead, ClientWrite returned %d"), err); |
715 iLastError = err; |
721 iLastError = err; |
716 iLineNumber = __LINE__; |
722 iLineNumber = __LINE__; |
717 if(err!=KErrNone) |
723 if(err!=KErrNone) |
718 User::Leave(err); //trapped in DoRequestL |
724 User::Leave(err); //trapped in DoRequestL |
719 |
725 |
839 RFilePlugin fileplugin2(aRequest); |
845 RFilePlugin fileplugin2(aRequest); |
840 |
846 |
841 //open a second file |
847 //open a second file |
842 |
848 |
843 err = fileplugin2.Open(testfilename1, EFileWrite); |
849 err = fileplugin2.Open(testfilename1, EFileWrite); |
844 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
850 _LOG3(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
845 iLastError = err; |
851 iLastError = err; |
846 iLineNumber = __LINE__; |
852 iLineNumber = __LINE__; |
847 if(err!=KErrNone) |
853 if(err!=KErrNone) |
848 User::Leave(err); //trapped in DoRequestL |
854 User::Leave(err); //trapped in DoRequestL |
849 |
855 |
893 err = fileplugin.Create(testfilename2, EFileWrite); |
899 err = fileplugin.Create(testfilename2, EFileWrite); |
894 iLastError = err; |
900 iLastError = err; |
895 iLineNumber = __LINE__; |
901 iLineNumber = __LINE__; |
896 if(err!=KErrNone) |
902 if(err!=KErrNone) |
897 User::Leave(err); //trapped in DoRequestL |
903 User::Leave(err); //trapped in DoRequestL |
898 _LOG2(_L("RFilePlugin::Create returned %d"), err); |
904 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Create returned %d"), err); |
899 |
905 |
900 //write to the newly created file |
906 //write to the newly created file |
901 err = fileplugin.Write(pos, tempBufPtr2); |
907 err = fileplugin.Write(pos, tempBufPtr2); |
902 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Write to the newly created file returned %d"), err); |
908 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Write to the newly created file returned %d"), err); |
903 iLastError = err; |
909 iLastError = err; |
1069 |
1075 |
1070 RFilePlugin fileplugin(aRequest); |
1076 RFilePlugin fileplugin(aRequest); |
1071 |
1077 |
1072 TInt err = fileplugin.Create(filename, mode); |
1078 TInt err = fileplugin.Create(filename, mode); |
1073 |
1079 |
1074 _LOG2(_L("RFilePlugin::Create returned %d"), err); |
1080 _LOG2(_L("CModifierPlugin::FsFileCreateL, RFilePlugin::Create returned %d"), err); |
1075 iLastError = err; |
1081 iLastError = err; |
1076 iLineNumber = __LINE__; |
1082 iLineNumber = __LINE__; |
1077 if(err!=KErrNone) |
1083 if(err!=KErrNone) |
1078 User::Leave(err); //trapped in DoRequestL |
1084 User::Leave(err); //trapped in DoRequestL |
1079 |
1085 |
1176 { |
1182 { |
1177 _LOG(_L("CModifierPlugin::FsFileOpenL, pre intercept")); |
1183 _LOG(_L("CModifierPlugin::FsFileOpenL, pre intercept")); |
1178 |
1184 |
1179 RFilePlugin fileplugin(aRequest); |
1185 RFilePlugin fileplugin(aRequest); |
1180 err = fileplugin.Open(filename, mode); |
1186 err = fileplugin.Open(filename, mode); |
1181 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &filename, err); |
1187 _LOG3(_L("CModifierPlugin::FsFileOpenL, RFilePlugin::Open for %S returned %d"), &filename, err); |
1182 iLastError = err; |
1188 iLastError = err; |
1183 iLineNumber = __LINE__; |
1189 iLineNumber = __LINE__; |
1184 if(err!=KErrNone) |
1190 if(err!=KErrNone) |
1185 User::Leave(err); //trapped in DoRequestL |
1191 User::Leave(err); //trapped in DoRequestL |
1186 |
1192 |
1257 User::Leave(err); //trapped in DoRequestL |
1263 User::Leave(err); //trapped in DoRequestL |
1258 |
1264 |
1259 TFileName fn; |
1265 TFileName fn; |
1260 RFilePlugin fileplugin(aRequest); |
1266 RFilePlugin fileplugin(aRequest); |
1261 err = fileplugin.Temp(testfilename1, fn, mode); |
1267 err = fileplugin.Temp(testfilename1, fn, mode); |
1262 _LOG2(_L("RFilePlugin::Temp returned %d"), err); |
1268 _LOG2(_L("CModifierPlugin::FsFileTempL, RFilePlugin::Temp returned %d"), err); |
1263 iLastError = err; |
1269 iLastError = err; |
1264 iLineNumber = __LINE__; |
1270 iLineNumber = __LINE__; |
1265 if(err!=KErrNone) |
1271 if(err!=KErrNone) |
1266 User::Leave(err); //trapped in DoRequestL |
1272 User::Leave(err); //trapped in DoRequestL |
1267 |
1273 |
1268 err = aRequest.Write(TFsPluginRequest::ENewName, fn); |
1274 err = aRequest.Write(TFsPluginRequest::ENewName, fn); |
1269 _LOG2(_L("CModifierPlugin::FsFileReadL, ClientWrite returned %d"), err); |
1275 _LOG2(_L("CModifierPlugin::FsFileTempL, ClientWrite returned %d"), err); |
1270 iLastError = err; |
1276 iLastError = err; |
1271 iLineNumber = __LINE__; |
1277 iLineNumber = __LINE__; |
1272 if(err!=KErrNone) |
1278 if(err!=KErrNone) |
1273 User::Leave(err); //trapped in DoRequestL |
1279 User::Leave(err); //trapped in DoRequestL |
1274 |
1280 |
1350 else |
1356 else |
1351 { |
1357 { |
1352 RFilePlugin fileplugin(aRequest); |
1358 RFilePlugin fileplugin(aRequest); |
1353 |
1359 |
1354 TInt err = fileplugin.Replace(filename, mode); |
1360 TInt err = fileplugin.Replace(filename, mode); |
1355 _LOG2(_L("RFilePlugin::Replace returned %d"), err); |
1361 _LOG2(_L("CModifierPlugin::FsFileReplaceL, RFilePlugin::Replace returned %d"), err); |
1356 iLastError = err; |
1362 iLastError = err; |
1357 iLineNumber = __LINE__; |
1363 iLineNumber = __LINE__; |
1358 if(err!=KErrNone) |
1364 if(err!=KErrNone) |
1359 User::Leave(err); //trapped in DoRequestL |
1365 User::Leave(err); //trapped in DoRequestL |
1360 |
1366 |
1450 iLastError = err; |
1456 iLastError = err; |
1451 iLineNumber = __LINE__; |
1457 iLineNumber = __LINE__; |
1452 if(err!=KErrNone) |
1458 if(err!=KErrNone) |
1453 User::Leave(err); //trapped in DoRequestL |
1459 User::Leave(err); //trapped in DoRequestL |
1454 fsplugin.Close(); |
1460 fsplugin.Close(); |
1455 |
1461 |
1456 TBuf<26> temp_wide; |
1462 TBuf<26> temp_wide; |
1457 temp_wide.Copy(temp); |
1463 temp_wide.Copy(temp); |
1458 |
1464 |
1459 iLogging = ETrue; |
1465 iLogging = ETrue; |
1460 _LOG2(_L("CModifierPlugin::FsReadFileSectionL - wanted to read length = %d\n"),length); |
1466 _LOG2(_L("CModifierPlugin::FsReadFileSectionL - wanted to read length = %d\n"),length); |
1461 _LOG2(_L("CModifierPlugin::FsReadFileSectionL - data read length = %d\n"),temp.Length()); |
1467 _LOG2(_L("CModifierPlugin::FsReadFileSectionL - data read length = %d\n"),temp.Length()); |
1462 _LOG2(_L("CModifierPlugin::FsReadFileSectionL - data read = %S\n"),&temp_wide); |
1468 _LOG2(_L("CModifierPlugin::FsReadFileSectionL - data read = %S\n"),&temp_wide); |
1463 iLogging = EFalse; |
1469 iLogging = EFalse; |
1464 |
1470 |
1465 |
1471 |
1466 err = aRequest.Write(TFsPluginRequest::EData, temp); |
1472 err = aRequest.Write(TFsPluginRequest::EData, temp); |
1467 _LOG3(_L("CModifierPlugin::FsReadFileSectionL - RFilePlugin::Write for %S returned %d"), &testfilename1, err); |
1473 _LOG3(_L("CModifierPlugin::FsReadFileSectionL - RFilePlugin::Write for %S returned %d"), &testfilename1, err); |
1468 iLastError = err; |
1474 iLastError = err; |
1469 iLineNumber = __LINE__; |
1475 iLineNumber = __LINE__; |
1496 _LOG(_L("CModifierPlugin::FsDeleteL, post intercept")); |
1502 _LOG(_L("CModifierPlugin::FsDeleteL, post intercept")); |
1497 |
1503 |
1498 RFilePlugin fileplugin2(aRequest); |
1504 RFilePlugin fileplugin2(aRequest); |
1499 //open a second file |
1505 //open a second file |
1500 err = fileplugin2.Open(testfilename1, EFileWrite); |
1506 err = fileplugin2.Open(testfilename1, EFileWrite); |
1501 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1507 _LOG3(_L("CModifierPlugin::FsDeleteL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1502 iLastError = err; |
1508 iLastError = err; |
1503 iLineNumber = __LINE__; |
1509 iLineNumber = __LINE__; |
1504 if(err!=KErrNone) |
1510 if(err!=KErrNone) |
1505 User::Leave(err); //trapped in DoRequestL |
1511 User::Leave(err); //trapped in DoRequestL |
1506 |
1512 |
1511 if(err!=KErrNone) |
1517 if(err!=KErrNone) |
1512 User::Leave(err); //trapped in DoRequestL |
1518 User::Leave(err); //trapped in DoRequestL |
1513 |
1519 |
1514 //close the second file |
1520 //close the second file |
1515 fileplugin2.Close(); |
1521 fileplugin2.Close(); |
1516 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1522 _LOG2(_L("CModifierPlugin::FsDeleteL, RFilePlugin::Close to the second file returned %d"), err); |
1517 } |
1523 } |
1518 else |
1524 else |
1519 { |
1525 { |
1520 _LOG(_L("CModifierPlugin::FsDeleteL, pre intercept")); |
1526 _LOG(_L("CModifierPlugin::FsDeleteL, pre intercept")); |
1521 |
1527 |
1522 _LOG(_L("CModifierPlugin::FsDeleteL, calling RFsPlugin::Delete")); |
1528 _LOG(_L("CModifierPlugin::FsDeleteL, calling RFsPlugin::Delete")); |
1523 RFilePlugin fileplugin2(aRequest); |
1529 RFilePlugin fileplugin2(aRequest); |
1524 //open a second file |
1530 //open a second file |
1525 err = fileplugin2.Open(testfilename1, EFileWrite); |
1531 err = fileplugin2.Open(testfilename1, EFileWrite); |
1526 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1532 _LOG3(_L("CModifierPlugin::FsDeleteL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1527 iLastError = err; |
1533 iLastError = err; |
1528 iLineNumber = __LINE__; |
1534 iLineNumber = __LINE__; |
1529 if(err!=KErrNone) |
1535 if(err!=KErrNone) |
1530 User::Leave(err); //trapped in DoRequestL |
1536 User::Leave(err); //trapped in DoRequestL |
1531 |
1537 |
1536 if(err!=KErrNone) |
1542 if(err!=KErrNone) |
1537 User::Leave(err); //trapped in DoRequestL |
1543 User::Leave(err); //trapped in DoRequestL |
1538 |
1544 |
1539 //close the second file |
1545 //close the second file |
1540 fileplugin2.Close(); |
1546 fileplugin2.Close(); |
1541 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1547 _LOG2(_L("CModifierPlugin::FsDeleteL, RFilePlugin::Close to the second file returned %d"), err); |
1542 |
1548 |
1543 RFsPlugin fsplugin(aRequest); |
1549 RFsPlugin fsplugin(aRequest); |
1544 err = fsplugin.Connect(); |
1550 err = fsplugin.Connect(); |
1545 iLastError = err; |
1551 iLastError = err; |
1546 iLineNumber = __LINE__; |
1552 iLineNumber = __LINE__; |
1603 file.Close(); |
1609 file.Close(); |
1604 |
1610 |
1605 RFilePlugin fileplugin2(aRequest); |
1611 RFilePlugin fileplugin2(aRequest); |
1606 //open a second file |
1612 //open a second file |
1607 err = fileplugin2.Open(testfilename1, EFileWrite); |
1613 err = fileplugin2.Open(testfilename1, EFileWrite); |
1608 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1614 _LOG3(_L("CModifierPlugin::FsReplaceL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1609 iLastError = err; |
1615 iLastError = err; |
1610 iLineNumber = __LINE__; |
1616 iLineNumber = __LINE__; |
1611 if(err!=KErrNone) |
1617 if(err!=KErrNone) |
1612 User::Leave(err); //trapped in DoRequestL |
1618 User::Leave(err); //trapped in DoRequestL |
1613 |
1619 |
1618 if(err!=KErrNone) |
1624 if(err!=KErrNone) |
1619 User::Leave(err); //trapped in DoRequestL |
1625 User::Leave(err); //trapped in DoRequestL |
1620 |
1626 |
1621 //close the second file |
1627 //close the second file |
1622 fileplugin2.Close(); |
1628 fileplugin2.Close(); |
1623 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1629 _LOG2(_L("CModifierPlugin::FsReplaceL, RFilePlugin::Close to the second file returned %d"), err); |
1624 } |
1630 } |
1625 else |
1631 else |
1626 { |
1632 { |
1627 _LOG(_L("CModifierPlugin::FsReplaceL, pre intercept")); |
1633 _LOG(_L("CModifierPlugin::FsReplaceL, pre intercept")); |
1628 RFilePlugin fileplugin2(aRequest); |
1634 RFilePlugin fileplugin2(aRequest); |
1629 //open a second file |
1635 //open a second file |
1630 err = fileplugin2.Open(testfilename1, EFileWrite); |
1636 err = fileplugin2.Open(testfilename1, EFileWrite); |
1631 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1637 _LOG3(_L("CModifierPlugin::FsReplaceL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1632 iLastError = err; |
1638 iLastError = err; |
1633 iLineNumber = __LINE__; |
1639 iLineNumber = __LINE__; |
1634 if(err!=KErrNone) |
1640 if(err!=KErrNone) |
1635 User::Leave(err); //trapped in DoRequestL |
1641 User::Leave(err); //trapped in DoRequestL |
1636 |
1642 |
1641 if(err!=KErrNone) |
1647 if(err!=KErrNone) |
1642 User::Leave(err); //trapped in DoRequestL |
1648 User::Leave(err); //trapped in DoRequestL |
1643 |
1649 |
1644 //close the second file |
1650 //close the second file |
1645 fileplugin2.Close(); |
1651 fileplugin2.Close(); |
1646 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1652 _LOG2(_L("CModifierPlugin::FsReplaceL, FilePlugin::Close to the second file returned %d"), err); |
1647 |
1653 |
1648 _LOG(_L("CModifierPlugin::FsReplaceL, calling RFsPlugin::Replace")); |
1654 _LOG(_L("CModifierPlugin::FsReplaceL, calling RFsPlugin::Replace")); |
1649 RFsPlugin fsplugin(aRequest); |
1655 RFsPlugin fsplugin(aRequest); |
1650 err = fsplugin.Connect(); |
1656 err = fsplugin.Connect(); |
1651 iLastError = err; |
1657 iLastError = err; |
1702 if(err!=KErrNone) |
1708 if(err!=KErrNone) |
1703 User::Leave(err); //trapped in DoRequestL |
1709 User::Leave(err); //trapped in DoRequestL |
1704 |
1710 |
1705 //close the second file |
1711 //close the second file |
1706 fileplugin2.Close(); |
1712 fileplugin2.Close(); |
1707 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1713 _LOG2(_L("CModifierPlugin::FsRenameL, RFilePlugin::Close to the second file returned %d"), err); |
1708 } |
1714 } |
1709 else |
1715 else |
1710 { |
1716 { |
1711 _LOG(_L("CModifierPlugin::FsRenameL, pre intercept")); |
1717 _LOG(_L("CModifierPlugin::FsRenameL, pre intercept")); |
1712 RFilePlugin fileplugin2(aRequest); |
1718 RFilePlugin fileplugin2(aRequest); |
1713 //open a second file |
1719 //open a second file |
1714 fileplugin2.Open(testfilename1, EFileWrite); |
1720 fileplugin2.Open(testfilename1, EFileWrite); |
1715 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1721 _LOG3(_L("CModifierPlugin::FsRenameL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1716 iLastError = err; |
1722 iLastError = err; |
1717 iLineNumber = __LINE__; |
1723 iLineNumber = __LINE__; |
1718 if(err!=KErrNone) |
1724 if(err!=KErrNone) |
1719 User::Leave(err); //trapped in DoRequestL |
1725 User::Leave(err); //trapped in DoRequestL |
1720 |
1726 |
1725 if(err!=KErrNone) |
1731 if(err!=KErrNone) |
1726 User::Leave(err); //trapped in DoRequestL |
1732 User::Leave(err); //trapped in DoRequestL |
1727 |
1733 |
1728 //close the second file |
1734 //close the second file |
1729 fileplugin2.Close(); |
1735 fileplugin2.Close(); |
1730 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1736 _LOG2(_L("CModifierPlugin::FsRenameL, RFilePlugin::Close to the second file returned %d"), err); |
1731 |
1737 |
1732 _LOG(_L("CModifierPlugin::FsRenameL, calling RFsPlugin::Rename")); |
1738 _LOG(_L("CModifierPlugin::FsRenameL, calling RFsPlugin::Rename")); |
1733 RFsPlugin fsplugin(aRequest); |
1739 RFsPlugin fsplugin(aRequest); |
1734 err = fsplugin.Connect(); |
1740 err = fsplugin.Connect(); |
1735 iLastError = err; |
1741 iLastError = err; |
1769 { |
1775 { |
1770 _LOG(_L("CModifierPlugin::FsEntryL, post intercept")); |
1776 _LOG(_L("CModifierPlugin::FsEntryL, post intercept")); |
1771 RFilePlugin fileplugin2(aRequest); |
1777 RFilePlugin fileplugin2(aRequest); |
1772 //open a second file |
1778 //open a second file |
1773 err = fileplugin2.Open(testfilename1, EFileWrite); |
1779 err = fileplugin2.Open(testfilename1, EFileWrite); |
1774 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1780 _LOG3(_L("CModifierPlugin::FsEntryL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1775 iLastError = err; |
1781 iLastError = err; |
1776 iLineNumber = __LINE__; |
1782 iLineNumber = __LINE__; |
1777 if(err!=KErrNone) |
1783 if(err!=KErrNone) |
1778 User::Leave(err); //trapped in DoRequestL |
1784 User::Leave(err); //trapped in DoRequestL |
1779 |
1785 |
1784 if(err!=KErrNone) |
1790 if(err!=KErrNone) |
1785 User::Leave(err); //trapped in DoRequestL |
1791 User::Leave(err); //trapped in DoRequestL |
1786 |
1792 |
1787 //close the second file |
1793 //close the second file |
1788 fileplugin2.Close(); |
1794 fileplugin2.Close(); |
1789 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1795 _LOG2(_L("CModifierPlugin::FsEntryL, RFilePlugin::Close to the second file returned %d"), err); |
1790 } |
1796 } |
1791 else |
1797 else |
1792 { |
1798 { |
1793 _LOG(_L("CModifierPlugin::FsEntryL, pre intercept")); |
1799 _LOG(_L("CModifierPlugin::FsEntryL, pre intercept")); |
1794 RFilePlugin fileplugin2(aRequest); |
1800 RFilePlugin fileplugin2(aRequest); |
1795 //open a second file |
1801 //open a second file |
1796 err = fileplugin2.Open(testfilename1, EFileWrite); |
1802 err = fileplugin2.Open(testfilename1, EFileWrite); |
1797 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1803 _LOG3(_L("CModifierPlugin::FsEntryL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1798 iLastError = err; |
1804 iLastError = err; |
1799 iLineNumber = __LINE__; |
1805 iLineNumber = __LINE__; |
1800 if(err!=KErrNone) |
1806 if(err!=KErrNone) |
1801 User::Leave(err); //trapped in DoRequestL |
1807 User::Leave(err); //trapped in DoRequestL |
1802 |
1808 |
1807 if(err!=KErrNone) |
1813 if(err!=KErrNone) |
1808 User::Leave(err); //trapped in DoRequestL |
1814 User::Leave(err); //trapped in DoRequestL |
1809 |
1815 |
1810 //close the second file |
1816 //close the second file |
1811 fileplugin2.Close(); |
1817 fileplugin2.Close(); |
1812 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1818 _LOG2(_L("CModifierPlugin::FsEntryL, RFilePlugin::Close to the second file returned %d"), err); |
1813 |
1819 |
1814 _LOG(_L("CModifierPlugin::FsEntryL, calling RFsPlugin::Entry")); |
1820 _LOG(_L("CModifierPlugin::FsEntryL, calling RFsPlugin::Entry")); |
1815 RFsPlugin fsplugin(aRequest); |
1821 RFsPlugin fsplugin(aRequest); |
1816 err = fsplugin.Connect(); |
1822 err = fsplugin.Connect(); |
1817 iLastError = err; |
1823 iLastError = err; |
1854 testfilename1.Append(iDriveToTest); |
1859 testfilename1.Append(iDriveToTest); |
1855 testfilename1.Append(_L(":\\Data\\test.txt")); |
1860 testfilename1.Append(_L(":\\Data\\test.txt")); |
1856 |
1861 |
1857 if (aRequest.IsPostOperation()) |
1862 if (aRequest.IsPostOperation()) |
1858 { |
1863 { |
1859 _LOG(_L("CModifierPlugin::FsRenameL, post intercept")); |
1864 _LOG(_L("CModifierPlugin::FsSetEntryL, post intercept")); |
1860 RFilePlugin fileplugin2(aRequest); |
1865 RFilePlugin fileplugin2(aRequest); |
1861 //open a second file |
1866 //open a second file |
1862 err = fileplugin2.Open(testfilename1, EFileWrite); |
1867 err = fileplugin2.Open(testfilename1, EFileWrite); |
1863 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1868 _LOG3(_L("CModifierPlugin::FsSetEntryL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1864 iLastError = err; |
1869 iLastError = err; |
1865 iLineNumber = __LINE__; |
1870 iLineNumber = __LINE__; |
1866 if(err!=KErrNone) |
1871 if(err!=KErrNone) |
1867 User::Leave(err); //trapped in DoRequestL |
1872 User::Leave(err); //trapped in DoRequestL |
1868 |
1873 |
1873 if(err!=KErrNone) |
1878 if(err!=KErrNone) |
1874 User::Leave(err); //trapped in DoRequestL |
1879 User::Leave(err); //trapped in DoRequestL |
1875 |
1880 |
1876 //close the second file |
1881 //close the second file |
1877 fileplugin2.Close(); |
1882 fileplugin2.Close(); |
1878 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1883 _LOG2(_L("CModifierPlugin::FsSetEntryL, RFilePlugin::Close to the second file returned %d"), err); |
1879 } |
1884 } |
1880 else |
1885 else |
1881 { |
1886 { |
1882 _LOG(_L("CModifierPlugin::FsSetEntryL, pre intercept")); |
1887 _LOG(_L("CModifierPlugin::FsSetEntryL, pre intercept")); |
1883 RFilePlugin fileplugin2(aRequest); |
1888 RFilePlugin fileplugin2(aRequest); |
1884 //open a second file |
1889 //open a second file |
1885 err = fileplugin2.Open(testfilename1, EFileWrite); |
1890 err = fileplugin2.Open(testfilename1, EFileWrite); |
1886 _LOG3(_L("RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1891 _LOG3(_L("CModifierPlugin::FsSetEntryL, RFilePlugin::Open for %S returned %d"), &testfilename1, err); |
1887 iLastError = err; |
1892 iLastError = err; |
1888 iLineNumber = __LINE__; |
1893 iLineNumber = __LINE__; |
1889 if(err!=KErrNone) |
1894 if(err!=KErrNone) |
1890 User::Leave(err); //trapped in DoRequestL |
1895 User::Leave(err); //trapped in DoRequestL |
1891 |
1896 |
1896 if(err!=KErrNone) |
1901 if(err!=KErrNone) |
1897 User::Leave(err); //trapped in DoRequestL |
1902 User::Leave(err); //trapped in DoRequestL |
1898 |
1903 |
1899 //close the second file |
1904 //close the second file |
1900 fileplugin2.Close(); |
1905 fileplugin2.Close(); |
1901 _LOG2(_L("CModifierPlugin::FsFileWriteL, RFilePlugin::Close to the second file returned %d"), err); |
1906 _LOG2(_L("CModifierPlugin::FsSetEntryL, FilePlugin::Close to the second file returned %d"), err); |
1902 |
|
1903 _LOG(_L("CModifierPlugin::FsSetEntryL, calling RFsPlugin::SetEntry")); |
|
1904 |
1907 |
1905 TTime time; |
1908 TTime time; |
1906 TPtr8 t((TUint8*)&time,sizeof(TTime)); |
1909 TPtr8 t((TUint8*)&time,sizeof(TTime)); |
1907 err = aRequest.Read(TFsPluginRequest::ETime, t); |
1910 err = aRequest.Read(TFsPluginRequest::ETime, t); |
1908 iLastError = err; |
1911 iLastError = err; |
1939 if(err!=KErrNone) |
1942 if(err!=KErrNone) |
1940 User::Leave(err); //trapped in DoRequestL |
1943 User::Leave(err); //trapped in DoRequestL |
1941 fsplugin.Close(); |
1944 fsplugin.Close(); |
1942 |
1945 |
1943 // request processed by plug-in |
1946 // request processed by plug-in |
|
1947 User::Leave(KErrCompletion); |
|
1948 } |
|
1949 } |
|
1950 |
|
1951 /** |
|
1952 @see TestVolume() |
|
1953 */ |
|
1954 void CModifierPlugin::FsVolumeL(TFsPluginRequest& aRequest) |
|
1955 { |
|
1956 if (aRequest.IsPostOperation()) |
|
1957 { |
|
1958 _LOG(_L("CModifierPlugin::FsVolumeL, post intercept")); |
|
1959 } |
|
1960 else |
|
1961 { |
|
1962 _LOG(_L("CModifierPlugin::FsVolumeL, pre intercept")); |
|
1963 RFsPlugin fsplugin(aRequest); |
|
1964 CleanupClosePushL(fsplugin); |
|
1965 |
|
1966 TInt err = fsplugin.Connect(); |
|
1967 iLastError = err; |
|
1968 iLineNumber = __LINE__; |
|
1969 if(err!=KErrNone) |
|
1970 User::Leave(err); // Trapped in DoRequestL |
|
1971 |
|
1972 TVolumeInfo volInfo; |
|
1973 TInt drive = (TInt)(iDriveToTest - (TChar)'A'); |
|
1974 err = fsplugin.Volume(volInfo,drive); |
|
1975 _LOG3(_L("CModifierPlugin::FsVolumeL, RFsPlugin::Volume(drive %d) returned %d"), drive, err); |
|
1976 iLastError = err; |
|
1977 iLineNumber = __LINE__; |
|
1978 if(err!=KErrNone) |
|
1979 User::Leave(err); // Trapped in DoRequestL |
|
1980 |
|
1981 // Check that the volume label is the same as what was set in t_plugin_v2 |
|
1982 _LIT(KVolumeLabel,"1Volume"); |
|
1983 err = volInfo.iName.Compare(KVolumeLabel); |
|
1984 _LOG2(_L("CModifierPlugin::FsVolumeL, Compare volume label returned %d"), err); |
|
1985 iLastError = err; |
|
1986 iLineNumber = __LINE__; |
|
1987 if(err!=KErrNone) |
|
1988 User::Leave(err); // Trapped in DoRequestL |
|
1989 |
|
1990 // Modify volume name |
|
1991 _LOG2(_L("CModifierPlugin::FsVolumeL, Old volume name = %S"), &volInfo.iName); |
|
1992 TBuf<7> newVolumeName = volInfo.iName; |
|
1993 newVolumeName[0] = '2'; |
|
1994 volInfo.iName = newVolumeName; |
|
1995 _LOG2(_L("CModifierPlugin::FsVolumeL, New volume name = %S"), &volInfo.iName); |
|
1996 |
|
1997 // Send back volume info |
|
1998 TPckgC<TVolumeInfo> volInfoPckg(volInfo); |
|
1999 err = aRequest.Write(TFsPluginRequest::EVolumeInfo, volInfoPckg); |
|
2000 iLastError = err; |
|
2001 iLineNumber = __LINE__; |
|
2002 if(err!=KErrNone) |
|
2003 User::Leave(err); // Trapped in DoRequestL |
|
2004 |
|
2005 CleanupStack::PopAndDestroy(); |
|
2006 |
|
2007 // Request processed by plug-in |
1944 User::Leave(KErrCompletion); |
2008 User::Leave(KErrCompletion); |
1945 } |
2009 } |
1946 } |
2010 } |
1947 |
2011 |
1948 |
2012 |
1973 TInt err = aRequest.FileName(testtemp); |
2037 TInt err = aRequest.FileName(testtemp); |
1974 iLastError = err; |
2038 iLastError = err; |
1975 iLineNumber = __LINE__; |
2039 iLineNumber = __LINE__; |
1976 if(err!=KErrNone) |
2040 if(err!=KErrNone) |
1977 User::Leave(err); //trapped in DoRequestL |
2041 User::Leave(err); //trapped in DoRequestL |
1978 |
2042 |
1979 //setting up test files |
2043 //setting up test files |
1980 testfilename1.Append(iDriveToTest); |
2044 testfilename1.Append(iDriveToTest); |
1981 testfilename1.Append(_L(":\\Data2\\")); |
2045 testfilename1.Append(_L(":\\Data2\\")); |
1982 |
2046 |
1983 if (aRequest.IsPostOperation()) |
2047 if (aRequest.IsPostOperation()) |
2184 TRAP(err,aRequest.WriteParam1L(interceptStatusDes)); |
2248 TRAP(err,aRequest.WriteParam1L(interceptStatusDes)); |
2185 break; |
2249 break; |
2186 } |
2250 } |
2187 case KPluginSetDirFullName: |
2251 case KPluginSetDirFullName: |
2188 { |
2252 { |
2189 //This is necessary as at present we have nwo way of getting the name of |
2253 //This is necessary as at present we have no way of getting the name of |
2190 //a directory! |
2254 //a directory! |
2191 TRAP(err,aRequest.ReadParam1L(dirnamePckg)); |
2255 TRAP(err,aRequest.ReadParam1L(dirnamePckg)); |
2192 break; |
2256 break; |
2193 } |
2257 } |
2194 default: |
2258 default: |