equal
deleted
inserted
replaced
26 #include "sipcodecerr.h" |
26 #include "sipcodecerr.h" |
27 #include "sipstrings.h" |
27 #include "sipstrings.h" |
28 #include "sipstrconsts.h" |
28 #include "sipstrconsts.h" |
29 #include "sipcodecutils.h" |
29 #include "sipcodecutils.h" |
30 #include "_sipcodecdefs.h" |
30 #include "_sipcodecdefs.h" |
|
31 #include <featdiscovery.h> |
31 |
32 |
32 |
33 |
33 // ---------------------------------------------------------------------------- |
34 // ---------------------------------------------------------------------------- |
34 // CSIPAcceptEncodingHeader::DecodeL |
35 // CSIPAcceptEncodingHeader::DecodeL |
35 // ---------------------------------------------------------------------------- |
36 // ---------------------------------------------------------------------------- |
159 // |
160 // |
160 EXPORT_C void CSIPAcceptEncodingHeader::SetCodingsL(const TDesC8& aCodings) |
161 EXPORT_C void CSIPAcceptEncodingHeader::SetCodingsL(const TDesC8& aCodings) |
161 { |
162 { |
162 HBufC8* tmp = aCodings.AllocLC(); |
163 HBufC8* tmp = aCodings.AllocLC(); |
163 tmp->Des().Trim(); |
164 tmp->Des().Trim(); |
164 if (tmp->Length() > 0 && !SIPSyntaxCheck::Token(*tmp)) |
165 //Allowing '/' token for interoperability issues |
|
166 RArray<TSIPChar> array; |
|
167 if(CFeatureDiscovery::IsFeatureSupportedL(TUid::Uid(KFeatureIdFfSipApnSwitching))) |
|
168 { |
|
169 array.Append('/'); |
|
170 } |
|
171 |
|
172 if (tmp->Length() > 0 && !SIPSyntaxCheck::Token(*tmp,&array)) |
165 { |
173 { |
|
174 array.Close(); |
166 User::Leave(KErrSipCodecAcceptEncodingHeader); |
175 User::Leave(KErrSipCodecAcceptEncodingHeader); |
167 } |
176 } |
|
177 array.Close(); |
168 CleanupStack::Pop(tmp); |
178 CleanupStack::Pop(tmp); |
169 delete iCodings; |
179 delete iCodings; |
170 iCodings = tmp; |
180 iCodings = tmp; |
171 } |
181 } |
172 |
182 |