ze-filter  (ze-filter-0.8.0-develop-180218)
ze-scanmail.c File Reference
#include <ze-sys.h>
#include "ze-filter.h"

Go to the source code of this file.

Classes

struct  REGEX_T
 
struct  scan_state_T
 

Macros

#define SZ_P   65536
 
#define SZ_FREE   8192
 
#define SZ_WORK   (SZ_P + SZ_FREE + 1)
 
#define TRUE   1
 
#define FALSE   0
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MAX2(a, b)   MAX((a),(b))
 
#define MAX3(a, b, c)   MAX(a, MAX((b),(c)))
 
#define MAX4(a, b, c, d)   MAX(MAX((a),(b)), MAX((c),(d)))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define MIN2(a, b)   MIN((a),(b))
 
#define MIN3(a, b, c)   MIN(a, MIN((b),(c)))
 
#define MIN4(a, b, c, d)   MIN(MIN((a),(b)), MIN((c),(d)))
 
#define MAX_LINE   4096
 
#define REGCOMP_FLAGS   (REG_ICASE | REG_NEWLINE | REG_EXTENDED)
 
#define REGEXEC_FLAGS   (0)
 
#define RE_CT   "Content-type[ \t]*:"
 
#define RE_CD   "Content-disposition[ \t]*:"
 
#define RE_UU   "^begin(-base64){0,1}[ \t]{1,}[0]{0,1}[0-7]{3,3}[ \t]{1,}[^\t\r\n]{1,}"
 
#define SCAN_REGEX_LOCK()   MUTEX_LOCK(&RE.mutex)
 
#define SCAN_REGEX_UNLOCK()   MUTEX_UNLOCK(&RE.mutex)
 
#define MALLOC_WORK   1
 
#define LINESZ   2048
 
#define NRE_CT   "Content-type[ \t]*:"
 
#define NRE_CD   "Content-disposition[ \t]*:"
 
#define NRE_UU   "begin(-base64){0,1}[ \t]{1,}[0]{0,1}[0-7]{3,3}[ \t]{1,}[^\t\r\n]{1,}"
 
#define CHECK_DOUBLE_NAME(val)
 

Typedefs

typedef struct REGEX_T REGEX_T
 
typedef struct scan_state_T scan_state_T
 

Functions

int new_scan_block (char *, char *, long, char *, long, int *, content_field_T *, content_field_T **)
 
int old_scan_block (char *, char *, long, char *, long, int *, content_field_T *, content_field_T **)
 
int scan_block (char *id, char *chunk, long sz_chunk, char *new, long sz_new, int *state, content_field_T *content, content_field_T **list)
 
long min4 (long a, long b, long c, long d)
 
long min3 (long a, long b, long c)
 
void clean_tag_value (char *fname)
 

Macro Definition Documentation

◆ CHECK_DOUBLE_NAME

#define CHECK_DOUBLE_NAME (   val)
Value:
do \
{ \
int i; \
\
already_there = FALSE; \
for (i = 0; i < 16; i++) \
{ \
if (pname[i] != NULL && strcasecmp(pname[i], val) == 0) \
{ \
already_there = TRUE; \
break; \
} \
} \
} while (0);
#define TRUE
Definition: ze-scanmail.c:34
#define FALSE
Definition: ze-scanmail.c:35

Definition at line 1118 of file ze-scanmail.c.

◆ FALSE

#define FALSE   0

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

◆ LINESZ

#define LINESZ   2048

Definition at line 807 of file ze-scanmail.c.

◆ MALLOC_WORK

#define MALLOC_WORK   1

Definition at line 278 of file ze-scanmail.c.

◆ MAX

#define MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

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

◆ MAX2

#define MAX2 (   a,
 
)    MAX((a),(b))

Definition at line 76 of file ze-scanmail.c.

◆ MAX3

#define MAX3 (   a,
  b,
 
)    MAX(a, MAX((b),(c)))

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

◆ MAX4

#define MAX4 (   a,
  b,
  c,
 
)    MAX(MAX((a),(b)), MAX((c),(d)))

Definition at line 78 of file ze-scanmail.c.

◆ MAX_LINE

#define MAX_LINE   4096

Definition at line 164 of file ze-scanmail.c.

◆ MIN

#define MIN (   a,
 
)    ((a) < (b) ? (a) : (b))

Definition at line 81 of file ze-scanmail.c.

◆ MIN2

#define MIN2 (   a,
 
)    MIN((a),(b))

Definition at line 83 of file ze-scanmail.c.

◆ MIN3

#define MIN3 (   a,
  b,
 
)    MIN(a, MIN((b),(c)))

Definition at line 84 of file ze-scanmail.c.

◆ MIN4

#define MIN4 (   a,
  b,
  c,
 
)    MIN(MIN((a),(b)), MIN((c),(d)))

Definition at line 85 of file ze-scanmail.c.

◆ NRE_CD

#define NRE_CD   "Content-disposition[ \t]*:"

Definition at line 810 of file ze-scanmail.c.

◆ NRE_CT

#define NRE_CT   "Content-type[ \t]*:"

Definition at line 809 of file ze-scanmail.c.

◆ NRE_UU

#define NRE_UU   "begin(-base64){0,1}[ \t]{1,}[0]{0,1}[0-7]{3,3}[ \t]{1,}[^\t\r\n]{1,}"

Definition at line 811 of file ze-scanmail.c.

◆ RE_CD

#define RE_CD   "Content-disposition[ \t]*:"

Definition at line 175 of file ze-scanmail.c.

◆ RE_CT

#define RE_CT   "Content-type[ \t]*:"

Definition at line 174 of file ze-scanmail.c.

◆ RE_UU

#define RE_UU   "^begin(-base64){0,1}[ \t]{1,}[0]{0,1}[0-7]{3,3}[ \t]{1,}[^\t\r\n]{1,}"

Definition at line 182 of file ze-scanmail.c.

◆ REGCOMP_FLAGS

#define REGCOMP_FLAGS   (REG_ICASE | REG_NEWLINE | REG_EXTENDED)

Definition at line 166 of file ze-scanmail.c.

◆ REGEXEC_FLAGS

#define REGEXEC_FLAGS   (0)

Definition at line 170 of file ze-scanmail.c.

◆ SCAN_REGEX_LOCK

#define SCAN_REGEX_LOCK ( )    MUTEX_LOCK(&RE.mutex)

Definition at line 198 of file ze-scanmail.c.

◆ SCAN_REGEX_UNLOCK

#define SCAN_REGEX_UNLOCK ( )    MUTEX_UNLOCK(&RE.mutex)

Definition at line 199 of file ze-scanmail.c.

◆ SZ_FREE

#define SZ_FREE   8192

Definition at line 30 of file ze-scanmail.c.

◆ SZ_P

#define SZ_P   65536

Definition at line 29 of file ze-scanmail.c.

◆ SZ_WORK

#define SZ_WORK   (SZ_P + SZ_FREE + 1)

Definition at line 31 of file ze-scanmail.c.

◆ TRUE

#define TRUE   1

Definition at line 34 of file ze-scanmail.c.

Typedef Documentation

◆ REGEX_T

typedef struct REGEX_T REGEX_T

◆ scan_state_T

typedef struct scan_state_T scan_state_T

Definition at line 820 of file ze-scanmail.c.

Function Documentation

◆ clean_tag_value()

void clean_tag_value ( char *  fname)

Definition at line 134 of file ze-scanmail.c.

◆ min3()

long min3 ( long  a,
long  b,
long  c 
)

Definition at line 114 of file ze-scanmail.c.

◆ min4()

long min4 ( long  a,
long  b,
long  c,
long  d 
)

Definition at line 92 of file ze-scanmail.c.

◆ new_scan_block()

int new_scan_block ( char *  id,
char *  old,
long  sz_old,
char *  new,
long  sz_new,
int *  state,
content_field_T content,
content_field_T **  list 
)

Definition at line 829 of file ze-scanmail.c.

◆ old_scan_block()

int old_scan_block ( char *  id,
char *  chunk,
long  sz_chunk,
char *  new,
long  sz_new,
int *  state,
content_field_T content,
content_field_T **  list 
)

Definition at line 280 of file ze-scanmail.c.