181 |
181 |
182 CTokenTypesAndTokens* tempObj = new CTokenTypesAndTokens; |
182 CTokenTypesAndTokens* tempObj = new CTokenTypesAndTokens; |
183 if ( !tempObj || iListAllTokensAndTypes->Append(*tempObj) != KErrNone ) |
183 if ( !tempObj || iListAllTokensAndTypes->Append(*tempObj) != KErrNone ) |
184 { |
184 { |
185 delete tempObj; |
185 delete tempObj; |
186 iTokenHandle->Release(); |
186 if (iTokenHandle) |
|
187 { |
|
188 iTokenHandle->Release(); |
|
189 } |
187 iTokenHandle = NULL; |
190 iTokenHandle = NULL; |
188 User::Leave( KErrNoMemory ); |
191 User::Leave( KErrNoMemory ); |
189 } |
192 } |
190 delete tempObj; |
193 delete tempObj; |
191 CTokenTypesAndTokens& Tokens = (*iListAllTokensAndTypes)[iListAllTokensAndTypes->Count() - 1]; |
194 CTokenTypesAndTokens& Tokens = (*iListAllTokensAndTypes)[iListAllTokensAndTypes->Count() - 1]; |
192 Tokens.iTokenInfo = new CTokenInfo; |
195 Tokens.iTokenInfo = new CTokenInfo; |
193 if ( !Tokens.iTokenInfo ) |
196 if ( !Tokens.iTokenInfo ) |
194 { |
197 { |
195 iTokenHandle->Release(); |
198 if (iTokenHandle) |
|
199 { |
|
200 iTokenHandle->Release(); |
|
201 } |
196 iTokenHandle = NULL; |
202 iTokenHandle = NULL; |
197 User::Leave( KErrNoMemory ); |
203 User::Leave( KErrNoMemory ); |
198 } |
204 } |
199 |
205 |
200 iTokenHandle = NULL; //owned by iProviderInterface |
206 iTokenHandle = NULL; //owned by iProviderInterface |
305 void CTlsBrowseToken::DoCancel() |
311 void CTlsBrowseToken::DoCancel() |
306 { |
312 { |
307 switch (iCurrentState) |
313 switch (iCurrentState) |
308 { |
314 { |
309 case EGetTokenList: |
315 case EGetTokenList: |
310 iPtrTokenType->CancelList(); |
316 { |
|
317 if (iPtrTokenType) |
|
318 iPtrTokenType->CancelList(); |
|
319 } |
311 break; |
320 break; |
312 |
321 |
313 case EOpenToken: |
322 case EOpenToken: |
314 iPtrTokenType->CancelOpenToken(); |
323 { |
|
324 if (iPtrTokenType) |
|
325 iPtrTokenType->CancelOpenToken(); |
|
326 } |
315 break; |
327 break; |
316 |
328 |
317 case EGetProviderInterface: |
329 case EGetProviderInterface: |
318 iTokenHandle->CancelGetInterface(); |
330 { |
|
331 if (iTokenHandle) |
|
332 iTokenHandle->CancelGetInterface(); |
|
333 } |
319 break; |
334 break; |
320 |
335 |
321 case EGetSessionInterface: |
336 case EGetSessionInterface: |
322 (iTokenProvider->Token()).CancelGetInterface(); |
337 { |
|
338 if (iTokenProvider) |
|
339 (iTokenProvider->Token()).CancelGetInterface(); |
|
340 } |
323 break; |
341 break; |
324 |
342 |
325 case EGetCiphers: |
343 case EGetCiphers: |
326 MTLSTokenProvider* provider = static_cast<MTLSTokenProvider*>(iTokenInterface); |
344 if (iTokenInterface) |
327 provider->CancelCryptoCapabilities(); |
345 { |
|
346 MTLSTokenProvider* provider = static_cast<MTLSTokenProvider*>(iTokenInterface); |
|
347 provider->CancelCryptoCapabilities(); |
|
348 } |
328 break; |
349 break; |
329 |
350 |
330 } |
351 } |
331 iCurrentState=ENullState; |
352 iCurrentState=ENullState; |
332 User::RequestComplete(iOriginalRequestStatus, KErrCancel); |
353 User::RequestComplete(iOriginalRequestStatus, KErrCancel); |
333 return; |
354 return; |
334 } |
355 } |
335 |
356 |
336 CTlsBrowseToken::~CTlsBrowseToken() |
357 CTlsBrowseToken::~CTlsBrowseToken() |
337 { |
358 { |
338 if(iPtrTokenType) |
359 if (iPtrTokenType) |
339 { |
360 { |
340 iPtrTokenType->Release(); |
361 iPtrTokenType->Release(); |
341 } |
362 } |
342 |
363 |
343 iTokenTypeInfo.Close(); |
364 iTokenTypeInfo.Close(); |