Hello,

On Sat, 24 Sep 2005 13:16:59 +0900, x1 <caldridge / gmail.com> wrote:

> DRb server trying to yield data to the fully qualified domain name of
> the client?
>
> Today, I ran into an issue with a host(windows client) that had an
> improperly configured domain name suffix.
>
> Its typical fqdn would be client1.ruby-lang.org but because of poor
> network administration, it was changed to client1.doesentexist.com.
>
> Although client1 and server1 can still communicate fine because of Net
> BIOS and arp (on the same subnet), the DRb server tries to yield the
> objects back to the client's fully qualified name... If it fails, it
> bombs out with a drbconnerr. I guess I'm just wondering why it doesn't
> attempt alternate methods?

  [Snip more details]

> ==== clnt.rb ====
> require 'drb'
>
> DRb.start_service()
> obj = DRbObject.new_with_uri('druby://:22337')
>
> obj.foo do |i|
>  p i
> end
> ========

I agree that it would be nice if DRb had some more methods for
providing a host address.  Although, I am not sure easy this would be.
For example what if you have multiple network interfaces?  Luckily, you
can control what is provided by setting a full URI in the
DRbObject.new_with_uri method.

Such as:

DRbObject.new_with_uri('druby://myhardcoded.domain.com:22337')

or by IP

DRbObject.new_with_uri('druby://192.168.0.1:22337')

Granted this requires you to configure your URI for each machine that
you run clnt.rb on.  So if you have lots of clients it might be better
to fix your network and continue using the 'druby://:22337' URI.

Cheers,
Zev