blob: d9c3052f97edca3c3f17eeaa38a7e8033abdd0ee [file] [log] [blame]
Christopher Faulet47596d32018-10-22 09:17:28 +02001/*
2 * include/types/http_htx.h
3 * This file defines everything related to HTTP manipulation using the internal
4 * representation.
5 *
6 * Copyright (C) 2018 HAProxy Technologies, Christopher Faulet <cfaulet@haproxy.com>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation, version 2.1
11 * exclusively.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23#ifndef _TYPES_HTTP_HTX_H
24#define _TYPES_HTTP_HTX_H
25
Christopher Faulet58857752020-01-15 15:19:50 +010026#include <ebistree.h>
27
28#include <common/buf.h>
Willy Tarreaub96b77e2018-12-11 10:22:41 +010029#include <common/htx.h>
Christopher Faulet47596d32018-10-22 09:17:28 +020030#include <common/ist.h>
Christopher Faulet47596d32018-10-22 09:17:28 +020031
32/* Context used to find/remove an HTTP header. */
33struct http_hdr_ctx {
34 struct htx_blk *blk;
35 struct ist value;
36 uint16_t lws_before;
37 uint16_t lws_after;
38};
39
Christopher Faulet58857752020-01-15 15:19:50 +010040/* A custom HTTP error message load from a row file and converted in HTX. The
41 * node key is the file path.
42 */
43struct http_error {
44 struct buffer msg;
45 struct ebpt_node node;
46};
47
Christopher Faulet47596d32018-10-22 09:17:28 +020048#endif /* _TYPES_HTTP_HTX_H */