122 #define MAIL_ATTR_MILT_MAC_CONN "conn_macros"
123 #define MAIL_ATTR_MILT_MAC_HELO "helo_macros"
124 #define MAIL_ATTR_MILT_MAC_MAIL "mail_macros"
125 #define MAIL_ATTR_MILT_MAC_RCPT "rcpt_macros"
126 #define MAIL_ATTR_MILT_MAC_DATA "data_macros"
127 #define MAIL_ATTR_MILT_MAC_EOH "eoh_macros"
128 #define MAIL_ATTR_MILT_MAC_EOD "eod_macros"
129 #define MAIL_ATTR_MILT_MAC_UNK "unk_macros"
134 int flags,
void *ptr)
159 int flags,
void *ptr)
203 return (ret == 8 ? 1 : -1);
209 const char *helo_macros,
210 const char *mail_macros,
211 const char *rcpt_macros,
212 const char *data_macros,
213 const char *eoh_macros,
214 const char *eod_macros,
215 const char *unk_macros)
241 #define milter_macros_init(mp, expr) do { \
242 MILTER_MACROS *__mp = (mp); \
243 char *__expr = (expr); \
244 __mp->conn_macros = __expr; \
245 __mp->helo_macros = __expr; \
246 __mp->mail_macros = __expr; \
247 __mp->rcpt_macros = __expr; \
248 __mp->data_macros = __expr; \
249 __mp->eoh_macros = __expr; \
250 __mp->eod_macros = __expr; \
251 __mp->unk_macros = __expr; \
263 msg_panic(
"milter_macros_alloc: unknown mode %d", mode);
276 #define milter_macros_wipe(mp) do { \
277 MILTER_MACROS *__mp = mp; \
278 if (__mp->conn_macros) \
279 myfree(__mp->conn_macros); \
280 if (__mp->helo_macros) \
281 myfree(__mp->helo_macros); \
282 if (__mp->mail_macros) \
283 myfree(__mp->mail_macros); \
284 if (__mp->rcpt_macros) \
285 myfree(__mp->rcpt_macros); \
286 if (__mp->data_macros) \
287 myfree(__mp->data_macros); \
288 if (__mp->eoh_macros) \
289 myfree(__mp->eoh_macros); \
290 if (__mp->eod_macros) \
291 myfree(__mp->eod_macros); \
292 if (__mp->unk_macros) \
293 myfree(__mp->unk_macros); \
MILTER_MACROS * milter_macros_create(const char *conn_macros, const char *helo_macros, const char *mail_macros, const char *rcpt_macros, const char *data_macros, const char *eoh_macros, const char *eod_macros, const char *unk_macros)
#define MAIL_ATTR_MILT_MAC_UNK
int(* ATTR_PRINT_MASTER_FN)(VSTREAM *, int,...)
void milter_macros_free(MILTER_MACROS *mp)
char * mystrdup(const char *str)
#define MILTER_MACROS_ALLOC_EMPTY
NORETURN msg_panic(const char *fmt,...)
#define MAIL_ATTR_MILT_MAC_EOH
#define MAIL_ATTR_MILT_MAC_MAIL
int milter_macros_print(ATTR_PRINT_MASTER_FN print_fn, VSTREAM *fp, int flags, void *ptr)
#define milter_macros_init(mp, expr)
MILTER_MACROS * milter_macros_alloc(int mode)
#define milter_macros_wipe(mp)
int(* ATTR_SCAN_MASTER_FN)(VSTREAM *, int,...)
#define MAIL_ATTR_MILT_MAC_DATA
#define MAIL_ATTR_MILT_MAC_CONN
VSTRING * vstring_alloc(ssize_t len)
#define MAIL_ATTR_MILT_MAC_HELO
#define MAIL_ATTR_MILT_MAC_EOD
#define MAIL_ATTR_MILT_MAC_RCPT
int milter_macros_scan(ATTR_SCAN_MASTER_FN scan_fn, VSTREAM *fp, int flags, void *ptr)
#define SEND_ATTR_STR(name, val)
char * vstring_export(VSTRING *vp)
#define MILTER_MACROS_ALLOC_ZERO
#define RECV_ATTR_STR(name, val)
void * mymalloc(ssize_t len)