Bug 56105 - mini_sendmail-1.3.2 fails completely (IPv6, FreeBSD 4-STABLE)
Summary: mini_sendmail-1.3.2 fails completely (IPv6, FreeBSD 4-STABLE)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Dmitry Sivachenko
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-08-28 23:10 UTC by Matthias Andree
Modified: 2003-08-29 08:05 UTC (History)
1 user (show)

See Also:


Attachments
file.diff (496 bytes, patch)
2003-08-28 23:10 UTC, Matthias Andree
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.