Codec codec,
int sslPort,
ORB orb
)
{
TaggedComponent tc = null;
// what we support and require as a target
int support = 0;
int require = 0;
if( tconfig != null )
{
require = createTargetRequires(tconfig);
support = createTargetSupports(tconfig);
}
if( tconfig == null || support == 0 || sslPort < 0 )
{
// no support for transport security
tc = new TaggedComponent(TAG_NULL_TAG.value, new byte[0]);
}
else
{
// my ip address
String host;
try
{
host = InetAddress.getLocalHost().getHostAddress();
}
catch(java.net.UnknownHostException e)
{
host = "127.0.0.1";
}
// this will create only one transport address
TransportAddress[] taList = createTransportAddress(host, sslPort);
TLS_SEC_TRANS tst = new TLS_SEC_TRANS((short) support,
(short) require,
taList);
// The tricky part, we must encode TLS_SEC_TRANS into an octet sequence
try
{
Any any = orb.create_any();
TLS_SEC_TRANSHelper.insert(any, tst);
byte[] b = codec.encode_value(any);
tc = new TaggedComponent(TAG_TLS_SEC_TRANS.value, b);
}
catch(InvalidTypeForEncoding e)
{
log.warn("Caught unexcepted exception while encoding TLS_SEC_TRANS", e);
throw new RuntimeException(e);