switch (Parser->State) {\r
case BodyParserStateMax:\r
return EFI_ABORTED;\r
-\r
- case BodyParserComplete:\r
- if (Parser->Callback != NULL) {\r
- Status = Parser->Callback (\r
- BodyParseEventOnComplete,\r
- Char,\r
- 0,\r
- Parser->Context\r
- );\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
- }\r
- return EFI_SUCCESS;\r
- \r
+ \r
case BodyParserBodyIdentity:\r
//\r
// Identity transfer-coding, just notify user to save the body data.\r
Parser->ParsedBodyLength += MIN (BodyLength, Parser->ContentLength - Parser->ParsedBodyLength);\r
if (Parser->ParsedBodyLength == Parser->ContentLength) {\r
Parser->State = BodyParserComplete;\r
+ if (Parser->Callback != NULL) {\r
+ Status = Parser->Callback (\r
+ BodyParseEventOnComplete,\r
+ Char,\r
+ 0,\r
+ Parser->Context\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+ }\r
}\r
break;\r
\r
case BodyParserLastCRLFEnd:\r
if (*Char == '\n') {\r
Parser->State = BodyParserComplete;\r
+ Char++;\r
+ if (Parser->Callback != NULL) {\r
+ Status = Parser->Callback (\r
+ BodyParseEventOnComplete,\r
+ Char,\r
+ 0,\r
+ Parser->Context\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+ }\r
break;\r
} else {\r
Parser->State = BodyParserStateMax;\r