Sendmail-8.14.7 doesn't work with MS DNS in IPv4 network

Pavel Timofeev timp87 at gmail.com
Sat Aug 10 16:20:26 UTC 2013


Gregory's new patch for sm_os_freebsd.h worked.

2013/8/9 Gregory Shapiro <gshapiro at freebsd.org>:
> Can you put back the original sendmail/conf.c file and try this patch instead to verify it works?  If so, I can plan to commit it to HEAD and MFC to the various branches (with re permission to the 9.2 branch).  This would be a short term fix until the next sendmail release where we will revisit this section of code.
>
> --- contrib/sendmail/include/sm/os/sm_os_freebsd.h      2008-08-27 22:53:56.000000000 -0700
> +++ contrib/sendmail/include/sm/os/sm_os_freebsd.h      2013-08-09 10:21:12.000000000 -0700
> @@ -39,3 +39,7 @@
>  #ifndef SM_CONF_MSG
>  # define SM_CONF_MSG   1
>  #endif /* SM_CONF_MSG */
> +
> +#ifndef SM_IPNODEBYNAME_FLAGS
> +# define SM_IPNODEBYNAME_FLAGS AI_DEFAULT|AI_ALL
> +#endif /* SM_IPNODEBYNAME_FLAGS */
>
>
>
> On Fri, Aug 09, 2013 at 10:34:14AM +0400, Pavel Timofeev wrote:
>> I agree with Mark Felder.
>>
>> 2013/8/8 Pavel Timofeev <timp87 at gmail.com>:
>> > I tried to revert mentioned patch, i.e. applied this
>> >
>> > --- sendmail/conf.c.orig        2013-08-08 12:28:40.000000000 +0400
>> > +++ sendmail/conf.c     2013-08-08 12:31:17.000000000 +0400
>> > @@ -4294,12 +4294,7 @@
>> >  #else /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) &&
>> > SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
>> >         int nmaps;
>> >  # if NETINET6
>> > -#  ifndef SM_IPNODEBYNAME_FLAGS
>> > -    /* For IPv4-mapped addresses, use: AI_DEFAULT|AI_ALL */
>> > -#   define SM_IPNODEBYNAME_FLAGS       AI_ADDRCONFIG
>> > -#  endif /* SM_IPNODEBYNAME_FLAGS */
>> > -
>> > -       int flags = SM_IPNODEBYNAME_FLAGS;
>> > +       int flags = AI_DEFAULT|AI_ALL;
>> >         int err;
>> >  # endif /* NETINET6 */
>> >         char *maptype[MAXMAPSTACK];
>> >
>> > Sendmail started to work
>> >
>> > 2013/8/7 Gregory Shapiro <gshapiro at freebsd.org>:
>> >>> I found a problem in new FreeBSD 9.2-{BETA2,RC1} which uses Sendmail-8.14.7.
>> >>> If you try to send email from FreeBSD 9.2 in IPv4 network with MS DNS
>> >>> you won't receive it.
>> >>> But in same time email passes from FreeBSD 9.1-RELEASE which uses
>> >>> Sendmail-8.14.5.
>> >>
>> >> The recent release made the following change:
>> >>
>> >> --- sendmail/conf.c     25 Jan 2011 18:31:30 -0000      8.1168
>> >> +++ sendmail/conf.c     5 Apr 2013 17:39:09 -0000       8.1182
>> >> @@ -4726,7 +4726,12 @@
>> >>  #else /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) && SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
>> >>         int nmaps;
>> >>  # if NETINET6
>> >> -       int flags = AI_DEFAULT|AI_ALL;
>> >> +#  ifndef SM_IPNODEBYNAME_FLAGS
>> >> +    /* For IPv4-mapped addresses, use: AI_DEFAULT|AI_ALL */
>> >> +#   define SM_IPNODEBYNAME_FLAGS       AI_ADDRCONFIG
>> >> +#  endif /* SM_IPNODEBYNAME_FLAGS */
>> >> +
>> >> +       int flags = SM_IPNODEBYNAME_FLAGS;
>> >>         int err;
>> >>  # endif /* NETINET6 */
>> >>         char *maptype[MAXMAPSTACK];
>> >>
>> >> Which is described in this release note:
>> >>
>> >>         Drop support for IPv4-mapped IPv6 addresses to prevent the MTA
>> >>                 from using a mapped address over a legitimate IPv6 address
>> >>                 and to enforce the proper semantics over the IPv6
>> >>                 connection.  Problem noted by Ulrich Sporlein.
>> >>
>> >> It looks like that SERVFAIL from Microsoft's DNS server is getting
>> >> in the way of that.  I can look at adding this exception to
>> >> WorkAroundBrokenAAAA as a possibility for a future release.
>> >>
>> >> I'd also like to hear feedback on whether the above change (changing
>> >> getipnodebyname() flags from 'AI_DEFAULT | AI_ALL' to 'AI_ADDRCONFIG' went
>> >> too far and what the accepted norm is for getipnodebyname().
>> >>
>>


More information about the freebsd-stable mailing list