On Fri, 9 Dec 2005, Kjetil Torgrim Homme wrote:
> inet_addr has always behaved like this, and POSIX documents it:
That is something that I didn't know. Guess I've only been around Unix
for 15 years. :-)
On Fri, 9 Dec 2005, John Jetmore wrote:
> The inet_addr() function converts the Internet host address cp from
> numbers-and-dots notation into binary data in network byte order. If
> the input is invalid, INADDR_NONE (usually -1) is returned. This is an
> obsolete interface to inet_aton, described immediately above; it is
> obsolete because -1 is a valid address (255.255.255.255), and inet_aton
> provides a cleaner way to indicate error return.
In the context of Exim, this is worrying. Exim has always recognized
only dotted quad, 4-component, IPv4 addresses. Of course it could be
changed, but it now worries me that:
(a) 192.168.1/24 presumably means 192.168.1.0/24 (otherwise what's
the point of the 1?)
(b) 192.168.1 means 192.168.0.1
The inconsistency will confuse people (and as someone posted, already
has).
My current inclination is to generate an error on encountering an
incomplete IPv4 address.
Views? (Remembering that for all of Exim's life so far - 10 years -
incomplete IPv4 addresses have probably mostly been treated as domain
names, and there hasn't been a huge outcry.)
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book