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_STATEpsc_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_CACHEpsc_cache_map
 
VSTRINGpsc_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_LISTpsc_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
 
DICTpsc_dnsbl_reply
 
HTABLEpsc_client_concurrency
 
VSTRINGpsc_expand_filter
 

マクロ定義詳解

#define LEN (   x)    VSTRING_LEN(x)

postscreen.h409 行目に定義があります。

#define PSC_ACL_ACT_BLACKLIST   SERVER_ACL_ACT_REJECT

postscreen.h571 行目に定義があります。

#define PSC_ACL_ACT_DUNNO   SERVER_ACL_ACT_DUNNO

postscreen.h570 行目に定義があります。

#define PSC_ACL_ACT_ERROR   SERVER_ACL_ACT_ERROR

postscreen.h572 行目に定義があります。

#define PSC_ACL_ACT_WHITELIST   SERVER_ACL_ACT_PERMIT

postscreen.h569 行目に定義があります。

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

postscreen.h576 行目に定義があります。

#define psc_acl_parse   server_acl_parse

postscreen.h575 行目に定義があります。

#define psc_acl_pre_jail_init   server_acl_pre_jail_init

postscreen.h574 行目に定義があります。

#define PSC_ACT_DROP   1

postscreen.h356 行目に定義があります。

#define PSC_ACT_ENFORCE   2

postscreen.h357 行目に定義があります。

#define PSC_ACT_IGNORE   3

postscreen.h358 行目に定義があります。

#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.h455 行目に定義があります。

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

postscreen.h498 行目に定義があります。

#define PSC_CALC_DELTA (   x,
  y,
 
)
値:
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.h301 行目に定義があります。

#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.h341 行目に定義があります。

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

postscreen.h414 行目に定義があります。

#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.h459 行目に定義があります。

#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.h432 行目に定義があります。

#define PSC_EFF_CMD_TIME_LIMIT   (psc_stress ? psc_stress_cmd_time_limit : psc_normal_cmd_time_limit)

postscreen.h387 行目に定義があります。

#define PSC_EFF_GREET_WAIT   (psc_stress ? psc_stress_greet_wait : psc_normal_greet_wait)

postscreen.h385 行目に定義があります。

#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.h439 行目に定義があります。

#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.h422 行目に定義があります。

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

postscreen.h495 行目に定義があります。

#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.h487 行目に定義があります。

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

postscreen.h511 行目に定義があります。

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

postscreen.h510 行目に定義があります。

#define PSC_NAME_ACT_CONT   "continue"

postscreen.h354 行目に定義があります。

#define PSC_NAME_ACT_DROP   "drop"

postscreen.h351 行目に定義があります。

#define PSC_NAME_ACT_ENFORCE   "enforce"

postscreen.h352 行目に定義があります。

#define PSC_NAME_ACT_IGNORE   "ignore"

postscreen.h353 行目に定義があります。

#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.h417 行目に定義があります。

#define PSC_READ_BUF_SIZE   1024

postscreen.h36 行目に定義があります。

#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.h325 行目に定義があります。

#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.h332 行目に定義があります。

#define PSC_SEND_REPLY   psc_send_reply /* legacy macro */

postscreen.h542 行目に定義があります。

#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.h427 行目に定義があります。

#define PSC_SMTPD_CMD_CONNECT   "CONNECT"

postscreen.h290 行目に定義があります。

#define PSC_SMTPD_CMD_UNIMPL   "UNIMPLEMENTED"

postscreen.h291 行目に定義があります。

#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.h526 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, FAIL)

postscreen.h206 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, PASS)

postscreen.h207 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, SKIP)

postscreen.h209 行目に定義があります。

#define PSC_STATE_FLAG_BARLF_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(BARLF, TODO)

postscreen.h208 行目に定義があります。

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

postscreen.h116 行目に定義があります。

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

postscreen.h173 行目に定義があります。

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

postscreen.h167 行目に定義があります。

#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.h162 行目に定義があります。

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

postscreen.h169 行目に定義があります。

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

postscreen.h175 行目に定義があります。

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

postscreen.h171 行目に定義があります。

#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.h181 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_DONE   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, DONE)

postscreen.h194 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, FAIL)

postscreen.h191 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, PASS)

postscreen.h192 行目に定義があります。

#define PSC_STATE_FLAG_DNSBL_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(DNSBL, TODO)

postscreen.h193 行目に定義があります。

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

postscreen.h117 行目に定義があります。

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

postscreen.h115 行目に定義があります。

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

postscreen.h112 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, FAIL)

postscreen.h201 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, PASS)

postscreen.h202 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, SKIP)

postscreen.h204 行目に定義があります。

#define PSC_STATE_FLAG_NSMTP_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(NSMTP, TODO)

postscreen.h203 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, FAIL)

postscreen.h196 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, PASS)

postscreen.h197 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_SKIP   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, SKIP)

postscreen.h199 行目に定義があります。

#define PSC_STATE_FLAG_PIPEL_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(PIPEL, TODO)

postscreen.h198 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_DONE   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, DONE)

postscreen.h189 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_FAIL   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, FAIL)

postscreen.h186 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_PASS   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, PASS)

postscreen.h187 行目に定義があります。

#define PSC_STATE_FLAG_PREGR_TODO   PSC_STATE_FLAG_BYTNAME_FNAME(PREGR, TODO)

postscreen.h188 行目に定義があります。

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

postscreen.h156 行目に定義があります。

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

postscreen.h152 行目に定義があります。

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

postscreen.h149 行目に定義があります。

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

postscreen.h150 行目に定義があります。

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

postscreen.h153 行目に定義があります。

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

postscreen.h154 行目に定義があります。

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

postscreen.h151 行目に定義があります。

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

postscreen.h118 行目に定義があります。

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

postscreen.h120 行目に定義があります。

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

postscreen.h114 行目に定義があります。

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

postscreen.h113 行目に定義があります。

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

postscreen.h119 行目に定義があります。

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

postscreen.h147 行目に定義があります。

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

postscreen.h146 行目に定義があります。

#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.h269 行目に定義があります。

#define PSC_STATE_MASK_ANY_PASS   (PSC_STATE_MASK_EARLY_PASS | PSC_STATE_MASK_SMTPD_PASS)

postscreen.h274 行目に定義があります。

#define PSC_STATE_MASK_ANY_TODO   (PSC_STATE_MASK_EARLY_TODO | PSC_STATE_MASK_SMTPD_TODO)

postscreen.h277 行目に定義があります。

#define PSC_STATE_MASK_ANY_TODO_FAIL   (PSC_STATE_MASK_ANY_TODO | PSC_STATE_MASK_ANY_FAIL)

postscreen.h280 行目に定義があります。

#define PSC_STATE_MASK_ANY_UPDATE   (PSC_STATE_MASK_ANY_PASS)

postscreen.h283 行目に定義があります。

#define PSC_STATE_MASK_BARLF_TODO_FAIL   (PSC_STATE_FLAG_BARLF_TODO | PSC_STATE_FLAG_BARLF_FAIL)

postscreen.h222 行目に定義があります。

#define PSC_STATE_MASK_BARLF_TODO_PASS_FAIL   (PSC_STATE_MASK_BARLF_TODO_FAIL | PSC_STATE_FLAG_BARLF_PASS)

postscreen.h241 行目に定義があります。

#define PSC_STATE_MASK_BARLF_TODO_SKIP   (PSC_STATE_FLAG_BARLF_TODO | PSC_STATE_FLAG_BARLF_SKIP)

postscreen.h231 行目に定義があります。

#define PSC_STATE_MASK_DNSBL_TODO_FAIL   (PSC_STATE_FLAG_DNSBL_TODO | PSC_STATE_FLAG_DNSBL_FAIL)

postscreen.h216 行目に定義があります。

#define PSC_STATE_MASK_EARLY_DONE   (PSC_STATE_FLAG_PREGR_DONE | PSC_STATE_FLAG_DNSBL_DONE)

postscreen.h247 行目に定義があります。

#define PSC_STATE_MASK_EARLY_FAIL   (PSC_STATE_FLAG_PREGR_FAIL | PSC_STATE_FLAG_DNSBL_FAIL)

postscreen.h253 行目に定義があります。

#define PSC_STATE_MASK_EARLY_PASS   (PSC_STATE_FLAG_PREGR_PASS | PSC_STATE_FLAG_DNSBL_PASS)

postscreen.h251 行目に定義があります。

#define PSC_STATE_MASK_EARLY_TODO   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_DNSBL_TODO)

postscreen.h249 行目に定義があります。

#define PSC_STATE_MASK_NSMTP_TODO_FAIL   (PSC_STATE_FLAG_NSMTP_TODO | PSC_STATE_FLAG_NSMTP_FAIL)

postscreen.h220 行目に定義があります。

#define PSC_STATE_MASK_NSMTP_TODO_PASS_FAIL   (PSC_STATE_MASK_NSMTP_TODO_FAIL | PSC_STATE_FLAG_NSMTP_PASS)

postscreen.h239 行目に定義があります。

#define PSC_STATE_MASK_NSMTP_TODO_SKIP   (PSC_STATE_FLAG_NSMTP_TODO | PSC_STATE_FLAG_NSMTP_SKIP)

postscreen.h229 行目に定義があります。

#define PSC_STATE_MASK_PIPEL_TODO_FAIL   (PSC_STATE_FLAG_PIPEL_TODO | PSC_STATE_FLAG_PIPEL_FAIL)

postscreen.h218 行目に定義があります。

#define PSC_STATE_MASK_PIPEL_TODO_PASS_FAIL   (PSC_STATE_MASK_PIPEL_TODO_FAIL | PSC_STATE_FLAG_PIPEL_PASS)

postscreen.h237 行目に定義があります。

#define PSC_STATE_MASK_PIPEL_TODO_SKIP   (PSC_STATE_FLAG_PIPEL_TODO | PSC_STATE_FLAG_PIPEL_SKIP)

postscreen.h227 行目に定義があります。

#define PSC_STATE_MASK_PREGR_FAIL_DONE   (PSC_STATE_FLAG_PREGR_FAIL | PSC_STATE_FLAG_PREGR_DONE)

postscreen.h234 行目に定義があります。

#define PSC_STATE_MASK_PREGR_TODO_DONE   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_PREGR_DONE)

postscreen.h225 行目に定義があります。

#define PSC_STATE_MASK_PREGR_TODO_FAIL   (PSC_STATE_FLAG_PREGR_TODO | PSC_STATE_FLAG_PREGR_FAIL)

postscreen.h214 行目に定義があります。

#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.h262 行目に定義があります。

#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.h259 行目に定義があります。

#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.h256 行目に定義があります。

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

postscreen.h398 行目に定義があります。

#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.h393 行目に定義があります。

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

postscreen.h106 行目に定義があります。

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

postscreen.h107 行目に定義があります。

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

postscreen.h105 行目に定義があります。

#define PSC_TINDX_BARLF   4 /* bare newline */

postscreen.h46 行目に定義があります。

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

postscreen.h55 行目に定義があります。

#define PSC_TINDX_COUNT   5 /* number of tests */

postscreen.h47 行目に定義があります。

#define PSC_TINDX_DNSBL   1 /* dnsbl */

postscreen.h43 行目に定義があります。

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

postscreen.h45 行目に定義があります。

#define PSC_TINDX_PIPEL   2 /* pipelining */

postscreen.h44 行目に定義があります。

#define PSC_TINDX_PREGR   0 /* pregreet */

postscreen.h42 行目に定義があります。

#define PSC_TNAME_BARLF   "bare newline"

postscreen.h53 行目に定義があります。

#define PSC_TNAME_DNSBL   "dnsbl"

postscreen.h50 行目に定義があります。

#define PSC_TNAME_NSMTP   "non-smtp command"

postscreen.h52 行目に定義があります。

#define PSC_TNAME_PIPEL   "pipelining"

postscreen.h51 行目に定義があります。

#define PSC_TNAME_PREGR   "pregreet"

postscreen.h49 行目に定義があります。

#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.h450 行目に定義があります。

#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.h445 行目に定義があります。

#define SIG_DIGS   2

postscreen.h317 行目に定義があります。

#define STR (   x)    vstring_str(x)

postscreen.h408 行目に定義があります。

型定義詳解

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

postscreen.h561 行目に定義があります。

関数詳解

int psc_addr_match_list_match ( ADDR_MATCH_LIST ,
const char *   
)

postscreen_dict.c117 行目に定義があります。

const char* psc_cache_lookup ( DICT_CACHE ,
const char *   
)

postscreen_dict.c132 行目に定義があります。

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

postscreen_dict.c146 行目に定義があります。

void psc_conclude ( PSC_STATE )

postscreen_misc.c90 行目に定義があります。

const char* psc_dict_get ( DICT ,
const char *   
)

postscreen_dict.c158 行目に定義があります。

void psc_dnsbl_init ( void  )

postscreen_dnsbl.c582 行目に定義があります。

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

postscreen_dnsbl.c483 行目に定義があります。

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

postscreen_dnsbl.c320 行目に定義があります。

void psc_early_init ( void  )

postscreen_early.c370 行目に定義があります。

void psc_early_tests ( PSC_STATE )

postscreen_early.c327 行目に定義があります。

void psc_endpt_lookup ( VSTREAM ,
PSC_ENDPT_LOOKUP_FN   
)

postscreen_endpt.c189 行目に定義があります。

void psc_expand_init ( void  )

postscreen_expand.c78 行目に定義があります。

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

postscreen_expand.c90 行目に定義があります。

char* psc_format_delta_time ( VSTRING ,
struct timeval  ,
DELTA_TIME  
)

postscreen_misc.c74 行目に定義があります。

void psc_free_session_state ( PSC_STATE )

postscreen_state.c214 行目に定義があります。

void psc_hangup_event ( PSC_STATE )

postscreen_misc.c146 行目に定義があります。

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

postscreen_dict.c172 行目に定義があります。

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

postscreen_state.c151 行目に定義があります。

void psc_new_tests ( PSC_STATE )

postscreen_tests.c139 行目に定義があります。

void psc_parse_tests ( PSC_STATE ,
const char *  ,
time_t   
)

postscreen_tests.c163 行目に定義があります。

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

postscreen_tests.c315 行目に定義があります。

const char* psc_print_state_flags ( int  ,
const char *   
)

postscreen_state.c272 行目に定義があります。

char* psc_print_tests ( VSTRING ,
PSC_STATE  
)

postscreen_tests.c277 行目に定義があります。

int psc_send_reply ( PSC_STATE ,
const char *   
)

postscreen_send.c86 行目に定義があります。

void psc_send_socket ( PSC_STATE )

postscreen_send.c165 行目に定義があります。

void psc_smtpd_init ( void  )

postscreen_smtpd.c1167 行目に定義があります。

void psc_smtpd_pre_jail_init ( void  )

postscreen_smtpd.c1255 行目に定義があります。

void psc_smtpd_tests ( PSC_STATE )

postscreen_smtpd.c1118 行目に定義があります。

void psc_starttls_open ( PSC_STATE ,
EVENT_NOTIFY_FN   
)

postscreen_starttls.c185 行目に定義があります。

const char* psc_test_name ( int  )

postscreen_tests.c325 行目に定義があります。

void psc_todo_tests ( PSC_STATE ,
time_t   
)

postscreen_tests.c197 行目に定義があります。

変数詳解

int psc_barlf_action

postscreen.c536 行目に定義があります。

DICT_CACHE* psc_cache_map

postscreen.c529 行目に定義があります。

int psc_check_queue_length

postscreen.c527 行目に定義があります。

HTABLE* psc_client_concurrency

postscreen.c547 行目に定義があります。

int psc_dnsbl_action

postscreen.c533 行目に定義があります。

DICT* psc_dnsbl_reply

postscreen.c546 行目に定義があります。

VSTRING* psc_expand_filter

postscreen_expand.c74 行目に定義があります。

STRING_LIST* psc_forbid_cmds

postscreen.c538 行目に定義があります。

int psc_hiwat_check_queue_length

postscreen.c545 行目に定義があります。

int psc_lowat_check_queue_length

postscreen.c544 行目に定義があります。

int psc_min_ttl

postscreen.c537 行目に定義があります。

int psc_normal_cmd_time_limit

postscreen.c542 行目に定義があります。

int psc_normal_greet_wait

postscreen.c540 行目に定義があります。

int psc_nsmtp_action

postscreen.c535 行目に定義があります。

int psc_pipel_action

postscreen.c534 行目に定義があります。

int psc_post_queue_length

postscreen.c528 行目に定義があります。

int psc_pregr_action

postscreen.c532 行目に定義があります。

char* psc_smtpd_service_name

postscreen.c531 行目に定義があります。

int psc_stress

postscreen.c543 行目に定義があります。

int psc_stress_cmd_time_limit

postscreen.c541 行目に定義があります。

int psc_stress_greet_wait

postscreen.c539 行目に定義があります。

VSTRING* psc_temp

postscreen.c530 行目に定義があります。