Re: panel error *** ORBit patch ***



On Thu, Aug 13, 1998 at 04:01:06 PM -0400, Elliot Lee wrote:
> On Thu, 13 Aug 1998, Frederick I Gleef wrote:
> > The best option, in my mind, would be for it to do the DNS and reverse
> > DNS checks.  If the tests succeed, great, if not (i.e. hent==NULL)
> > rather than failing with an error or segfaulting, contunue with
> > server_cnx->hostname = g_strdup("localhost").  This way, machines with
> > proper DNS will have a properly networked ORBit, machines without it
> > will not, but still work locally.
> 
> DNS does not have to be involved, /etc/hosts is your friend.

Still, when the lookups fail, 127.0.0.1 is your friend.

In any case, how about this hack: when making the connection, check if both
ends are the same machine -- and if so, ignore the given IPs/hostnames, and
use 127.0.0.1 instead.

> Here's the premises I'm working under:
> 	- 'hostname' should resolve to a valid IP address, loopback or otherwise.
Agreed.  I don't think you can do away with this.

> 	- The IP address pointed to by 'hostname' should reverse-resolve
> 	  to a valid hostname (presumably, but not required to be, the FQDN)
Why not just use IPs?

> 	- The 'hostname' and/or FQDN retrieved using the above procedure
> 	  should be valid for the lifetime of a CORBA server (and the
>	  [objects.)]
This is the killer -- sometimes the `hostname` will resolve to a remote
address, and then at a later point you will loose remote connectivity, or
the address will change.  (This futzes X too, but there you can manualy
overide it's guess where the server lives.)

> Here's the requirements for a solution to make things work better:
> 	- At the time of object reference creation in the server, it must
> 	  put a valid hostname (Internet-accessable if at all possible)
> 	  into the IOR.
> 	- That hostname needs to continue to work (resolvable to a
> 	  connectable IP) as long as the IOR is
> 	  published for use by clients.
> [I think those are the only requirements, I might have missed one]
I think my hack above (when connecting localy, note that and use 127.0.0.1)
should help those with dynamic mess.

> Does anyone know how X handles this whole conundrum? It has the _exact_
> same problem WRT setting $DISPLAY and all. Even if its solution is not
> "perfect", the solution (a) sets precedent (b) works pretty well most of
> the time (c) even if we get a better solution, the X one is going to limit
> us, because all GNOME programs on a particular desktop session share the
> same display.
I think it does something like the psudocode that I just cut from your post.
<G>  (And the X one won't really limit us -- nothing says that you can't
access GNOMEoid objects from another machine -- they'd just have to be
non-GUI objects.)

> (Part of the problem is that CORBA encodes the hostname inside the IOR
> instead of leaving it directly manipulatable like X $DISPLAY's do. Perhaps
> we just need an iiop:// URL parser instead - any volunteers? It shouldn't
> be too hard, since all ORBit object keys are strings... :-)
Acatualy, we'd need a family of URL schemes, for the different mediums
supported (IPv4, UNIX sockets, any others?)  Perhaps I'll do that when
echo-{client,server} start working.  I'll probably post that one shortly.

	-=- James Mastros
-- 
A basement-GNOME (http://www.gnome.org/) with PIP (IETF group) and WINE
(http://www.winehq.com/).  Not really as impressive as it might sound, or as
Tolkinen.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]