Sun 01 Apr 2007 08:49:02 PM UTC, comment #12:
As a short intro, I think I found the silver bullet
we need for fixing the bug without incompatibility problem.
RPCLib has a "get_myaddress" function which does
not use gethostXXX function and returns the appropriate @IP
even if ethX is not UP.
I've just checked-in
tsp/src/util/libutil/tsp_check_host_and_ip.c
You may update and rebuild, then call
tsp_check_host_and_ip
with ethX down and you should get 127.0.0.1 with get_myaddress
whereas gethostbyname gives you down @IP.
You may look at the code for this function (OpenSolaris) here:
http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/ucblib/librpcsoc/get_myaddress.c
Glibc should contains similar code.
I think we could replace the buggy provider code
which tried to guess @IP with get_myaddress.
A longer answers follows :))
> Are there any important reasons why we cannot change the protocol at this moment?
At least because the compatibility question was raised
at the end of the last Workshop :((
The more important reason I see is that the bug
is not "critical" for most users since they really
need to have effectively networked config.
I do not minimize the annoyance for a standalone system
but I think you will understand my point.
Moreover I think we should "break" compatibility for
a bunch of reasons and not for fixing a single bug
unless it is critical for all users.
I think we may break on-the-wire when we will
introduce new/unimplemented features that need it.
> Are there already major projects using it?
Depending on what is considered "major" I would say
between 1 and 4.
> Or are there users that cannot relink their applications?
I think that all of them can do it but with a recompilation.
The fact is before the forthcoming release tsp 0.8.3 the unix
default build was static, so most of users as to go
from relink to recompile.
I soon as most users are used to dynamically compiled
TSP you are perfectly right and I made just this answer
to the "compatibility question":
We may break compatibility but we will try it hard
to only request relinking which would be easy if
you use dynamically compiled TSP.
|