Juan
|---------+---------------------------->
| | Jean Tourrilhes |
| | <jt@bougret.hpl.h|
| | p.com> |
| | |
| | 10/31/02 10:30 AM|
| | Please respond to|
| | jt |
| | |
|---------+---------------------------->
>------------------------------------------------------------------------------------------------------------------|
| |
| To: Juan Gomez/Almaden/IBM@IBMUS |
| cc: Josh Myer <jbm@joshisanerd.com>, jbm@blessed.joshisanerd.com, linux-kernel@vger.kernel.org |
| Subject: Re: How to get a local IPv4 address from within a kernel module? |
| |
| |
>------------------------------------------------------------------------------------------------------------------|
On Thu, Oct 31, 2002 at 10:09:54AM -0800, Juan Gomez wrote:
>
> Josh
>
> That is the purpose of my orignal message. In fact I have implemented
> somthing along the lines of what you suggest below and I just want to
test
> the waters on whether this will be accepted. My current implementation is
a
> little more specific as it only gets the interfaces with IPv4 enabled on
> them and skip lo but the idea is to get a consensus on what would be
> genrally useful and then introduce that.
>
> Regards, Juan
I personally think it's a very bad idea, because it will lead
to confusion. You will define a concept of "the node IP address",
which doesn't exist and is a very dangerous assumption.
Just take VPN, which is becoming very widespread. You have two
IP addresses, one on the interface, one on the tunnel. Which one do
you get ? Those two IP address will have widely different behaviour
and you can't exchange them.
My fear is that people will start coding around this API and
flawed concept, and most of their programs will be immediately flawed,
because incapable to adapt to the reality of networking (it will work
in the simple case, but give bizarre behavior in non simple cases).
Don't get me wrong, there is a small class of applications
where the IP address doesn't matter (and for those, 127.0.0.1 should
be fine). But, from my experience, the vast majority of people wanting
"the node IP address" have broken designs, i.e. it's not that they
want any one of them, it's that they assume that only one exist.
Now, there is only one thing that could qualify as "the node
IP address", this is the IP address associated with the hostname :
gethostbyname(hostname());
IMHO, if you define the interface you are proposing, it should
always return the result above, because this is a well defined
semantic and it is more useful.
But, I'm only one of the little guy here, so what I say
doesn't matter much. Ask Alan or DaveM.
Regards,
Jean
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/