|
1 /* |
|
2 * Copyright (c) 2006-2007 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 "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 |
|
21 #include "natfwunsafattributelookuptable.h" |
|
22 |
|
23 #include "natfwunsafmappedaddressattribute.h" |
|
24 #include "natfwunsafresponseaddressattribute.h" |
|
25 #include "natfwunsafchangedaddressattribute.h" |
|
26 #include "natfwunsafchangerequestattribute.h" |
|
27 #include "natfwunsafsourceaddressattribute.h" |
|
28 #include "natfwunsafreflectedfromattribute.h" |
|
29 #include "natfwunsafmessageintegrityattribute.h" |
|
30 #include "natfwunsafusernameattribute.h" |
|
31 #include "natfwunsafpasswordattribute.h" |
|
32 #include "natfwunsaferrorcodeattribute.h" |
|
33 #include "natfwunsafunknownattributesattribute.h" |
|
34 #include "natfwunsafxoronlyattribute.h" |
|
35 #include "natfwunsafserverattribute.h" |
|
36 #include "natfwunsafxormappedaddressattribute.h" |
|
37 #include "natfwunsaffingerprintattribute.h" |
|
38 // TURN specific attributes |
|
39 #include "natfwunsafalternateserverattribute.h" |
|
40 #include "natfwunsafdestinationaddressattribute.h" |
|
41 #include "natfwunsafremoteaddressattribute.h" |
|
42 #include "natfwunsaflifetimeattribute.h" |
|
43 #include "natfwunsafbandwidthattribute.h" |
|
44 #include "natfwunsafdataattribute.h" |
|
45 #include "natfwunsafmagiccookieattribute.h" |
|
46 #include "natfwunsafnonceattribute.h" |
|
47 #include "natfwunsafrealmattribute.h" |
|
48 #include "natfwunsafrelayaddressattribute.h" |
|
49 #include "natfwunsafrequestedportpropsattribute.h" |
|
50 #include "natfwunsafrequestedtransportattribute.h" |
|
51 #include "natfwunsafrequestedipattribute.h" |
|
52 #include "natfwunsaftimervalattribute.h" |
|
53 #include "natfwunsafconnectstatattribute.h" |
|
54 // ICE specific attributes |
|
55 #include "natfwunsafpriorityattribute.h" |
|
56 #include "natfwunsafusecandidateattribute.h" |
|
57 #include "natfwunsaficecontrolledattribute.h" |
|
58 #include "natfwunsaficecontrollingattribute.h" |
|
59 |
|
60 // ----------------------------------------------------------------------------- |
|
61 // CAttributeLookupTable::NewL |
|
62 // ----------------------------------------------------------------------------- |
|
63 // |
|
64 CAttributeLookupTable* CAttributeLookupTable::NewL() |
|
65 { |
|
66 CAttributeLookupTable* self = new (ELeave) CAttributeLookupTable(); |
|
67 CleanupStack::PushL(self); |
|
68 self->ConstructL(); |
|
69 CleanupStack::Pop(self); |
|
70 return self; |
|
71 } |
|
72 |
|
73 // ----------------------------------------------------------------------------- |
|
74 // CAttributeLookupTable::CAttributeLookupTable |
|
75 // ----------------------------------------------------------------------------- |
|
76 // |
|
77 CAttributeLookupTable::CAttributeLookupTable() |
|
78 { |
|
79 } |
|
80 |
|
81 // ----------------------------------------------------------------------------- |
|
82 // CAttributeLookupTable::ConstructL |
|
83 // ----------------------------------------------------------------------------- |
|
84 // |
|
85 void CAttributeLookupTable::ConstructL() |
|
86 { |
|
87 AddItemL(CNATFWUNSAFAttribute::EMappedAddress, |
|
88 CNATFWUNSAFMappedAddressAttribute::DecodeAttributeL); |
|
89 AddItemL(CNATFWUNSAFAttribute::EResponseAddress, |
|
90 CNATFWUNSAFResponseAddressAttribute::DecodeAttributeL); |
|
91 AddItemL(CNATFWUNSAFAttribute::EChangedAddress, |
|
92 CNATFWUNSAFChangedAddressAttribute::DecodeAttributeL); |
|
93 AddItemL(CNATFWUNSAFAttribute::EChangeRequest, |
|
94 CNATFWUNSAFChangeRequestAttribute::DecodeAttributeL); |
|
95 AddItemL(CNATFWUNSAFAttribute::ESourceAddress, |
|
96 CNATFWUNSAFSourceAddressAttribute::DecodeAttributeL); |
|
97 AddItemL(CNATFWUNSAFAttribute::EReflectedFrom, |
|
98 CNATFWUNSAFReflectedFromAttribute::DecodeAttributeL); |
|
99 AddItemL(CNATFWUNSAFAttribute::EMessageIntegrity, |
|
100 CNATFWUNSAFMessageIntegrityAttribute::DecodeAttributeL); |
|
101 AddItemL(CNATFWUNSAFAttribute::EUsername, |
|
102 CNATFWUNSAFUsernameAttribute::DecodeAttributeL); |
|
103 AddItemL(CNATFWUNSAFAttribute::EPassword, |
|
104 CNATFWUNSAFPasswordAttribute::DecodeAttributeL); |
|
105 AddItemL(CNATFWUNSAFAttribute::EErrorCode, |
|
106 CNATFWUNSAFErrorCodeAttribute::DecodeAttributeL); |
|
107 AddItemL(CNATFWUNSAFAttribute::EUnknownAttributes, |
|
108 CNATFWUNSAFUnknownAttributesAttribute::DecodeAttributeL); |
|
109 AddItemL(CNATFWUNSAFAttribute::EXorOnly, |
|
110 CNATFWUNSAFXorOnlyAttribute::DecodeAttributeL); |
|
111 AddItemL(CNATFWUNSAFAttribute::EServer, |
|
112 CNATFWUNSAFServerAttribute::DecodeAttributeL); |
|
113 AddItemL(CNATFWUNSAFAttribute::EXorMappedAddress, |
|
114 CNATFWUNSAFXorMappedAddressAttribute::DecodeAttributeL); |
|
115 AddItemL(CNATFWUNSAFAttribute::EFingerprint, |
|
116 CNATFWUNSAFFingerprintAttribute::DecodeAttributeL); |
|
117 // TURN specific attributes |
|
118 AddItemL(CNATFWUNSAFAttribute::EAlternateServer, |
|
119 CNATFWUNSAFAlternateServerAttribute::DecodeAttributeL); |
|
120 AddItemL(CNATFWUNSAFAttribute::EDestinationAddress, |
|
121 CNATFWUNSAFDestinationAddressAttribute::DecodeAttributeL); |
|
122 AddItemL(CNATFWUNSAFAttribute::ERemoteAddress, |
|
123 CNATFWUNSAFRemoteAddressAttribute::DecodeAttributeL); |
|
124 AddItemL(CNATFWUNSAFAttribute::ELifetime, |
|
125 CNATFWUNSAFLifetimeAttribute::DecodeAttributeL); |
|
126 AddItemL(CNATFWUNSAFAttribute::EBandwidth, |
|
127 CNATFWUNSAFBandwidthAttribute::DecodeAttributeL); |
|
128 AddItemL(CNATFWUNSAFAttribute::EData, |
|
129 CNATFWUNSAFDataAttribute::DecodeAttributeL); |
|
130 AddItemL(CNATFWUNSAFAttribute::EMagicCookie, |
|
131 CNATFWUNSAFMagicCookieAttribute::DecodeAttributeL); |
|
132 AddItemL(CNATFWUNSAFAttribute::ENonce, |
|
133 CNATFWUNSAFNonceAttribute::DecodeAttributeL); |
|
134 AddItemL(CNATFWUNSAFAttribute::ERealm, |
|
135 CNATFWUNSAFRealmAttribute::DecodeAttributeL); |
|
136 AddItemL(CNATFWUNSAFAttribute::ERelayAddress, |
|
137 CNATFWUNSAFRelayAddressAttribute::DecodeAttributeL); |
|
138 AddItemL(CNATFWUNSAFAttribute::ERequestedPortProps, |
|
139 CNATFWUNSAFRequestedPortPropsAttribute::DecodeAttributeL); |
|
140 AddItemL(CNATFWUNSAFAttribute::ERequestedTransport, |
|
141 CNATFWUNSAFRequestedTransportAttribute::DecodeAttributeL); |
|
142 AddItemL(CNATFWUNSAFAttribute::ERequestedIp, |
|
143 CNATFWUNSAFRequestedIpAttribute::DecodeAttributeL); |
|
144 AddItemL(CNATFWUNSAFAttribute::ETimerVal, |
|
145 CNATFWUNSAFTimerValAttribute::DecodeAttributeL); |
|
146 AddItemL(CNATFWUNSAFAttribute::EConnectStat, |
|
147 CNATFWUNSAFConnectStatAttribute::DecodeAttributeL); |
|
148 // ICE specific attributes |
|
149 AddItemL(CNATFWUNSAFAttribute::EPriority, |
|
150 CNATFWUNSAFPriorityAttribute::DecodeAttributeL); |
|
151 AddItemL(CNATFWUNSAFAttribute::EUseCandidate, |
|
152 CNATFWUNSAFUseCandidateAttribute::DecodeAttributeL); |
|
153 AddItemL(CNATFWUNSAFAttribute::EIceControlled, |
|
154 CNATFWUNSAFIceControlledAttribute::DecodeAttributeL); |
|
155 AddItemL(CNATFWUNSAFAttribute::EIceControlling, |
|
156 CNATFWUNSAFIceControllingAttribute::DecodeAttributeL); |
|
157 } |
|
158 |
|
159 // ----------------------------------------------------------------------------- |
|
160 // CAttributeLookupTable::~CAttributeLookupTable |
|
161 // ----------------------------------------------------------------------------- |
|
162 // |
|
163 CAttributeLookupTable::~CAttributeLookupTable() |
|
164 { |
|
165 iTable.Close(); |
|
166 } |
|
167 |
|
168 // ----------------------------------------------------------------------------- |
|
169 // CAttributeLookupTable::Find |
|
170 // ----------------------------------------------------------------------------- |
|
171 // |
|
172 TDecodeFnPtr CAttributeLookupTable::Find(TUint16 aAttributeType) |
|
173 { |
|
174 for (TInt i = 0; i < iTable.Count(); i++) |
|
175 { |
|
176 if (iTable[i].AttributeType() == aAttributeType) |
|
177 { |
|
178 return iTable[i].DecodeFunction(); |
|
179 } |
|
180 } |
|
181 |
|
182 return NULL; |
|
183 } |
|
184 |
|
185 // ----------------------------------------------------------------------------- |
|
186 // CAttributeLookupTable::AddItemL |
|
187 // ----------------------------------------------------------------------------- |
|
188 // |
|
189 void CAttributeLookupTable::AddItemL(CNATFWUNSAFAttribute::TType aAttributeType, |
|
190 TDecodeFnPtr aDecodeFn) |
|
191 { |
|
192 TAttributeLookupTableItem newItem(aAttributeType, aDecodeFn); |
|
193 iTable.AppendL(newItem); |
|
194 } |