Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数 | 変数
smtpd.h ファイル
#include <sys/time.h>
#include <unistd.h>
#include <vstream.h>
#include <vstring.h>
#include <argv.h>
#include <myaddrinfo.h>
#include <mail_stream.h>
#include <tls.h>
#include <milter.h>

[ソースコード]

データ構造

struct  SMTPD_DEFER
 
struct  SMTPD_XFORWARD_ATTR
 
struct  SMTPD_STATE
 

マクロ定義

#define SMTPD_FLAG_HANGUP   (1<<0) /* 421/521 disconnect */
 
#define SMTPD_FLAG_ILL_PIPELINING   (1<<1) /* inappropriate pipelining */
 
#define SMTPD_FLAG_AUTH_USED   (1<<2) /* don't reuse SASL state */
 
#define SMTPD_FLAG_SMTPUTF8   (1<<3) /* RFC 6531/2 transaction */
 
#define SMTPD_MASK_MAIL_KEEP   ~(SMTPD_FLAG_SMTPUTF8) /* Fix 20140706 */
 
#define SMTPD_STATE_XFORWARD_INIT   (1<<0) /* xforward preset done */
 
#define SMTPD_STATE_XFORWARD_NAME   (1<<1) /* client name received */
 
#define SMTPD_STATE_XFORWARD_ADDR   (1<<2) /* client address received */
 
#define SMTPD_STATE_XFORWARD_PROTO   (1<<3) /* protocol received */
 
#define SMTPD_STATE_XFORWARD_HELO   (1<<4) /* client helo received */
 
#define SMTPD_STATE_XFORWARD_IDENT   (1<<5) /* message identifier */
 
#define SMTPD_STATE_XFORWARD_DOMAIN   (1<<6) /* address context */
 
#define SMTPD_STATE_XFORWARD_PORT   (1<<7) /* client port received */
 
#define SMTPD_STATE_XFORWARD_CLIENT_MASK
 
#define SMTPD_AFTER_CONNECT   "CONNECT"
 
#define SMTPD_AFTER_DATA   "DATA content"
 
#define SMTPD_AFTER_DOT   "END-OF-MESSAGE"
 
#define SMTPD_CMD_HELO   "HELO"
 
#define SMTPD_CMD_EHLO   "EHLO"
 
#define SMTPD_CMD_STARTTLS   "STARTTLS"
 
#define SMTPD_CMD_AUTH   "AUTH"
 
#define SMTPD_CMD_MAIL   "MAIL"
 
#define SMTPD_CMD_RCPT   "RCPT"
 
#define SMTPD_CMD_DATA   "DATA"
 
#define SMTPD_CMD_EOD   SMTPD_AFTER_DOT /* XXX Was: END-OF-DATA */
 
#define SMTPD_CMD_RSET   "RSET"
 
#define SMTPD_CMD_NOOP   "NOOP"
 
#define SMTPD_CMD_VRFY   "VRFY"
 
#define SMTPD_CMD_ETRN   "ETRN"
 
#define SMTPD_CMD_QUIT   "QUIT"
 
#define SMTPD_CMD_XCLIENT   "XCLIENT"
 
#define SMTPD_CMD_XFORWARD   "XFORWARD"
 
#define SMTPD_CMD_UNKNOWN   "UNKNOWN"
 
#define CLIENT_ATTR_UNKNOWN   "unknown"
 
#define CLIENT_NAME_UNKNOWN   CLIENT_ATTR_UNKNOWN
 
#define CLIENT_ADDR_UNKNOWN   CLIENT_ATTR_UNKNOWN
 
#define CLIENT_PORT_UNKNOWN   CLIENT_ATTR_UNKNOWN
 
#define CLIENT_NAMADDR_UNKNOWN   CLIENT_ATTR_UNKNOWN
 
#define CLIENT_HELO_UNKNOWN   0
 
#define CLIENT_PROTO_UNKNOWN   CLIENT_ATTR_UNKNOWN
 
#define CLIENT_IDENT_UNKNOWN   0
 
#define CLIENT_DOMAIN_UNKNOWN   0
 
#define CLIENT_LOGIN_UNKNOWN   0
 
#define SERVER_ATTR_UNKNOWN   "unknown"
 
#define SERVER_ADDR_UNKNOWN   SERVER_ATTR_UNKNOWN
 
#define SERVER_PORT_UNKNOWN   SERVER_ATTR_UNKNOWN
 
#define IS_AVAIL_CLIENT_ATTR(v)   ((v) && strcmp((v), CLIENT_ATTR_UNKNOWN))
 
#define IS_AVAIL_CLIENT_NAME(v)   IS_AVAIL_CLIENT_ATTR(v)
 
#define IS_AVAIL_CLIENT_ADDR(v)   IS_AVAIL_CLIENT_ATTR(v)
 
#define IS_AVAIL_CLIENT_PORT(v)   IS_AVAIL_CLIENT_ATTR(v)
 
#define IS_AVAIL_CLIENT_NAMADDR(v)   IS_AVAIL_CLIENT_ATTR(v)
 
#define IS_AVAIL_CLIENT_HELO(v)   ((v) != 0)
 
#define IS_AVAIL_CLIENT_PROTO(v)   IS_AVAIL_CLIENT_ATTR(v)
 
#define IS_AVAIL_CLIENT_IDENT(v)   ((v) != 0)
 
#define IS_AVAIL_CLIENT_DOMAIN(v)   ((v) != 0)
 
#define SMTPD_STAND_ALONE_STREAM(stream)   (stream == VSTREAM_IN && getuid() != var_owner_uid)
 
#define SMTPD_STAND_ALONE(state)   (state->client == VSTREAM_IN && getuid() != var_owner_uid)
 
#define USE_SMTPD_PROXY(state)   (SMTPD_STAND_ALONE(state) == 0 && *var_smtpd_proxy_filt)
 
#define SMTPD_IN_MAIL_TRANSACTION(state)   ((state)->sender != 0)
 
#define SMTPD_PEER_CODE_OK   2
 
#define SMTPD_PEER_CODE_TEMP   4
 
#define SMTPD_PEER_CODE_PERM   5
 
#define SMTPD_PEER_CODE_FORGED   6
 
#define SMTPD_BUILD_NAMADDRPORT(name, addr, port)
 
#define HAVE_FORWARDED_CLIENT_ATTR(s)   ((s)->xforward.flags & SMTPD_STATE_XFORWARD_CLIENT_MASK)
 
#define FORWARD_CLIENT_ATTR(s, a)
 
#define FORWARD_ADDR(s)   FORWARD_CLIENT_ATTR((s), rfc_addr)
 
#define FORWARD_NAME(s)   FORWARD_CLIENT_ATTR((s), name)
 
#define FORWARD_NAMADDR(s)   FORWARD_CLIENT_ATTR((s), namaddr)
 
#define FORWARD_PROTO(s)   FORWARD_CLIENT_ATTR((s), protocol)
 
#define FORWARD_HELO(s)   FORWARD_CLIENT_ATTR((s), helo_name)
 
#define FORWARD_PORT(s)   FORWARD_CLIENT_ATTR((s), port)
 
#define HAVE_FORWARDED_IDENT(s)   ((s)->xforward.ident != 0)
 
#define FORWARD_IDENT(s)
 
#define FORWARD_DOMAIN(s)
 

型定義

typedef struct SMTPD_DEFER SMTPD_DEFER
 

関数

void smtpd_state_init (SMTPD_STATE *, VSTREAM *, const char *)
 
void smtpd_state_reset (SMTPD_STATE *)
 
void smtpd_peer_init (SMTPD_STATE *state)
 
void smtpd_peer_reset (SMTPD_STATE *state)
 
int smtpd_peer_from_haproxy (SMTPD_STATE *state)
 
void smtpd_xforward_init (SMTPD_STATE *)
 
void smtpd_xforward_preset (SMTPD_STATE *)
 
void smtpd_xforward_reset (SMTPD_STATE *)
 

変数

int smtpd_input_transp_mask
 
MILTERSsmtpd_milters
 
double smtpd_space_multf
 

マクロ定義詳解

#define CLIENT_ADDR_UNKNOWN   CLIENT_ATTR_UNKNOWN

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

#define CLIENT_ATTR_UNKNOWN   "unknown"

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

#define CLIENT_DOMAIN_UNKNOWN   0

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

#define CLIENT_HELO_UNKNOWN   0

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

#define CLIENT_IDENT_UNKNOWN   0

smtpd.h282 行目に定義があります。

#define CLIENT_LOGIN_UNKNOWN   0

smtpd.h284 行目に定義があります。

#define CLIENT_NAMADDR_UNKNOWN   CLIENT_ATTR_UNKNOWN

smtpd.h279 行目に定義があります。

#define CLIENT_NAME_UNKNOWN   CLIENT_ATTR_UNKNOWN

smtpd.h276 行目に定義があります。

#define CLIENT_PORT_UNKNOWN   CLIENT_ATTR_UNKNOWN

smtpd.h278 行目に定義があります。

#define CLIENT_PROTO_UNKNOWN   CLIENT_ATTR_UNKNOWN

smtpd.h281 行目に定義があります。

#define FORWARD_ADDR (   s)    FORWARD_CLIENT_ATTR((s), rfc_addr)

smtpd.h355 行目に定義があります。

#define FORWARD_CLIENT_ATTR (   s,
 
)
値:
(s)->xforward.a : (s)->a)
#define HAVE_FORWARDED_CLIENT_ATTR(s)
Definition: smtpd.h:348

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

#define FORWARD_DOMAIN (   s)
値:
(((s)->xforward.flags & SMTPD_STATE_XFORWARD_DOMAIN) ? \
(s)->xforward.domain : (s)->rewrite_context)
#define SMTPD_STATE_XFORWARD_DOMAIN
Definition: smtpd.h:209

smtpd.h375 行目に定義があります。

#define FORWARD_HELO (   s)    FORWARD_CLIENT_ATTR((s), helo_name)

smtpd.h359 行目に定義があります。

#define FORWARD_IDENT (   s)
値:
(s)->xforward.ident : (s)->queue_id)
#define HAVE_FORWARDED_IDENT(s)
Definition: smtpd.h:365

smtpd.h368 行目に定義があります。

#define FORWARD_NAMADDR (   s)    FORWARD_CLIENT_ATTR((s), namaddr)

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

#define FORWARD_NAME (   s)    FORWARD_CLIENT_ATTR((s), name)

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

#define FORWARD_PORT (   s)    FORWARD_CLIENT_ATTR((s), port)

smtpd.h360 行目に定義があります。

#define FORWARD_PROTO (   s)    FORWARD_CLIENT_ATTR((s), protocol)

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

#define HAVE_FORWARDED_CLIENT_ATTR (   s)    ((s)->xforward.flags & SMTPD_STATE_XFORWARD_CLIENT_MASK)

smtpd.h348 行目に定義があります。

#define HAVE_FORWARDED_IDENT (   s)    ((s)->xforward.ident != 0)

smtpd.h365 行目に定義があります。

#define IS_AVAIL_CLIENT_ADDR (   v)    IS_AVAIL_CLIENT_ATTR(v)

smtpd.h294 行目に定義があります。

#define IS_AVAIL_CLIENT_ATTR (   v)    ((v) && strcmp((v), CLIENT_ATTR_UNKNOWN))

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

#define IS_AVAIL_CLIENT_DOMAIN (   v)    ((v) != 0)

smtpd.h300 行目に定義があります。

#define IS_AVAIL_CLIENT_HELO (   v)    ((v) != 0)

smtpd.h297 行目に定義があります。

#define IS_AVAIL_CLIENT_IDENT (   v)    ((v) != 0)

smtpd.h299 行目に定義があります。

#define IS_AVAIL_CLIENT_NAMADDR (   v)    IS_AVAIL_CLIENT_ATTR(v)

smtpd.h296 行目に定義があります。

#define IS_AVAIL_CLIENT_NAME (   v)    IS_AVAIL_CLIENT_ATTR(v)

smtpd.h293 行目に定義があります。

#define IS_AVAIL_CLIENT_PORT (   v)    IS_AVAIL_CLIENT_ATTR(v)

smtpd.h295 行目に定義があります。

#define IS_AVAIL_CLIENT_PROTO (   v)    IS_AVAIL_CLIENT_ATTR(v)

smtpd.h298 行目に定義があります。

#define SERVER_ADDR_UNKNOWN   SERVER_ATTR_UNKNOWN

smtpd.h288 行目に定義があります。

#define SERVER_ATTR_UNKNOWN   "unknown"

smtpd.h286 行目に定義があります。

#define SERVER_PORT_UNKNOWN   SERVER_ATTR_UNKNOWN

smtpd.h289 行目に定義があります。

#define SMTPD_AFTER_CONNECT   "CONNECT"

smtpd.h224 行目に定義があります。

#define SMTPD_AFTER_DATA   "DATA content"

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

#define SMTPD_AFTER_DOT   "END-OF-MESSAGE"

smtpd.h226 行目に定義があります。

#define SMTPD_BUILD_NAMADDRPORT (   name,
  addr,
  port 
)
値:
concatenate((name), "[", (addr), "]", \
var_smtpd_client_port_log ? ":" : (char *) 0, \
(port), (char *) 0)
char * concatenate(const char *arg0,...)
Definition: concatenate.c:42
bool var_smtpd_client_port_log
Definition: smtpd.c:1399

smtpd.h339 行目に定義があります。

#define SMTPD_CMD_AUTH   "AUTH"

smtpd.h235 行目に定義があります。

#define SMTPD_CMD_DATA   "DATA"

smtpd.h238 行目に定義があります。

#define SMTPD_CMD_EHLO   "EHLO"

smtpd.h233 行目に定義があります。

#define SMTPD_CMD_EOD   SMTPD_AFTER_DOT /* XXX Was: END-OF-DATA */

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

#define SMTPD_CMD_ETRN   "ETRN"

smtpd.h243 行目に定義があります。

#define SMTPD_CMD_HELO   "HELO"

smtpd.h232 行目に定義があります。

#define SMTPD_CMD_MAIL   "MAIL"

smtpd.h236 行目に定義があります。

#define SMTPD_CMD_NOOP   "NOOP"

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

#define SMTPD_CMD_QUIT   "QUIT"

smtpd.h244 行目に定義があります。

#define SMTPD_CMD_RCPT   "RCPT"

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

#define SMTPD_CMD_RSET   "RSET"

smtpd.h240 行目に定義があります。

#define SMTPD_CMD_STARTTLS   "STARTTLS"

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

#define SMTPD_CMD_UNKNOWN   "UNKNOWN"

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

#define SMTPD_CMD_VRFY   "VRFY"

smtpd.h242 行目に定義があります。

#define SMTPD_CMD_XCLIENT   "XCLIENT"

smtpd.h245 行目に定義があります。

#define SMTPD_CMD_XFORWARD   "XFORWARD"

smtpd.h246 行目に定義があります。

#define SMTPD_FLAG_AUTH_USED   (1<<2) /* don't reuse SASL state */

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

#define SMTPD_FLAG_HANGUP   (1<<0) /* 421/521 disconnect */

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

#define SMTPD_FLAG_ILL_PIPELINING   (1<<1) /* inappropriate pipelining */

smtpd.h195 行目に定義があります。

#define SMTPD_FLAG_SMTPUTF8   (1<<3) /* RFC 6531/2 transaction */

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

#define SMTPD_IN_MAIL_TRANSACTION (   state)    ((state)->sender != 0)

smtpd.h322 行目に定義があります。

#define SMTPD_MASK_MAIL_KEEP   ~(SMTPD_FLAG_SMTPUTF8) /* Fix 20140706 */

smtpd.h200 行目に定義があります。

#define SMTPD_PEER_CODE_FORGED   6

smtpd.h334 行目に定義があります。

#define SMTPD_PEER_CODE_OK   2

smtpd.h331 行目に定義があります。

#define SMTPD_PEER_CODE_PERM   5

smtpd.h333 行目に定義があります。

#define SMTPD_PEER_CODE_TEMP   4

smtpd.h332 行目に定義があります。

#define SMTPD_STAND_ALONE (   state)    (state->client == VSTREAM_IN && getuid() != var_owner_uid)

smtpd.h309 行目に定義があります。

#define SMTPD_STAND_ALONE_STREAM (   stream)    (stream == VSTREAM_IN && getuid() != var_owner_uid)

smtpd.h306 行目に定義があります。

#define SMTPD_STATE_XFORWARD_ADDR   (1<<2) /* client address received */

smtpd.h205 行目に定義があります。

#define SMTPD_STATE_XFORWARD_CLIENT_MASK
値:
#define SMTPD_STATE_XFORWARD_PORT
Definition: smtpd.h:210
#define SMTPD_STATE_XFORWARD_NAME
Definition: smtpd.h:204
#define SMTPD_STATE_XFORWARD_ADDR
Definition: smtpd.h:205
#define SMTPD_STATE_XFORWARD_HELO
Definition: smtpd.h:207
#define SMTPD_STATE_XFORWARD_PROTO
Definition: smtpd.h:206

smtpd.h212 行目に定義があります。

#define SMTPD_STATE_XFORWARD_DOMAIN   (1<<6) /* address context */

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

#define SMTPD_STATE_XFORWARD_HELO   (1<<4) /* client helo received */

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

#define SMTPD_STATE_XFORWARD_IDENT   (1<<5) /* message identifier */

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

#define SMTPD_STATE_XFORWARD_INIT   (1<<0) /* xforward preset done */

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

#define SMTPD_STATE_XFORWARD_NAME   (1<<1) /* client name received */

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

#define SMTPD_STATE_XFORWARD_PORT   (1<<7) /* client port received */

smtpd.h210 行目に定義があります。

#define SMTPD_STATE_XFORWARD_PROTO   (1<<3) /* protocol received */

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

#define USE_SMTPD_PROXY (   state)    (SMTPD_STAND_ALONE(state) == 0 && *var_smtpd_proxy_filt)

smtpd.h316 行目に定義があります。

型定義詳解

typedef struct SMTPD_DEFER SMTPD_DEFER

関数詳解

int smtpd_peer_from_haproxy ( SMTPD_STATE state)

smtpd_haproxy.c92 行目に定義があります。

void smtpd_peer_init ( SMTPD_STATE state)

smtpd_peer.c573 行目に定義があります。

void smtpd_peer_reset ( SMTPD_STATE state)

smtpd_peer.c631 行目に定義があります。

void smtpd_state_init ( SMTPD_STATE ,
VSTREAM ,
const char *   
)

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

void smtpd_state_reset ( SMTPD_STATE )

smtpd_state.c190 行目に定義があります。

void smtpd_xforward_init ( SMTPD_STATE )

smtpd_xforward.c56 行目に定義があります。

void smtpd_xforward_preset ( SMTPD_STATE )

smtpd_xforward.c71 行目に定義があります。

void smtpd_xforward_reset ( SMTPD_STATE )

smtpd_xforward.c100 行目に定義があります。

変数詳解

int smtpd_input_transp_mask

smtpd.c1467 行目に定義があります。

MILTERS* smtpd_milters
double smtpd_space_multf

smtpd_check.c469 行目に定義があります。