OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
milter macros {mail_addr} in postfix 2.5.1

From: Anton Yuzhaninov (citrinrambler-co.ru)
Date: Tue Mar 11 2008 - 11:52:00 CDT


I have a question about milter in postfix 2.5.1

It seems that macros {mail_addr} don't returned in xxfi_envfrom callback.

To test was used milter with callback:

sfsistat
mlfi_envfrom(SMFICTX *ctx, char **argv) {
         char *mail = smfi_getsymval(ctx, "{mail_addr}");

         if (mail == NULL ) {
                 mail = "NULL pointer";
         }

         printf("{mail_addr} = %s\n", mail);

         return SMFIS_CONTINUE;
}

In postfix 2.4.5 it work fine and print:

{mail_addr} = xxxxxcitrin.ru

In postfix 2.5.1 it fail to get {mail_addr} and print:

{mail_addr} = NULL pointer

$ postconf milter_mail_macros
milter_mail_macros = i {auth_type} {auth_authen} {auth_author} {mail_addr}

Debug log from 2.4.5:

postfix/smtpd[62856]: report sender to all milters
postfix/smtpd[62856]: milter_macro_lookup: "i"
postfix/smtpd[62856]: milter_macro_lookup: "{auth_type}"
postfix/smtpd[62856]: milter_macro_lookup: "{auth_authen}"
postfix/smtpd[62856]: milter_macro_lookup: "{auth_author}"
postfix/smtpd[62856]: milter_macro_lookup: "{mail_addr}"
postfix/smtpd[62856]: milter_macro_lookup: result "xxxxxexample"
postfix/smtpd[62856]: milter8_mail_event: milter unix:/var/run/rmilter-clam/sock: mail <xxxxxexample.ru>
postfix/smtpd[62856]: event: SMFIC_MAIL; macros: {mail_addr}=xxxxxexample.ru
postfix/smtpd[62856]: skipping event SMFIC_MAIL for milter unix:/var/run/rmilter-clam/sock
postfix/smtpd[62856]: milter8_mail_event: milter inet:localhost:9000: mail <xxxxxexample.ru>
postfix/smtpd[62856]: event: SMFIC_MAIL; macros: {mail_addr}=xxxxxexample.ru
postfix/smtpd[62856]: reply: SMFIR_CONTINUE data 0 bytes

Debug log in 2.5.1:

postfix/smtpd[70382]: report sender to all milters
postfix/smtpd[70382]: milter_macro_lookup: "i"
postfix/smtpd[70382]: milter_macro_lookup: "{auth_type}"
postfix/smtpd[70382]: milter_macro_lookup: "{auth_authen}"
postfix/smtpd[70382]: milter_macro_lookup: "{auth_author}"
postfix/smtpd[70382]: milter_macro_lookup: "{mail_addr}"
postfix/smtpd[70382]: milter8_mail_event: milter unix:/var/run/rmilter-clam/sock: mail <xxxxxexample.ru>
postfix/smtpd[70382]: event: SMFIC_MAIL; macros: (none)
postfix/smtpd[70382]: skipping event SMFIC_MAIL for milter unix:/var/run/rmilter-clam/sock
postfix/smtpd[70382]: milter8_mail_event: milter inet:localhost:9000: mail <xxxxxexample.ru>
postfix/smtpd[70382]: event: SMFIC_MAIL; macros: (none)
postfix/smtpd[70382]: reply: SMFIR_CONTINUE data 0 bytes

test milter was build with libmilter from freebsd 6.2 base system (sendmail 8.13.8)

--
WBR,
  Anton Yuzhaninov