Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数 | 変数
postscreen.h ファイル
#include <dict_cache.h>
#include <vstream.h>
#include <vstring.h>
#include <events.h>
#include <htable.h>
#include <myaddrinfo.h>
#include <addr_match_list.h>
#include <string_list.h>
#include <maps.h>
#include <server_acl.h>

[ソースコード]

データ構造

struct  PSC_CLIENT_INFO
 
struct  PSC_STATE
 
struct  DELTA_TIME
 

マクロ定義

#define PSC_READ_BUF_SIZE   1024
 
#define PSC_TINDX_PREGR   0 /* pregreet */
 
#define PSC_TINDX_DNSBL   1 /* dnsbl */
 
#define PSC_TINDX_PIPEL   2 /* pipelining */
 
#define PSC_TINDX_NSMTP   3 /* non-smtp command */
 
#define PSC_TINDX_BARLF   4 /* bare newline */
 
#define PSC_TINDX_COUNT   5 /* number of tests */
 
#define PSC_TNAME_PREGR   "pregreet"
 
#define PSC_TNAME_DNSBL   "dnsbl"
 
#define PSC_TNAME_PIPEL   "pipelining"
 
#define PSC_TNAME_NSMTP   "non-smtp command"
 
#define PSC_TNAME_BARLF   "bare newline"
 
#define PSC_TINDX_BYTNAME(tname)   (PSC_TINDX_ ## tname)
 
#define PSC_TIME_STAMP_NEW   (0) /* test was never passed */
 
#define PSC_TIME_STAMP_DISABLED   (1) /* never passed but disabled */
 
#define PSC_TIME_STAMP_INVALID   (-1) /* must not be cached */
 
#define PSC_STATE_FLAG_NOFORWARD   (1<<0) /* don't forward this session */
 
#define PSC_STATE_FLAG_USING_TLS   (1<<1) /* using the TLS proxy */
 
#define PSC_STATE_FLAG_UNUSED2   (1<<2) /* use me! */
 
#define PSC_STATE_FLAG_NEW   (1<<3) /* some test was never passed */
 
#define PSC_STATE_FLAG_BLIST_FAIL   (1<<4) /* blacklisted */
 
#define PSC_STATE_FLAG_HANGUP   (1<<5) /* NOT a test failure */
 
#define PSC_STATE_FLAG_SMTPD_X21   (1<<6) /* hang up after command */
 
#define PSC_STATE_FLAG_WLIST_FAIL   (1<<7) /* do not whitelist */
 
#define PSC_STATE_FLAG_TEST_BASE   (8) /* start of indexable flags */
 
#define PSC_STATE_FLAGS_TODO_TO_PASS(todo_flags)   ((todo_flags) >> 1)
 
#define PSC_STATE_FLAGS_TODO_TO_DONE(todo_flags)   ((todo_flags) << 1)
 
#define PSC_STATE_FLAG_SHIFT_FAIL   (0) /* failed test */
 
#define PSC_STATE_FLAG_SHIFT_PASS   (1) /* passed test */
 
#define PSC_STATE_FLAG_SHIFT_TODO   (2) /* expired test */
 
#define PSC_STATE_FLAG_SHIFT_DONE   (3) /* decision is final */
 
#define PSC_STATE_FLAG_SHIFT_SKIP   (3) /* action is already logged */
 
#define PSC_STATE_FLAG_SHIFT_STRIDE   (4) /* nr of flags per test */
 
#define PSC_STATE_FLAG_SHIFT_BYFNAME(fname)   (PSC_STATE_FLAG_SHIFT_ ## fname)
 
#define PSC_STATE_FLAG_BYTINDX_FNAME(tindx, fname)
 
#define PSC_STATE_FLAG_BYTINDX_FAIL(tindx)   PSC_STATE_FLAG_BYTINDX_FNAME((tindx), FAIL)
 
#define PSC_STATE_FLAG_BYTINDX_PASS(tindx)   PSC_STATE_FLAG_BYTINDX_FNAME((tindx), PASS)
 
#define PSC_STATE_FLAG_BYTINDX_TODO(tindx)   PSC_STATE_FLAG_BYTINDX_FNAME((tindx), TODO)
 
#define PSC_STATE_FLAG_BYTINDX_DONE(tindx)   PSC_STATE_FLAG_BYTINDX_FNAME((tindx), DONE)
 
#define PSC_STATE_FLAG_BYTINDX_SKIP(tindx)   PSC_STATE_FLAG_BYTINDX_FNAME((tindx), SKIP)
 
#define PSC_STATE_FLAG_BYTNAME_FNAME(tname, fname)
 
#define PSC_STATE_FLAG_PREGR_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, FAIL)
 
#define PSC_STATE_FLAG_PREGR_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, PASS)
 
#define PSC_STATE_FLAG_PREGR_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, TODO)
 
#define PSC_STATE_FLAG_PREGR_DONE   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, DONE)
 
#define PSC_STATE_FLAG_DNSBL_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, FAIL)
 
#define PSC_STATE_FLAG_DNSBL_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, PASS)
 
#define PSC_STATE_FLAG_DNSBL_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, TODO)
 
#define PSC_STATE_FLAG_DNSBL_DONE   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, DONE)
 
#define PSC_STATE_FLAG_PIPEL_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, FAIL)
 
#define PSC_STATE_FLAG_PIPEL_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, PASS)
 
#define PSC_STATE_FLAG_PIPEL_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, TODO)
 
#define PSC_STATE_FLAG_PIPEL_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, SKIP)
 
#define PSC_STATE_FLAG_NSMTP_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, FAIL)
 
#define PSC_STATE_FLAG_NSMTP_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, PASS)
 
#define PSC_STATE_FLAG_NSMTP_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, TODO)
 
#define PSC_STATE_FLAG_NSMTP_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, SKIP)
 
#define PSC_STATE_FLAG_BARLF_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, FAIL)
 
#define PSC_STATE_FLAG_BARLF_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, PASS)
 
#define PSC_STATE_FLAG_BARLF_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, TODO)
 
#define PSC_STATE_FLAG_BARLF_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, SKIP)
 
#define PSC_STATE_MASK_PREGR_TODO_FAIL   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_PREGR_FAIL)
 
#define PSC_STATE_MASK_DNSBL_TODO_FAIL   (PSC_STATE_FLAG_DNSBL_TODO | PSC_STATE_FLAG_DNSBL_FAIL)
 
#define PSC_STATE_MASK_PIPEL_TODO_FAIL   (PSC_STATE_FLAG_PIPEL_TODO | PSC_STATE_FLAG_PIPEL_FAIL)
 
#define PSC_STATE_MASK_NSMTP_TODO_FAIL   (PSC_STATE_FLAG_NSMTP_TODO | PSC_STATE_FLAG_NSMTP_FAIL)
 
#define PSC_STATE_MASK_BARLF_TODO_FAIL   (PSC_STATE_FLAG_BARLF_TODO | PSC_STATE_FLAG_BARLF_FAIL)
 
#define PSC_STATE_MASK_PREGR_TODO_DONE   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_PREGR_DONE)
 
#define PSC_STATE_MASK_PIPEL_TODO_SKIP   (PSC_STATE_FLAG_PIPEL_TODO | PSC_STATE_FLAG_PIPEL_SKIP)
 
#define PSC_STATE_MASK_NSMTP_TODO_SKIP   (PSC_STATE_FLAG_NSMTP_TODO | PSC_STATE_FLAG_NSMTP_SKIP)
 
#define PSC_STATE_MASK_BARLF_TODO_SKIP   (PSC_STATE_FLAG_BARLF_TODO | PSC_STATE_FLAG_BARLF_SKIP)
 
#define PSC_STATE_MASK_PREGR_FAIL_DONE   (PSC_STATE_FLAG_PREGR_FAIL | PSC_STATE_FLAG_PREGR_DONE)
 
#define PSC_STATE_MASK_PIPEL_TODO_PASS_FAIL   (PSC_STATE_MASK_PIPEL_TODO_FAIL | PSC_STATE_FLAG_PIPEL_PASS)
 
#define PSC_STATE_MASK_NSMTP_TODO_PASS_FAIL   (PSC_STATE_MASK_NSMTP_TODO_FAIL | PSC_STATE_FLAG_NSMTP_PASS)
 
#define PSC_STATE_MASK_BARLF_TODO_PASS_FAIL   (PSC_STATE_MASK_BARLF_TODO_FAIL | PSC_STATE_FLAG_BARLF_PASS)
 
#define PSC_STATE_MASK_EARLY_DONE   (PSC_STATE_FLAG_PREGR_DONE | PSC_STATE_FLAG_DNSBL_DONE)
 
#define PSC_STATE_MASK_EARLY_TODO   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_DNSBL_TODO)
 
#define PSC_STATE_MASK_EARLY_PASS   (PSC_STATE_FLAG_PREGR_PASS | PSC_STATE_FLAG_DNSBL_PASS)
 
#define PSC_STATE_MASK_EARLY_FAIL   (PSC_STATE_FLAG_PREGR_FAIL | PSC_STATE_FLAG_DNSBL_FAIL)
 
#define PSC_STATE_MASK_SMTPD_TODO
 
#define PSC_STATE_MASK_SMTPD_PASS
 
#define PSC_STATE_MASK_SMTPD_FAIL
 
#define PSC_STATE_MASK_ANY_FAIL
 
#define PSC_STATE_MASK_ANY_PASS   (PSC_STATE_MASK_EARLY_PASS | PSC_STATE_MASK_SMTPD_PASS)
 
#define PSC_STATE_MASK_ANY_TODO   (PSC_STATE_MASK_EARLY_TODO | PSC_STATE_MASK_SMTPD_TODO)
 
#define PSC_STATE_MASK_ANY_TODO_FAIL   (PSC_STATE_MASK_ANY_TODO | PSC_STATE_MASK_ANY_FAIL)
 
#define PSC_STATE_MASK_ANY_UPDATE   (PSC_STATE_MASK_ANY_PASS)
 
#define PSC_SMTPD_CMD_CONNECT   "CONNECT"
 
#define PSC_SMTPD_CMD_UNIMPL   "UNIMPLEMENTED"
 
#define PSC_CALC_DELTA(x, y, z)
 
#define SIG_DIGS   2
 
#define PSC_READ_EVENT_REQUEST(fd, action, context, timeout)
 
#define PSC_READ_EVENT_REQUEST2(fd, read_act, time_act, context, timeout)
 
#define PSC_CLEAR_EVENT_REQUEST(fd, time_act, context)
 
#define PSC_NAME_ACT_DROP   "drop"
 
#define PSC_NAME_ACT_ENFORCE   "enforce"
 
#define PSC_NAME_ACT_IGNORE   "ignore"
 
#define PSC_NAME_ACT_CONT   "continue"
 
#define PSC_ACT_DROP   1
 
#define PSC_ACT_ENFORCE   2
 
#define PSC_ACT_IGNORE   3
 
#define PSC_EFF_GREET_WAIT   (psc_stress ? psc_stress_greet_wait : psc_normal_greet_wait)
 
#define PSC_EFF_CMD_TIME_LIMIT   (psc_stress ? psc_stress_cmd_time_limit : psc_normal_cmd_time_limit)
 
#define PSC_STRING_UPDATE(str, text)
 
#define PSC_STRING_RESET(str)
 
#define STR(x)   vstring_str(x)
 
#define LEN(x)   VSTRING_LEN(x)
 
#define PSC_CLIENT_ADDR_PORT(state)   (state)->smtp_client_addr, (state)->smtp_client_port
 
#define PSC_PASS_SESSION_STATE(state, what, bits)
 
#define PSC_FAIL_SESSION_STATE(state, bits)
 
#define PSC_SKIP_SESSION_STATE(state, what, bits)
 
#define PSC_DROP_SESSION_STATE(state, reply)
 
#define PSC_ENFORCE_SESSION_STATE(state, reply)
 
#define PSC_UNPASS_SESSION_STATE(state, bits)
 
#define PSC_UNFAIL_SESSION_STATE(state, bits)
 
#define PSC_ADD_SERVER_STATE(state, fd)
 
#define PSC_DEL_CLIENT_STATE(state)
 
#define PSC_INIT_TESTS(dst)
 
#define PSC_INIT_TEST_FLAGS_ONLY(dst)
 
#define PSC_BEGIN_TESTS(state, name)
 
#define PSC_MIN(x, y)   ((x) < (y) ? (x) : (y))
 
#define PSC_MAX(x, y)   ((x) > (y) ? (x) : (y))
 
#define PSC_SMTPD_X21(state, reply)
 
#define PSC_SEND_REPLY   psc_send_reply /* legacy macro */
 
#define PSC_ACL_ACT_WHITELIST   SERVER_ACL_ACT_PERMIT
 
#define PSC_ACL_ACT_DUNNO   SERVER_ACL_ACT_DUNNO
 
#define PSC_ACL_ACT_BLACKLIST   SERVER_ACL_ACT_REJECT
 
#define PSC_ACL_ACT_ERROR   SERVER_ACL_ACT_ERROR
 
#define psc_acl_pre_jail_init   server_acl_pre_jail_init
 
#define psc_acl_parse   server_acl_parse
 
#define psc_acl_eval(s, a, p)   server_acl_eval((s)->smtp_client_addr, (a), (p))
 

型定義

typedef void(* PSC_ENDPT_LOOKUP_FN) (int, VSTREAM *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *)
 

関数

PSC_STATE * psc_new_session_state (VSTREAM *, const char *, const char *, const char *, const char *)
 
void psc_free_session_state (PSC_STATE *)
 
const char * psc_print_state_flags (int, const char *)
 
int psc_addr_match_list_match (ADDR_MATCH_LIST *, const char *)
 
const char * psc_cache_lookup (DICT_CACHE *, const char *)
 
void psc_cache_update (DICT_CACHE *, const char *, const char *)
 
const char * psc_dict_get (DICT *, const char *)
 
const char * psc_maps_find (MAPS *, const char *, int)
 
void psc_dnsbl_init (void)
 
int psc_dnsbl_retrieve (const char *, const char **, int, int *)
 
int psc_dnsbl_request (const char *, void(*)(int, void *), void *)
 
void psc_new_tests (PSC_STATE *)
 
void psc_parse_tests (PSC_STATE *, const char *, time_t)
 
void psc_todo_tests (PSC_STATE *, time_t)
 
char * psc_print_tests (VSTRING *, PSC_STATE *)
 
char * psc_print_grey_key (VSTRING *, const char *, const char *, const char *, const char *)
 
const char * psc_test_name (int)
 
void psc_early_tests (PSC_STATE *)
 
void psc_early_init (void)
 
void psc_smtpd_tests (PSC_STATE *)
 
void psc_smtpd_init (void)
 
void psc_smtpd_pre_jail_init (void)
 
char * psc_format_delta_time (VSTRING *, struct timeval, DELTA_TIME *)
 
void psc_conclude (PSC_STATE *)
 
void psc_hangup_event (PSC_STATE *)
 
int psc_send_reply (PSC_STATE *, const char *)
 
void psc_send_socket (PSC_STATE *)
 
void psc_starttls_open (PSC_STATE *, EVENT_NOTIFY_FN)
 
void psc_expand_init (void)
 
const char * psc_expand_lookup (const char *, int, void *)
 
void psc_endpt_lookup (VSTREAM *, PSC_ENDPT_LOOKUP_FN)
 

変数

int psc_check_queue_length
 
int psc_post_queue_length
 
DICT_CACHE * psc_cache_map
 
VSTRING * psc_temp
 
char * psc_smtpd_service_name
 
int psc_pregr_action
 
int psc_dnsbl_action
 
int psc_pipel_action
 
int psc_nsmtp_action
 
int psc_barlf_action
 
int psc_min_ttl
 
STRING_LIST * psc_forbid_cmds
 
int psc_stress_greet_wait
 
int psc_normal_greet_wait
 
int psc_stress_cmd_time_limit
 
int psc_normal_cmd_time_limit
 
int psc_stress
 
int psc_lowat_check_queue_length
 
int psc_hiwat_check_queue_length
 
DICT * psc_dnsbl_reply
 
HTABLE * psc_client_concurrency
 
VSTRING * psc_expand_filter
 

マクロ定義詳解

#define LEN (   x)    VSTRING_LEN(x)

postscreen.h の 409 行目に定義があります。

#define PSC_ACL_ACT_BLACKLIST   SERVER_ACL_ACT_REJECT

postscreen.h の 571 行目に定義があります。

#define PSC_ACL_ACT_DUNNO   SERVER_ACL_ACT_DUNNO

postscreen.h の 570 行目に定義があります。

#define PSC_ACL_ACT_ERROR   SERVER_ACL_ACT_ERROR

postscreen.h の 572 行目に定義があります。

#define PSC_ACL_ACT_WHITELIST   SERVER_ACL_ACT_PERMIT

postscreen.h の 569 行目に定義があります。

#define psc_acl_eval (   s,
  a,
  p 
)    server_acl_eval((s)->smtp_client_addr, (a), (p))

postscreen.h の 576 行目に定義があります。

#define psc_acl_parse   server_acl_parse

postscreen.h の 575 行目に定義があります。

#define psc_acl_pre_jail_init   server_acl_pre_jail_init

postscreen.h の 574 行目に定義があります。

#define PSC_ACT_DROP   1

postscreen.h の 356 行目に定義があります。

#define PSC_ACT_ENFORCE   2

postscreen.h の 357 行目に定義があります。

#define PSC_ACT_IGNORE   3

postscreen.h の 358 行目に定義があります。

#define PSC_ADD_SERVER_STATE (   state,
  fd 
)
値:
do { \
(state)->smtp_server_fd = (fd); \
} while (0)
int psc_post_queue_length
Definition: postscreen.c:528

postscreen.h の 455 行目に定義があります。

#define PSC_BEGIN_TESTS (   state,
  name 
)
値:
do { \
(state)->test_name = (name); \
GETTIMEOFDAY(&(state)->start_time); \
} while (0)

postscreen.h の 498 行目に定義があります。

#define PSC_CALC_DELTA (   x,
  y,
  z 
)
値:
do { \
(x).dt_sec = (y).tv_sec - (z).tv_sec; \
(x).dt_usec = (y).tv_usec - (z).tv_usec; \
while ((x).dt_usec < 0) { \
(x).dt_usec += 1000000; \
(x).dt_sec -= 1; \
} \
while ((x).dt_usec >= 1000000) { \
(x).dt_usec -= 1000000; \
(x).dt_sec += 1; \
} \
if ((x).dt_sec < 0) \
(x).dt_sec = (x).dt_usec = 0; \
} while (0)

postscreen.h の 301 行目に定義があります。

#define PSC_CLEAR_EVENT_REQUEST (   fd,
  time_act,
  context 
)
値:
do { \
if (msg_verbose > 1) \
msg_info("%s: clear-request fd=%d", myname, (fd)); \
event_cancel_timer((time_act), (context)); \
} while (0)
int msg_verbose
Definition: msg.c:177
void event_disable_readwrite(int fd)
Definition: events.c:839
int event_cancel_timer(EVENT_NOTIFY_TIME_FN callback, void *context)
Definition: events.c:965
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 341 行目に定義があります。

#define PSC_CLIENT_ADDR_PORT (   state)    (state)->smtp_client_addr, (state)->smtp_client_port

postscreen.h の 414 行目に定義があります。

#define PSC_DEL_CLIENT_STATE (   state)
値:
do { \
event_server_disconnect((state)->smtp_client_stream); \
(state)->smtp_client_stream = 0; \
} while (0)
int psc_check_queue_length
Definition: postscreen.c:527
void event_server_disconnect(VSTREAM *stream)
Definition: event_server.c:335

postscreen.h の 459 行目に定義があります。

#define PSC_DROP_SESSION_STATE (   state,
  reply 
)
値:
do { \
msg_info("DROP [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); \
(state)->flags |= PSC_STATE_FLAG_NOFORWARD; \
(state)->final_reply = (reply); \
psc_conclude(state); \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
void psc_conclude(PSC_STATE *)
#define PSC_STATE_FLAG_NOFORWARD
Definition: postscreen.h:112
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 432 行目に定義があります。

#define PSC_EFF_CMD_TIME_LIMIT   (psc_stress ? psc_stress_cmd_time_limit : psc_normal_cmd_time_limit)

postscreen.h の 387 行目に定義があります。

#define PSC_EFF_GREET_WAIT   (psc_stress ? psc_stress_greet_wait : psc_normal_greet_wait)

postscreen.h の 385 行目に定義があります。

#define PSC_ENFORCE_SESSION_STATE (   state,
  reply 
)
値:
do { \
msg_info("ENFORCE [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); \
(state)->rcpt_reply = (reply); \
(state)->flags |= PSC_STATE_FLAG_NOFORWARD; \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
#define PSC_STATE_FLAG_NOFORWARD
Definition: postscreen.h:112
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 439 行目に定義があります。

#define PSC_FAIL_SESSION_STATE (   state,
  bits 
)
値:
do { \
msg_info("FAIL [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); \
(state)->flags |= (bits); \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 422 行目に定義があります。

#define PSC_INIT_TEST_FLAGS_ONLY (   dst)
値:
do { \
(dst)->flags = 0; \
} while (0)

postscreen.h の 495 行目に定義があります。

#define PSC_INIT_TESTS (   dst)
値:
do { \
time_t *_it_stamp_p; \
(dst)->flags = 0; \
for (_it_stamp_p = (dst)->client_info->expire_time; \
_it_stamp_p < (dst)->client_info->expire_time + PSC_TINDX_COUNT; \
_it_stamp_p++) \
*_it_stamp_p = PSC_TIME_STAMP_INVALID; \
} while (0)
#define PSC_TINDX_COUNT
Definition: postscreen.h:47
#define PSC_TIME_STAMP_INVALID
Definition: postscreen.h:107

postscreen.h の 487 行目に定義があります。

#define PSC_MAX (   x,
  y 
)    ((x) > (y) ? (x) : (y))

postscreen.h の 511 行目に定義があります。

#define PSC_MIN (   x,
  y 
)    ((x) < (y) ? (x) : (y))

postscreen.h の 510 行目に定義があります。

#define PSC_NAME_ACT_CONT   "continue"

postscreen.h の 354 行目に定義があります。

#define PSC_NAME_ACT_DROP   "drop"

postscreen.h の 351 行目に定義があります。

#define PSC_NAME_ACT_ENFORCE   "enforce"

postscreen.h の 352 行目に定義があります。

#define PSC_NAME_ACT_IGNORE   "ignore"

postscreen.h の 353 行目に定義があります。

#define PSC_PASS_SESSION_STATE (   state,
  what,
  bits 
)
値:
do { \
msg_info("PASS %s [%s]:%s", (what), PSC_CLIENT_ADDR_PORT(state)); \
(state)->flags |= (bits); \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 417 行目に定義があります。

#define PSC_READ_BUF_SIZE   1024

postscreen.h の 36 行目に定義があります。

#define PSC_READ_EVENT_REQUEST (   fd,
  action,
  context,
  timeout 
)
値:
do { \
if (msg_verbose > 1) \
msg_info("%s: read-request fd=%d", myname, (fd)); \
event_enable_read((fd), (action), (context)); \
event_request_timer((action), (context), (timeout)); \
} while (0)
int msg_verbose
Definition: msg.c:177
void event_enable_read(int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
Definition: events.c:729
time_t event_request_timer(EVENT_NOTIFY_TIME_FN callback, void *context, int delay)
Definition: events.c:894
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 325 行目に定義があります。

#define PSC_READ_EVENT_REQUEST2 (   fd,
  read_act,
  time_act,
  context,
  timeout 
)
値:
do { \
if (msg_verbose > 1) \
msg_info("%s: read-request fd=%d", myname, (fd)); \
event_enable_read((fd), (read_act), (context)); \
event_request_timer((time_act), (context), (timeout)); \
} while (0)
int msg_verbose
Definition: msg.c:177
void event_enable_read(int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
Definition: events.c:729
time_t event_request_timer(EVENT_NOTIFY_TIME_FN callback, void *context, int delay)
Definition: events.c:894
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 332 行目に定義があります。

#define PSC_SEND_REPLY   psc_send_reply /* legacy macro */

postscreen.h の 542 行目に定義があります。

#define PSC_SKIP_SESSION_STATE (   state,
  what,
  bits 
)
値:
do { \
msg_info("SKIP %s [%s]:%s", (what), PSC_CLIENT_ADDR_PORT(state)); \
(state)->flags |= (bits); \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 427 行目に定義があります。

#define PSC_SMTPD_CMD_CONNECT   "CONNECT"

postscreen.h の 290 行目に定義があります。

#define PSC_SMTPD_CMD_UNIMPL   "UNIMPLEMENTED"

postscreen.h の 291 行目に定義があります。

#define PSC_SMTPD_X21 (   state,
  reply 
)
値:
do { \
(state)->flags |= PSC_STATE_FLAG_SMTPD_X21; \
(state)->final_reply = (reply); \
} while (0)
#define PSC_STATE_FLAG_SMTPD_X21
Definition: postscreen.h:118
void psc_smtpd_tests(PSC_STATE *)

postscreen.h の 526 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, FAIL)

postscreen.h の 206 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, PASS)

postscreen.h の 207 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, SKIP)

postscreen.h の 209 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, TODO)

postscreen.h の 208 行目に定義があります。

#define PSC_STATE_FLAG_BLIST_FAIL   (1<<4) /* blacklisted */

postscreen.h の 116 行目に定義があります。

#define PSC_STATE_FLAG_BYTINDX_DONE (   tindx)    PSC_STATE_FLAG_BYTINDX_FNAME((tindx), DONE)

postscreen.h の 173 行目に定義があります。

#define PSC_STATE_FLAG_BYTINDX_FAIL (   tindx)    PSC_STATE_FLAG_BYTINDX_FNAME((tindx), FAIL)

postscreen.h の 167 行目に定義があります。

#define PSC_STATE_FLAG_BYTINDX_FNAME (   tindx,
  fname 
)
値:
#define PSC_STATE_FLAG_TEST_BASE
Definition: postscreen.h:120
#define PSC_STATE_FLAG_SHIFT_STRIDE
Definition: postscreen.h:154
#define PSC_STATE_FLAG_SHIFT_BYFNAME(fname)
Definition: postscreen.h:156

postscreen.h の 162 行目に定義があります。

#define PSC_STATE_FLAG_BYTINDX_PASS (   tindx)    PSC_STATE_FLAG_BYTINDX_FNAME((tindx), PASS)

postscreen.h の 169 行目に定義があります。

#define PSC_STATE_FLAG_BYTINDX_SKIP (   tindx)    PSC_STATE_FLAG_BYTINDX_FNAME((tindx), SKIP)

postscreen.h の 175 行目に定義があります。

#define PSC_STATE_FLAG_BYTINDX_TODO (   tindx)    PSC_STATE_FLAG_BYTINDX_FNAME((tindx), TODO)

postscreen.h の 171 行目に定義があります。

#define PSC_STATE_FLAG_BYTNAME_FNAME (   tname,
  fname 
)
値:
#define PSC_STATE_FLAG_TEST_BASE
Definition: postscreen.h:120
#define PSC_STATE_FLAG_SHIFT_STRIDE
Definition: postscreen.h:154
#define PSC_STATE_FLAG_SHIFT_BYFNAME(fname)
Definition: postscreen.h:156
#define PSC_TINDX_BYTNAME(tname)
Definition: postscreen.h:55

postscreen.h の 181 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_DONE   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, DONE)

postscreen.h の 194 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, FAIL)

postscreen.h の 191 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, PASS)

postscreen.h の 192 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, TODO)

postscreen.h の 193 行目に定義があります。

#define PSC_STATE_FLAG_HANGUP   (1<<5) /* NOT a test failure */

postscreen.h の 117 行目に定義があります。

#define PSC_STATE_FLAG_NEW   (1<<3) /* some test was never passed */

postscreen.h の 115 行目に定義があります。

#define PSC_STATE_FLAG_NOFORWARD   (1<<0) /* don't forward this session */

postscreen.h の 112 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, FAIL)

postscreen.h の 201 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, PASS)

postscreen.h の 202 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, SKIP)

postscreen.h の 204 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, TODO)

postscreen.h の 203 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, FAIL)

postscreen.h の 196 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, PASS)

postscreen.h の 197 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, SKIP)

postscreen.h の 199 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, TODO)

postscreen.h の 198 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_DONE   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, DONE)

postscreen.h の 189 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, FAIL)

postscreen.h の 186 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, PASS)

postscreen.h の 187 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, TODO)

postscreen.h の 188 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_BYFNAME (   fname)    (PSC_STATE_FLAG_SHIFT_ ## fname)

postscreen.h の 156 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_DONE   (3) /* decision is final */

postscreen.h の 152 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_FAIL   (0) /* failed test */

postscreen.h の 149 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_PASS   (1) /* passed test */

postscreen.h の 150 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_SKIP   (3) /* action is already logged */

postscreen.h の 153 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_STRIDE   (4) /* nr of flags per test */

postscreen.h の 154 行目に定義があります。

#define PSC_STATE_FLAG_SHIFT_TODO   (2) /* expired test */

postscreen.h の 151 行目に定義があります。

#define PSC_STATE_FLAG_SMTPD_X21   (1<<6) /* hang up after command */

postscreen.h の 118 行目に定義があります。

#define PSC_STATE_FLAG_TEST_BASE   (8) /* start of indexable flags */

postscreen.h の 120 行目に定義があります。

#define PSC_STATE_FLAG_UNUSED2   (1<<2) /* use me! */

postscreen.h の 114 行目に定義があります。

#define PSC_STATE_FLAG_USING_TLS   (1<<1) /* using the TLS proxy */

postscreen.h の 113 行目に定義があります。

#define PSC_STATE_FLAG_WLIST_FAIL   (1<<7) /* do not whitelist */

postscreen.h の 119 行目に定義があります。

#define PSC_STATE_FLAGS_TODO_TO_DONE (   todo_flags)    ((todo_flags) << 1)

postscreen.h の 147 行目に定義があります。

#define PSC_STATE_FLAGS_TODO_TO_PASS (   todo_flags)    ((todo_flags) >> 1)

postscreen.h の 146 行目に定義があります。

#define PSC_STATE_MASK_ANY_FAIL
値:
#define PSC_STATE_MASK_EARLY_FAIL
Definition: postscreen.h:253
#define PSC_STATE_MASK_SMTPD_FAIL
Definition: postscreen.h:262
#define PSC_STATE_FLAG_WLIST_FAIL
Definition: postscreen.h:119
#define PSC_STATE_FLAG_BLIST_FAIL
Definition: postscreen.h:116

postscreen.h の 269 行目に定義があります。

#define PSC_STATE_MASK_ANY_PASS   (PSC_STATE_MASK_EARLY_PASS | PSC_STATE_MASK_SMTPD_PASS)

postscreen.h の 274 行目に定義があります。

#define PSC_STATE_MASK_ANY_TODO   (PSC_STATE_MASK_EARLY_TODO | PSC_STATE_MASK_SMTPD_TODO)

postscreen.h の 277 行目に定義があります。

#define PSC_STATE_MASK_ANY_TODO_FAIL   (PSC_STATE_MASK_ANY_TODO | PSC_STATE_MASK_ANY_FAIL)

postscreen.h の 280 行目に定義があります。

#define PSC_STATE_MASK_ANY_UPDATE   (PSC_STATE_MASK_ANY_PASS)

postscreen.h の 283 行目に定義があります。

#define PSC_STATE_MASK_BARLF_TODO_FAIL   (PSC_STATE_FLAG_BARLF_TODO | PSC_STATE_FLAG_BARLF_FAIL)

postscreen.h の 222 行目に定義があります。

#define PSC_STATE_MASK_BARLF_TODO_PASS_FAIL   (PSC_STATE_MASK_BARLF_TODO_FAIL | PSC_STATE_FLAG_BARLF_PASS)

postscreen.h の 241 行目に定義があります。

#define PSC_STATE_MASK_BARLF_TODO_SKIP   (PSC_STATE_FLAG_BARLF_TODO | PSC_STATE_FLAG_BARLF_SKIP)

postscreen.h の 231 行目に定義があります。

#define PSC_STATE_MASK_DNSBL_TODO_FAIL   (PSC_STATE_FLAG_DNSBL_TODO | PSC_STATE_FLAG_DNSBL_FAIL)

postscreen.h の 216 行目に定義があります。

#define PSC_STATE_MASK_EARLY_DONE   (PSC_STATE_FLAG_PREGR_DONE | PSC_STATE_FLAG_DNSBL_DONE)

postscreen.h の 247 行目に定義があります。

#define PSC_STATE_MASK_EARLY_FAIL   (PSC_STATE_FLAG_PREGR_FAIL | PSC_STATE_FLAG_DNSBL_FAIL)

postscreen.h の 253 行目に定義があります。

#define PSC_STATE_MASK_EARLY_PASS   (PSC_STATE_FLAG_PREGR_PASS | PSC_STATE_FLAG_DNSBL_PASS)

postscreen.h の 251 行目に定義があります。

#define PSC_STATE_MASK_EARLY_TODO   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_DNSBL_TODO)

postscreen.h の 249 行目に定義があります。

#define PSC_STATE_MASK_NSMTP_TODO_FAIL   (PSC_STATE_FLAG_NSMTP_TODO | PSC_STATE_FLAG_NSMTP_FAIL)

postscreen.h の 220 行目に定義があります。

#define PSC_STATE_MASK_NSMTP_TODO_PASS_FAIL   (PSC_STATE_MASK_NSMTP_TODO_FAIL | PSC_STATE_FLAG_NSMTP_PASS)

postscreen.h の 239 行目に定義があります。

#define PSC_STATE_MASK_NSMTP_TODO_SKIP   (PSC_STATE_FLAG_NSMTP_TODO | PSC_STATE_FLAG_NSMTP_SKIP)

postscreen.h の 229 行目に定義があります。

#define PSC_STATE_MASK_PIPEL_TODO_FAIL   (PSC_STATE_FLAG_PIPEL_TODO | PSC_STATE_FLAG_PIPEL_FAIL)

postscreen.h の 218 行目に定義があります。

#define PSC_STATE_MASK_PIPEL_TODO_PASS_FAIL   (PSC_STATE_MASK_PIPEL_TODO_FAIL | PSC_STATE_FLAG_PIPEL_PASS)

postscreen.h の 237 行目に定義があります。

#define PSC_STATE_MASK_PIPEL_TODO_SKIP   (PSC_STATE_FLAG_PIPEL_TODO | PSC_STATE_FLAG_PIPEL_SKIP)

postscreen.h の 227 行目に定義があります。

#define PSC_STATE_MASK_PREGR_FAIL_DONE   (PSC_STATE_FLAG_PREGR_FAIL | PSC_STATE_FLAG_PREGR_DONE)

postscreen.h の 234 行目に定義があります。

#define PSC_STATE_MASK_PREGR_TODO_DONE   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_PREGR_DONE)

postscreen.h の 225 行目に定義があります。

#define PSC_STATE_MASK_PREGR_TODO_FAIL   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_PREGR_FAIL)

postscreen.h の 214 行目に定義があります。

#define PSC_STATE_MASK_SMTPD_FAIL
値:
#define PSC_STATE_FLAG_BARLF_FAIL
Definition: postscreen.h:206
#define PSC_STATE_FLAG_PIPEL_FAIL
Definition: postscreen.h:196
#define PSC_STATE_FLAG_NSMTP_FAIL
Definition: postscreen.h:201

postscreen.h の 262 行目に定義があります。

#define PSC_STATE_MASK_SMTPD_PASS
値:
#define PSC_STATE_FLAG_PIPEL_PASS
Definition: postscreen.h:197
#define PSC_STATE_FLAG_NSMTP_PASS
Definition: postscreen.h:202
#define PSC_STATE_FLAG_BARLF_PASS
Definition: postscreen.h:207

postscreen.h の 259 行目に定義があります。

#define PSC_STATE_MASK_SMTPD_TODO
値:
#define PSC_STATE_FLAG_NSMTP_TODO
Definition: postscreen.h:203
#define PSC_STATE_FLAG_PIPEL_TODO
Definition: postscreen.h:198
#define PSC_STATE_FLAG_BARLF_TODO
Definition: postscreen.h:208

postscreen.h の 256 行目に定義があります。

#define PSC_STRING_RESET (   str)
値:
do { \
if (str) { \
myfree(str); \
(str) = 0; \
} \
} while (0)
void myfree(void *ptr)
Definition: mymalloc.c:207

postscreen.h の 398 行目に定義があります。

#define PSC_STRING_UPDATE (   str,
  text 
)
値:
do { \
if (str) myfree(str); \
(str) = ((text) ? mystrdup(text) : 0); \
} while (0)
void myfree(void *ptr)
Definition: mymalloc.c:207
char * mystrdup(const char *str)
Definition: mymalloc.c:225

postscreen.h の 393 行目に定義があります。

#define PSC_TIME_STAMP_DISABLED   (1) /* never passed but disabled */

postscreen.h の 106 行目に定義があります。

#define PSC_TIME_STAMP_INVALID   (-1) /* must not be cached */

postscreen.h の 107 行目に定義があります。

#define PSC_TIME_STAMP_NEW   (0) /* test was never passed */

postscreen.h の 105 行目に定義があります。

#define PSC_TINDX_BARLF   4 /* bare newline */

postscreen.h の 46 行目に定義があります。

#define PSC_TINDX_BYTNAME (   tname)    (PSC_TINDX_ ## tname)

postscreen.h の 55 行目に定義があります。

#define PSC_TINDX_COUNT   5 /* number of tests */

postscreen.h の 47 行目に定義があります。

#define PSC_TINDX_DNSBL   1 /* dnsbl */

postscreen.h の 43 行目に定義があります。

#define PSC_TINDX_NSMTP   3 /* non-smtp command */

postscreen.h の 45 行目に定義があります。

#define PSC_TINDX_PIPEL   2 /* pipelining */

postscreen.h の 44 行目に定義があります。

#define PSC_TINDX_PREGR   0 /* pregreet */

postscreen.h の 42 行目に定義があります。

#define PSC_TNAME_BARLF   "bare newline"

postscreen.h の 53 行目に定義があります。

#define PSC_TNAME_DNSBL   "dnsbl"

postscreen.h の 50 行目に定義があります。

#define PSC_TNAME_NSMTP   "non-smtp command"

postscreen.h の 52 行目に定義があります。

#define PSC_TNAME_PIPEL   "pipelining"

postscreen.h の 51 行目に定義があります。

#define PSC_TNAME_PREGR   "pregreet"

postscreen.h の 49 行目に定義があります。

#define PSC_UNFAIL_SESSION_STATE (   state,
  bits 
)
値:
do { \
msg_info("UNFAIL [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); \
(state)->flags &= ~(bits); \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 450 行目に定義があります。

#define PSC_UNPASS_SESSION_STATE (   state,
  bits 
)
値:
do { \
msg_info("UNPASS [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); \
(state)->flags &= ~(bits); \
} while (0)
int msg_verbose
Definition: msg.c:177
#define PSC_CLIENT_ADDR_PORT(state)
Definition: postscreen.h:414
void msg_info(const char *fmt,...)
Definition: msg.c:199

postscreen.h の 445 行目に定義があります。

#define SIG_DIGS   2

postscreen.h の 317 行目に定義があります。

#define STR (   x)    vstring_str(x)

postscreen.h の 408 行目に定義があります。

型定義詳解

typedef void(* PSC_ENDPT_LOOKUP_FN) (int, VSTREAM *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *)

postscreen.h の 561 行目に定義があります。

関数詳解

int psc_addr_match_list_match ( ADDR_MATCH_LIST *  ,
const char *   
)

postscreen_dict.c の 117 行目に定義があります。

const char* psc_cache_lookup ( DICT_CACHE *  ,
const char *   
)

postscreen_dict.c の 132 行目に定義があります。

void psc_cache_update ( DICT_CACHE *  ,
const char *  ,
const char *   
)

postscreen_dict.c の 146 行目に定義があります。

void psc_conclude ( PSC_STATE *  )

postscreen_misc.c の 90 行目に定義があります。

const char* psc_dict_get ( DICT *  ,
const char *   
)

postscreen_dict.c の 158 行目に定義があります。

void psc_dnsbl_init ( void  )

postscreen_dnsbl.c の 582 行目に定義があります。

int psc_dnsbl_request ( const char *  ,
void(*)(int, void *)  ,
void *   
)

postscreen_dnsbl.c の 483 行目に定義があります。

int psc_dnsbl_retrieve ( const char *  ,
const char **  ,
int  ,
int *   
)

postscreen_dnsbl.c の 320 行目に定義があります。

void psc_early_init ( void  )

postscreen_early.c の 370 行目に定義があります。

void psc_early_tests ( PSC_STATE *  )

postscreen_early.c の 327 行目に定義があります。

void psc_endpt_lookup ( VSTREAM *  ,
PSC_ENDPT_LOOKUP_FN   
)

postscreen_endpt.c の 189 行目に定義があります。

void psc_expand_init ( void  )

postscreen_expand.c の 78 行目に定義があります。

const char* psc_expand_lookup ( const char *  ,
int  ,
void *   
)

postscreen_expand.c の 90 行目に定義があります。

char* psc_format_delta_time ( VSTRING *  ,
struct timeval  ,
DELTA_TIME *   
)

postscreen_misc.c の 74 行目に定義があります。

void psc_free_session_state ( PSC_STATE *  )

postscreen_state.c の 214 行目に定義があります。

void psc_hangup_event ( PSC_STATE *  )

postscreen_misc.c の 146 行目に定義があります。

const char* psc_maps_find ( MAPS *  ,
const char *  ,
int   
)

postscreen_dict.c の 172 行目に定義があります。

PSC_STATE* psc_new_session_state ( VSTREAM *  ,
const char *  ,
const char *  ,
const char *  ,
const char *   
)

postscreen_state.c の 151 行目に定義があります。

void psc_new_tests ( PSC_STATE *  )

postscreen_tests.c の 139 行目に定義があります。

void psc_parse_tests ( PSC_STATE *  ,
const char *  ,
time_t   
)

postscreen_tests.c の 163 行目に定義があります。

char* psc_print_grey_key ( VSTRING *  ,
const char *  ,
const char *  ,
const char *  ,
const char *   
)

postscreen_tests.c の 315 行目に定義があります。

const char* psc_print_state_flags ( int  ,
const char *   
)

postscreen_state.c の 272 行目に定義があります。

char* psc_print_tests ( VSTRING *  ,
PSC_STATE *   
)

postscreen_tests.c の 277 行目に定義があります。

int psc_send_reply ( PSC_STATE *  ,
const char *   
)

postscreen_send.c の 86 行目に定義があります。

void psc_send_socket ( PSC_STATE *  )

postscreen_send.c の 165 行目に定義があります。

void psc_smtpd_init ( void  )

postscreen_smtpd.c の 1167 行目に定義があります。

void psc_smtpd_pre_jail_init ( void  )

postscreen_smtpd.c の 1255 行目に定義があります。

void psc_smtpd_tests ( PSC_STATE *  )

postscreen_smtpd.c の 1118 行目に定義があります。

void psc_starttls_open ( PSC_STATE *  ,
EVENT_NOTIFY_FN   
)

postscreen_starttls.c の 185 行目に定義があります。

const char* psc_test_name ( int  )

postscreen_tests.c の 325 行目に定義があります。

void psc_todo_tests ( PSC_STATE *  ,
time_t   
)

postscreen_tests.c の 197 行目に定義があります。

変数詳解

int psc_barlf_action

postscreen.c の 536 行目に定義があります。

DICT_CACHE* psc_cache_map

postscreen.c の 529 行目に定義があります。

int psc_check_queue_length

postscreen.c の 527 行目に定義があります。

HTABLE* psc_client_concurrency

postscreen.c の 547 行目に定義があります。

int psc_dnsbl_action

postscreen.c の 533 行目に定義があります。

DICT* psc_dnsbl_reply

postscreen.c の 546 行目に定義があります。

VSTRING* psc_expand_filter

postscreen_expand.c の 74 行目に定義があります。

STRING_LIST* psc_forbid_cmds

postscreen.c の 538 行目に定義があります。

int psc_hiwat_check_queue_length

postscreen.c の 545 行目に定義があります。

int psc_lowat_check_queue_length

postscreen.c の 544 行目に定義があります。

int psc_min_ttl

postscreen.c の 537 行目に定義があります。

int psc_normal_cmd_time_limit

postscreen.c の 542 行目に定義があります。

int psc_normal_greet_wait

postscreen.c の 540 行目に定義があります。

int psc_nsmtp_action

postscreen.c の 535 行目に定義があります。

int psc_pipel_action

postscreen.c の 534 行目に定義があります。

int psc_post_queue_length

postscreen.c の 528 行目に定義があります。

int psc_pregr_action

postscreen.c の 532 行目に定義があります。

char* psc_smtpd_service_name

postscreen.c の 531 行目に定義があります。

int psc_stress

postscreen.c の 543 行目に定義があります。

int psc_stress_cmd_time_limit

postscreen.c の 541 行目に定義があります。

int psc_stress_greet_wait

postscreen.c の 539 行目に定義があります。

VSTRING* psc_temp

postscreen.c の 530 行目に定義があります。