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

Go to the source code of this file.

Macros

#define DBG_LEVEL   12
 
#define CHK_DOMAIN_OK   0 /* Accept all rcpts for this domain */
 
#define CHK_DOMAIN_YES   1 /* Check only full addresses and domain part */
 
#define CHK_DOMAIN_LOCAL   2 /* Check full addresses, domain and rcpt part */
 
#define CHK_DOMAIN_REJECT   3 /* Rejects all rcpts for this domain */
 
#define CHK_DOMAIN_TEMPFAIL   4 /* Rejects all rcpts for this domain */
 
#define CHK_DOMAIN_SPAMTRAP   5 /* This domain is a spam trap */
 
#define CHK_RCPT_OK   0 /* Recipient OK */
 
#define CHK_RCPT_REJECT   1 /* Access denied */
 
#define CHK_RCPT_SPAMTRAP   2 /* spam Trap */
 
#define CHK_RCPT_IGNORE   3
 
#define CHK_RCPT_TEMPFAIL   4 /* Access denied */
 
#define CHK_RCPT_NET_LOCAL   5 /* Accept only if coming from the local network */
 
#define CHK_RCPT_NET_DOMAIN   6 /* Accept only if coming from the domain network */
 
#define CHK_RCPT_NET_FRIEND   7 /* Accept only if coming from some friend network */
 
#define CHK_RCPT_NET_KNOWN   8
 
#define CHK_RCPT_USER_UNKNOWN   9
 
#define CHK_RCPT_UNDEF   -1
 
#define RCPT_PREFIX   "RcptAccess"
 
#define DOMAIN_PREFIX   "CheckRcptDomain"
 
#define CHECK_NET_CLASS(check, netclass)
 

Functions

int check_rcpt (char *email, char *ip, char *name, int netclass)
 
char * rcpt_code_string (int code)
 
bool rcpt_init ()
 
bool rcpt_close ()
 
bool rcpt_reopen ()
 

Macro Definition Documentation

◆ CHECK_NET_CLASS

#define CHECK_NET_CLASS (   check,
  netclass 
)
Value:
if (netclass != NET_UNKNOWN) { \
bool classok = FALSE; \
\
classok = IS_LOCAL(netclass) || IS_AUTH(netclass); \
if (classok && check == CHK_RCPT_NET_LOCAL) \
return RCPT_OK; \
\
classok = classok || IS_DOMAIN(netclass); \
if (classok && check == CHK_RCPT_NET_DOMAIN) \
return RCPT_OK; \
\
classok = classok || IS_FRIEND(netclass); \
if (classok && check == CHK_RCPT_NET_FRIEND) \
return RCPT_OK; \
\
classok = classok || IS_KNOWN(netclass); \
if (classok && check == CHK_RCPT_NET_KNOWN) \
return RCPT_OK; \
}
#define CHK_RCPT_NET_DOMAIN
Definition: ze-rcpt.c:45
#define IS_FRIEND(class)
Definition: ze-netclass.h:44
#define NET_UNKNOWN
Definition: ze-netclass.h:31
#define FALSE
Definition: macros.h:160
#define IS_LOCAL(class)
Definition: ze-netclass.h:46
#define CHK_RCPT_NET_LOCAL
Definition: ze-rcpt.c:44
#define IS_AUTH(class)
Definition: ze-netclass.h:47
#define IS_KNOWN(class)
Definition: ze-netclass.h:50
#define RCPT_OK
Definition: ze-rcpt.h:38
#define IS_DOMAIN(class)
Definition: ze-netclass.h:45
#define CHK_RCPT_NET_KNOWN
Definition: ze-rcpt.c:47
#define CHK_RCPT_NET_FRIEND
Definition: ze-rcpt.c:46

Definition at line 487 of file ze-rcpt.c.

◆ CHK_DOMAIN_LOCAL

#define CHK_DOMAIN_LOCAL   2 /* Check full addresses, domain and rcpt part */

Definition at line 33 of file ze-rcpt.c.

◆ CHK_DOMAIN_OK

#define CHK_DOMAIN_OK   0 /* Accept all rcpts for this domain */

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

◆ CHK_DOMAIN_REJECT

#define CHK_DOMAIN_REJECT   3 /* Rejects all rcpts for this domain */

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

◆ CHK_DOMAIN_SPAMTRAP

#define CHK_DOMAIN_SPAMTRAP   5 /* This domain is a spam trap */

Definition at line 36 of file ze-rcpt.c.

◆ CHK_DOMAIN_TEMPFAIL

#define CHK_DOMAIN_TEMPFAIL   4 /* Rejects all rcpts for this domain */

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

◆ CHK_DOMAIN_YES

#define CHK_DOMAIN_YES   1 /* Check only full addresses and domain part */

Definition at line 32 of file ze-rcpt.c.

◆ CHK_RCPT_IGNORE

#define CHK_RCPT_IGNORE   3

Definition at line 42 of file ze-rcpt.c.

◆ CHK_RCPT_NET_DOMAIN

#define CHK_RCPT_NET_DOMAIN   6 /* Accept only if coming from the domain network */

Definition at line 45 of file ze-rcpt.c.

◆ CHK_RCPT_NET_FRIEND

#define CHK_RCPT_NET_FRIEND   7 /* Accept only if coming from some friend network */

Definition at line 46 of file ze-rcpt.c.

◆ CHK_RCPT_NET_KNOWN

#define CHK_RCPT_NET_KNOWN   8

Definition at line 47 of file ze-rcpt.c.

◆ CHK_RCPT_NET_LOCAL

#define CHK_RCPT_NET_LOCAL   5 /* Accept only if coming from the local network */

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

◆ CHK_RCPT_OK

#define CHK_RCPT_OK   0 /* Recipient OK */

Definition at line 39 of file ze-rcpt.c.

◆ CHK_RCPT_REJECT

#define CHK_RCPT_REJECT   1 /* Access denied */

Definition at line 40 of file ze-rcpt.c.

◆ CHK_RCPT_SPAMTRAP

#define CHK_RCPT_SPAMTRAP   2 /* spam Trap */

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

◆ CHK_RCPT_TEMPFAIL

#define CHK_RCPT_TEMPFAIL   4 /* Access denied */

Definition at line 43 of file ze-rcpt.c.

◆ CHK_RCPT_UNDEF

#define CHK_RCPT_UNDEF   -1

Definition at line 50 of file ze-rcpt.c.

◆ CHK_RCPT_USER_UNKNOWN

#define CHK_RCPT_USER_UNKNOWN   9

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

◆ DBG_LEVEL

#define DBG_LEVEL   12

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

◆ DOMAIN_PREFIX

#define DOMAIN_PREFIX   "CheckRcptDomain"

Definition at line 86 of file ze-rcpt.c.

◆ RCPT_PREFIX

#define RCPT_PREFIX   "RcptAccess"

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

Function Documentation

◆ check_rcpt()

int check_rcpt ( char *  email,
char *  ip,
char *  name,
int  netclass 
)

Definition at line 89 of file ze-rcpt.c.

◆ rcpt_close()

bool rcpt_close ( )

Definition at line 562 of file ze-rcpt.c.

◆ rcpt_code_string()

char* rcpt_code_string ( int  code)

Definition at line 530 of file ze-rcpt.c.

◆ rcpt_init()

bool rcpt_init ( )

Definition at line 552 of file ze-rcpt.c.

◆ rcpt_reopen()

bool rcpt_reopen ( )

Definition at line 572 of file ze-rcpt.c.