89 @leave CHttpWriter::DoTokenCsvListHeaderL |
90 @leave CHttpWriter::DoTokenCsvListHeaderL |
90 @todo Is there any point in this? Why not call DoTokenCsvListHeaderL() |
91 @todo Is there any point in this? Why not call DoTokenCsvListHeaderL() |
91 directly |
92 directly |
92 */ |
93 */ |
93 { |
94 { |
94 DoTokenCsvListHeaderL(aHeader, KErrHttpEncodeCacheControl); |
95 THeaderFieldPartIter iter = aHeader.PartsL(); |
|
96 iter.First(); |
|
97 if (iter.AtEnd()) |
|
98 User::Leave(KErrHttpEncodeCacheControl); |
|
99 |
|
100 aHeader.BeginRawDataL(); |
|
101 do |
|
102 { |
|
103 const CHeaderFieldPart* part = iter(); |
|
104 if(part == NULL) |
|
105 User::Leave(KErrHttpEncodeCacheControl); |
|
106 THTTPHdrVal ptVal = part->Value(); |
|
107 if (ptVal.Type() != THTTPHdrVal::KStrFVal) |
|
108 User::Leave(KErrHttpEncodeCacheControl); |
|
109 const TDesC8& val = ptVal.StrF().DesC(); |
|
110 if(val.Length() > 0) |
|
111 { |
|
112 aHeader.WriteRawDataL(val); |
|
113 } |
|
114 else |
|
115 { |
|
116 // Now we must have part as the strF value is KNulLDesC8 |
|
117 THeaderFieldParamIter iter2 = part->Parameters(); |
|
118 if(!iter2.AtEnd()) |
|
119 { |
|
120 const CHeaderFieldParam* param = iter2(); |
|
121 aHeader.WriteRawDataL(param->Name().DesC()); |
|
122 aHeader.WriteRawDataL('='); |
|
123 THTTPHdrVal val2 = param->Value(); |
|
124 if(val2.Type() == THTTPHdrVal::KTIntVal) |
|
125 { |
|
126 TBuf8<32> desc; |
|
127 desc.AppendNum(val2.Int()); |
|
128 aHeader.WriteRawDataL(desc); |
|
129 } |
|
130 else if(val2.Type() == THTTPHdrVal::KStrFVal) |
|
131 { |
|
132 aHeader.WriteRawDataL(param->Name().DesC()); |
|
133 } |
|
134 } |
|
135 } |
|
136 ++iter; |
|
137 if(!iter.AtEnd()) |
|
138 aHeader.WriteRawDataL(KCommaSpaceSep()); |
|
139 |
|
140 }while(!iter.AtEnd()); |
|
141 aHeader.CommitRawData(); |
95 } |
142 } |
96 |
143 |
97 void CHttpGeneralHeaderWriter::EncodeConnectionL(RHeaderField& aHeader) const |
144 void CHttpGeneralHeaderWriter::EncodeConnectionL(RHeaderField& aHeader) const |
98 /** |
145 /** |
99 Decodes the Connection header. RFC2616 section 14.10 - |
146 Decodes the Connection header. RFC2616 section 14.10 - |