Coverage Report

Created: 2026-09-06 07:25

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/suricata8/src/detect-http-headers-stub.h
Line
Count
Source
1
/* Copyright (C) 2007-2019 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
 * Stub for per HTTP header detection keyword. Meant to be included into
20
 * a C file.
21
 */
22
23
/**
24
 * \ingroup httplayer
25
 *
26
 * @{
27
 */
28
29
#include "suricata-common.h"
30
#include "flow.h"
31
32
#include "htp/htp_rs.h"
33
34
#include "detect.h"
35
#include "detect-parse.h"
36
#include "detect-engine.h"
37
#include "detect-engine-buffer.h"
38
#include "detect-engine-mpm.h"
39
#include "detect-engine-prefilter.h"
40
41
#include "util-debug.h"
42
#include "rust.h"
43
44
static int g_buffer_id = 0;
45
static int g_http2_thread_id = 0;
46
47
#ifdef KEYWORD_TOSERVER
48
static InspectionBuffer *GetRequestData(DetectEngineThreadCtx *det_ctx,
49
        const DetectEngineTransforms *transforms, Flow *_f,
50
        const uint8_t _flow_flags, void *txv, const int list_id)
51
1.63k
{
52
1.63k
    SCEnter();
53
54
1.63k
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
55
1.63k
    if (buffer->inspect == NULL) {
56
1.62k
        htp_tx_t *tx = (htp_tx_t *)txv;
57
58
1.62k
        if (htp_tx_request_headers(tx) == NULL)
59
0
            return NULL;
60
61
1.62k
        const htp_header_t *h = htp_tx_request_header(tx, HEADER_NAME);
62
1.62k
        if (h == NULL || htp_header_value(h) == NULL) {
63
1.09k
            SCLogDebug("HTTP %s header not present in this request",
64
1.09k
                       HEADER_NAME);
65
1.09k
            return NULL;
66
1.09k
        }
67
68
535
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
69
535
        const uint8_t *data = htp_header_value_ptr(h);
70
71
535
        InspectionBufferSetupAndApplyTransforms(
72
535
                det_ctx, list_id, buffer, data, data_len, transforms);
73
535
    }
74
75
542
    return buffer;
76
1.63k
}
Unexecuted instantiation: detect-http-referer.c:GetRequestData
Unexecuted instantiation: detect-http-accept-enc.c:GetRequestData
Unexecuted instantiation: detect-http-accept-lang.c:GetRequestData
detect-http-accept.c:GetRequestData
Line
Count
Source
51
1.22k
{
52
1.22k
    SCEnter();
53
54
1.22k
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
55
1.22k
    if (buffer->inspect == NULL) {
56
1.22k
        htp_tx_t *tx = (htp_tx_t *)txv;
57
58
1.22k
        if (htp_tx_request_headers(tx) == NULL)
59
0
            return NULL;
60
61
1.22k
        const htp_header_t *h = htp_tx_request_header(tx, HEADER_NAME);
62
1.22k
        if (h == NULL || htp_header_value(h) == NULL) {
63
759
            SCLogDebug("HTTP %s header not present in this request",
64
759
                       HEADER_NAME);
65
759
            return NULL;
66
759
        }
67
68
468
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
69
468
        const uint8_t *data = htp_header_value_ptr(h);
70
71
468
        InspectionBufferSetupAndApplyTransforms(
72
468
                det_ctx, list_id, buffer, data, data_len, transforms);
73
468
    }
74
75
468
    return buffer;
76
1.22k
}
detect-http-connection.c:GetRequestData
Line
Count
Source
51
408
{
52
408
    SCEnter();
53
54
408
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
55
408
    if (buffer->inspect == NULL) {
56
401
        htp_tx_t *tx = (htp_tx_t *)txv;
57
58
401
        if (htp_tx_request_headers(tx) == NULL)
59
0
            return NULL;
60
61
401
        const htp_header_t *h = htp_tx_request_header(tx, HEADER_NAME);
62
401
        if (h == NULL || htp_header_value(h) == NULL) {
63
334
            SCLogDebug("HTTP %s header not present in this request",
64
334
                       HEADER_NAME);
65
334
            return NULL;
66
334
        }
67
68
67
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
69
67
        const uint8_t *data = htp_header_value_ptr(h);
70
71
67
        InspectionBufferSetupAndApplyTransforms(
72
67
                det_ctx, list_id, buffer, data, data_len, transforms);
73
67
    }
74
75
74
    return buffer;
76
408
}
Unexecuted instantiation: detect-http-content-len.c:GetRequestData
Unexecuted instantiation: detect-http-content-type.c:GetRequestData
77
78
static InspectionBuffer *GetRequestData2(DetectEngineThreadCtx *det_ctx,
79
        const DetectEngineTransforms *transforms, Flow *_f, const uint8_t _flow_flags, void *txv,
80
        const int list_id)
81
96
{
82
96
    SCEnter();
83
84
96
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
85
96
    if (buffer->inspect == NULL) {
86
96
        uint32_t b_len = 0;
87
96
        const uint8_t *b = NULL;
88
89
96
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
90
96
        if (thread_buf == NULL)
91
0
            return NULL;
92
96
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOSERVER, HEADER_NAME, &b, &b_len, thread_buf) != 1)
93
91
            return NULL;
94
5
        if (b == NULL || b_len == 0)
95
0
            return NULL;
96
97
5
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
98
5
    }
99
100
5
    return buffer;
101
96
}
Unexecuted instantiation: detect-http-referer.c:GetRequestData2
Unexecuted instantiation: detect-http-accept-enc.c:GetRequestData2
Unexecuted instantiation: detect-http-accept-lang.c:GetRequestData2
detect-http-accept.c:GetRequestData2
Line
Count
Source
81
15
{
82
15
    SCEnter();
83
84
15
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
85
15
    if (buffer->inspect == NULL) {
86
15
        uint32_t b_len = 0;
87
15
        const uint8_t *b = NULL;
88
89
15
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
90
15
        if (thread_buf == NULL)
91
0
            return NULL;
92
15
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOSERVER, HEADER_NAME, &b, &b_len, thread_buf) != 1)
93
10
            return NULL;
94
5
        if (b == NULL || b_len == 0)
95
0
            return NULL;
96
97
5
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
98
5
    }
99
100
5
    return buffer;
101
15
}
detect-http-connection.c:GetRequestData2
Line
Count
Source
81
81
{
82
81
    SCEnter();
83
84
81
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
85
81
    if (buffer->inspect == NULL) {
86
81
        uint32_t b_len = 0;
87
81
        const uint8_t *b = NULL;
88
89
81
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
90
81
        if (thread_buf == NULL)
91
0
            return NULL;
92
81
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOSERVER, HEADER_NAME, &b, &b_len, thread_buf) != 1)
93
81
            return NULL;
94
0
        if (b == NULL || b_len == 0)
95
0
            return NULL;
96
97
0
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
98
0
    }
99
100
0
    return buffer;
101
81
}
Unexecuted instantiation: detect-http-content-len.c:GetRequestData2
Unexecuted instantiation: detect-http-content-type.c:GetRequestData2
102
103
#endif
104
#ifdef KEYWORD_TOCLIENT
105
static InspectionBuffer *GetResponseData(DetectEngineThreadCtx *det_ctx,
106
        const DetectEngineTransforms *transforms, Flow *_f,
107
        const uint8_t _flow_flags, void *txv, const int list_id)
108
2.26k
{
109
2.26k
    SCEnter();
110
111
2.26k
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
112
2.26k
    if (buffer->inspect == NULL) {
113
2.19k
        htp_tx_t *tx = (htp_tx_t *)txv;
114
115
2.19k
        if (htp_tx_response_headers(tx) == NULL)
116
0
            return NULL;
117
118
2.19k
        const htp_header_t *h = htp_tx_response_header(tx, HEADER_NAME);
119
2.19k
        if (h == NULL || htp_header_value(h) == NULL) {
120
1.36k
            SCLogDebug("HTTP %s header not present in this request",
121
1.36k
                       HEADER_NAME);
122
1.36k
            return NULL;
123
1.36k
        }
124
125
829
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
126
829
        const uint8_t *data = htp_header_value_ptr(h);
127
128
829
        InspectionBufferSetupAndApplyTransforms(
129
829
                det_ctx, list_id, buffer, data, data_len, transforms);
130
829
    }
131
132
907
    return buffer;
133
2.26k
}
detect-http-location.c:GetResponseData
Line
Count
Source
108
1.16k
{
109
1.16k
    SCEnter();
110
111
1.16k
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
112
1.16k
    if (buffer->inspect == NULL) {
113
1.16k
        htp_tx_t *tx = (htp_tx_t *)txv;
114
115
1.16k
        if (htp_tx_response_headers(tx) == NULL)
116
0
            return NULL;
117
118
1.16k
        const htp_header_t *h = htp_tx_response_header(tx, HEADER_NAME);
119
1.16k
        if (h == NULL || htp_header_value(h) == NULL) {
120
1.09k
            SCLogDebug("HTTP %s header not present in this request",
121
1.09k
                       HEADER_NAME);
122
1.09k
            return NULL;
123
1.09k
        }
124
125
66
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
126
66
        const uint8_t *data = htp_header_value_ptr(h);
127
128
66
        InspectionBufferSetupAndApplyTransforms(
129
66
                det_ctx, list_id, buffer, data, data_len, transforms);
130
66
    }
131
132
67
    return buffer;
133
1.16k
}
detect-http-server.c:GetResponseData
Line
Count
Source
108
826
{
109
826
    SCEnter();
110
111
826
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
112
826
    if (buffer->inspect == NULL) {
113
767
        htp_tx_t *tx = (htp_tx_t *)txv;
114
115
767
        if (htp_tx_response_headers(tx) == NULL)
116
0
            return NULL;
117
118
767
        const htp_header_t *h = htp_tx_response_header(tx, HEADER_NAME);
119
767
        if (h == NULL || htp_header_value(h) == NULL) {
120
138
            SCLogDebug("HTTP %s header not present in this request",
121
138
                       HEADER_NAME);
122
138
            return NULL;
123
138
        }
124
125
629
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
126
629
        const uint8_t *data = htp_header_value_ptr(h);
127
128
629
        InspectionBufferSetupAndApplyTransforms(
129
629
                det_ctx, list_id, buffer, data, data_len, transforms);
130
629
    }
131
132
688
    return buffer;
133
826
}
detect-http-connection.c:GetResponseData
Line
Count
Source
108
278
{
109
278
    SCEnter();
110
111
278
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
112
278
    if (buffer->inspect == NULL) {
113
260
        htp_tx_t *tx = (htp_tx_t *)txv;
114
115
260
        if (htp_tx_response_headers(tx) == NULL)
116
0
            return NULL;
117
118
260
        const htp_header_t *h = htp_tx_response_header(tx, HEADER_NAME);
119
260
        if (h == NULL || htp_header_value(h) == NULL) {
120
126
            SCLogDebug("HTTP %s header not present in this request",
121
126
                       HEADER_NAME);
122
126
            return NULL;
123
126
        }
124
125
134
        const uint32_t data_len = (uint32_t)htp_header_value_len(h);
126
134
        const uint8_t *data = htp_header_value_ptr(h);
127
128
134
        InspectionBufferSetupAndApplyTransforms(
129
134
                det_ctx, list_id, buffer, data, data_len, transforms);
130
134
    }
131
132
152
    return buffer;
133
278
}
Unexecuted instantiation: detect-http-content-len.c:GetResponseData
Unexecuted instantiation: detect-http-content-type.c:GetResponseData
134
135
static InspectionBuffer *GetResponseData2(DetectEngineThreadCtx *det_ctx,
136
        const DetectEngineTransforms *transforms, Flow *_f, const uint8_t _flow_flags, void *txv,
137
        const int list_id)
138
237
{
139
237
    SCEnter();
140
141
237
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
142
237
    if (buffer->inspect == NULL) {
143
234
        uint32_t b_len = 0;
144
234
        const uint8_t *b = NULL;
145
146
234
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
147
234
        if (thread_buf == NULL)
148
0
            return NULL;
149
234
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOCLIENT, HEADER_NAME, &b, &b_len, thread_buf) != 1)
150
111
            return NULL;
151
123
        if (b == NULL || b_len == 0)
152
0
            return NULL;
153
154
123
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
155
123
    }
156
157
126
    return buffer;
158
237
}
detect-http-location.c:GetResponseData2
Line
Count
Source
138
21
{
139
21
    SCEnter();
140
141
21
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
142
21
    if (buffer->inspect == NULL) {
143
21
        uint32_t b_len = 0;
144
21
        const uint8_t *b = NULL;
145
146
21
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
147
21
        if (thread_buf == NULL)
148
0
            return NULL;
149
21
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOCLIENT, HEADER_NAME, &b, &b_len, thread_buf) != 1)
150
21
            return NULL;
151
0
        if (b == NULL || b_len == 0)
152
0
            return NULL;
153
154
0
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
155
0
    }
156
157
0
    return buffer;
158
21
}
detect-http-server.c:GetResponseData2
Line
Count
Source
138
174
{
139
174
    SCEnter();
140
141
174
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
142
174
    if (buffer->inspect == NULL) {
143
171
        uint32_t b_len = 0;
144
171
        const uint8_t *b = NULL;
145
146
171
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
147
171
        if (thread_buf == NULL)
148
0
            return NULL;
149
171
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOCLIENT, HEADER_NAME, &b, &b_len, thread_buf) != 1)
150
48
            return NULL;
151
123
        if (b == NULL || b_len == 0)
152
0
            return NULL;
153
154
123
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
155
123
    }
156
157
126
    return buffer;
158
174
}
detect-http-connection.c:GetResponseData2
Line
Count
Source
138
42
{
139
42
    SCEnter();
140
141
42
    InspectionBuffer *buffer = InspectionBufferGet(det_ctx, list_id);
142
42
    if (buffer->inspect == NULL) {
143
42
        uint32_t b_len = 0;
144
42
        const uint8_t *b = NULL;
145
146
42
        void *thread_buf = DetectThreadCtxGetGlobalKeywordThreadCtx(det_ctx, g_http2_thread_id);
147
42
        if (thread_buf == NULL)
148
0
            return NULL;
149
42
        if (SCHttp2TxGetHeaderValue(txv, STREAM_TOCLIENT, HEADER_NAME, &b, &b_len, thread_buf) != 1)
150
42
            return NULL;
151
0
        if (b == NULL || b_len == 0)
152
0
            return NULL;
153
154
0
        InspectionBufferSetupAndApplyTransforms(det_ctx, list_id, buffer, b, b_len, transforms);
155
0
    }
156
157
0
    return buffer;
158
42
}
Unexecuted instantiation: detect-http-content-len.c:GetResponseData2
Unexecuted instantiation: detect-http-content-type.c:GetResponseData2
159
#endif
160
161
/**
162
 * \brief this function setup the http.header keyword used in the rule
163
 *
164
 * \param de_ctx   Pointer to the Detection Engine Context
165
 * \param s        Pointer to the Signature to which the current keyword belongs
166
 * \param str      Should hold an empty string always
167
 *
168
 * \retval 0       On success
169
 */
170
static int DetectHttpHeadersSetupSticky(DetectEngineCtx *de_ctx, Signature *s, const char *str)
171
18.4k
{
172
18.4k
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
683
        return -1;
174
175
17.7k
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
1.72k
        return -1;
177
178
15.9k
    return 0;
179
17.7k
}
detect-http-location.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
151
{
172
151
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
1
        return -1;
174
175
150
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
3
        return -1;
177
178
147
    return 0;
179
150
}
detect-http-referer.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
307
{
172
307
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
1
        return -1;
174
175
306
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
178
        return -1;
177
178
128
    return 0;
179
306
}
detect-http-server.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
3.50k
{
172
3.50k
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
16
        return -1;
174
175
3.48k
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
5
        return -1;
177
178
3.48k
    return 0;
179
3.48k
}
detect-http-accept-enc.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
1.00k
{
172
1.00k
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
186
        return -1;
174
175
816
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
474
        return -1;
177
178
342
    return 0;
179
816
}
detect-http-accept-lang.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
134
{
172
134
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
1
        return -1;
174
175
133
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
54
        return -1;
177
178
79
    return 0;
179
133
}
detect-http-accept.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
101
{
172
101
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
1
        return -1;
174
175
100
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
17
        return -1;
177
178
83
    return 0;
179
100
}
detect-http-connection.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
10.5k
{
172
10.5k
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
466
        return -1;
174
175
10.0k
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
57
        return -1;
177
178
10.0k
    return 0;
179
10.0k
}
detect-http-content-len.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
1.21k
{
172
1.21k
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
1
        return -1;
174
175
1.21k
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
712
        return -1;
177
178
501
    return 0;
179
1.21k
}
detect-http-content-type.c:DetectHttpHeadersSetupSticky
Line
Count
Source
171
1.44k
{
172
1.44k
    if (SCDetectBufferSetActiveList(de_ctx, s, g_buffer_id) < 0)
173
10
        return -1;
174
175
1.43k
    if (SCDetectSignatureSetAppProto(s, ALPROTO_HTTP) < 0)
176
220
        return -1;
177
178
1.21k
    return 0;
179
1.43k
}
180
181
static void DetectHttpHeadersRegisterStub(void)
182
711
{
183
711
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
#ifdef KEYWORD_NAME_LEGACY
185
553
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
#endif
187
711
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
711
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
711
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
553
    sigmatch_table[KEYWORD_ID].flags |=
192
553
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
158
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
#ifdef KEYWORD_TOSERVER
198
553
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
553
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
#endif
203
#ifdef KEYWORD_TOCLIENT
204
395
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
395
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
#endif
209
#ifdef KEYWORD_TOSERVER
210
553
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
553
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
#endif
215
#ifdef KEYWORD_TOCLIENT
216
395
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
395
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
#endif
221
222
711
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
711
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
711
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
711
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
711
}
detect-http-location.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
#ifdef KEYWORD_NAME_LEGACY
185
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
    sigmatch_table[KEYWORD_ID].flags |=
192
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
79
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
79
#endif
196
197
#ifdef KEYWORD_TOSERVER
198
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
#endif
203
79
#ifdef KEYWORD_TOCLIENT
204
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
79
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
79
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
79
#endif
209
#ifdef KEYWORD_TOSERVER
210
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
#endif
215
79
#ifdef KEYWORD_TOCLIENT
216
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
79
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
79
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
79
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-referer.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
#ifdef KEYWORD_TOCLIENT
204
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
#ifdef KEYWORD_TOCLIENT
216
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-server.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
#ifdef KEYWORD_NAME_LEGACY
185
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
    sigmatch_table[KEYWORD_ID].flags |=
192
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
79
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
79
#endif
196
197
#ifdef KEYWORD_TOSERVER
198
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
#endif
203
79
#ifdef KEYWORD_TOCLIENT
204
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
79
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
79
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
79
#endif
209
#ifdef KEYWORD_TOSERVER
210
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
#endif
215
79
#ifdef KEYWORD_TOCLIENT
216
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
79
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
79
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
79
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-accept-enc.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
#ifdef KEYWORD_TOCLIENT
204
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
#ifdef KEYWORD_TOCLIENT
216
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-accept-lang.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
#ifdef KEYWORD_TOCLIENT
204
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
#ifdef KEYWORD_TOCLIENT
216
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-accept.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
#ifdef KEYWORD_TOCLIENT
204
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
#ifdef KEYWORD_TOCLIENT
216
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-connection.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
79
#ifdef KEYWORD_TOCLIENT
204
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
79
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
79
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
79
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
79
#ifdef KEYWORD_TOCLIENT
216
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
79
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
79
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
79
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-content-len.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
79
#ifdef KEYWORD_TOCLIENT
204
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
79
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
79
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
79
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
79
#ifdef KEYWORD_TOCLIENT
216
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
79
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
79
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
79
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}
detect-http-content-type.c:DetectHttpHeadersRegisterStub
Line
Count
Source
182
79
{
183
79
    sigmatch_table[KEYWORD_ID].name = KEYWORD_NAME;
184
79
#ifdef KEYWORD_NAME_LEGACY
185
79
    sigmatch_table[KEYWORD_ID].alias = KEYWORD_NAME_LEGACY;
186
79
#endif
187
79
    sigmatch_table[KEYWORD_ID].desc = KEYWORD_NAME " sticky buffer for the " BUFFER_DESC;
188
79
    sigmatch_table[KEYWORD_ID].url = "/rules/" KEYWORD_DOC;
189
79
    sigmatch_table[KEYWORD_ID].Setup = DetectHttpHeadersSetupSticky;
190
79
#if defined(KEYWORD_TOSERVER) && defined(KEYWORD_TOSERVER)
191
79
    sigmatch_table[KEYWORD_ID].flags |=
192
79
            SIGMATCH_OPTIONAL_OPT | SIGMATCH_INFO_STICKY_BUFFER | SIGMATCH_SUPPORT_DIR;
193
#else
194
    sigmatch_table[KEYWORD_ID].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
195
#endif
196
197
79
#ifdef KEYWORD_TOSERVER
198
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
199
79
            GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
200
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
201
79
            GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
202
79
#endif
203
79
#ifdef KEYWORD_TOCLIENT
204
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
205
79
            GetResponseData, ALPROTO_HTTP1, HTP_RESPONSE_PROGRESS_HEADERS);
206
79
    DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
207
79
            GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);
208
79
#endif
209
79
#ifdef KEYWORD_TOSERVER
210
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
211
79
            HTP_REQUEST_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
212
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
213
79
            HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
214
79
#endif
215
79
#ifdef KEYWORD_TOCLIENT
216
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,
217
79
            HTP_RESPONSE_PROGRESS_HEADERS, DetectEngineInspectBufferGeneric, GetResponseData);
218
79
    DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
219
79
            HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
220
79
#endif
221
222
79
    DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC);
223
224
79
    g_http2_thread_id = DetectRegisterThreadCtxGlobalFuncs(
225
79
            BUFFER_NAME, SCHttp2ThreadBufDataInit, NULL, SCHttp2ThreadBufDataFree);
226
227
79
    g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
228
79
}