suricata
app-layer-htp.c File Reference
#include "suricata.h"
#include "suricata-common.h"
#include "conf.h"
#include "decode.h"
#include "util-print.h"
#include "util-byte.h"
#include "stream-tcp.h"
#include "app-layer-protos.h"
#include "app-layer-parser.h"
#include "app-layer.h"
#include "app-layer-detect-proto.h"
#include "app-layer-frames.h"
#include "app-layer-htp.h"
#include "app-layer-htp-body.h"
#include "app-layer-htp-file.h"
#include "app-layer-htp-xff.h"
#include "app-layer-htp-range.h"
#include "app-layer-htp-mem.h"
#include "util-debug.h"
#include "util-misc.h"
#include "util-unittest.h"
#include "util-unittest-helper.h"
#include "flow-util.h"
#include "detect-engine.h"
#include "detect-engine-build.h"
#include "detect-engine-state.h"
#include "detect-parse.h"
#include "util-memcmp.h"
#include "util-random.h"
#include "util-validate.h"
#include "detect-engine-alert.h"
#include "conf-yaml-loader.h"
Include dependency graph for app-layer-htp.c:

Go to the source code of this file.

Data Structures

struct  HTPConfigTree
 

Macros

#define IF_HTP_PERSONALITY_NUM(p)
 
#define HTP_CONFIG_DEFAULT_MAX_TX_LIMIT   512
 
#define HTP_CONFIG_DEFAULT_HEADERS_LIMIT   1024
 
#define HTP_MAX_MESSAGES   512
 
enum  HttpFrameTypes { HTTP_FRAME_REQUEST, HTTP_FRAME_RESPONSE }
 
SCRadix4Config htp_radix4_cfg = { NULL, NULL }
 
SCRadix6Config htp_radix6_cfg = { NULL, NULL }
 
StreamingBufferConfig htp_sbcfg = STREAMING_BUFFER_CONFIG_INITIALIZER
 
SCEnumCharMap http_decoder_event_table []
 
SCEnumCharMap http_frame_table []
 
 SC_ATOMIC_DECLARE (uint32_t, htp_config_flags)
 
void HTPStateFree (void *state)
 Function to frees the HTTP state memory and also frees the HTTP connection parser memory which was used by the HTP library. More...
 
void AppLayerHtpEnableRequestBodyCallback (void)
 Sets a flag that informs the HTP app layer that some module in the engine needs the http request body data. \initonly. More...
 
void AppLayerHtpEnableResponseBodyCallback (void)
 Sets a flag that informs the HTP app layer that some module in the engine needs the http request body data. \initonly. More...
 
void AppLayerHtpNeedFileInspection (void)
 Sets a flag that informs the HTP app layer that some module in the engine needs the http request file. More...
 
void HTPAtExitPrintStats (void)
 Print the stats of the HTTP requests. More...
 
void HTPFreeConfig (void)
 Clears the HTTP server configuration memory used by HTP library. More...
 
void HTPConfigure (void)
 
void AppLayerHtpPrintStats (void)
 
void * HtpGetTxForH2 (void *alstate)
 
void RegisterHTPParsers (void)
 Register the HTTP protocol and state handling functions to APP layer of the engine. More...
 
void HtpConfigCreateBackup (void)
 
void HtpConfigRestoreBackup (void)
 

Detailed Description

Macro Definition Documentation

◆ HTP_CONFIG_DEFAULT_HEADERS_LIMIT

#define HTP_CONFIG_DEFAULT_HEADERS_LIMIT   1024

◆ HTP_CONFIG_DEFAULT_MAX_TX_LIMIT

#define HTP_CONFIG_DEFAULT_MAX_TX_LIMIT   512

◆ HTP_MAX_MESSAGES

#define HTP_MAX_MESSAGES   512

Limit to the number of libhtp messages that can be handled

Definition at line 95 of file app-layer-htp.c.

◆ IF_HTP_PERSONALITY_NUM

#define IF_HTP_PERSONALITY_NUM (   p)
Value:
if (strcasecmp(#p, str) == 0) \
return HTP_SERVER_PERSONALITY_##p

Enumeration Type Documentation

◆ HttpFrameTypes

Enumerator
HTTP_FRAME_REQUEST 
HTTP_FRAME_RESPONSE 

Definition at line 221 of file app-layer-htp.c.

Function Documentation

◆ SC_ATOMIC_DECLARE()

SC_ATOMIC_DECLARE ( uint32_t  ,
htp_config_flags   
)

Variable Documentation

◆ htp_radix4_cfg

SCRadix4Config htp_radix4_cfg = { NULL, NULL }

Definition at line 85 of file app-layer-htp.c.

◆ htp_radix6_cfg

SCRadix6Config htp_radix6_cfg = { NULL, NULL }

Definition at line 86 of file app-layer-htp.c.

◆ htp_sbcfg

◆ http_decoder_event_table

SCEnumCharMap http_decoder_event_table[]

Definition at line 104 of file app-layer-htp.c.

◆ http_frame_table

SCEnumCharMap http_frame_table[]
Initial value:
= {
{
"request",
},
{
"response",
},
{ NULL, -1 },
}

Definition at line 226 of file app-layer-htp.c.

HTTP_FRAME_RESPONSE
@ HTTP_FRAME_RESPONSE
Definition: app-layer-htp.c:223
str
#define str(s)
Definition: suricata-common.h:300
HTTP_FRAME_REQUEST
@ HTTP_FRAME_REQUEST
Definition: app-layer-htp.c:222