Bug 56105

Summary: mini_sendmail-1.3.2 fails completely (IPv6, FreeBSD 4-STABLE)
Product: Ports & Packages Reporter: Matthias Andree <matthias.andree>
Component: Individual Port(s)Assignee: Dmitry Sivachenko <demon>
Status: Closed FIXED    
Severity: Affects Only Me CC: jef
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description Matthias Andree 2003-08-28 23:10:18 UTC
The IPv6 code that mini_sendmail enables by default is defective,
at least on FreeBSD 4.8, mini_sendmail doesn't work at all.

I installed mini_sendmail from package, recompiling the port (same version)
doesn't make a difference.

Impact: mini_sendmail doesn't work.

Sample outputs:

Without arguments:
# mini_sendmail </dev/null
mini_sendmail: connect: Can't assign requested address

(strace info)
...
socket(PF_INET6, SOCK_STREAM, 0)        = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::", &s
in6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EADDRNOTAVAIL (Can't assi
gn requested address)
...

As we can see, the port has not been set to 25 as it ought to have been.

With server IP:
# mini_sendmail -s127.0.0.1 </dev/null
mini_sendmail: connect: Can't assign requested address

With hostname it connects somewhere else:
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("144.144.4
.8")}, 16 <unfinished ...>

(Side note: SuSE Linux 8.1, glibc 2.2.5, kernel 2.4.22, returns ECONNREFUSED
rather than EADDRNOTAVAIL. I wonder what system mini_sendmail was tested on
before release.)

Asking "host" or "ping", the same hostname yields 192.168.0.2 instead.

Apparently the address handling in the USE_IPV6 code paths is broken.

Adding #undef USE_IPV6 before the first check fixes things up at the expense
of disabling IPv6 support, but this is not the real fix.

Fix: THIS IS NOT A REAL FIX, JUST A BAND-AID to make the code work with IPv4.

I don't have the time to fix mini_sendmail and send stuff upstream on short
notice, and a better patch than this should be used to make IPv6 actually work
rather than just disable it.

Should this patch be applied: committer, please remove the ipv6 category
and mind you this patch creates a new file in the files/ subdirectory.
(Have your mug of coffee before committing ;-)

REMEMBER to use "patch -p0" to apply this patch so the file goes into files/
rather than the working directory!
How-To-Repeat: 	
See above.
Comment 1 Kirill Ponomarev freebsd_committer freebsd_triage 2003-08-28 23:11:59 UTC
Responsible Changed
From-To: freebsd-ports-bugs->demon

Over to maintainer.
Comment 2 Dmitry Sivachenko freebsd_committer freebsd_triage 2003-08-29 08:05:18 UTC
State Changed
From-To: open->closed

Patch committed, thanks for noticing.