Re: Binding to no particular address/INADDR_ANY?



 On 16.09.2010 13:54, Toralf Lund wrote:
> When setting up a TCP/IP based server ORB, I can specify the IP
> host-name to bind to *via option -ORBIIOPIPName=..., or use an
> internal default, which is influenced by the value of -ORBNetId. But
> it does not seem like I can choose not to bind to an address at all,
> as in set up the server to listen for connections on ANY interface the
> machine may have. Why is that? Or is there some way I can do this?
> I've **-ORBIIOPIPName=0.0.0.0 based on the theory that this would be
> like specifying INADDR_ANY in a socket address structure, but it
> didn't seem to work...

ORBit2 has not been designed for this case. Nonetheless, it would be
possible to add this INADDR_ANY  feature.

Listening to all interfaces, would require to encode all endpoints into
each object reference, which could be implemented quite easily, but
blowing up the IORs extremely. Moreover, using this strategy for
clients  it becomes unclear which of the encoded endpointsin IOR is
reachable/routable, which may cause timely connection-trials.

If you need an ORB being able to listen to all NICs attached, I
recommend The C++ ACE ORB (TAO). TAO is listening to all NICs by default.

Beside this, by default ORBit2 is using  Unix-Domain-Sockets, so the
ORBIIOPIPName option will not have taken effect at all, I assume. To get
ORBit2 servers  talking with remote hosts, the following command line
parameters should be set:

-ORBLocalOnly=0  -ORBIIOPUNIX=0 -ORBIIOPIPv4=1 -ORBIIOPIPName=A.B.C.D 
-ORBIIOPIPSock=PortNum

Adding the following option will change  to corbaloc IOR string format,
which eases to figure out effect of command lines parameters.
-ORBCorbaloc=1

You can use the orbit-name-server-2 to verify:
/usr/bin/orbit-name-server-2 -ORBCorbaloc=1 -ORBLocalOnly=0 
-ORBIIOPUNIX=0 -ORBIIOPIPv4=1 -ORBIIOPIPName=A.B.C.D  -ORBIIOPIPSock=PortNum


If you try -ORBIIOPIPName=0.0.0.0 and check the object-reference
printed  to console, you will notice that ORBit2 encodes 0.0.0.0 into
the stringified object reference, which is invalid and not reachable by
any client.


Hope that helps,
Frank



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