Messages in this thread | | | Date | Thu, 19 Oct 2000 09:02:12 -0700 | From | "David S. Miller" <> | Subject | Re: bind() allowed to non-local addresses |
| |
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/
| |