summaryrefslogtreecommitdiff
path: root/src/ftp_decoder_stat.h
blob: bfca60ca72187d07a2d5e929fc70f1549fb22b02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once
#include <fieldstat/fieldstat_easy.h>

enum ftp_decoder_stat_type{
    FTPD_STAT_CTRL_LINK_OPEN = 0,
    FTPD_STAT_CTRL_LINK_CLOSE,
    FTPD_STAT_DATA_LINK_OPEN,
    FTPD_STAT_DATA_LINK_CLOSE,
    FTPD_STAT_NEGOTIATE_DATA_LINK, //Negotiating by PORT or PASV command in ctrl link
    FTPD_STAT_CTRL_LINK_BYTES_C2S,
    FTPD_STAT_CTRL_LINK_BYTES_S2C,
    FTPD_STAT_DATA_LINK_BYTES_C2S,
    FTPD_STAT_DATA_LINK_BYTES_S2C,    
    FTPD_STAT_CTRL_CMD,

    FTPD_STAT_MAX,
};


struct ftpd_stat_config_tuple
{
    enum ftp_decoder_stat_type type;
    const char *name;
};

int ftp_decoder_stat_init(struct ftp_decoder_env *fenv);
void ftp_decoder_stat_free(struct ftp_decoder_env *fenv);
void ftp_decoder_stat_incrby(int thread_idx, struct ftp_decoder_env *fenv, enum ftp_decoder_stat_type stattype, long long increment);