suricata
app-layer-ftp.c File Reference
#include "suricata-common.h"
#include "app-layer-ftp.h"
#include "app-layer.h"
#include "app-layer-parser.h"
#include "app-layer-expectation.h"
#include "app-layer-detect-proto.h"
#include "rust.h"
#include "util-misc.h"
#include "util-mpm.h"
#include "util-validate.h"
#include "util-print.h"
#include "stream-tcp.h"
Include dependency graph for app-layer-ftp.c:

Go to the source code of this file.

Data Structures

struct  FTPThreadCtx_
 
struct  FtpInput_
 
struct  FtpTransferCmd
 

Macros

#define FTP_MPM   mpm_default_matcher
 

Typedefs

typedef struct FTPThreadCtx_ FTPThreadCtx
 
typedef struct FtpInput_ FtpInput
 

Functions

 SC_ATOMIC_DECLARE (uint64_t, ftp_memuse)
 
 SC_ATOMIC_DECLARE (uint64_t, ftp_memcap)
 
uint64_t FTPMemuseGlobalCounter (void)
 
uint64_t FTPMemcapGlobalCounter (void)
 
int FTPSetMemcap (uint64_t size)
 
void RegisterFTPParsers (void)
 
uint16_t JsonGetNextLineFromBuffer (const char *buffer, const uint16_t len)
 
bool EveFTPDataAddMetadata (void *vtx, JsonBuilder *jb)
 
void FTPParserCleanup (void)
 Free memory allocated for global FTP parser state. More...
 
void FTPParserRegisterTests (void)
 

Variables

const FtpCommand FtpCommands [FTP_COMMAND_MAX+1]
 
uint64_t ftp_config_memcap = 0
 
uint32_t ftp_config_maxtx = 1024
 
uint32_t ftp_max_line_len = 4096
 

Detailed Description

Macro Definition Documentation

◆ FTP_MPM

#define FTP_MPM   mpm_default_matcher

Definition at line 47 of file app-layer-ftp.c.

Typedef Documentation

◆ FtpInput

typedef struct FtpInput_ FtpInput

◆ FTPThreadCtx

typedef struct FTPThreadCtx_ FTPThreadCtx

Function Documentation

◆ EveFTPDataAddMetadata()

bool EveFTPDataAddMetadata ( void *  vtx,
JsonBuilder *  jb 
)

◆ FTPMemcapGlobalCounter()

uint64_t FTPMemcapGlobalCounter ( void  )

Definition at line 171 of file app-layer-ftp.c.

References SC_ATOMIC_GET.

Referenced by AppLayerRegisterGlobalCounters().

Here is the caller graph for this function:

◆ FTPMemuseGlobalCounter()

uint64_t FTPMemuseGlobalCounter ( void  )

Definition at line 165 of file app-layer-ftp.c.

References SC_ATOMIC_GET.

Referenced by AppLayerRegisterGlobalCounters().

Here is the caller graph for this function:

◆ FTPParserCleanup()

void FTPParserCleanup ( void  )

Free memory allocated for global FTP parser state.

Definition at line 1479 of file app-layer-ftp.c.

Referenced by AppLayerParserDeSetup().

Here is the caller graph for this function:

◆ FTPParserRegisterTests()

void FTPParserRegisterTests ( void  )

Definition at line 1614 of file app-layer-ftp.c.

References UtRegisterTest().

Here is the call graph for this function:

◆ FTPSetMemcap()

int FTPSetMemcap ( uint64_t  size)

Definition at line 177 of file app-layer-ftp.c.

References SC_ATOMIC_GET, and SC_ATOMIC_SET.

◆ JsonGetNextLineFromBuffer()

uint16_t JsonGetNextLineFromBuffer ( const char *  buffer,
const uint16_t  len 
)

Definition at line 1444 of file app-layer-ftp.c.

References len.

Referenced by EveFTPLogCommand().

Here is the caller graph for this function:

◆ RegisterFTPParsers()

void RegisterFTPParsers ( void  )

FTP

Definition at line 1345 of file app-layer-ftp.c.

References ALPROTO_FTP, AppLayerProtoDetectConfProtoDetectionEnabled(), and AppLayerProtoDetectRegisterProtocol().

Here is the call graph for this function:

◆ SC_ATOMIC_DECLARE() [1/2]

SC_ATOMIC_DECLARE ( uint64_t  ,
ftp_memcap   
)

◆ SC_ATOMIC_DECLARE() [2/2]

SC_ATOMIC_DECLARE ( uint64_t  ,
ftp_memuse   
)

Variable Documentation

◆ ftp_config_maxtx

uint32_t ftp_config_maxtx = 1024

Definition at line 108 of file app-layer-ftp.c.

◆ ftp_config_memcap

uint64_t ftp_config_memcap = 0

Definition at line 107 of file app-layer-ftp.c.

◆ ftp_max_line_len

uint32_t ftp_max_line_len = 4096

Definition at line 109 of file app-layer-ftp.c.

◆ FtpCommands

const FtpCommand FtpCommands[FTP_COMMAND_MAX+1]

Definition at line 51 of file app-layer-ftp.c.