| 214 | void resetRequestFieldsT(RequestFieldsT& RequestFields) |
| 215 | { |
| 216 | // Can't just 'memset' the text_t fields (as used to be done), |
| 217 | // as this could lead to inconsistent state in text_t fields |
| 218 | // ultimately resulting in a segmentation fault |
| 219 | // => need to go through an explicitly reset them |
| 220 | |
| 221 | //Simple request line info v0.9 |
| 222 | RequestFields.MethodStr.clear(); |
| 223 | RequestFields.URIStr.clear(); |
| 224 | //added v1.0 |
| 225 | RequestFields.VersionStr.clear(); |
| 226 | //General Header |
| 227 | RequestFields.DateStr.clear(); |
| 228 | RequestFields.MIMEVerStr.clear(); |
| 229 | RequestFields.PragmaStr.clear(); |
| 230 | //Request Header |
| 231 | RequestFields.AuthorizationStr.clear(); |
| 232 | RequestFields.FromStr.clear(); |
| 233 | RequestFields.IfModSinceStr.clear(); |
| 234 | RequestFields.RefererStr.clear(); |
| 235 | RequestFields.UserAgentStr.clear(); |
| 236 | //Entity Header (Only CGI stuff) |
| 237 | RequestFields.ContentEncodingStr.clear(); |
| 238 | RequestFields.ContentTypeStr.clear(); |
| 239 | RequestFields.ContentLengthStr.clear(); |
| 240 | //v1.0 Optional (the more common ones) |
| 241 | RequestFields.AcceptStr.clear(); |
| 242 | RequestFields.AcceptLangStr.clear(); |
| 243 | //v1.1 Exentions |
| 244 | RequestFields.ConnectionStr.clear(); |
| 245 | |
| 246 | //Reset all the non text_t fields |
| 247 | RequestFields.ContentLength = 0; |
| 248 | RequestFields.Content = NULL; |
| 249 | RequestFields.NumOtherHeaders = 0; |
| 250 | |
| 251 | for (int i=0 ; i<MAX_OTHER_HEADERS; i++) { |
| 252 | RequestFields.OtherHeaders[i].Var.clear(); |
| 253 | RequestFields.OtherHeaders[i].Val.clear(); |
| 254 | } |
| 255 | } |
| 256 | |