[tao-users] Ipv6 - connecting to a server listening on link-local address in linux environment
Milan Cvetkovic
milan.cvetkovic at mpathix.com
Mon Mar 14 14:51:19 CDT 2016
TAO VERSION: 2.3.3
ACE VERSION: 6.3.3
HOST MACHINE and OPERATING SYSTEM: Linux Debian 7, on x86_64
COMPILER NAME AND VERSION: g++-4.7 (stock debian compiler)
THE $ACE_ROOT/ace/config.h FILE:
#define ACE_HAS_VERSIONED_NAMESPACE 1
#define ACE_HAS_IPV6 1
include "config-linux.h"
THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
platform_linux.GNU
AREA/CLASS/EXAMPLE AFFECTED:
resolving server object reference
DOES THE PROBLEM AFFECT:
EXECUTION: yes
SYNOPSIS:
If server listens on link-local address, there does not seem to be a
for a client to contact the server.
DESCRIPTION:
I have a CORBA server listening only on IPv6 link-local address, by using :
-ORBDottedDecimalAddresses 1
-ORBListenEndpoinds iiop://1.2@[fe80::76d4:1111:11:11%eth0]:9999
I append the link-local address with %eth0 - where eth0 is the interface
I am listening on.
At the startup, the server writes the IOR to a flat file, for example
'server.ior'
However, a client is not capable of using this server:
a) if client uses
CORBA_Object o = orb->CORBA::string_to_object("file://server.ior");
Concrete = Concrete::_narrow(o);
o->remote_function();
invoking remote_function() fails with 'Invalid Argument', which results
in CORBA::TRANSIENT exception
b) if client uses
corbaloc:iiop:1.2@[fe80::76d4:1111:11:11%eth0]:7770/ServerAdmin
instead of "file://server.ior":
it fails with the same error 'Invalid Argument'/CORBA::TRANSIENT)
What is the proper way to pass reference containign link-local address?
Thanks, Milan.
More information about the tao-users
mailing list