Hey,

I upgraded a server running 8.x to 9.1 over the weekend and sendmail no
longer wants to bind the AF_INET6 sockets.

So while this still works:

DAEMON_OPTIONS(`Port=smtp, Addr=127.0.0.1, Name=MSA, M=Eu, 
InputMailFilters=dkim')
DAEMON_OPTIONS(`Port=smtp, Addr=::1, Name=MSA, Family=inet6, M=Eu, 
InputMailFilters=dkim')

this is broken:

DAEMON_OPTIONS(`Port=submission, Addr=acme.spoerlein.net, Name=MSA, M=E, 
InputMailFilters=dkim')
DAEMON_OPTIONS(`Port=submission, Addr=acme.spoerlein.net, Name=MSA, 
Family=inet6, M=E, InputMailFilters=dkim')

which makes me believe this has to do with name resolution...

The actual reported errors are:

Jan  8 16:05:03 acme sm-msp-queue[98057]: starting daemon (8.14.6): 
queueing@00:30:00
Jan  8 16:05:03 acme sm-mta[98054]: NOQUEUE: SYSERR(root): opendaemonsocket: 
daemon MSA: cannot bind: Can't assign requested address
Jan  8 16:05:03 acme sm-mta[98054]: daemon MSA: problem creating SMTP socket
Jan  8 16:05:08 acme sm-mta[98054]: NOQUEUE: SYSERR(root): opendaemonsocket: 
daemon MSA: cannot bind: Can't assign requested address
Jan  8 16:05:08 acme sm-mta[98054]: daemon MSA: problem creating SMTP socket
Jan  8 16:05:13 acme sm-mta[98054]: NOQUEUE: SYSERR(root): opendaemonsocket: 
daemon MSA: cannot bind: Can't assign requested address
Jan  8 16:05:13 acme sm-mta[98054]: daemon MSA: problem creating SMTP socket

This will loop a couple of times, but not make any progress. ktrace will show 
what's up:

 98054 sendmail CALL  bind(0x6,0x708c14,0x10)
 98054 sendmail STRU  struct sockaddr { AF_INET, 88.198.49.12:587 }
 98054 sendmail RET   bind 0
 98054 sendmail CALL  socket(PF_INET6,SOCK_STREAM,IPPROTO_IP)
 98054 sendmail RET   socket 7
 98054 sendmail CALL  setsockopt(0x7,SOL_SOCKET,SO_REUSEADDR,0x7fffffffafa4,0x4)
 98054 sendmail RET   setsockopt 0
 98054 sendmail CALL  setsockopt(0x7,SOL_SOCKET,SO_KEEPALIVE,0x7fffffffafa4,0x4)
 98054 sendmail RET   setsockopt 0
 98054 sendmail CALL  fcntl(0x7,F_GETFD,0)
 98054 sendmail RET   fcntl 0
 98054 sendmail CALL  fcntl(0x7,F_SETFD,FD_CLOEXEC)
 98054 sendmail RET   fcntl 0
 98054 sendmail CALL  bind(0x7,0x708dbc,0x1c)
 98054 sendmail STRU  struct sockaddr { AF_INET6, [::ffff:88.198.49.12]:587 }
 98054 sendmail RET   bind -1 errno 49 Can't assign requested address

Yeah right ... I don't want an IPv6-mapped-IPv4 address, I want it to bind to 
the real thing.
/etc/nsswitch.conf has
hosts: files dns

and /etc/hosts has
root@acme: /etc/mail# grep acme /etc/hosts
88.198.49.12    acme.spoerlein.net acme
2a01:4f8:131:23c2::1    acme.spoerlein.net acme

Which shouldn't make a difference anyway, because of:
root@acme: /etc/mail# dig acme.spoerlein.net a +short; dig acme.spoerlein.net 
aaaa +short
88.198.49.12
2a01:4f8:131:23c2::1

How can I unstupid sendmail here?
Uli
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to