|
Postfix3.3.1
|
#include <sys_defs.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <ctype.h>#include <stdarg.h>#include <netdb.h>#include <setjmp.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <msg.h>#include <vstring.h>#include <split_at.h>#include <fsspace.h>#include <stringops.h>#include <valid_hostname.h>#include <argv.h>#include <mymalloc.h>#include <dict.h>#include <htable.h>#include <ctable.h>#include <mac_expand.h>#include <attr_clnt.h>#include <myaddrinfo.h>#include <inet_proto.h>#include <ip_match.h>#include <valid_utf8_hostname.h>#include <midna_domain.h>#include <mynetworks.h>#include <dns.h>#include <string_list.h>#include <namadr_list.h>#include <domain_list.h>#include <mail_params.h>#include <resolve_clnt.h>#include <mail_error.h>#include <resolve_local.h>#include <own_inet_addr.h>#include <mail_conf.h>#include <maps.h>#include <mail_addr_find.h>#include <match_parent_style.h>#include <strip_addr.h>#include <cleanup_user.h>#include <record.h>#include <rec_type.h>#include <mail_proto.h>#include <mail_addr.h>#include <verify_clnt.h>#include <input_transp.h>#include <is_header.h>#include <valid_mailhost_addr.h>#include <dsn_util.h>#include <conv_time.h>#include <xtext.h>#include <smtp_stream.h>#include <attr_override.h>#include "smtpd.h"#include "smtpd_sasl_glue.h"#include "smtpd_check.h"#include "smtpd_dsn_fix.h"#include "smtpd_resolve.h"#include "smtpd_expand.h"データ構造 | |
| struct | SMTPD_RBL_EXPAND_CONTEXT |
| struct | SMTPD_POLICY_CLNT |
マクロ定義 | |
| #define | SMTPD_CHECK_DUNNO 0 /* indifferent */ |
| #define | SMTPD_CHECK_OK 1 /* explicitly permit */ |
| #define | SMTPD_CHECK_REJECT 2 /* explicitly reject */ |
| #define | STR vstring_str |
| #define | CONST_STR(x) ((const char *) vstring_str(x)) |
| #define | UPDATE_STRING(ptr, val) { if (ptr) myfree(ptr); ptr = mystrdup(val); } |
| #define | DEFER_IF_REJECT2(state, class, code, dsn, fmt, a1, a2) defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2)) |
| #define | DEFER_IF_REJECT3(state, class, code, dsn, fmt, a1, a2, a3) defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2), (a3)) |
| #define | DEFER_IF_REJECT4(state, class, code, dsn, fmt, a1, a2, a3, a4) defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2), (a3), (a4)) |
| #define | DEFER_ALL_ACT 0 |
| #define | DEFER_IF_PERMIT_ACT 1 |
| #define | DEFER_IF_PERMIT2(type, state, class, code, dsn, fmt, a1, a2) |
| #define | DEFER_IF_PERMIT3(type, state, class, code, dsn, fmt, a1, a2, a3) |
| #define | DEFER_IF_PERMIT4(type, state, class, code, dsn, fmt, a1, a2, a3, a4) |
| #define | link_override_table_to_variable(table, var) do { table[var##_offset].target = &var; } while (0) |
| #define | smtpd_policy_tmout_offset 0 |
| #define | smtpd_policy_idle_offset 1 |
| #define | smtpd_policy_ttl_offset 2 |
| #define | smtpd_policy_try_delay_offset 3 |
| #define | smtpd_policy_req_limit_offset 0 |
| #define | smtpd_policy_try_limit_offset 1 |
| #define | smtpd_policy_def_action_offset 0 |
| #define | smtpd_policy_context_offset 1 |
| #define | SMTPD_CHECK_PARSE_POLICY (1<<0) |
| #define | SMTPD_CHECK_PARSE_MAPS (1<<1) |
| #define | SMTPD_CHECK_PARSE_ALL (~0) |
| #define | NO_PRINT_ARGS "%s", "" |
| #define | RR_ADDR_TYPES T_A |
| #define | MAILHOST_LOOKUP_FLAGS |
| #define | NOPE 0 |
| #define | YUP 1 |
| #define | YUP 1 |
| #define | NOPE 0 |
| #define | HAS_MY_ADDR_RETURN(x) { freeaddrinfo(res0); return (x); } |
| #define | PERMIT_MX_BACKUP_RETURN(x) |
| #define | STREQUAL(x, y, l) (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0) |
| #define | SHUT_RDWR 2 |
| #define | ADDROF(x) ((char *) &(x)) |
| #define | CHK_ACCESS_RETURN(x, y) { *found = y; return(x); } |
| #define | FULL 0 |
| #define | PARTIAL DICT_FLAG_FIXED |
| #define | FOUND 1 |
| #define | MISSED 0 |
| #define | CHK_DOMAIN_RETURN(x, y) { *found = y; return(x); } |
| #define | CHK_ADDR_RETURN(x, y) { *found = y; return(x); } |
| #define | CHECK_SERVER_RETURN(x) { dns_rr_free(server_list); return(x); } |
| #define | SUSPICIOUS(reply, reply_class) |
| #define | SMTPD_DNSXL_STAT_SOFT(dnsxl_res) ((dnsxl_res) == dnsxl_stat_soft) |
| #define | SMTPD_DNXSL_STAT_HARD(dnsxl_res) ((dnsxl_res) == 0) |
| #define | SMTPD_DNSXL_STAT_OK(dnsxl_res) !(SMTPD_DNXSL_STAT_HARD(dnsxl_res) || SMTPD_DNSXL_STAT_SOFT(dnsxl_res)) |
| #define | RBL_TXT_LIMIT 500 |
| #define | STREQ(x, y) (*(x) == *(y) && strcmp((x), (y)) == 0) |
| #define | NO_DEF_ACL 0 |
| #define | SMTPD_CHECK_RESET() |
| #define | SMTPD_CHECK_PUSH(backup, current, new) |
| #define | SMTPD_CHECK_POP(current, backup) |
| #define | SMTPD_CHECK_HELO_RETURN(x) |
| #define | SMTPD_CHECK_MAIL_RETURN(x) |
| #define | SMTPD_CHECK_RCPT_RETURN(x) |
| #define | SMTPD_CHECK_ETRN_RETURN(x) |
| #define | MATCH(map, rcpt) check_mail_addr_find(state, recipient, map, rcpt, (char **) 0) |
| #define | NOMATCH(map, rcpt) (MATCH(map, rcpt) == 0) |
| #define | MATCH_LEFT(l, r, n) (strncasecmp_utf8((l), (r), (n)) == 0 && (r)[n] == '@') |
| #define | BLOCKS(x) ((x) / fsbuf.block_size) |
関数 | |
| void | smtpd_check_init (void) |
| int | smtpd_check_addr (const char *sender, const char *addr, int smtputf8) |
| char * | smtpd_check_rewrite (SMTPD_STATE *state) |
| char * | smtpd_check_client (SMTPD_STATE *state) |
| char * | smtpd_check_helo (SMTPD_STATE *state, char *helohost) |
| char * | smtpd_check_mail (SMTPD_STATE *state, char *sender) |
| char * | smtpd_check_rcpt (SMTPD_STATE *state, char *recipient) |
| char * | smtpd_check_etrn (SMTPD_STATE *state, char *domain) |
| char * | smtpd_check_size (SMTPD_STATE *state, off_t size) |
| char * | smtpd_check_queue (SMTPD_STATE *state) |
| char * | smtpd_check_data (SMTPD_STATE *state) |
| char * | smtpd_check_eod (SMTPD_STATE *state) |
変数 | |
| SMTPD_RBL_STATE | |
| double | smtpd_space_multf = 1.5 |
| #define ADDROF | ( | x | ) | ((char *) &(x)) |
| #define BLOCKS | ( | x | ) | ((x) / fsbuf.block_size) |
| #define CHECK_SERVER_RETURN | ( | x | ) | { dns_rr_free(server_list); return(x); } |
| #define CHK_ACCESS_RETURN | ( | x, | |
| y | |||
| ) | { *found = y; return(x); } |
| #define CHK_ADDR_RETURN | ( | x, | |
| y | |||
| ) | { *found = y; return(x); } |
| #define CHK_DOMAIN_RETURN | ( | x, | |
| y | |||
| ) | { *found = y; return(x); } |
| #define CONST_STR | ( | x | ) | ((const char *) vstring_str(x)) |
smtpd_check.c の 380 行目に定義があります。
| #define DEFER_ALL_ACT 0 |
| #define DEFER_IF_PERMIT2 | ( | type, | |
| state, | |||
| class, | |||
| code, | |||
| dsn, | |||
| fmt, | |||
| a1, | |||
| a2 | |||
| ) |
| #define DEFER_IF_PERMIT3 | ( | type, | |
| state, | |||
| class, | |||
| code, | |||
| dsn, | |||
| fmt, | |||
| a1, | |||
| a2, | |||
| a3 | |||
| ) |
| #define DEFER_IF_PERMIT4 | ( | type, | |
| state, | |||
| class, | |||
| code, | |||
| dsn, | |||
| fmt, | |||
| a1, | |||
| a2, | |||
| a3, | |||
| a4 | |||
| ) |
| #define DEFER_IF_PERMIT_ACT 1 |
| #define DEFER_IF_REJECT2 | ( | state, | |
| class, | |||
| code, | |||
| dsn, | |||
| fmt, | |||
| a1, | |||
| a2 | |||
| ) | defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2)) |
| #define DEFER_IF_REJECT3 | ( | state, | |
| class, | |||
| code, | |||
| dsn, | |||
| fmt, | |||
| a1, | |||
| a2, | |||
| a3 | |||
| ) | defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2), (a3)) |
| #define DEFER_IF_REJECT4 | ( | state, | |
| class, | |||
| code, | |||
| dsn, | |||
| fmt, | |||
| a1, | |||
| a2, | |||
| a3, | |||
| a4 | |||
| ) | defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2), (a3), (a4)) |
| #define FOUND 1 |
| #define FULL 0 |
| #define HAS_MY_ADDR_RETURN | ( | x | ) | { freeaddrinfo(res0); return (x); } |
| #define link_override_table_to_variable | ( | table, | |
| var | |||
| ) | do { table[var##_offset].target = &var; } while (0) |
smtpd_check.c の 503 行目に定義があります。
| #define MAILHOST_LOOKUP_FLAGS |
| #define MATCH | ( | map, | |
| rcpt | |||
| ) | check_mail_addr_find(state, recipient, map, rcpt, (char **) 0) |
| #define MATCH_LEFT | ( | l, | |
| r, | |||
| n | |||
| ) | (strncasecmp_utf8((l), (r), (n)) == 0 && (r)[n] == '@') |
| #define MISSED 0 |
| #define NO_DEF_ACL 0 |
| #define NO_PRINT_ARGS "%s", "" |
| #define NOMATCH | ( | map, | |
| rcpt | |||
| ) | (MATCH(map, rcpt) == 0) |
| #define NOPE 0 |
| #define NOPE 0 |
| #define PARTIAL DICT_FLAG_FIXED |
| #define PERMIT_MX_BACKUP_RETURN | ( | x | ) |
| #define RBL_TXT_LIMIT 500 |
| #define RR_ADDR_TYPES T_A |
| #define SHUT_RDWR 2 |
| #define SMTPD_CHECK_DUNNO 0 /* indifferent */ |
smtpd_check.c の 271 行目に定義があります。
| #define SMTPD_CHECK_ETRN_RETURN | ( | x | ) |
| #define SMTPD_CHECK_HELO_RETURN | ( | x | ) |
| #define SMTPD_CHECK_MAIL_RETURN | ( | x | ) |
| #define SMTPD_CHECK_OK 1 /* explicitly permit */ |
smtpd_check.c の 272 行目に定義があります。
| #define SMTPD_CHECK_PARSE_ALL (~0) |
| #define SMTPD_CHECK_PARSE_MAPS (1<<1) |
| #define SMTPD_CHECK_PARSE_POLICY (1<<0) |
| #define SMTPD_CHECK_POP | ( | current, | |
| backup | |||
| ) |
| #define SMTPD_CHECK_PUSH | ( | backup, | |
| current, | |||
| new | |||
| ) |
| #define SMTPD_CHECK_RCPT_RETURN | ( | x | ) |
| #define SMTPD_CHECK_REJECT 2 /* explicitly reject */ |
smtpd_check.c の 273 行目に定義があります。
| #define SMTPD_CHECK_RESET | ( | ) |
| #define SMTPD_DNSXL_STAT_OK | ( | dnsxl_res | ) | !(SMTPD_DNXSL_STAT_HARD(dnsxl_res) || SMTPD_DNSXL_STAT_SOFT(dnsxl_res)) |
smtpd_check.c の 3263 行目に定義があります。
| #define SMTPD_DNSXL_STAT_SOFT | ( | dnsxl_res | ) | ((dnsxl_res) == dnsxl_stat_soft) |
smtpd_check.c の 3261 行目に定義があります。
| #define SMTPD_DNXSL_STAT_HARD | ( | dnsxl_res | ) | ((dnsxl_res) == 0) |
smtpd_check.c の 3262 行目に定義があります。
| #define smtpd_policy_context_offset 1 |
smtpd_check.c の 515 行目に定義があります。
| #define smtpd_policy_def_action_offset 0 |
smtpd_check.c の 514 行目に定義があります。
| #define smtpd_policy_idle_offset 1 |
smtpd_check.c の 507 行目に定義があります。
| #define smtpd_policy_req_limit_offset 0 |
smtpd_check.c の 511 行目に定義があります。
| #define smtpd_policy_tmout_offset 0 |
smtpd_check.c の 506 行目に定義があります。
| #define smtpd_policy_try_delay_offset 3 |
smtpd_check.c の 509 行目に定義があります。
| #define smtpd_policy_try_limit_offset 1 |
smtpd_check.c の 512 行目に定義があります。
| #define smtpd_policy_ttl_offset 2 |
smtpd_check.c の 508 行目に定義があります。
| #define STR vstring_str |
smtpd_check.c の 379 行目に定義があります。
| #define STREQ | ( | x, | |
| y | |||
| ) | (*(x) == *(y) && strcmp((x), (y)) == 0) |
| #define STREQUAL | ( | x, | |
| y, | |||
| l | |||
| ) | (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0) |
| #define SUSPICIOUS | ( | reply, | |
| reply_class | |||
| ) |
smtpd_check.c の 381 行目に定義があります。
| #define YUP 1 |
| #define YUP 1 |
smtpd_check.c の 4654 行目に定義があります。
| char* smtpd_check_client | ( | SMTPD_STATE * | state | ) |
smtpd_check.c の 4762 行目に定義があります。
| char* smtpd_check_data | ( | SMTPD_STATE * | state | ) |
smtpd_check.c の 5349 行目に定義があります。
| char* smtpd_check_eod | ( | SMTPD_STATE * | state | ) |
smtpd_check.c の 5400 行目に定義があります。
| char* smtpd_check_etrn | ( | SMTPD_STATE * | state, |
| char * | domain | ||
| ) |
smtpd_check.c の 5019 行目に定義があります。
| char* smtpd_check_helo | ( | SMTPD_STATE * | state, |
| char * | helohost | ||
| ) |
smtpd_check.c の 4798 行目に定義があります。
| void smtpd_check_init | ( | void | ) |
smtpd_check.c の 721 行目に定義があります。
| char* smtpd_check_mail | ( | SMTPD_STATE * | state, |
| char * | sender | ||
| ) |
smtpd_check.c の 4852 行目に定義があります。
| char* smtpd_check_queue | ( | SMTPD_STATE * | state | ) |
smtpd_check.c の 5306 行目に定義があります。
| char* smtpd_check_rcpt | ( | SMTPD_STATE * | state, |
| char * | recipient | ||
| ) |
smtpd_check.c の 4907 行目に定義があります。
| char* smtpd_check_rewrite | ( | SMTPD_STATE * | state | ) |
smtpd_check.c の 4690 行目に定義があります。
| char* smtpd_check_size | ( | SMTPD_STATE * | state, |
| off_t | size | ||
| ) |
smtpd_check.c の 5281 行目に定義があります。
| SMTPD_RBL_STATE |
smtpd_check.c の 447 行目に定義があります。
| double smtpd_space_multf = 1.5 |
smtpd_check.c の 469 行目に定義があります。
1.8.9.1