* @brief Remove a header (fully) from an TSMLoc / TSMBuffer. * * @param bufp request's buffer * @param hdrLoc request's header location * @param header header name * @param headerlen header name length * @return the number of fields (header values) we removed. */
| 37 | * @return the number of fields (header values) we removed. |
| 38 | */ |
| 39 | int |
| 40 | removeHeader(TSMBuffer bufp, TSMLoc hdrLoc, const char *header, int headerlen) |
| 41 | { |
| 42 | TSMLoc fieldLoc = TSMimeHdrFieldFind(bufp, hdrLoc, header, headerlen); |
| 43 | int cnt = 0; |
| 44 | |
| 45 | while (fieldLoc) { |
| 46 | TSMLoc tmp = TSMimeHdrFieldNextDup(bufp, hdrLoc, fieldLoc); |
| 47 | |
| 48 | ++cnt; |
| 49 | TSMimeHdrFieldDestroy(bufp, hdrLoc, fieldLoc); |
| 50 | TSHandleMLocRelease(bufp, hdrLoc, fieldLoc); |
| 51 | fieldLoc = tmp; |
| 52 | } |
| 53 | |
| 54 | return cnt; |
| 55 | } |
| 56 | |
| 57 | /** |
| 58 | * @brief Checks if the header exists. |
no test coverage detected