Sendmail-8.14.7 doesn't work with MS DNS in IPv4 network
Gregory Shapiro
gshapiro at freebsd.org
Fri Aug 9 17:29:11 UTC 2013
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