Re: bind() allowed to non-local addresses

From: David S. Miller (davem@redhat.com)
Date: Thu Oct 19 2000 - 11:02:12 EST


   Date: Thu, 19 Oct 2000 17:56:17 +0200
   From: Andi Kleen <ak@suse.de>

   It would be better if there was at least an socket option to
   overwrite the sysctl. What happens when you need both behaviours on
   the same box in different applications ? (e.g. a dynamic IP box
   running java and servers) With an socket option you could at least
   use LD_PRELOAD for socket() or even fix the programs

I'll say it again, if you have to make changes to apps/servers the
feature does not make any sense. It must operate transparently or
not at all.

Therefore for the case you mention, for now they live without
non-local binds, period.

   Otherwise it'll repeat the ip_dynaddr-breaks-bind desaster, which
   we're still chewing on.

Andi, listen to what you propose, LD_PRELOAD hacks to force programs
to set some magic socket option, and this is a real solution?

The current situation is one chooses between %100 anally compliant
Java or truly dynamic address friendly bind(). :-)

So cope with this or, propose a solution that:

1) Solves the dynamic address bind() problem.

2) Does not break existing applications expectations of
   bind() behavior for non-local addresses.

   (As a side note, I think it is a mistake for the Java folks
    to base JRE compliance upon dark corners of BSD socket API
    behavior)

3) Does not require userland changes, such as adding setsockopt
   calls to applications or using equivalent LD_PRELOAD hacks.

Later,
David S. Miller
davem@redhat.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 23 2000 - 21:00:15 EST