|
1 /* |
|
2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 // INCLUDES |
|
21 #include "cmmpipecontrol.h" |
|
22 #include <ctsy/pluginapi/cmmdatapackage.h> |
|
23 #include "cmmpacketservicemesshandler.h" |
|
24 #include "cmmpacketmesshandlercontextlist.h" |
|
25 #include <tisi.h> |
|
26 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
27 #include <nsisi.h> |
|
28 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
29 #include "tsylogger.h" |
|
30 #include "osttracedefinitions.h" |
|
31 #ifdef OST_TRACE_COMPILER_IN_USE |
|
32 #include "cmmpipecontroltraces.h" |
|
33 #endif |
|
34 |
|
35 // EXTERNAL DATA STRUCTURES |
|
36 // None |
|
37 |
|
38 // EXTERNAL FUNCTION PROTOTYPES |
|
39 // None |
|
40 |
|
41 // CONSTANTS |
|
42 // None |
|
43 |
|
44 // MACROS |
|
45 // None |
|
46 |
|
47 // LOCAL CONSTANTS AND MACROS |
|
48 // None |
|
49 |
|
50 // MODULE DATA STRUCTURES |
|
51 // None |
|
52 |
|
53 // LOCAL FUNCTION PROTOTYPES |
|
54 // None |
|
55 |
|
56 // ==================== LOCAL FUNCTIONS ======================================= |
|
57 |
|
58 // None |
|
59 |
|
60 // ================= MEMBER FUNCTIONS ========================================= |
|
61 |
|
62 // ---------------------------------------------------------------------------- |
|
63 // CMmPipeControl::CMmPipeControl |
|
64 // C++ default constructor can NOT contain any code, that |
|
65 // might leave. |
|
66 // ---------------------------------------------------------------------------- |
|
67 // |
|
68 CMmPipeControl::CMmPipeControl() |
|
69 { |
|
70 |
|
71 TFLOGSTRING("TSY: CMmPipeControl::CMmPipeControl"); |
|
72 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_CMMPIPECONTROL, "CMmPipeControl::CMmPipeControl" ); |
|
73 } |
|
74 |
|
75 // ----------------------------------------------------------------------------- |
|
76 // CMmPipeControl::~CMmPipeControl |
|
77 // Destructor, deletes all allocated resources. |
|
78 // ----------------------------------------------------------------------------- |
|
79 // |
|
80 CMmPipeControl::~CMmPipeControl() |
|
81 { |
|
82 |
|
83 TFLOGSTRING("TSY: CMmPipeControl::~CMmPipeControl"); |
|
84 OstTrace0( TRACE_NORMAL, DUP1_CMMPIPECONTROL_CMMPIPECONTROL, "CMmPipeControl::~CMmPipeControl" ); |
|
85 } |
|
86 |
|
87 // ---------------------------------------------------------------------------- |
|
88 // CMmPipeControl::NewL |
|
89 // Two-phased constructor. |
|
90 // ---------------------------------------------------------------------------- |
|
91 // |
|
92 CMmPipeControl* CMmPipeControl::NewL( |
|
93 CMmPhoNetSender* aPhoNetSender, |
|
94 CMmPhoNetReceiver* aPhoNetReceiver, |
|
95 CMmPacketContextMessHandler* aMmPacketContextMessHandler, |
|
96 CMmPacketContextMesshandlerList* aMmPacketContextMesshandlerList) |
|
97 { |
|
98 |
|
99 TFLOGSTRING("TSY: CMmPipeControl::NewL"); |
|
100 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_NEWL, "CMmPipeControl::NewL" ); |
|
101 |
|
102 CMmPipeControl* mmPipeControl = new ( ELeave ) CMmPipeControl(); |
|
103 |
|
104 CleanupStack::PushL( mmPipeControl ); |
|
105 |
|
106 mmPipeControl->iPhoNetSender = aPhoNetSender; |
|
107 mmPipeControl->iContextMessHandler = aMmPacketContextMessHandler; |
|
108 mmPipeControl->iContextList = aMmPacketContextMesshandlerList; |
|
109 |
|
110 mmPipeControl->ConstructL(); |
|
111 |
|
112 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_CREATE_RESP ); |
|
113 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_ENABLE_RESP ); |
|
114 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_RESET_RESP ); |
|
115 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_REMOVE_RESP ); |
|
116 |
|
117 #ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS |
|
118 |
|
119 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_CONNECT_REQ ); |
|
120 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_DISCONNECT_REQ ); |
|
121 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_RESET_REQ ); |
|
122 aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_ENABLE_REQ ); |
|
123 |
|
124 #endif //DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS |
|
125 |
|
126 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
127 aPhoNetReceiver-> |
|
128 RegisterL( mmPipeControl, PN_NAMESERVICE, PNS_NAME_QUERY_RESP ); |
|
129 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
130 |
|
131 CleanupStack::Pop( mmPipeControl ); |
|
132 |
|
133 return mmPipeControl; |
|
134 } |
|
135 |
|
136 // ---------------------------------------------------------------------------- |
|
137 // CMmPipeControl::ConstructL |
|
138 // Symbian 2nd phase constructor can leave. |
|
139 // ---------------------------------------------------------------------------- |
|
140 // |
|
141 void CMmPipeControl::ConstructL() |
|
142 { |
|
143 |
|
144 TFLOGSTRING("TSY: CMmPipeControl::ConstructL"); |
|
145 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_CONSTRUCTL, "CMmPipeControl::ConstructL" ); |
|
146 |
|
147 iSecondPepDeviceId = KSecondPepDevice; // Default Device Id of second PEP |
|
148 iSecondPepObjectId = KSecondPepObject; // Default Object Id of second PEP |
|
149 |
|
150 InitLists(); |
|
151 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
152 PnsNameQueryReq(); |
|
153 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
154 } |
|
155 |
|
156 // ----------------------------------------------------------------------------- |
|
157 // CMmPipeControl::ReceiveMessageL |
|
158 // Entry point for messages received from Domestic OS. |
|
159 // Switches the message to the correct method. |
|
160 // ----------------------------------------------------------------------------- |
|
161 // |
|
162 void CMmPipeControl::ReceiveMessageL( const TIsiReceiveC& aIsiMessage ) |
|
163 { |
|
164 TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) ); |
|
165 TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
|
166 |
|
167 TFLOGSTRING3("TSY: CMmPipeControl::ReceiveMessageL - resource: %d, msgId: %d", resource, messageId); |
|
168 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;resource=%d;messageId=%d", resource, messageId ); |
|
169 |
|
170 switch ( resource ) |
|
171 { |
|
172 case PN_PIPE: |
|
173 { |
|
174 switch( messageId ) |
|
175 { |
|
176 case PNS_PIPE_CREATE_RESP: |
|
177 { |
|
178 PnsPipeCreateResp( aIsiMessage ); |
|
179 break; |
|
180 } |
|
181 case PNS_PIPE_ENABLE_RESP: |
|
182 { |
|
183 PnsPipeEnableResp( aIsiMessage ); |
|
184 break; |
|
185 } |
|
186 case PNS_PIPE_RESET_RESP: |
|
187 { |
|
188 PnsPipeResetResp( aIsiMessage ); |
|
189 break; |
|
190 } |
|
191 case PNS_PIPE_REMOVE_RESP: |
|
192 { |
|
193 PnsPipeRemoveResp( aIsiMessage ); |
|
194 break; |
|
195 } |
|
196 |
|
197 #ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS |
|
198 case PNS_PEP_CONNECT_REQ: |
|
199 { |
|
200 PnsPepConnectReq( aIsiMessage ); |
|
201 break; |
|
202 } |
|
203 case PNS_PEP_DISCONNECT_REQ: |
|
204 { |
|
205 PnsPepDisconnectReq( aIsiMessage ); |
|
206 break; |
|
207 } |
|
208 case PNS_PEP_RESET_REQ: |
|
209 { |
|
210 PnsPepResetReq( aIsiMessage ); |
|
211 break; |
|
212 } |
|
213 case PNS_PEP_ENABLE_REQ: |
|
214 { |
|
215 PnsPepEnableReq( aIsiMessage ); |
|
216 break; |
|
217 } |
|
218 #endif // DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS |
|
219 |
|
220 default: |
|
221 { |
|
222 |
|
223 TFLOGSTRING2("TSY: CMmPipeControl::ReceiveMessageL - PN_PIPE - unknown msgId: %d", messageId); |
|
224 OstTrace1( TRACE_NORMAL, DUP1_CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;unknown messageId=%d", messageId ); |
|
225 break; |
|
226 } |
|
227 } |
|
228 break; |
|
229 } |
|
230 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
231 case PN_NAMESERVICE: |
|
232 { |
|
233 switch( messageId ) |
|
234 { |
|
235 case PNS_NAME_QUERY_RESP: |
|
236 { |
|
237 PnsNameQueryResp( aIsiMessage ); |
|
238 break; |
|
239 } |
|
240 default: |
|
241 { |
|
242 |
|
243 TFLOGSTRING2("TSY: CMmPipeControl::ReceiveMessageL - PN_NAMESERVICE - unknown msgId: %d", messageId); |
|
244 OstTrace1( TRACE_NORMAL, DUP2_CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;unknown messageId=%d", messageId ); |
|
245 break; |
|
246 } |
|
247 } |
|
248 break; |
|
249 } |
|
250 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
251 default: |
|
252 { |
|
253 |
|
254 TFLOGSTRING2("TSY: CMmPipeControl::ReceiveMessageL - unknown resource: %d", resource); |
|
255 OstTrace1( TRACE_NORMAL, DUP3_CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;unknown resource=%d", resource ); |
|
256 break; // server not known |
|
257 } |
|
258 } // end of switch |
|
259 } |
|
260 |
|
261 // ---------------------------------------------------------------------------- |
|
262 // CMmPipeControl::InitLists |
|
263 // Initialize used lists and attributes. |
|
264 // ---------------------------------------------------------------------------- |
|
265 // |
|
266 void CMmPipeControl::InitLists() |
|
267 { |
|
268 |
|
269 TFLOGSTRING("TSY: CMmPipeControl::InitLists"); |
|
270 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_INITLISTS, "CMmPipeControl::InitLists" ); |
|
271 |
|
272 // Find PipeHandle id from Pipe Operation by PipeHandle List |
|
273 for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ ) |
|
274 { |
|
275 // Initialize pipe operation array |
|
276 iPipeOperationArray[i].iPipeHandle = KInvalidPipeHandle; |
|
277 |
|
278 // Use zero as default value |
|
279 iPipeOperationArray[i].iTransId = 0; |
|
280 } |
|
281 } |
|
282 |
|
283 // ---------------------------------------------------------------------------- |
|
284 // CMmPipeControl::SetPipeHandle |
|
285 // Set Pipe Handle value to the list. |
|
286 // ---------------------------------------------------------------------------- |
|
287 // |
|
288 void CMmPipeControl::SetPipeHandle( |
|
289 const TUint8 aPipeHandle ) |
|
290 { |
|
291 |
|
292 TFLOGSTRING("TSY: CMmPipeControl::SetPipeHandle"); |
|
293 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_SETPIPEHANDLE, "CMmPipeControl::SetPipeHandle" ); |
|
294 |
|
295 // Find PipeHandle id from Pipe Operation by PipeHandle List |
|
296 for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ ) |
|
297 { |
|
298 // If KInvalidPipeHandle is same as in iPipeOperationArray list |
|
299 if ( KInvalidPipeHandle == iPipeOperationArray[i].iPipeHandle ) |
|
300 { |
|
301 // Set pipehandle to the pipe operation list |
|
302 iPipeOperationArray[i].iPipeHandle = aPipeHandle; |
|
303 // Pipe handle found, break |
|
304 i = KMmMaxNumberOfPipeHandles; |
|
305 } |
|
306 //no else |
|
307 } |
|
308 } |
|
309 |
|
310 // ---------------------------------------------------------------------------- |
|
311 // CMmPipeControl::SetTransactionId |
|
312 // If pipehandle found set transaction id value to the list. |
|
313 // ---------------------------------------------------------------------------- |
|
314 // |
|
315 void CMmPipeControl::SetTransactionId( |
|
316 const TUint8 aPipeHandle, |
|
317 const TUint8 aTransId ) |
|
318 { |
|
319 |
|
320 TFLOGSTRING("TSY: CMmPipeControl::SetTransactionId"); |
|
321 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_SETTRANSACTIONID, "CMmPipeControl::SetTransactionId" ); |
|
322 |
|
323 // Find PipeHandle id from Pipe Operation by PipeHandle List |
|
324 for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ ) |
|
325 { |
|
326 // If aPipeHandle is same as in iPipeOperationArray list |
|
327 if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle ) |
|
328 { |
|
329 // Set aTransId to the pipe operation list |
|
330 iPipeOperationArray[i].iTransId = aTransId; |
|
331 // Pipe handle found, break |
|
332 i = KMmMaxNumberOfPipeHandles; |
|
333 } |
|
334 //no else |
|
335 } |
|
336 } |
|
337 |
|
338 // ---------------------------------------------------------------------------- |
|
339 // CMmPipeControl::TransactionId |
|
340 // Returns Transaction id by PipeHandle. |
|
341 // ---------------------------------------------------------------------------- |
|
342 // |
|
343 TUint8 CMmPipeControl::TransactionId( |
|
344 const TUint8 aPipeHandle ) const |
|
345 { |
|
346 |
|
347 TFLOGSTRING("TSY: CMmPipeControl::TransactionId"); |
|
348 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_TRANSACTIONID, "CMmPipeControl::TransactionId" ); |
|
349 |
|
350 TUint8 transId( 0 ); |
|
351 |
|
352 // Find PipeHandle from Pipe Operation by PipeHandle List |
|
353 for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ ) |
|
354 { |
|
355 // If aPipeHandle is same as in iPipeOperationArray list |
|
356 if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle ) |
|
357 { |
|
358 // Get transaction id from the PipeOperationArray list |
|
359 transId = iPipeOperationArray[i].iTransId; |
|
360 // Pipe handle found, break |
|
361 i = KMmMaxNumberOfPipeHandles; |
|
362 } |
|
363 //no else |
|
364 } |
|
365 // Return Transaction id |
|
366 return transId; |
|
367 } |
|
368 |
|
369 // ---------------------------------------------------------------------------- |
|
370 // CMmPipeControl::ResetPipeHandle |
|
371 // Remove Pipehandle and Transaction id from the list. |
|
372 // ---------------------------------------------------------------------------- |
|
373 // |
|
374 void CMmPipeControl::ResetPipeHandle( |
|
375 const TUint8 aPipeHandle ) |
|
376 { |
|
377 |
|
378 TFLOGSTRING("TSY: CMmPipeControl::ResetPipeHandle"); |
|
379 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_RESETPIPEHANDLE, "CMmPipeControl::ResetPipeHandle" ); |
|
380 |
|
381 // Find PipeHandle id from Pipe Operation by PipeHandle List |
|
382 for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ ) |
|
383 { |
|
384 // If aPipeHandle is same as in iPipeOperationArray list |
|
385 if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle ) |
|
386 { |
|
387 // Initialize Pipehandle to KInvalidPipeHandle |
|
388 iPipeOperationArray[i].iPipeHandle = KInvalidPipeHandle; |
|
389 // initialize TransactionId to zero |
|
390 iPipeOperationArray[i].iTransId = 0; |
|
391 // Pipe handle found, break |
|
392 i = KMmMaxNumberOfPipeHandles; |
|
393 } |
|
394 //no else |
|
395 } |
|
396 } |
|
397 |
|
398 // ---------------------------------------------------------------------------- |
|
399 // CMmPipeControl::IsOperationCalled |
|
400 // Check if pipe operation for given pipe is outgoing |
|
401 // ---------------------------------------------------------------------------- |
|
402 // |
|
403 TBool CMmPipeControl::IsOperationCalled( |
|
404 const TUint8 aPipeHandle ) const |
|
405 { |
|
406 |
|
407 TFLOGSTRING("TSY: CMmPipeControl::IsOperationCalled"); |
|
408 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_ISOPERATIONCALLED, "CMmPipeControl::IsOperationCalled" ); |
|
409 |
|
410 TBool ret( EFalse); |
|
411 |
|
412 // Find PipeHandle id from PipeHandle List |
|
413 for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ ) |
|
414 { |
|
415 if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle ) |
|
416 { |
|
417 // PipeHandle id found, return true |
|
418 ret = ETrue; |
|
419 } |
|
420 } |
|
421 // PipeHandle id not found, return false |
|
422 return ret; |
|
423 } |
|
424 |
|
425 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
426 // ---------------------------------------------------------------------------- |
|
427 // CMmPipeControl::PnsNameQueryReq |
|
428 // Construct a PNS_NAME_QUERY_REQ ISI-message |
|
429 // ---------------------------------------------------------------------------- |
|
430 // |
|
431 TInt CMmPipeControl::PnsNameQueryReq() const |
|
432 { |
|
433 |
|
434 TFLOGSTRING("TSY: CMmPipeControl::PnsNameQueryReq"); |
|
435 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSNAMEQUERYREQ, "CMmPipeControl::PnsNameQueryReq" ); |
|
436 |
|
437 // create buffer for isi msg data |
|
438 TBuf8<SIZE_PNS_NAME_QUERY_REQ> data; |
|
439 // set message data |
|
440 data.Append( KGpdsPadding ); // Padding byte |
|
441 data.Append( KGpdsPadding ); // Padding byte |
|
442 data.Append( KGpdsPadding ); // Padding byte |
|
443 data.Append( KGpdsPadding ); // Padding byte |
|
444 data.Append( KGpdsPadding ); // Padding byte |
|
445 data.Append( PN_GPRS ); // Gprs server |
|
446 data.Append( KGpdsPadding ); // Padding byte |
|
447 data.Append( KGpdsPadding ); // Padding byte |
|
448 data.Append( KGpdsPadding ); // Padding byte |
|
449 data.Append( PN_GPRS ); // Gprs server |
|
450 |
|
451 // set dummyTransactionId value to 0x0F |
|
452 TUint8 dummyTransactionId( KDummyTrId ); |
|
453 |
|
454 // Sending message to phonet |
|
455 return iPhoNetSender->Send( |
|
456 PN_NAMESERVICE, dummyTransactionId, PNS_NAME_QUERY_REQ, data ); |
|
457 } |
|
458 |
|
459 // ---------------------------------------------------------------------------- |
|
460 // CMmPipeControl::PnsNameQueryResp |
|
461 // Breaks a PNS_NAME_QUERY_RESP ISI-message |
|
462 // ---------------------------------------------------------------------------- |
|
463 // |
|
464 void CMmPipeControl::PnsNameQueryResp( |
|
465 const TIsiReceiveC& aIsiMessage ) |
|
466 { |
|
467 |
|
468 TUint16 matchesInThisMsg( aIsiMessage.Get16bit( |
|
469 ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_MATCHESINMSG ) ); |
|
470 |
|
471 TFLOGSTRING2("TSY: CMmPipeControl::PnsNameQueryResp - matches in this msg: %d", matchesInThisMsg); |
|
472 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSNAMEQUERYRESP, "CMmPipeControl::PnsNameQueryResp;matchesInThisMsg=%hu", matchesInThisMsg ); |
|
473 |
|
474 if ( 0 < matchesInThisMsg ) |
|
475 { |
|
476 for ( TInt i = 0; i < matchesInThisMsg; i++ ) |
|
477 { |
|
478 // each match is represented as 8-byte record => |
|
479 // recordIndex = i * SIZE_PN_NAME_SRV_ITEM_STR |
|
480 // name is 4 bytes => |
|
481 // last byte index = PN_NAME_SRV_ITEM_STR_OFFSET_NAME + KLastByteIndex |
|
482 TInt recordIndex( i * SIZE_PN_NAME_SRV_ITEM_STR ); |
|
483 TUint8 name( aIsiMessage.Get8bit( |
|
484 ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL + |
|
485 recordIndex + ( PN_NAME_SRV_ITEM_STR_OFFSET_NAME + KLastByteIndex ) ) ); |
|
486 if ( PN_GPRS == name ) |
|
487 { |
|
488 // Get and store SecondPepDevice id and SecondPepObject id |
|
489 iSecondPepDeviceId = aIsiMessage.Get8bit( |
|
490 ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL + |
|
491 recordIndex + PN_NAME_SRV_ITEM_STR_OFFSET_DEV ); |
|
492 iSecondPepObjectId = aIsiMessage.Get8bit( |
|
493 ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL + |
|
494 recordIndex + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ ); |
|
495 // then find right server, stop finding |
|
496 i = matchesInThisMsg; |
|
497 |
|
498 TFLOGSTRING3("TSY: CMmPipeControl::PnsNameQueryResp. SecondPepDeviceId: %d SecondPepObjectId: %d", iSecondPepDeviceId, iSecondPepObjectId ); |
|
499 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSNAMEQUERYRESP, "CMmPipeControl::PnsNameQueryResp;iSecondPepDeviceId=%hhu;iSecondPepObjectId=%hhu", iSecondPepDeviceId, iSecondPepObjectId ); |
|
500 |
|
501 } |
|
502 //no else |
|
503 } |
|
504 } |
|
505 //no else |
|
506 } |
|
507 |
|
508 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
509 |
|
510 // ---------------------------------------------------------------------------- |
|
511 // CMmPipeControl::PnsPipeCreateReq |
|
512 // Construct a PNS_PIPE_CREATE_REQ ISI-message |
|
513 // ---------------------------------------------------------------------------- |
|
514 // |
|
515 TInt CMmPipeControl::PnsPipeCreateReq( |
|
516 const TUint8 aTransId, |
|
517 const TUint8 aPipeState, |
|
518 const TUint8 aFirstPepObject ) const |
|
519 { |
|
520 |
|
521 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeCreateReq. TransactionId: %d", aTransId ); |
|
522 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPECREATEREQ, "CMmPipeControl::PnsPipeCreateReq;aTransId=%hhu", aTransId ); |
|
523 |
|
524 // create buffer for isi msg data |
|
525 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
526 TBuf8<SIZE_PNS_PIPE_CREATE_REQ> data; |
|
527 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
528 TBuf8<SIZE_CM_PIPE_CREATE_REQ> data; |
|
529 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
530 // set message data |
|
531 data.Append( aPipeState ); |
|
532 data.Append( KGpdsPadding ); |
|
533 data.Append( KFirstPepDevice ); |
|
534 data.Append( aFirstPepObject ); |
|
535 data.Append( KFirstPepType ); |
|
536 data.Append( KGpdsPadding ); |
|
537 data.Append( iSecondPepDeviceId ); |
|
538 data.Append( iSecondPepObjectId ); |
|
539 data.Append( KSecondPepType ); |
|
540 data.Append( KGpdsPadding ); |
|
541 |
|
542 // Sending message to phonet |
|
543 return iPhoNetSender->Send( |
|
544 PN_PIPE, aTransId, PNS_PIPE_CREATE_REQ, data ); |
|
545 } |
|
546 |
|
547 // ---------------------------------------------------------------------------- |
|
548 // CMmPipeControl::PnsPipeCreateResp |
|
549 // Breaks a PNS_PIPE_CREATE_RESP ISI-message. |
|
550 // ---------------------------------------------------------------------------- |
|
551 // |
|
552 void CMmPipeControl::PnsPipeCreateResp( |
|
553 const TIsiReceiveC& aIsiMessage ) |
|
554 { |
|
555 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeCreateResp"); |
|
556 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPECREATERESP, "CMmPipeControl::PnsPipeCreateResp" ); |
|
557 |
|
558 // Get transaction Id |
|
559 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
560 |
|
561 TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId ); |
|
562 |
|
563 if ( KErrNone == ret ) |
|
564 { |
|
565 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
566 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
567 ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE ) ); |
|
568 TUint8 errorCode( aIsiMessage.Get8bit( |
|
569 ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) ); |
|
570 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
571 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
572 ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE ) ); |
|
573 TUint8 errorCode( aIsiMessage.Get8bit( |
|
574 ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) ); |
|
575 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
576 |
|
577 TFLOGSTRING4("TSY: CMmPipeControl::PnsPipeCreateResp. TransactionId: %d, PipeHandle: %d, error code: %d", transId, pipeHandle, errorCode ); |
|
578 OstTraceExt3( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPECREATERESP, "CMmPipeControl::PnsPipeCreateResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, pipeHandle, errorCode ); |
|
579 |
|
580 // Check PIPE Error Code |
|
581 if ( PN_PIPE_ERR_GENERAL == errorCode ) |
|
582 { |
|
583 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
584 TUint8 pep1ErrorCode( aIsiMessage.Get8bit( |
|
585 ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PEP1ERRORCODE ) ); |
|
586 TUint8 pep2ErrorCode( aIsiMessage.Get8bit( |
|
587 ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PEP2ERRORCODE ) ); |
|
588 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
589 TUint8 pep1ErrorCode( aIsiMessage.Get8bit( |
|
590 ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PEP1ERRORCODE ) ); |
|
591 TUint8 pep2ErrorCode( aIsiMessage.Get8bit( |
|
592 ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PEP2ERRORCODE ) ); |
|
593 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
594 // Check PEP Error Codes |
|
595 if ( pep1ErrorCode == PN_PIPE_ERR_PEP_IN_USE || |
|
596 pep1ErrorCode == PN_PIPE_ERR_ALL_PIPES_IN_USE || |
|
597 pep2ErrorCode == PN_PIPE_ERR_PEP_IN_USE || |
|
598 pep2ErrorCode == PN_PIPE_ERR_ALL_PIPES_IN_USE ) |
|
599 { |
|
600 |
|
601 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeCreateResp. ErrorCode changed to PN_PIPE_ERR_ALL_PIPES_IN_USE" ); |
|
602 OstTrace0( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPIPECREATERESP, "CMmPipeControl::PnsPipeCreateResp, ErrorCode changed to PN_PIPE_ERR_ALL_PIPES_IN_USE" ); |
|
603 // PEP can't create more pipes (all pipes in use), |
|
604 // error value is updated here |
|
605 errorCode = PN_PIPE_ERR_ALL_PIPES_IN_USE; |
|
606 } |
|
607 //no else |
|
608 } |
|
609 //no else |
|
610 |
|
611 iContextMessHandler->CompletePipeOperation( |
|
612 PNS_PIPE_CREATE_RESP, |
|
613 transId, |
|
614 pipeHandle, |
|
615 errorCode ); |
|
616 } |
|
617 //no else |
|
618 } |
|
619 |
|
620 // ---------------------------------------------------------------------------- |
|
621 // CMmPipeControl::PnsPipeEnableReq |
|
622 // Construct a PNS_PIPE_ENABLE_REQ ISI-message. |
|
623 // ---------------------------------------------------------------------------- |
|
624 // |
|
625 TInt CMmPipeControl::PnsPipeEnableReq( |
|
626 const CMmDataPackage& aPackage ) const |
|
627 { |
|
628 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeEnableReq"); |
|
629 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEENABLEREQ, "CMmPipeControl::PnsPipeEnableReq" ); |
|
630 |
|
631 TInfoName* contextName = NULL; |
|
632 aPackage.UnPackData( &contextName ); |
|
633 |
|
634 TInt ret( KErrServerBusy ); |
|
635 |
|
636 if( NULL != contextName ) |
|
637 { |
|
638 |
|
639 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeEnableReq - context name: %S", contextName); |
|
640 OstTraceExt1( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPEENABLEREQ, "CMmPipeControl::PnsPipeEnableReq;contextName=%S", *contextName ); |
|
641 |
|
642 TUint8 pipehandle( iContextList->PipeHandleByContextName(contextName) ); |
|
643 |
|
644 TUint8 traId( iContextList->ProxyIdByContextName( contextName ) ); |
|
645 |
|
646 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeEnableReq. PipeHandle: %d", pipehandle ); |
|
647 OstTraceExt1( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPIPEENABLEREQ, "CMmPipeControl::PnsPipeEnableReq;pipehandle=%hhu", pipehandle ); |
|
648 |
|
649 // Check if Pipe operation is not outstanding. IsOperationCalled is EFalse |
|
650 if ( !IsOperationCalled( pipehandle ) ) |
|
651 { |
|
652 // Create buffer for isi msg data |
|
653 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
654 TBuf8<SIZE_PNS_PIPE_ENABLE_REQ> data; |
|
655 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
656 TBuf8<SIZE_CM_PIPE_ENABLE_REQ> data; |
|
657 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
658 data.Append( pipehandle ); |
|
659 data.Append( KGpdsPadding ); |
|
660 |
|
661 // Send Isi message via phonet |
|
662 ret = iPhoNetSender->Send( |
|
663 PN_PIPE, traId, PNS_PIPE_ENABLE_REQ, data ); |
|
664 } |
|
665 //no else |
|
666 } |
|
667 //no else |
|
668 |
|
669 return ret; |
|
670 } |
|
671 |
|
672 // ---------------------------------------------------------------------------- |
|
673 // CMmPipeControl::PnsPipeEnableResp |
|
674 // Breaks a PNS_PIPE_ENABLE_RESP ISI-message. |
|
675 // ---------------------------------------------------------------------------- |
|
676 // |
|
677 void CMmPipeControl::PnsPipeEnableResp( |
|
678 const TIsiReceiveC& aIsiMessage ) |
|
679 { |
|
680 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeEnableResp"); |
|
681 OstTrace0( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPEENABLERESP, "CMmPipeControl::PnsPipeEnableResp" ); |
|
682 // Get Transaction Id from the ISI message |
|
683 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
684 |
|
685 // pipe control handles only messages for NIF pipes |
|
686 // TODO: See TelAd-110 |
|
687 TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId ); |
|
688 |
|
689 if ( KErrNone == ret ) |
|
690 { |
|
691 // Get Pipehandle from the ISI message |
|
692 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
693 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
694 ISI_HEADER_SIZE + PNS_PIPE_ENABLE_RESP_OFFSET_PIPEHANDLE ) ); |
|
695 // Get Errorcode from the ISI message |
|
696 TUint8 errorCode( aIsiMessage.Get8bit( |
|
697 ISI_HEADER_SIZE + PNS_PIPE_ENABLE_RESP_OFFSET_ERRORCODE ) ); |
|
698 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
699 ISI_HEADER_SIZE + CM_PIPE_ENABLE_RESP_OFFSET_PIPEHANDLE ) ); |
|
700 // Get Errorcode from the ISI message |
|
701 TUint8 errorCode( aIsiMessage.Get8bit( |
|
702 ISI_HEADER_SIZE + CM_PIPE_ENABLE_RESP_OFFSET_ERRORCODE ) ); |
|
703 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
704 |
|
705 TFLOGSTRING4("TSY: CMmPipeControl::PnsPipeEnableResp - traId: %d, PipeHandle: %d, ErrorCode: %d", transId, pipeHandle, errorCode ); |
|
706 OstTraceExt3( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEENABLERESP, "CMmPipeControl::PnsPipeEnableResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, pipeHandle, errorCode ); |
|
707 |
|
708 iContextMessHandler->CompletePipeOperation( |
|
709 PNS_PIPE_ENABLE_RESP, |
|
710 transId, |
|
711 pipeHandle, |
|
712 errorCode ); |
|
713 } |
|
714 // no else |
|
715 } |
|
716 |
|
717 // ---------------------------------------------------------------------------- |
|
718 // CMmPipeControl::PnsPipeResetReq |
|
719 // Construct a PNS_PIPE_RESET_REQ ISI-message. |
|
720 // ---------------------------------------------------------------------------- |
|
721 // |
|
722 TInt CMmPipeControl::PnsPipeResetReq( |
|
723 const TUint8 aTransId, |
|
724 const TUint8 aPipeHandle, |
|
725 const TUint8 aStateAfterReset ) |
|
726 { |
|
727 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeResetReq. PipeHandle: %d", aPipeHandle ); |
|
728 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPERESETREQ, "CMmPipeControl::PnsPipeResetReq;aPipeHandle=%hhu", aPipeHandle ); |
|
729 |
|
730 // Set ret to KErrServerBusy |
|
731 TInt ret( KErrServerBusy ); |
|
732 |
|
733 // Check if Pipe operation is not outstanding. IsOperationCalled is EFalse |
|
734 if ( !IsOperationCalled( aPipeHandle ) ) |
|
735 { |
|
736 // Create buffer for isi msg data |
|
737 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
738 TBuf8<SIZE_PNS_PIPE_RESET_REQ> data; |
|
739 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
740 TBuf8<SIZE_CM_PIPE_RESET_REQ> data; |
|
741 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
742 data.Append( aPipeHandle ); |
|
743 data.Append( aStateAfterReset ); |
|
744 |
|
745 // Send Isi message via phonet |
|
746 ret = iPhoNetSender->Send( |
|
747 PN_PIPE, aTransId, PNS_PIPE_RESET_REQ, data ); |
|
748 |
|
749 if ( KErrNone == ret ) |
|
750 { |
|
751 SetPipeHandle( aPipeHandle ); |
|
752 } |
|
753 //no else |
|
754 } |
|
755 //no else |
|
756 |
|
757 return ret; |
|
758 } |
|
759 |
|
760 // ---------------------------------------------------------------------------- |
|
761 // CMmPipeControl::PnsPipeResetResp |
|
762 // Breaks a PNS_PIPE_RESET_RESP ISI-message. |
|
763 // ---------------------------------------------------------------------------- |
|
764 // |
|
765 void CMmPipeControl::PnsPipeResetResp( |
|
766 const TIsiReceiveC& aIsiMessage ) |
|
767 { |
|
768 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeResetResp"); |
|
769 OstTrace0( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPIPERESETRESP, "CMmPipeControl::PnsPipeResetResp" ); |
|
770 // Get Transaction Id from the ISI message |
|
771 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
772 |
|
773 // pipe control handles only messages for NIF pipes |
|
774 // TODO: See TelAd-110 |
|
775 TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId ); |
|
776 |
|
777 if ( KErrNone == ret ) |
|
778 { |
|
779 // Get Pipehandle from the ISI message |
|
780 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
781 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
782 ISI_HEADER_SIZE + PNS_PIPE_RESET_RESP_OFFSET_PIPEHANDLE ) ); |
|
783 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
784 ISI_HEADER_SIZE + CM_PIPE_RESET_RESP_OFFSET_PIPEHANDLE ) ); |
|
785 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
786 |
|
787 TFLOGSTRING3("TSY: CMmPipeControl::PnsPipeResetResp - traId: %d, pipe handle: %d", transId, pipeHandle); |
|
788 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPERESETRESP, "CMmPipeControl::PnsPipeResetResp;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle ); |
|
789 |
|
790 // Call TransactionId |
|
791 TUint8 removeTransId( TransactionId( pipeHandle ) ); |
|
792 // Call ResetPipeHandle -method from CMmPipeControl |
|
793 ResetPipeHandle( pipeHandle ); |
|
794 |
|
795 if ( KUnknownTransID != removeTransId ) |
|
796 { |
|
797 // Context has called the PnsPipeRemoveReq that was buffered |
|
798 PnsPipeRemoveReq( removeTransId, pipeHandle ); |
|
799 } |
|
800 //no else |
|
801 |
|
802 // Check req is valid by Transaction id |
|
803 TInt ret( iContextList->CheckAndResetPipeResetTraId( transId ) ); |
|
804 |
|
805 if ( KErrNone == ret ) |
|
806 { |
|
807 TUint8 errorCode( aIsiMessage.Get8bit( |
|
808 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
809 ISI_HEADER_SIZE + PNS_PIPE_RESET_RESP_OFFSET_ERRORCODE ) ); |
|
810 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
811 ISI_HEADER_SIZE + CM_PIPE_RESET_RESP_OFFSET_ERRORCODE ) ); |
|
812 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
813 |
|
814 TFLOGSTRING3("TSY: CMmPipeControl::PnsPipeResetResp. PipeHandle: %d ErrorCode: %d", pipeHandle, errorCode ); |
|
815 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPERESETRESP, "CMmPipeControl::PnsPipeResetResp;pipeHandle=%hhu;errorCode=%hhu", pipeHandle, errorCode ); |
|
816 iContextMessHandler->CompletePipeOperation( |
|
817 PNS_PIPE_RESET_RESP, |
|
818 transId, |
|
819 pipeHandle, |
|
820 errorCode ); |
|
821 } |
|
822 //no else |
|
823 } |
|
824 // no else |
|
825 } |
|
826 |
|
827 // ---------------------------------------------------------------------------- |
|
828 // CMmPipeControl::PnsPipeRemoveReq |
|
829 // Construct a PNS_PIPE_REMOVE_REQ ISI-message. |
|
830 // ---------------------------------------------------------------------------- |
|
831 // |
|
832 TInt CMmPipeControl::PnsPipeRemoveReq( |
|
833 const TUint8 aTransId, |
|
834 const TUint8 aPipeHandle ) |
|
835 { |
|
836 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeRemoveReq. PipeHandle: %d", aPipeHandle ); |
|
837 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEREMOVEREQ, "CMmPipeControl::PnsPipeRemoveReq;aPipeHandle=%hhu", aPipeHandle ); |
|
838 |
|
839 // Set ret to KErrNone |
|
840 TInt ret( KErrNone ); |
|
841 |
|
842 // Check if Pipe operation is not outstanding. IsOperationCalled is EFalse |
|
843 if ( !IsOperationCalled( aPipeHandle ) ) |
|
844 { |
|
845 // Create buffer for isi msg data |
|
846 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
847 TBuf8<SIZE_PNS_PIPE_REMOVE_REQ> data; |
|
848 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
849 TBuf8<SIZE_CM_PIPE_REMOVE_REQ> data; |
|
850 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
851 data.Append( aPipeHandle ); |
|
852 data.Append( KGpdsPadding ); |
|
853 |
|
854 // Send Isi message via phonet |
|
855 ret = iPhoNetSender->Send( |
|
856 PN_PIPE, |
|
857 aTransId, |
|
858 PNS_PIPE_REMOVE_REQ, |
|
859 data ); |
|
860 |
|
861 if ( KErrNone == ret ) |
|
862 { |
|
863 SetPipeHandle( aPipeHandle ); |
|
864 } |
|
865 //no else |
|
866 } |
|
867 else |
|
868 { |
|
869 // Remove req is buffered by transaction id |
|
870 SetTransactionId( aPipeHandle, aTransId ); |
|
871 } |
|
872 |
|
873 return ret; |
|
874 } |
|
875 |
|
876 // ---------------------------------------------------------------------------- |
|
877 // CMmPipeControl::PnsPipeRemoveResp |
|
878 // Breaks a PNS_PIPE_REMOVE_RESP ISI-message. |
|
879 // ---------------------------------------------------------------------------- |
|
880 // |
|
881 void CMmPipeControl::PnsPipeRemoveResp( |
|
882 const TIsiReceiveC& aIsiMessage ) |
|
883 { |
|
884 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeRemoveResp"); |
|
885 OstTrace0( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPEREMOVERESP, "CMmPipeControl::PnsPipeRemoveResp" ); |
|
886 // Get Transaction Id from the ISI message |
|
887 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
888 |
|
889 // pipe control handles only messages for NIF pipes |
|
890 // TODO: See TelAd-110 |
|
891 TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId ); |
|
892 |
|
893 if ( KErrNone == ret ) |
|
894 { |
|
895 // Get Pipehandle from the ISI message |
|
896 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
897 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
898 ISI_HEADER_SIZE + PNS_PIPE_REMOVE_RESP_OFFSET_PIPEHANDLE ) ); |
|
899 // Get Errorcode from the ISI message |
|
900 TUint8 errorCode( aIsiMessage.Get8bit( |
|
901 ISI_HEADER_SIZE + PNS_PIPE_REMOVE_RESP_OFFSET_ERRORCODE ) ); |
|
902 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
903 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
904 ISI_HEADER_SIZE + CM_PIPE_REMOVE_RESP_OFFSET_PIPEHANDLE ) ); |
|
905 // Get Errorcode from the ISI message |
|
906 TUint8 errorCode( aIsiMessage.Get8bit( |
|
907 ISI_HEADER_SIZE + CM_PIPE_REMOVE_RESP_OFFSET_ERRORCODE ) ); |
|
908 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
909 |
|
910 TFLOGSTRING4("TSY: CMmPipeControl::PnsPipeRemoveResp - traId: %d, PipeHandle: %d, ErrorCode: %d", transId, pipeHandle, errorCode ); |
|
911 OstTraceExt3( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEREMOVERESP, "CMmPipeControl::PnsPipeRemoveResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, pipeHandle, errorCode ); |
|
912 |
|
913 // Call ResetPipeHandle -method from CMmPipeControl |
|
914 ResetPipeHandle( pipeHandle ); |
|
915 |
|
916 iContextMessHandler->CompletePipeOperation( |
|
917 PNS_PIPE_REMOVE_RESP, |
|
918 transId, |
|
919 pipeHandle, |
|
920 errorCode ); |
|
921 } |
|
922 // no else |
|
923 } |
|
924 |
|
925 #ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS |
|
926 // ---------------------------------------------------------------------------- |
|
927 // CMmPipeControl::PnsPepConnectReq |
|
928 // Breaks a PNS_PEP_CONNECT_REQ ISI-message. |
|
929 // ---------------------------------------------------------------------------- |
|
930 // |
|
931 void CMmPipeControl::PnsPepConnectReq( |
|
932 const TIsiReceiveC& aIsiMessage ) |
|
933 { |
|
934 |
|
935 TFLOGSTRING("TSY: CMmPipeControl::PnsPepConnectReq"); |
|
936 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPCONNECTREQ, "CMmPipeControl::PnsPepConnectReq" ); |
|
937 |
|
938 // Get Transaction Id from the ISI message |
|
939 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
940 // Get Pipehandle from the ISI message |
|
941 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
942 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
943 ISI_HEADER_SIZE + PNS_PEP_CONNECT_REQ_OFFSET_PIPEHANDLE ) ); |
|
944 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
945 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
946 ISI_HEADER_SIZE + CM_PEP_CONNECT_REQ_OFFSET_PIPEHANDLE ) ); |
|
947 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
948 |
|
949 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepConnectReq - traId: %d, PipeHandle: %d", transId, pipeHandle ); |
|
950 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPCONNECTREQ, "CMmPipeControl::PnsPepConnectReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle ); |
|
951 |
|
952 PnsPepConnectResp( transId, pipeHandle ); |
|
953 } |
|
954 |
|
955 // ---------------------------------------------------------------------------- |
|
956 // CMmPipeControl::PnsPepConnectResp |
|
957 // Construct a PNS_PEP_CONNECT_RESP ISI-message. |
|
958 // ---------------------------------------------------------------------------- |
|
959 // |
|
960 void CMmPipeControl::PnsPepConnectResp( |
|
961 const TUint8 aTransId, |
|
962 const TUint8 aPipeHandle ) |
|
963 { |
|
964 |
|
965 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepConnectResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle); |
|
966 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPCONNECTRESP, "CMmPipeControl::PnsPepConnectResp;aTransId=%hhu;aPipeHandle=%hhu", aTransId, aPipeHandle ); |
|
967 |
|
968 // Create buffer for isi msg data |
|
969 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
970 TBuf8<SIZE_PNS_PEP_CONNECT_RESP> data; |
|
971 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
972 TBuf8<SIZE_CM_PEP_CONNECT_RESP> data; |
|
973 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
974 // Set message data |
|
975 data.Append( aPipeHandle ); |
|
976 data.Append( PN_PIPE_NO_ERROR ); |
|
977 |
|
978 // Send Isi message via phonet |
|
979 TInt ret( iPhoNetSender->Send( |
|
980 PN_PIPE, |
|
981 aTransId, |
|
982 PNS_PEP_CONNECT_RESP, |
|
983 data ) ); |
|
984 |
|
985 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepConnectResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret ); |
|
986 |
|
987 OstTraceExt2( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPEPCONNECTRESP, "CMmPipeControl::PnsPepConnectResp;aPipeHandle=%hhu;RetFromPhonetSender=%d", aPipeHandle, ret ); |
|
988 } |
|
989 |
|
990 // ---------------------------------------------------------------------------- |
|
991 // CMmPipeControl::PnsPepDisconnectReq |
|
992 // Breaks a PNS_PEP_DISCONNECT_REQ ISI-message. |
|
993 // ---------------------------------------------------------------------------- |
|
994 // |
|
995 void CMmPipeControl::PnsPepDisconnectReq( |
|
996 const TIsiReceiveC& aIsiMessage ) |
|
997 { |
|
998 // Get Transaction Id from the ISI message |
|
999 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
1000 // Get Pipehandle from the ISI message |
|
1001 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
1002 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
1003 ISI_HEADER_SIZE + PNS_PEP_DISCONNECT_REQ_OFFSET_PIPEHANDLE ) ); |
|
1004 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1005 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
1006 ISI_HEADER_SIZE + CM_PEP_DISCONNECT_REQ_OFFSET_PIPEHANDLE ) ); |
|
1007 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1008 |
|
1009 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepDisconnectReq - traId: %d, PipeHandle: %d", transId, pipeHandle ); |
|
1010 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPDISCONNECTREQ, "CMmPipeControl::PnsPepDisconnectReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle ); |
|
1011 |
|
1012 PnsPepDisconnectResp( transId, pipeHandle ); |
|
1013 } |
|
1014 |
|
1015 // ---------------------------------------------------------------------------- |
|
1016 // CMmPipeControl::PnsPepDisconnectResp |
|
1017 // Construct a PNS_PEP_DISCONNECT_RESP ISI-message. |
|
1018 // ---------------------------------------------------------------------------- |
|
1019 // |
|
1020 void CMmPipeControl::PnsPepDisconnectResp( |
|
1021 const TUint8 aTransId, |
|
1022 const TUint8 aPipeHandle ) |
|
1023 { |
|
1024 |
|
1025 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepDisconnectResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle); |
|
1026 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPDISCONNECTRESP, "CMmPipeControl::PnsPepDisconnectResp;aTransId=%hhu;aPipeHandle=%hhu", aTransId, aPipeHandle ); |
|
1027 |
|
1028 //Create buffer for isi msg data |
|
1029 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
1030 TBuf8<SIZE_PNS_PEP_DISCONNECT_RESP> data; |
|
1031 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1032 TBuf8<SIZE_CM_PEP_DISCONNECT_RESP> data; |
|
1033 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1034 // Set message data |
|
1035 data.Append( aPipeHandle ); |
|
1036 data.Append( PN_PIPE_NO_ERROR ); |
|
1037 |
|
1038 // Send Isi message via phonet |
|
1039 TInt ret( iPhoNetSender->Send( |
|
1040 PN_PIPE, aTransId, PNS_PEP_DISCONNECT_RESP, data ) ); |
|
1041 |
|
1042 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepDisconnectResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret ); |
|
1043 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPDISCONNECTRESP, "CMmPipeControl::PnsPepDisconnectResp;aPipeHandle=%hhu;RetFromPhonetSender=%d", aPipeHandle, ret ); |
|
1044 } |
|
1045 |
|
1046 // ---------------------------------------------------------------------------- |
|
1047 // CMmPipeControl::PnsPepResetReq |
|
1048 // Breaks a CM_PEP_RESET_REQ ISI-message. |
|
1049 // ---------------------------------------------------------------------------- |
|
1050 // |
|
1051 void CMmPipeControl::PnsPepResetReq( |
|
1052 const TIsiReceiveC& aIsiMessage ) |
|
1053 { |
|
1054 // Get Transaction Id from the ISI message |
|
1055 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
1056 // Get Pipehandle from the ISI message |
|
1057 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
1058 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
1059 ISI_HEADER_SIZE + PNS_PEP_RESET_REQ_OFFSET_PIPEHANDLE ) ); |
|
1060 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1061 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
1062 ISI_HEADER_SIZE + CM_PEP_RESET_REQ_OFFSET_PIPEHANDLE ) ); |
|
1063 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1064 |
|
1065 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepResetReq - traId: %d, PipeHandle: %d", transId, pipeHandle ); |
|
1066 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPRESETREQ, "CMmPipeControl::PnsPepResetReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle ); |
|
1067 |
|
1068 PnsPepResetResp( transId, pipeHandle ); |
|
1069 } |
|
1070 |
|
1071 // ---------------------------------------------------------------------------- |
|
1072 // CMmPipeControl::PnsPepResetResp |
|
1073 // Construct a PNS_PEP_RESET_RESP ISI-message. |
|
1074 // ---------------------------------------------------------------------------- |
|
1075 // |
|
1076 void CMmPipeControl::PnsPepResetResp( |
|
1077 const TUint8 aTransId, |
|
1078 const TUint8 aPipeHandle ) |
|
1079 { |
|
1080 |
|
1081 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepResetResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle); |
|
1082 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPRESETRESP, "CMmPipeControl::PnsPepResetResp;aTransId=%hhu", aTransId ); |
|
1083 |
|
1084 // Create buffer for isi msg data |
|
1085 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
1086 TBuf8<SIZE_PNS_PEP_RESET_RESP> data; |
|
1087 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1088 TBuf8<SIZE_CM_PEP_RESET_RESP> data; |
|
1089 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1090 // Set message data |
|
1091 data.Append( aPipeHandle ); |
|
1092 data.Append( PN_PIPE_NO_ERROR ); |
|
1093 |
|
1094 // Send Isi message via phonet |
|
1095 TInt ret( iPhoNetSender->Send( |
|
1096 PN_PIPE, aTransId, PNS_PEP_RESET_RESP, data ) ); |
|
1097 |
|
1098 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepResetResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret ); |
|
1099 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPRESETRESP, "CMmPipeControl::PnsPepResetResp;aPipeHandle=%hhu;ret=%d", aPipeHandle, ret ); |
|
1100 } |
|
1101 |
|
1102 // ---------------------------------------------------------------------------- |
|
1103 // CMmPipeControl::PnsPepEnableReq |
|
1104 // Breaks a PNS_PEP_ENABLE_REQ ISI-message. |
|
1105 // ---------------------------------------------------------------------------- |
|
1106 // |
|
1107 void CMmPipeControl::PnsPepEnableReq( |
|
1108 const TIsiReceiveC& aIsiMessage ) |
|
1109 { |
|
1110 |
|
1111 // Get Transaction Id from the ISI message |
|
1112 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
|
1113 // Get Pipehandle from the ISI message |
|
1114 TUint8 pipeHandle( aIsiMessage.Get8bit( |
|
1115 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
1116 ISI_HEADER_SIZE + PNS_PEP_ENABLE_REQ_OFFSET_PIPEHANDLE ) ); |
|
1117 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1118 ISI_HEADER_SIZE + CM_PEP_ENABLE_REQ_OFFSET_PIPEHANDLE ) ); |
|
1119 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1120 |
|
1121 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepEnableReq - traId: %d, PipeHandle: %d", transId, pipeHandle ); |
|
1122 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPENABLEREQ, "CMmPipeControl::PnsPepEnableReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle ); |
|
1123 |
|
1124 PnsPepEnableResp( transId, pipeHandle ); |
|
1125 } |
|
1126 |
|
1127 // ---------------------------------------------------------------------------- |
|
1128 // CMmPipeControl::PnsPepEnableResp |
|
1129 // Construct a PNS_PEP_ENABLE_RESP ISI-message. |
|
1130 // ---------------------------------------------------------------------------- |
|
1131 // |
|
1132 void CMmPipeControl::PnsPepEnableResp( |
|
1133 const TUint8 aTransId, |
|
1134 const TUint8 aPipeHandle ) |
|
1135 { |
|
1136 |
|
1137 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepEnableResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle); |
|
1138 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPENABLERESP, "CMmPipeControl::PnsPepEnableResp;aTransId=%hhu;aPipeHandle=%hhu", aTransId, aPipeHandle ); |
|
1139 |
|
1140 // Create buffer for isi msg data |
|
1141 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
|
1142 TBuf8<SIZE_PNS_PEP_ENABLE_RESP> data; |
|
1143 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1144 TBuf8<SIZE_CM_PEP_ENABLE_RESP> data; |
|
1145 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
|
1146 // Set message data |
|
1147 data.Append( aPipeHandle ); |
|
1148 data.Append( PN_PIPE_NO_ERROR ); |
|
1149 |
|
1150 // Send Isi message via phonet |
|
1151 TInt ret( iPhoNetSender->Send( |
|
1152 PN_PIPE, |
|
1153 aTransId, |
|
1154 PNS_PEP_ENABLE_RESP, |
|
1155 data ) ); |
|
1156 |
|
1157 TFLOGSTRING3("TSY: CMmPipeControl::PnsPepEnableResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret ); |
|
1158 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPENABLERESP, "CMmPipeControl::PnsPepEnableResp;aPipeHandle=%hhu;RetFromPhonetSender=%d", aPipeHandle, ret ); |
|
1159 } |
|
1160 |
|
1161 #endif // DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS |
|
1162 |
|
1163 // ================= OTHER EXPORTED FUNCTIONS =============================== |
|
1164 |
|
1165 //None |
|
1166 |
|
1167 // End of File |