Postfix3.3.1
マクロ定義 | 関数
cleanup_milter.c ファイル
#include <sys_defs.h>
#include <sys/socket.h>
#include <string.h>
#include <errno.h>
#include <msg.h>
#include <vstream.h>
#include <vstring.h>
#include <stringops.h>
#include <inet_proto.h>
#include <off_cvt.h>
#include <dsn_mask.h>
#include <rec_type.h>
#include <cleanup_user.h>
#include <record.h>
#include <rec_attr_map.h>
#include <mail_proto.h>
#include <mail_params.h>
#include <lex_822.h>
#include <is_header.h>
#include <quote_821_local.h>
#include <dsn_util.h>
#include <xtext.h>
#include <cleanup.h>

[ソースコード]

マクロ定義

#define STR(x)   vstring_str(x)
 
#define LEN(x)   VSTRING_LEN(x)
 
#define STREQUAL(x, y, l)   (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0)
 
#define CLEANUP_MILTER_REJECTING_OR_DISCARDING_MESSAGE(state)   ((state->flags & CLEANUP_FLAG_DISCARD) || (state->errs & CLEANUP_STAT_CONT))
 
#define NO_NESTED_HDR_NAME   ""
 
#define NO_NESTED_HDR_VALUE   ""
 
#define NO_MIME_HDR_NAME   ""
 
#define NO_MIME_HDR_VALUE   ""
 
#define CLEANUP_MILTER_SET_REASON(__state, __reason)
 
#define CLEANUP_MILTER_SET_SMTP_REPLY(__state, __smtp_reply)
 
#define CLEANUP_FIND_HEADER_NOTFOUND   (-1)
 
#define CLEANUP_FIND_HEADER_IOERROR   (-2)
 
#define CLEANUP_FIND_HEADER_RETURN(offs)
 
#define GET_NEXT_TEXT_OR_PTR_RECORD(rec_type, state, buf, curr_offset, quit)
 
#define CLEANUP_PATCH_HEADER_RETURN(ret)
 
#define CLEANUP_INS_HEADER_RETURN(ret)
 
#define NO_HEADER_NAME   ((char *) 0)
 
#define ALLOW_PTR_BACKUP   1
 
#define SKIP_ONE_HEADER   1
 
#define DONT_SKIP_HEADERS   0
 
#define DONT_SAVE_RECORD   0
 
#define NO_PTR_BACKUP   0
 
#define CLEANUP_UPD_HEADER_RETURN(ret)
 
#define CLEANUP_DEL_HEADER_RETURN(ret)
 
#define CLEANUP_DEL_RCPT_RETURN(ret)
 
#define CLIENT_ATTR_UNKNOWN   "unknown"
 
#define SERVER_ATTR_UNKNOWN   "unknown"
 
#define NO_CLIENT_PORT   "0"
 
#define PRETEND_ESMTP   1
 

関数

void cleanup_milter_receive (CLEANUP_STATE *state, int count)
 
void cleanup_milter_inspect (CLEANUP_STATE *state, MILTERS *milters)
 
void cleanup_milter_emul_mail (CLEANUP_STATE *state, MILTERS *milters, const char *addr)
 
void cleanup_milter_emul_rcpt (CLEANUP_STATE *state, MILTERS *milters, const char *addr)
 
void cleanup_milter_emul_data (CLEANUP_STATE *state, MILTERS *milters)
 

マクロ定義詳解

#define ALLOW_PTR_BACKUP   1
#define CLEANUP_DEL_HEADER_RETURN (   ret)
値:
do { \
vstring_free(rec_buf); \
return (ret); \
} while (0)
VSTRING * vstring_free(VSTRING *vp)
Definition: vstring.c:380
#define CLEANUP_DEL_RCPT_RETURN (   ret)
値:
do { \
if (orig_rcpt != 0) \
myfree(orig_rcpt); \
if (dsn_orcpt != 0) \
myfree(dsn_orcpt); \
vstring_free(int_rcpt_buf); \
return (ret); \
} while (0)
void myfree(void *ptr)
Definition: mymalloc.c:207
VSTRING * vstring_free(VSTRING *vp)
Definition: vstring.c:380
#define CLEANUP_FIND_HEADER_IOERROR   (-2)
#define CLEANUP_FIND_HEADER_NOTFOUND   (-1)
#define CLEANUP_FIND_HEADER_RETURN (   offs)
値:
do { \
if (ptr_buf) \
vstring_free(ptr_buf); \
return (offs); \
} while (0)
VSTRING * vstring_free(VSTRING *vp)
Definition: vstring.c:380
#define CLEANUP_INS_HEADER_RETURN (   ret)
値:
do { \
vstring_free(old_rec_buf); \
return (ret); \
} while (0)
VSTRING * vstring_free(VSTRING *vp)
Definition: vstring.c:380
#define CLEANUP_MILTER_REJECTING_OR_DISCARDING_MESSAGE (   state)    ((state->flags & CLEANUP_FLAG_DISCARD) || (state->errs & CLEANUP_STAT_CONT))
#define CLEANUP_MILTER_SET_REASON (   __state,
  __reason 
)
値:
do { \
if ((__state)->reason) \
myfree((__state)->reason); \
(__state)->reason = mystrdup(__reason); \
if ((__state)->smtp_reply) { \
myfree((__state)->smtp_reply); \
(__state)->smtp_reply = 0; \
} \
} while (0)
void myfree(void *ptr)
Definition: mymalloc.c:207
char * mystrdup(const char *str)
Definition: mymalloc.c:225

cleanup_milter.c550 行目に定義があります。

#define CLEANUP_MILTER_SET_SMTP_REPLY (   __state,
  __smtp_reply 
)
値:
do { \
if ((__state)->reason) \
myfree((__state)->reason); \
(__state)->reason = mystrdup(__smtp_reply + 4); \
printable((__state)->reason, '_'); \
if ((__state)->smtp_reply) \
myfree((__state)->smtp_reply); \
(__state)->smtp_reply = mystrdup(__smtp_reply); \
} while (0)
void myfree(void *ptr)
Definition: mymalloc.c:207
char * mystrdup(const char *str)
Definition: mymalloc.c:225
char * printable(char *string, int replacement)
Definition: printable.c:49

cleanup_milter.c560 行目に定義があります。

#define CLEANUP_PATCH_HEADER_RETURN (   ret)
値:
do { \
return (ret); \
} while (0)
VSTRING * vstring_free(VSTRING *vp)
Definition: vstring.c:380
#define CLEANUP_UPD_HEADER_RETURN (   ret)
値:
do { \
vstring_free(rec_buf); \
return (ret); \
} while (0)
VSTRING * vstring_free(VSTRING *vp)
Definition: vstring.c:380
#define CLIENT_ATTR_UNKNOWN   "unknown"
#define DONT_SAVE_RECORD   0
#define DONT_SKIP_HEADERS   0
#define GET_NEXT_TEXT_OR_PTR_RECORD (   rec_type,
  state,
  buf,
  curr_offset,
  quit 
)
値:
if ((rec_type = rec_get_raw(state->dst, buf, 0, REC_FLAG_NONE)) < 0) { \
msg_warn("%s: read file %s: %m", myname, cleanup_path); \
cleanup_milter_set_error(state, errno); \
do { quit; } while (0); \
} \
if (msg_verbose > 1) \
msg_info("%s: read: %ld: %.*s", myname, (long) curr_offset, \
LEN(buf) > 30 ? 30 : (int) LEN(buf), STR(buf)); \
if (rec_type == REC_TYPE_DTXT) \
continue; \
if (rec_type != REC_TYPE_NORM && rec_type != REC_TYPE_CONT \
&& rec_type != REC_TYPE_PTR) \
break;
int msg_verbose
Definition: msg.c:177
#define REC_FLAG_NONE
Definition: record.h:45
#define LEN(x)
#define STR(x)
char * cleanup_path
Definition: cleanup_init.c:111
int rec_get_raw(VSTREAM *stream, VSTRING *buf, ssize_t maxsize, int flags)
Definition: record.c:236
#define REC_TYPE_CONT
Definition: rec_type.h:58
#define REC_TYPE_PTR
Definition: rec_type.h:67
void msg_warn(const char *fmt,...)
Definition: msg.c:215
#define REC_TYPE_NORM
Definition: rec_type.h:59
#define REC_TYPE_DTXT
Definition: rec_type.h:60
void msg_info(const char *fmt,...)
Definition: msg.c:199
#define LEN (   x)    VSTRING_LEN(x)

cleanup_milter.c228 行目に定義があります。

#define NO_CLIENT_PORT   "0"
#define NO_HEADER_NAME   ((char *) 0)
#define NO_MIME_HDR_NAME   ""
#define NO_MIME_HDR_VALUE   ""
#define NO_NESTED_HDR_NAME   ""
#define NO_NESTED_HDR_VALUE   ""
#define NO_PTR_BACKUP   0
#define PRETEND_ESMTP   1
#define SERVER_ATTR_UNKNOWN   "unknown"
#define SKIP_ONE_HEADER   1
#define STR (   x)    vstring_str(x)

cleanup_milter.c227 行目に定義があります。

#define STREQUAL (   x,
  y,
 
)    (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0)

関数詳解

void cleanup_milter_emul_data ( CLEANUP_STATE state,
MILTERS milters 
)

cleanup_milter.c2260 行目に定義があります。

void cleanup_milter_emul_mail ( CLEANUP_STATE state,
MILTERS milters,
const char *  addr 
)

cleanup_milter.c2162 行目に定義があります。

void cleanup_milter_emul_rcpt ( CLEANUP_STATE state,
MILTERS milters,
const char *  addr 
)

cleanup_milter.c2220 行目に定義があります。

void cleanup_milter_inspect ( CLEANUP_STATE state,
MILTERS milters 
)

cleanup_milter.c2122 行目に定義があります。

void cleanup_milter_receive ( CLEANUP_STATE state,
int  count 
)

cleanup_milter.c1939 行目に定義があります。