suricata
detect-http-header-common.h
Go to the documentation of this file.
1 /* Copyright (C) 2007-2017 Open Information Security Foundation
2  *
3  * You can copy, redistribute or modify this Program under the terms of
4  * the GNU General Public License version 2 as published by the Free
5  * Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * version 2 along with this program; if not, write to the Free Software
14  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15  * 02110-1301, USA.
16  */
17 
18 /**
19  * \file
20  *
21  * \author Victor Julien <victor@inliniac.net>
22  */
23 
24 #ifndef __DETECT_HTTP_HEADER_COMMON_H__
25 #define __DETECT_HTTP_HEADER_COMMON_H__
26 
27 typedef struct HttpHeaderBuffer_ {
28  uint8_t *buffer;
29  uint32_t size; /**< buffer size */
30  uint32_t len; /**< part of buffer in use */
32 
33 typedef struct HttpHeaderThreadConfig_ {
34  uint16_t tx_step;
35  uint16_t size_step;
37 
38 typedef struct HttpHeaderThreadData_ {
39  HttpHeaderBuffer *buffers; /**< array of buffers */
40  uint16_t buffers_size; /**< number of buffers */
41  uint16_t buffers_list_len;
42  uint16_t size_step; /**< increase size of HttpHeaderBuffer::buffer with this */
43  uint16_t tx_step; /**< increase number of txs with this */
44  uint64_t start_tx_id;
45  uint64_t tick;
47 
48 void *HttpHeaderThreadDataInit(void *data);
49 void HttpHeaderThreadDataFree(void *data);
50 
52  Flow *f, uint8_t flags, uint64_t tx_id, const int keyword_id,
53  HttpHeaderThreadData **ret_hdr_td);
54 
56  HttpHeaderBuffer *buf, uint32_t size);
57 
58 #endif /* __DETECT_HTTP_HEADER_COMMON_H__ */
uint16_t flags
void * HttpHeaderThreadDataInit(void *data)
struct HttpHeaderThreadData_ HttpHeaderThreadData
uint16_t tx_id
void HttpHeaderThreadDataFree(void *data)
struct HttpHeaderThreadConfig_ HttpHeaderThreadDataConfig
int HttpHeaderExpandBuffer(HttpHeaderThreadData *td, HttpHeaderBuffer *buf, uint32_t size)
HttpHeaderBuffer * HttpHeaderGetBufferSpaceForTXID(DetectEngineThreadCtx *det_ctx, Flow *f, uint8_t flags, uint64_t tx_id, const int keyword_id, HttpHeaderThreadData **ret_hdr_td)
struct HttpHeaderBuffer_ HttpHeaderBuffer
Flow data structure.
Definition: flow.h:325