[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