ze-filter  (ze-filter-0.8.0-develop-180218)
ze-grey.c File Reference
#include <ze-sys.h>
#include <libze.h>
#include <ze-filter.h>
#include <ze-grey.h>
#include <ze-log-grey.h>

Go to the source code of this file.

Classes

struct  grey_filter_T
 
struct  tuple_T
 
struct  grey_entry_T
 
struct  expire_st_T
 

Macros

#define BF_SZ   512
 
#define DT_GREY_SLEEP   10
 
#define DT_GREY_INTERVAL   (6 HOURS)
 
#define MIN_CNT_PER_DOMAIN   5
 
#define GREY_TP_MIN_NORM   10 MINUTES
 
#define GREY_TP_MIN_NULL   10 MINUTES
 
#define GREY_TP_MAX_NORM   3 DAYS
 
#define GREY_TP_MAX_NULL   4 HOURS
 
#define GREY_TV_MAX   7 DAYS
 
#define GREY_TW_MAX   21 DAYS
 
#define GREY_TB_MAX   7 DAYS
 
#define T_EXPIRE_BAD_MIN   6 HOURS
 
#define T_EXPIRE_PENDING_BAD_MAX   24 HOURS
 
#define T_EXPIRE_VALID_BAD_MAX   5 DAYS
 
#define GREY_CRIT_LOCK()   MUTEX_LOCK(&grey_crit)
 
#define GREY_CRIT_UNLOCK()   MUTEX_UNLOCK(&grey_crit)
 
#define DBG_LEVEL   12
 
#define GREY_ENTRY_INITIALIZER
 
#define ISNULLSENDER(x)
 
#define SIGTID   ((pthread_t ) 23021957)
 
#define TIMER_INIT(t)
 
#define TIMER_NOW(t)   (zeTime_ms() - t)
 
#define TIMER_LOG(s, t)
 
#define ST_IDLE   0
 
#define ST_PENDING   1
 
#define ST_VALID   2
 
#define ST_WHITE   3
 
#define ST_BLACK   4
 
#define ST_DONE   5
 
#define CHECK_DELAY()
 
#define DOM_DIM   32
 
#define SECLEVDOMAINS   {"com","org","co","asso","net","gov","edu",NULL}
 
#define DOM_DIM   32
 
#define SECLEVDOMAINS   {"com","org","co","asso","net","gov","edu",NULL}
 

Typedefs

typedef struct grey_filter_T grey_filter_T
 
typedef struct expire_st_T expire_st_T
 
typedef struct tuple_T tuple_T
 
typedef struct grey_entry_T grey_entry_T
 

Functions

void grey_launch_thread ()
 
bool grey_set_tuples (char *ip, char *from, char *to)
 
bool grey_set_delays (time_t tp_min_norm, time_t tp_max_norm, time_t tp_min_null, time_t tp_max_null)
 
bool grey_set_lifetime (time_t tv, time_t tw, time_t tb)
 
bool grey_set_max_pending (int nbnormal, int nbnull)
 
bool grey_set_cleanup_interval (time_t tclean)
 
void grey_set_compat_domain_check (bool enable)
 
int grey_check (char *kAddr, char *kFrom, char *kRcpt, char *kName, bool *new, bool can_validate)
 
int grey_validate (char *kAddr, char *kFrom, char *kRcpt, char *kName)
 
bool grey_remove_entry (char *which, char *key)
 
bool grey_remove_entries_from_file (char *which, char *fname)
 
bool grey_init (char *workdir, bool rd, int mode)
 
void grey_close ()
 
bool grey_reload ()
 
void grey_set_dewhite_flags (char *s, bool reset)
 
int grey_dump (int fd, char *which, time_t dt)
 
int grey_upload (char *fname, char *which)
 
bool grey_remove (int where, char *key)
 
int grey_dbcount (int which)
 

Macro Definition Documentation

◆ BF_SZ

#define BF_SZ   512

Definition at line 35 of file ze-grey.c.

◆ CHECK_DELAY

#define CHECK_DELAY ( )

Definition at line 2503 of file ze-grey.c.

◆ DBG_LEVEL

#define DBG_LEVEL   12

Definition at line 279 of file ze-grey.c.

◆ DOM_DIM [1/2]

#define DOM_DIM   32

Definition at line 3092 of file ze-grey.c.

◆ DOM_DIM [2/2]

#define DOM_DIM   32

Definition at line 3092 of file ze-grey.c.

◆ DT_GREY_INTERVAL

#define DT_GREY_INTERVAL   (6 HOURS)

Definition at line 41 of file ze-grey.c.

◆ DT_GREY_SLEEP

#define DT_GREY_SLEEP   10

Definition at line 38 of file ze-grey.c.

◆ GREY_CRIT_LOCK

#define GREY_CRIT_LOCK ( )    MUTEX_LOCK(&grey_crit)

Definition at line 275 of file ze-grey.c.

◆ GREY_CRIT_UNLOCK

#define GREY_CRIT_UNLOCK ( )    MUTEX_UNLOCK(&grey_crit)

Definition at line 276 of file ze-grey.c.

◆ GREY_ENTRY_INITIALIZER

#define GREY_ENTRY_INITIALIZER
Value:
{0, 0, NULL, NULL, NULL, NULL, \
NULL, NULL, NULL, NULL, 0, FALSE, NULL, NULL, NULL}
#define FALSE
Definition: macros.h:160

Definition at line 328 of file ze-grey.c.

◆ GREY_TB_MAX

#define GREY_TB_MAX   7 DAYS

Definition at line 67 of file ze-grey.c.

◆ GREY_TP_MAX_NORM

#define GREY_TP_MAX_NORM   3 DAYS

Definition at line 54 of file ze-grey.c.

◆ GREY_TP_MAX_NULL

#define GREY_TP_MAX_NULL   4 HOURS

Definition at line 57 of file ze-grey.c.

◆ GREY_TP_MIN_NORM

#define GREY_TP_MIN_NORM   10 MINUTES

Definition at line 48 of file ze-grey.c.

◆ GREY_TP_MIN_NULL

#define GREY_TP_MIN_NULL   10 MINUTES

Definition at line 51 of file ze-grey.c.

◆ GREY_TV_MAX

#define GREY_TV_MAX   7 DAYS

Definition at line 61 of file ze-grey.c.

◆ GREY_TW_MAX

#define GREY_TW_MAX   21 DAYS

Definition at line 64 of file ze-grey.c.

◆ ISNULLSENDER

#define ISNULLSENDER (   x)
Value:
(((x) == NULL) || \
(strstr((x), "<>") != NULL) || \
(strlen((x)) == 0) || \
(strcasecmp((x), "nullsender") == 0) || \
(strncasecmp((x), "postmaster", 10) == 0) || \
(strncasecmp((x), "mailer-daemon", 13) == 0))

Definition at line 341 of file ze-grey.c.

◆ MIN_CNT_PER_DOMAIN

#define MIN_CNT_PER_DOMAIN   5

Definition at line 44 of file ze-grey.c.

◆ SECLEVDOMAINS [1/2]

#define SECLEVDOMAINS   {"com","org","co","asso","net","gov","edu",NULL}

Definition at line 3094 of file ze-grey.c.

◆ SECLEVDOMAINS [2/2]

#define SECLEVDOMAINS   {"com","org","co","asso","net","gov","edu",NULL}

Definition at line 3094 of file ze-grey.c.

◆ SIGTID

#define SIGTID   ((pthread_t ) 23021957)

Definition at line 1740 of file ze-grey.c.

◆ ST_BLACK

#define ST_BLACK   4

Definition at line 2493 of file ze-grey.c.

◆ ST_DONE

#define ST_DONE   5

Definition at line 2494 of file ze-grey.c.

◆ ST_IDLE

#define ST_IDLE   0

Definition at line 2489 of file ze-grey.c.

◆ ST_PENDING

#define ST_PENDING   1

Definition at line 2490 of file ze-grey.c.

◆ ST_VALID

#define ST_VALID   2

Definition at line 2491 of file ze-grey.c.

◆ ST_WHITE

#define ST_WHITE   3

Definition at line 2492 of file ze-grey.c.

◆ T_EXPIRE_BAD_MIN

#define T_EXPIRE_BAD_MIN   6 HOURS

Definition at line 71 of file ze-grey.c.

◆ T_EXPIRE_PENDING_BAD_MAX

#define T_EXPIRE_PENDING_BAD_MAX   24 HOURS

Definition at line 74 of file ze-grey.c.

◆ T_EXPIRE_VALID_BAD_MAX

#define T_EXPIRE_VALID_BAD_MAX   5 DAYS

Definition at line 77 of file ze-grey.c.

◆ TIMER_INIT

#define TIMER_INIT (   t)
Value:
do { \
t = zeTime_ms(); \
} while (0)
uint64_t zeTime_ms()
Definition: zeTime.c:34

Definition at line 1853 of file ze-grey.c.

◆ TIMER_LOG

#define TIMER_LOG (   s,
 
)
Value:
do { \
timems_T dt = TIMER_NOW(t); \
ZE_MessageInfo(0, "%-12s : Elapsed time %ld ms",s, (long ) (dt)); \
} while (0)
#define TIMER_NOW(t)
Definition: ze-grey.c:1858

Definition at line 1860 of file ze-grey.c.

◆ TIMER_NOW

#define TIMER_NOW (   t)    (zeTime_ms() - t)

Definition at line 1858 of file ze-grey.c.

Typedef Documentation

◆ expire_st_T

typedef struct expire_st_T expire_st_T

Definition at line 266 of file ze-grey.c.

◆ grey_entry_T

typedef struct grey_entry_T grey_entry_T

Definition at line 297 of file ze-grey.c.

◆ grey_filter_T

typedef struct grey_filter_T grey_filter_T

Definition at line 106 of file ze-grey.c.

◆ tuple_T

typedef struct tuple_T tuple_T

Definition at line 282 of file ze-grey.c.

Function Documentation

◆ grey_launch_thread()

void grey_launch_thread ( )

Definition at line 1747 of file ze-grey.c.

◆ grey_remove()

bool grey_remove ( int  where,
char *  key 
)

Definition at line 3033 of file ze-grey.c.