[omniORB-dev] Problem working with Firewall
Adnan Khan
akhan at proteligent.net
Thu Feb 5 14:55:02 GMT 2004
Hi,
I am posting this issue in connection with presence of firewalls in the
network. We have a firewall sitting in between client and server, filtering
packets based on TCP ports. A client invokes method on the proxy, which
leads to the server invoking a CALL BACK method on the client object.
I was going through omniORB 4.0.3 documentation and found how to achieve
Bi-directional GIOP, which allows callbacks to be made using a connection
opened by the original client. Based on what's given in the documentation, I
have added following code to the server as follows:
const char* options[][2] = { { "acceptBiDirectionalGIOP", "1" },
{ "serverTransportRule", "* bidir, tcp" },
{ 0, 0 }
};
orb = CORBA::ORB_init(argc, NULL, "omniORB4", options);
CORBA::PolicyList pl;
pl.length(1);
CORBA::Any a;
a <<= BiDirPolicy::BOTH;
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
pl[0] = orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, a);
PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj);
PortableServer::POAManager_var pman = root_poa->the_POAManager();
PortableServer::POA_var poa = root_poa->create_POA("bidir", pman, pl);
pman->activate();
Similarly, on the client side I have:
const char* options[][2] = { { "offerBiDirectionalGIOP", "1" },
{ "clientTransportRule", "* bidir,ssl,unix,tcp" },
{ 0, 0 }
};
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB4", options);
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
CORBA::PolicyList pl;
pl.length(1);
CORBA::Any a;
a <<= BiDirPolicy::BOTH;
pl[0] = orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, a);
PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj);
PortableServer::POAManager_var pman = root_poa->the_POAManager();
PortableServer::POA_var poa = root_poa->create_POA("bidir", pman, pl);
pman->activate();
It still is not working and server is unable to invoke callback method on
the client object. Is there anything I am missing here? Also, can I get an
IIOP to HTTP gateway compatible with omniORB?
Thanks a lot, your help is much appreciated.
Adnan
More information about the omniORB-dev
mailing list