178 fileName.Copy(iDataFileName); |
178 fileName.Copy(iDataFileName); |
179 TInt err(file.Open(fs, fileName, EFileRead) ); |
179 TInt err(file.Open(fs, fileName, EFileRead) ); |
180 if (err == KErrNone) |
180 if (err == KErrNone) |
181 { |
181 { |
182 CleanupClosePushL(file); // 2 |
182 CleanupClosePushL(file); // 2 |
183 TInt fsize; |
183 TInt fsize = 0; |
184 User::LeaveIfError(file.Size(fsize) ); |
184 User::LeaveIfError(file.Size(fsize) ); |
185 iData = HBufC8::NewL(fsize); |
185 iData = HBufC8::NewL(fsize); |
186 TPtr8 ptr(iData->Des() ); |
186 TPtr8 ptr(iData->Des() ); |
187 User::LeaveIfError(file.Read(ptr) ); |
187 User::LeaveIfError(file.Read(ptr) ); |
188 CleanupStack::PopAndDestroy( &file); |
188 CleanupStack::PopAndDestroy( &file); |
394 |
394 |
395 RDEBUG_2(" -> opening original file: %S", &ptr ); |
395 RDEBUG_2(" -> opening original file: %S", &ptr ); |
396 // leave if can not open the original file |
396 // leave if can not open the original file |
397 User::LeaveIfError(originalFile.Open(aFs, ptr, EFileWrite) ); |
397 User::LeaveIfError(originalFile.Open(aFs, ptr, EFileWrite) ); |
398 RDEBUG(" -> done"); |
398 RDEBUG(" -> done"); |
399 |
399 |
|
400 CleanupClosePushL(originalFile); |
400 // First construct the temp path |
401 // First construct the temp path |
401 User::LeaveIfError(aFs.PrivatePath(decryptedTempFileName) ); |
402 User::LeaveIfError(aFs.PrivatePath(decryptedTempFileName) ); |
402 // set drive letter into the path |
403 // set drive letter into the path |
403 decryptedTempFileName.Insert( 0, TParsePtrC( PathInfo::PhoneMemoryRootPath() ).Drive() ); |
404 decryptedTempFileName.Insert( 0, TParsePtrC( PathInfo::PhoneMemoryRootPath() ).Drive() ); |
404 // append "piptemp\\" |
405 // append "piptemp\\" |
420 // open temporary handle to it. |
421 // open temporary handle to it. |
421 RDEBUG_2(" -> opening decrypted file: %S", &decryptedTempFileName ); |
422 RDEBUG_2(" -> opening decrypted file: %S", &decryptedTempFileName ); |
422 User::LeaveIfError(decryptedFile.Open(aFs, decryptedTempFileName, |
423 User::LeaveIfError(decryptedFile.Open(aFs, decryptedTempFileName, |
423 EFileShareAny) ); |
424 EFileShareAny) ); |
424 RDEBUG(" -> done"); |
425 RDEBUG(" -> done"); |
|
426 CleanupClosePushL(decryptedFile); |
425 // parse the uid from the file |
427 // parse the uid from the file |
426 ret = ParseUidFromSisFileL(decryptedFile); |
428 ret = ParseUidFromSisFileL(decryptedFile); |
427 |
429 |
428 // no use anymore for the decrypted file |
|
429 decryptedFile.Close(); |
|
430 // delete the temp file |
430 // delete the temp file |
431 TInt err = aFs.Delete(decryptedTempFileName); |
431 TInt err = aFs.Delete(decryptedTempFileName); |
432 if (err != KErrNone) |
432 if (err != KErrNone) |
433 { |
433 { |
434 RDEBUG_2("**** ERROR, unable to delete temporary file: %S", &decryptedTempFileName ); |
434 RDEBUG_2("**** ERROR, unable to delete temporary file: %S", &decryptedTempFileName ); |
435 } |
435 } |
436 |
436 |
437 CleanupStack::PopAndDestroy(licenseMgr); |
437 CleanupStack::PopAndDestroy(&decryptedFile); |
438 decryptedFile.Close(); |
438 CleanupStack::PopAndDestroy(licenseMgr); |
439 originalFile.Close(); |
439 CleanupStack::PopAndDestroy(&originalFile); |
440 } |
440 } |
441 else |
441 else |
442 if (iMimeType == KSisxMimeType || iMimeType == KSisMimeType ) |
442 if (iMimeType == KSisxMimeType || iMimeType == KSisMimeType ) |
443 { |
443 { |
444 RDEBUG(" -> mime: x-epoc/x-sisx-app"); |
444 RDEBUG(" -> mime: x-epoc/x-sisx-app"); |