CURRENT now working on Solaris

Russ Allbery rra at stanford.edu
Thu May 20 04:25:36 UTC 2004


Thanks to Heath's excellent suggestion, CURRENT is now working on Solaris.
I have a few more changes to the innbind manual page to commit, but other
than that, the work is done.  The code in lib/network.c has been modified
to accept a passed file descriptor back from innbind where necessary and
discard the old file descriptor that couldn't be bound.  I've tested this
and innd successfully binds to port 119.  (I've also checked that it binds
to both the IPv4 and IPv6 interface where available.)

In the process, I also cleaned up some warnings that only show up on
Solaris.  I did have to remove -Wcast-qual to get things to compile with
make warnings on Solaris, since otherwise all the casts away from struct
sockaddr cause warnings.  I think the right thing to do is to just remove
that from the warnings options; this warning appears to be spurious, and I
think errors that would be caught by that warning would be caught other
ways.

The only other warnings that turned up on Solaris were some caused by the
old version of bison that I have (unused labels) and the warning about the
incompatible pointer time for the PAM function in ckpasswd.  I'm not sure
if anything can be done about the latter; the function just has a
different prototype between Solaris and Linux, but not in a way that
causes problems.

Note that the test suite has problems on Solaris because Solaris /bin/sh
can't cope with the shell functions in the tests in tests/storage/*.t.
/usr/xpg4/bin/sh does work correctly (as does /bin/ksh).  The best
solution to this would be to add some logic similar to Autoconf for
finding a good shell, but I'm not sure exactly how to go about it.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>


More information about the inn-workers mailing list