Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数
milter.h ファイル
#include <vstring.h>
#include <vstream.h>
#include <argv.h>
#include <attr.h>

[ソースコード]

データ構造

struct  MILTER
 
struct  MILTER_MACROS
 
struct  MILTERS
 

マクロ定義

#define MILTER_FLAG_NONE   (0)
 
#define MILTER_FLAG_WANT_RCPT_REJ   (1<<0) /* see S8_RCPT_MAILER_ERROR */
 
#define MILTER_MACROS_ALLOC_ZERO   1 /* null pointer */
 
#define MILTER_MACROS_ALLOC_EMPTY   2 /* mystrdup(""); */
 
#define milter_create(milter_names, conn_timeout, cmd_timeout, msg_timeout, protocol, def_action, conn_macros, helo_macros, mail_macros, rcpt_macros, data_macros, eoh_macros, eod_macros, unk_macros, macro_deflts)
 
#define MILTER_BODY_START   1 /* start message body */
 
#define MILTER_BODY_LINE   2 /* message body line */
 
#define MILTER_BODY_END   3 /* end message body */
 
#define S8_MAC__   "{_}" /* sender host, see client_resolve */
 
#define S8_MAC_J   "{j}" /* myhostname */
 
#define S8_MAC_V   "{v}" /* mail_name + mail_version */
 
#define S8_MAC_DAEMON_NAME   "{daemon_name}"
 
#define S8_MAC_IF_NAME   "{if_name}"
 
#define S8_MAC_IF_ADDR   "{if_addr}"
 
#define S8_MAC_CLIENT_ADDR   "{client_addr}"
 
#define S8_MAC_CLIENT_CONN   "{client_connections}"
 
#define S8_MAC_CLIENT_NAME   "{client_name}"
 
#define S8_MAC_CLIENT_PORT   "{client_port}"
 
#define S8_MAC_CLIENT_PTR   "{client_ptr}"
 
#define S8_MAC_CLIENT_RES   "{client_resolve}"
 
#define S8_MAC_DAEMON_ADDR   "{daemon_addr}"
 
#define S8_MAC_DAEMON_PORT   "{daemon_port}"
 
#define S8_MAC_TLS_VERSION   "{tls_version}"
 
#define S8_MAC_CIPHER   "{cipher}"
 
#define S8_MAC_CIPHER_BITS   "{cipher_bits}"
 
#define S8_MAC_CERT_SUBJECT   "{cert_subject}"
 
#define S8_MAC_CERT_ISSUER   "{cert_issuer}"
 
#define S8_MAC_I   "{i}" /* queue ID */
 
#define S8_MAC_AUTH_TYPE   "{auth_type}" /* SASL method */
 
#define S8_MAC_AUTH_AUTHEN   "{auth_authen}" /* SASL username */
 
#define S8_MAC_AUTH_AUTHOR   "{auth_author}" /* SASL sender */
 
#define S8_MAC_MAIL_MAILER   "{mail_mailer}" /* sender transport */
 
#define S8_MAC_MAIL_HOST   "{mail_host}" /* sender nexthop */
 
#define S8_MAC_MAIL_ADDR   "{mail_addr}" /* sender address */
 
#define S8_MAC_RCPT_MAILER   "{rcpt_mailer}" /* recip transport */
 
#define S8_MAC_RCPT_HOST   "{rcpt_host}" /* recip nexthop */
 
#define S8_MAC_RCPT_ADDR   "{rcpt_addr}" /* recip address */
 
#define S8_RCPT_MAILER_ERROR   "error" /* see MILTER_FLAG_WANT_RCPT_REJ */
 

型定義

typedef struct MILTER MILTER
 
typedef struct MILTER_MACROS MILTER_MACROS
 
typedef const char *(* MILTER_MAC_LOOKUP_FN) (const char *, void *)
 
typedef const char *(* MILTER_ADD_HEADER_FN) (void *, const char *, const char *, const char *)
 
typedef const char *(* MILTER_EDIT_HEADER_FN) (void *, ssize_t, const char *, const char *, const char *)
 
typedef const char *(* MILTER_DEL_HEADER_FN) (void *, ssize_t, const char *)
 
typedef const char *(* MILTER_EDIT_FROM_FN) (void *, const char *, const char *)
 
typedef const char *(* MILTER_EDIT_RCPT_FN) (void *, const char *)
 
typedef const char *(* MILTER_EDIT_RCPT_PAR_FN) (void *, const char *, const char *)
 
typedef const char *(* MILTER_EDIT_BODY_FN) (void *, int, VSTRING *)
 
typedef struct MILTERS MILTERS
 

関数

MILTERmilter8_create (const char *, int, int, int, const char *, const char *, struct MILTERS *)
 
MILTERmilter8_receive (VSTREAM *, struct MILTERS *)
 
MILTER_MACROSmilter_macros_create (const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *)
 
MILTER_MACROSmilter_macros_alloc (int)
 
void milter_macros_free (MILTER_MACROS *)
 
int milter_macros_print (ATTR_PRINT_MASTER_FN, VSTREAM *, int, void *)
 
int milter_macros_scan (ATTR_SCAN_MASTER_FN, VSTREAM *, int, void *)
 
struct HTABLEmilter_macro_defaults_create (const char *)
 
MILTERSmilter_new (const char *, int, int, int, const char *, const char *, MILTER_MACROS *, struct HTABLE *)
 
void milter_macro_callback (MILTERS *, MILTER_MAC_LOOKUP_FN, void *)
 
void milter_edit_callback (MILTERS *milters, MILTER_ADD_HEADER_FN, MILTER_EDIT_HEADER_FN, MILTER_EDIT_HEADER_FN, MILTER_DEL_HEADER_FN, MILTER_EDIT_FROM_FN, MILTER_EDIT_RCPT_FN, MILTER_EDIT_RCPT_PAR_FN, MILTER_EDIT_RCPT_FN, MILTER_EDIT_BODY_FN, void *)
 
const char * milter_conn_event (MILTERS *, const char *, const char *, const char *, unsigned)
 
const char * milter_helo_event (MILTERS *, const char *, int)
 
const char * milter_mail_event (MILTERS *, const char **)
 
const char * milter_rcpt_event (MILTERS *, int, const char **)
 
const char * milter_data_event (MILTERS *)
 
const char * milter_message (MILTERS *, VSTREAM *, off_t, ARGV *)
 
const char * milter_unknown_event (MILTERS *, const char *)
 
const char * milter_other_event (MILTERS *)
 
void milter_abort (MILTERS *)
 
void milter_disc_event (MILTERS *)
 
int milter_dummy (MILTERS *, VSTREAM *)
 
int milter_send (MILTERS *, VSTREAM *)
 
MILTERSmilter_receive (VSTREAM *, int)
 
void milter_free (MILTERS *)
 

マクロ定義詳解

#define MILTER_BODY_END   3 /* end message body */

milter.h162 行目に定義があります。

#define MILTER_BODY_LINE   2 /* message body line */

milter.h161 行目に定義があります。

#define MILTER_BODY_START   1 /* start message body */

milter.h160 行目に定義があります。

#define milter_create (   milter_names,
  conn_timeout,
  cmd_timeout,
  msg_timeout,
  protocol,
  def_action,
  conn_macros,
  helo_macros,
  mail_macros,
  rcpt_macros,
  data_macros,
  eoh_macros,
  eod_macros,
  unk_macros,
  macro_deflts 
)
値:
milter_new(milter_names, conn_timeout, cmd_timeout, msg_timeout, \
protocol, def_action, milter_macros_create(conn_macros, \
helo_macros, mail_macros, rcpt_macros, data_macros, \
eoh_macros, eod_macros, unk_macros), \
MILTERS * milter_new(const char *, int, int, int, const char *, const char *, MILTER_MACROS *, struct HTABLE *)
Definition: milter.c:644
MILTER_MACROS * milter_macros_create(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *)
struct HTABLE * milter_macro_defaults_create(const char *)
Definition: milter.c:274

milter.h122 行目に定義があります。

#define MILTER_FLAG_NONE   (0)

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

#define MILTER_FLAG_WANT_RCPT_REJ   (1<<0) /* see S8_RCPT_MAILER_ERROR */

milter.h54 行目に定義があります。

#define MILTER_MACROS_ALLOC_EMPTY   2 /* mystrdup(""); */

milter.h85 行目に定義があります。

#define MILTER_MACROS_ALLOC_ZERO   1 /* null pointer */

milter.h84 行目に定義があります。

#define S8_MAC__   "{_}" /* sender host, see client_resolve */

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

#define S8_MAC_AUTH_AUTHEN   "{auth_authen}" /* SASL username */

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

#define S8_MAC_AUTH_AUTHOR   "{auth_author}" /* SASL sender */

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

#define S8_MAC_AUTH_TYPE   "{auth_type}" /* SASL method */

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

#define S8_MAC_CERT_ISSUER   "{cert_issuer}"

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

#define S8_MAC_CERT_SUBJECT   "{cert_subject}"

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

#define S8_MAC_CIPHER   "{cipher}"

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

#define S8_MAC_CIPHER_BITS   "{cipher_bits}"

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

#define S8_MAC_CLIENT_ADDR   "{client_addr}"

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

#define S8_MAC_CLIENT_CONN   "{client_connections}"

milter.h176 行目に定義があります。

#define S8_MAC_CLIENT_NAME   "{client_name}"

milter.h177 行目に定義があります。

#define S8_MAC_CLIENT_PORT   "{client_port}"

milter.h178 行目に定義があります。

#define S8_MAC_CLIENT_PTR   "{client_ptr}"

milter.h179 行目に定義があります。

#define S8_MAC_CLIENT_RES   "{client_resolve}"

milter.h180 行目に定義があります。

#define S8_MAC_DAEMON_ADDR   "{daemon_addr}"

milter.h182 行目に定義があります。

#define S8_MAC_DAEMON_NAME   "{daemon_name}"

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

#define S8_MAC_DAEMON_PORT   "{daemon_port}"

milter.h183 行目に定義があります。

#define S8_MAC_I   "{i}" /* queue ID */

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

#define S8_MAC_IF_ADDR   "{if_addr}"

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

#define S8_MAC_IF_NAME   "{if_name}"

milter.h172 行目に定義があります。

#define S8_MAC_J   "{j}" /* myhostname */

milter.h168 行目に定義があります。

#define S8_MAC_MAIL_ADDR   "{mail_addr}" /* sender address */

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

#define S8_MAC_MAIL_HOST   "{mail_host}" /* sender nexthop */

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

#define S8_MAC_MAIL_MAILER   "{mail_mailer}" /* sender transport */

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

#define S8_MAC_RCPT_ADDR   "{rcpt_addr}" /* recip address */

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

#define S8_MAC_RCPT_HOST   "{rcpt_host}" /* recip nexthop */

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

#define S8_MAC_RCPT_MAILER   "{rcpt_mailer}" /* recip transport */

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

#define S8_MAC_TLS_VERSION   "{tls_version}"

milter.h185 行目に定義があります。

#define S8_MAC_V   "{v}" /* mail_name + mail_version */

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

#define S8_RCPT_MAILER_ERROR   "error" /* see MILTER_FLAG_WANT_RCPT_REJ */

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

型定義詳解

typedef struct MILTER MILTER
typedef const char*(* MILTER_ADD_HEADER_FN) (void *, const char *, const char *, const char *)

milter.h96 行目に定義があります。

typedef const char*(* MILTER_DEL_HEADER_FN) (void *, ssize_t, const char *)

milter.h98 行目に定義があります。

typedef const char*(* MILTER_EDIT_BODY_FN) (void *, int, VSTRING *)

milter.h102 行目に定義があります。

typedef const char*(* MILTER_EDIT_FROM_FN) (void *, const char *, const char *)

milter.h99 行目に定義があります。

typedef const char*(* MILTER_EDIT_HEADER_FN) (void *, ssize_t, const char *, const char *, const char *)

milter.h97 行目に定義があります。

typedef const char*(* MILTER_EDIT_RCPT_FN) (void *, const char *)

milter.h100 行目に定義があります。

typedef const char*(* MILTER_EDIT_RCPT_PAR_FN) (void *, const char *, const char *)

milter.h101 行目に定義があります。

typedef const char*(* MILTER_MAC_LOOKUP_FN) (const char *, void *)

milter.h95 行目に定義があります。

typedef struct MILTER_MACROS MILTER_MACROS
typedef struct MILTERS MILTERS

関数詳解

MILTER* milter8_create ( const char *  ,
int  ,
int  ,
int  ,
const char *  ,
const char *  ,
struct MILTERS  
)

milter8.c2876 行目に定義があります。

MILTER* milter8_receive ( VSTREAM ,
struct MILTERS  
)

milter8.c2714 行目に定義があります。

void milter_abort ( MILTERS )

milter.c593 行目に定義があります。

const char* milter_conn_event ( MILTERS ,
const char *  ,
const char *  ,
const char *  ,
unsigned   
)

milter.c399 行目に定義があります。

const char* milter_data_event ( MILTERS )

milter.c504 行目に定義があります。

void milter_disc_event ( MILTERS )

milter.c605 行目に定義があります。

int milter_dummy ( MILTERS ,
VSTREAM  
)

milter.c751 行目に定義があります。

milter.c373 行目に定義があります。

void milter_free ( MILTERS )

milter.c733 行目に定義があります。

const char* milter_helo_event ( MILTERS ,
const char *  ,
int   
)

milter.c433 行目に定義があります。

void milter_macro_callback ( MILTERS ,
MILTER_MAC_LOOKUP_FN  ,
void *   
)
struct HTABLE* milter_macro_defaults_create ( const char *  )

milter.c274 行目に定義があります。

MILTER_MACROS* milter_macros_alloc ( int  )

milter_macros.c234 行目に定義があります。

MILTER_MACROS* milter_macros_create ( const char *  ,
const char *  ,
const char *  ,
const char *  ,
const char *  ,
const char *  ,
const char *  ,
const char *   
)

milter_macros.c208 行目に定義があります。

void milter_macros_free ( MILTER_MACROS )

milter_macros.c270 行目に定義があります。

int milter_macros_print ( ATTR_PRINT_MASTER_FN  ,
VSTREAM ,
int  ,
void *   
)

milter_macros.c133 行目に定義があります。

int milter_macros_scan ( ATTR_SCAN_MASTER_FN  ,
VSTREAM ,
int  ,
void *   
)

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

const char* milter_mail_event ( MILTERS ,
const char **   
)

milter.c456 行目に定義があります。

const char* milter_message ( MILTERS ,
VSTREAM ,
off_t  ,
ARGV  
)

milter.c562 行目に定義があります。

MILTERS* milter_new ( const char *  ,
int  ,
int  ,
int  ,
const char *  ,
const char *  ,
MILTER_MACROS ,
struct HTABLE  
)

milter.c644 行目に定義があります。

const char* milter_other_event ( MILTERS )

milter.c548 行目に定義があります。

const char* milter_rcpt_event ( MILTERS ,
int  ,
const char **   
)

milter.c478 行目に定義があります。

MILTERS* milter_receive ( VSTREAM ,
int   
)

milter.c837 行目に定義があります。

int milter_send ( MILTERS ,
VSTREAM  
)

milter.c761 行目に定義があります。

const char* milter_unknown_event ( MILTERS ,
const char *   
)

milter.c526 行目に定義があります。