[omniORB] _get_interface() on CORBA object

Brecht Vermeulen brecht.vermeulen@rug.ac.be
Wed, 21 Nov 2001 17:14:25 +0100


Hi,

we are working on a CORBA sniffer/monitor and we have the following
problem. Because IP (GIOP) packets are sniffed, we don't know the
Repository Type ID of the CORBA objects to which requests are going. 

Therefore we had the idea to call on the CORBA object the _get_interface
method to receive a reference to an Interface Repository object.

However, we wrote a little test program which calls _get_interface on
the server, but the client contacts on its own the Interface Repository
to return a reference to a CORBA objectin the IR because we feeded the
client with an object reference in which the repository ID is included
of course.

Next step, we created with genior an IOR with an empty Repository ID,
but the client still tries to contact the IR on its own with the lookup
of an empty repo ID.

Is there a particular reason why it is implemented like this in omniORB
(that the server isn't contacted), I assume speed, but the last thing
we've tried, shows that this isn't always correct although we agree that
our example is special.

So, we created manually a GIOP packet and sent it to the server over a
TCP connection and then the omniORB CORBA server has the right
behaviour.

Orbacus e.g. always calls the function on the server.

best regards,
Brecht