#include <SSLIOP_Endpoint.h>
Inheritance diagram for TAO_SSLIOP_Endpoint:
Public Member Functions | |
TAO_SSLIOP_Endpoint (const ::SSLIOP::SSL *ssl_component, TAO_IIOP_Endpoint *iiop_endp) | |
Constructor. | |
virtual | ~TAO_SSLIOP_Endpoint (void) |
Destructor. | |
TAO_SSLIOP_Endpoint & | operator= (const TAO_SSLIOP_Endpoint &other) |
int | credentials_set (void) const |
TAO_Endpoint Methods | |
virtual TAO_Endpoint * | next (void) |
virtual int | addr_to_string (char *buffer, size_t length) |
CORBA::Boolean | is_equivalent (const TAO_Endpoint *other_endpoint) |
virtual TAO_Endpoint * | duplicate (void) |
virtual CORBA::ULong | hash (void) |
SSLIOP_Endpoint-specific Methods | |
const ::SSLIOP::SSL & | ssl_component (void) const |
Return SSL component corresponding to this endpoint. | |
TAO_IIOP_Endpoint * | iiop_endpoint (void) const |
Accessor to our IIOP counterpart. | |
void | iiop_endpoint (TAO_IIOP_Endpoint *endpoint, bool destroy) |
Mutator to our IIOP counterpart. | |
const ACE_INET_Addr & | object_addr (void) const |
Return the SSLIOP-specific ACE_INET_Addr. | |
void | set_sec_attrs (::Security::QOP qop, const ::Security::EstablishTrust &trust, const TAO::SSLIOP::OwnCredentials_ptr creds) |
::Security::QOP | qop (void) const |
Get the Quality-of-Protection settings for this endpoint. | |
::Security::EstablishTrust | trust (void) const |
Get the establishment of trust settings for this endpoint. | |
TAO::SSLIOP::OwnCredentials * | credentials (void) const |
Get the credentials for this endpoint. | |
Protected Attributes | |
::SSLIOP::SSL | ssl_component_ |
Private Attributes | |
ACE_INET_Addr | object_addr_ |
TAO_SSLIOP_Endpoint * | next_ |
TAO_IIOP_Endpoint * | iiop_endpoint_ |
IIOP counterpart. | |
bool | destroy_iiop_endpoint_ |
::Security::QOP | qop_ |
Quailty-of-Protection settings for this endpoint object. | |
::Security::EstablishTrust | trust_ |
Establishment of trust settings for this endpoint object. | |
TAO::SSLIOP::OwnCredentials_var | credentials_ |
SSLIOP-specific credentials for this endpoint object. | |
int | credentials_set_ |
A flag indicating that credentials_ was explicitly initialized. | |
Friends | |
class | TAO_SSLIOP_Profile |
Definition at line 55 of file SSLIOP_Endpoint.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_SSLIOP_Endpoint::TAO_SSLIOP_Endpoint | ( | const ::SSLIOP::SSL * | ssl_component, | |
TAO_IIOP_Endpoint * | iiop_endp | |||
) |
Constructor.
Definition at line 22 of file SSLIOP_Endpoint.cpp.
References ACE_SET_BITS, Security::Confidentiality, Security::EstablishTrustInTarget, Security::Integrity, Security::NoDelegation, Security::NoProtection, object_addr_, SSLIOP::SSL::port, ACE_Addr::set_type(), ssl_component_, SSLIOP::SSL::target_requires, SSLIOP::SSL::target_supports, and trust_.
00024 : TAO_Endpoint (IOP::TAG_INTERNET_IOP), 00025 object_addr_ (), 00026 next_ (0), 00027 iiop_endpoint_ (iiop_endp), 00028 destroy_iiop_endpoint_ (false), 00029 qop_ (::Security::SecQOPIntegrityAndConfidentiality), 00030 #if !defined (VXWORKS) && !defined (__QNX__) 00031 // Some compilers don't like the initialization 00032 trust_ (), 00033 #endif /* !VXWORKS && !__QNX__ */ 00034 credentials_ (), 00035 credentials_set_ (0) 00036 { 00037 if (ssl_component != 0) 00038 { 00039 // Copy the security association options in the IOR's SSL tagged 00040 // component. 00041 this->ssl_component_.target_supports = ssl_component->target_supports; 00042 this->ssl_component_.target_requires = ssl_component->target_requires; 00043 this->ssl_component_.port = ssl_component->port; 00044 } 00045 else 00046 { 00047 // No SSL tagged component is available so construct a default 00048 // set of security association options, in addition to the IANA 00049 // assigned IIOP over SSL port (684). This is generally a 00050 // client side issue. 00051 00052 // Clear all bits in the SSLIOP::SSL association option fields. 00053 this->ssl_component_.target_supports = 0; 00054 this->ssl_component_.target_requires = 0; 00055 00056 // SSLIOP requires these Security::AssociationOptions by default. 00057 ACE_SET_BITS (this->ssl_component_.target_requires, 00058 ::Security::Integrity 00059 | ::Security::Confidentiality 00060 | ::Security::NoDelegation); 00061 00062 // SSLIOP supports these Security::AssociationOptions by 00063 // default. 00064 // 00065 // Note that the Security::NoProtection bit is set since we 00066 // can't be sure if the server supports SSL, and TAO's SSLIOP 00067 // implementation must support IIOP over SSL and plain IIOP. 00068 ACE_SET_BITS (this->ssl_component_.target_supports, 00069 ::Security::Integrity 00070 | ::Security::Confidentiality 00071 | ::Security::EstablishTrustInTarget 00072 | ::Security::NoProtection 00073 | ::Security::NoDelegation); 00074 00075 // Initialize the default SSL port to zero, not the IANA 00076 // assigned IIOP over SSL port (684). We usually only get here 00077 // if we're creating a profile on the client side using an IOR 00078 // that does not contain an SSLIOP tagged component. 00079 this->ssl_component_.port = 0; 00080 } 00081 00082 // Invalidate the Addr until the first attempt to use it is made. 00083 this->object_addr_.set_type (-1); 00084 00085 this->trust_.trust_in_target = 1; 00086 this->trust_.trust_in_client = 1; 00087 }
TAO_SSLIOP_Endpoint::~TAO_SSLIOP_Endpoint | ( | void | ) | [virtual] |
Destructor.
Definition at line 105 of file SSLIOP_Endpoint.cpp.
References iiop_endpoint_.
00106 { 00107 if (this->destroy_iiop_endpoint_) 00108 delete this->iiop_endpoint_; 00109 }
int TAO_SSLIOP_Endpoint::addr_to_string | ( | char * | buffer, | |
size_t | length | |||
) | [virtual] |
Implements TAO_Endpoint.
Definition at line 147 of file SSLIOP_Endpoint.cpp.
References SSLIOP::SSL::port, ACE_OS::sprintf(), ssl_component_, and ACE_OS::strlen().
Referenced by TAO::SSLIOP::Connector::ssliop_connect().
00148 { 00149 size_t actual_len = 00150 ACE_OS::strlen (this->iiop_endpoint_->host ()) // chars in host name 00151 + sizeof (':') // delimiter 00152 + ACE_OS::strlen ("65536") // max port 00153 + sizeof ('\0'); 00154 00155 if (length < actual_len) 00156 return -1; 00157 00158 ACE_OS::sprintf (buffer, 00159 "%s:%d", 00160 this->iiop_endpoint_->host (), 00161 this->ssl_component_.port); 00162 00163 return 0; 00164 }
ACE_INLINE TAO::SSLIOP::OwnCredentials * TAO_SSLIOP_Endpoint::credentials | ( | void | ) | const |
Get the credentials for this endpoint.
Definition at line 59 of file SSLIOP_Endpoint.inl.
References credentials_, and TAO_Pseudo_Var_T< T >::in().
Referenced by TAO_SSLIOP_Synthetic_Endpoint::duplicate().
00060 { 00061 return this->credentials_.in (); 00062 }
ACE_INLINE int TAO_SSLIOP_Endpoint::credentials_set | ( | void | ) | const |
Credentials are not supplied by the constructor, and it is valid to have a nil credential, for instance if the SSL_use_certificate() method returns 0. Therefore it is necessary to have a new method to distinguish between a credential that is nil because it has not been set, vs one that was set to nil explicitly.
Definition at line 65 of file SSLIOP_Endpoint.inl.
References credentials_set_.
Referenced by TAO::SSLIOP::Connector::ssliop_connect().
00066 { 00067 return this->credentials_set_; 00068 }
TAO_Endpoint * TAO_SSLIOP_Endpoint::duplicate | ( | void | ) | [virtual] |
Return a copy of the corresponding endpoints by allocating memory.
Implements TAO_Endpoint.
Reimplemented in TAO_SSLIOP_Synthetic_Endpoint.
Definition at line 213 of file SSLIOP_Endpoint.cpp.
References ACE_NEW_RETURN, TAO_Endpoint::hash_val_, iiop_endpoint(), and set_sec_attrs().
00214 { 00215 TAO_SSLIOP_Endpoint *endpoint = 0; 00216 00217 // @@ We need to set the priority of the newly formed endpoint. It 00218 // shouldnt be a problem as long as SSL is not used with RTCORBA. 00219 ACE_NEW_RETURN (endpoint, 00220 TAO_SSLIOP_Endpoint (&this->ssl_component_, 00221 0), 00222 0); 00223 00224 if (this->credentials_set_) 00225 endpoint->set_sec_attrs (this->qop_,this->trust_, this->credentials_.in()); 00226 00227 endpoint->iiop_endpoint (this->iiop_endpoint_, true); 00228 endpoint->hash_val_ = this->hash_val_; 00229 return endpoint; 00230 }
CORBA::ULong TAO_SSLIOP_Endpoint::hash | ( | void | ) | [virtual] |
Return a hash value for this object. Note that only the IP address and port are used to generate the hash value. This may cause a few more hash table collisions in the transport cache, because a synthesized SSLIOP endpoints for an address will have the same hash value as a fully qualified one. The redeeming feature is that it makes / bi-directional SSLIOP work by allowing descendent class (Synthetic_Endpoint) instances to be used as keys in the cache manager and match other fully qualified endpoint. (which were used earlier to cache a particular transport)
Implements TAO_Endpoint.
Definition at line 233 of file SSLIOP_Endpoint.cpp.
References ACE_GUARD_RETURN, ACE_INET_Addr::hash(), TAO_Endpoint::hash_val_, object_addr(), SSLIOP::SSL::port, ssl_component_, and TAO_SYNCH_MUTEX.
Referenced by TAO_SSLIOP_Synthetic_Endpoint::duplicate().
00234 { 00235 // there is actually the potential for a race of the inverse case, 00236 // since setting the security attributes will reset the hash_val_, 00237 // it is possible this test to pass, but then have the hash reset 00238 // before the value is returned. 00239 if (this->hash_val_ != 0) 00240 return this->hash_val_; 00241 00242 // Do this with no locks held, as it may try to acquire it, too. 00243 const ACE_INET_Addr &oaddr = this->object_addr(); 00244 00245 { // nested scope for the lock 00246 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 00247 guard, 00248 this->addr_lookup_lock_, 00249 this->hash_val_); 00250 // .. DCL 00251 if (this->hash_val_ != 0) 00252 return this->hash_val_; 00253 00254 00255 // Note that we are not using the underlying IIOP endpoint's hash 00256 // value in order to avoid the influence of the IIOP port number, 00257 // since it is ignored anyway. When it features a 00258 // purely fictional port number, as when accepting an SSL 00259 // connection, the unsecured port is undefined and 00260 // had we used it in computing the hash it would have broken the 00261 // bi-directional support - as the 'guessed' IIOP port value will 00262 // hardly match the one specified in the bi-dir service context. 00263 this->hash_val_ = 00264 oaddr.hash () 00265 + this->ssl_component_.port; 00266 } 00267 00268 return this->hash_val_; 00269 }
ACE_INLINE void TAO_SSLIOP_Endpoint::iiop_endpoint | ( | TAO_IIOP_Endpoint * | endpoint, | |
bool | destroy | |||
) |
Mutator to our IIOP counterpart.
endpoint | The new endpoint | |
destroy | If set to true , the TAO::SSLIOP::Endpoint object retains ownership of the given TAO_IIOP_Endpoint. |
Definition at line 15 of file SSLIOP_Endpoint.inl.
References destroy_iiop_endpoint_, TAO_IIOP_Endpoint::duplicate(), iiop_endpoint(), and iiop_endpoint_.
00017 { 00018 if (iiop_endpoint != 0) 00019 { 00020 TAO_IIOP_Endpoint *new_endpoint = 0; 00021 00022 if (destroy) 00023 { 00024 TAO_Endpoint *endpoint = iiop_endpoint->duplicate (); 00025 00026 new_endpoint = dynamic_cast<TAO_IIOP_Endpoint *> (endpoint); 00027 00028 } 00029 else 00030 new_endpoint = iiop_endpoint; 00031 00032 if (this->destroy_iiop_endpoint_) 00033 delete this->iiop_endpoint_; 00034 00035 this->iiop_endpoint_ = new_endpoint; 00036 this->destroy_iiop_endpoint_ = destroy; 00037 } 00038 }
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_IIOP_Endpoint * TAO_SSLIOP_Endpoint::iiop_endpoint | ( | void | ) | const |
Accessor to our IIOP counterpart.
Definition at line 9 of file SSLIOP_Endpoint.inl.
References iiop_endpoint_.
Referenced by TAO_SSLIOP_Profile::add_endpoint(), TAO_SSLIOP_Profile::decode(), TAO_SSLIOP_Synthetic_Endpoint::duplicate(), duplicate(), TAO::SSLIOP::Connector::iiop_connect(), iiop_endpoint(), TAO::SSLIOP::Acceptor::is_collocated(), operator=(), TAO_SSLIOP_Profile::parse_string(), TAO_SSLIOP_Profile::remove_endpoint(), and TAO_SSLIOP_Profile::TAO_SSLIOP_Profile().
00010 { 00011 return this->iiop_endpoint_; 00012 }
CORBA::Boolean TAO_SSLIOP_Endpoint::is_equivalent | ( | const TAO_Endpoint * | other_endpoint | ) | [virtual] |
Return true if this endpoint is equivalent to other_endpoint The relationship is defined as equivalency of their qop, hostname and ssl ports (if non-zero). Two endpoints may be equivalent even if their iiop counterparts are not. In fact, there are cases (as with the LPL processing) when those counterparts are not known at all.
Implements TAO_Endpoint.
Reimplemented in TAO_SSLIOP_Synthetic_Endpoint.
Definition at line 174 of file SSLIOP_Endpoint.cpp.
References CORBA::is_nil(), ACE_OS::strcmp(), and trust_.
00175 { 00176 TAO_Endpoint *endpt = const_cast<TAO_Endpoint *> (other_endpoint); 00177 00178 TAO_SSLIOP_Endpoint *endpoint = 00179 dynamic_cast<TAO_SSLIOP_Endpoint *> (endpt); 00180 00181 if (endpoint == 0) 00182 return 0; 00183 00184 ::Security::EstablishTrust t = endpoint->trust (); 00185 00186 if ((this->ssl_component_.port != 0 00187 && endpoint->ssl_component_.port != 0 00188 && this->ssl_component_.port != endpoint->ssl_component_.port) 00189 || this->qop_ != endpoint->qop () 00190 || this->trust_.trust_in_target != t.trust_in_target 00191 || this->trust_.trust_in_client != t.trust_in_client 00192 || (!CORBA::is_nil (this->credentials_.in ()) 00193 && !(*this->credentials_.in () == *endpoint->credentials ()))) 00194 { 00195 return 0; 00196 } 00197 00198 // Comparing the underlying iiop endpoints is wrong, as their port 00199 // numbers often may not make sense. Or may not being used anyway. 00200 // Therefore, we only need to directly compare the hosts. See also the 00201 // comments in the hash() method. 00202 if (this->iiop_endpoint() == 0 || endpoint->iiop_endpoint() == 0) 00203 return 0; 00204 00205 if ((ACE_OS::strcmp (this->iiop_endpoint()->host (), 00206 endpoint->iiop_endpoint()->host ()) != 0)) 00207 return 0; 00208 00209 return 1; 00210 }
TAO_Endpoint * TAO_SSLIOP_Endpoint::next | ( | void | ) | [virtual] |
Implements TAO_Endpoint.
Definition at line 168 of file SSLIOP_Endpoint.cpp.
References next_.
00169 { 00170 return this->next_; 00171 }
const ACE_INET_Addr & TAO_SSLIOP_Endpoint::object_addr | ( | void | ) | const |
Return the SSLIOP-specific ACE_INET_Addr.
Definition at line 273 of file SSLIOP_Endpoint.cpp.
References ACE_GUARD_RETURN, AF_INET, ACE_Addr::get_type(), object_addr_, and TAO_SYNCH_MUTEX.
Referenced by hash(), and TAO::SSLIOP::Connector::ssliop_connect().
00274 { 00275 // The object_addr_ is initialized here, rather than at IOR decode 00276 // time for several reasons: 00277 // 1. A request on the object may never be invoked. 00278 // 2. The DNS setup may have changed dynamically. 00279 // ...etc.. 00280 00281 // Double checked locking optimization. 00282 if (this->object_addr_.get_type () != AF_INET 00283 #if defined (ACE_HAS_IPV6) 00284 && this->object_addr_.get_type () != AF_INET6 00285 #endif /* ACE_HAS_IPV6 */ 00286 ) 00287 { 00288 const ACE_INET_Addr &iiop_addr = this->iiop_endpoint_->object_addr (); 00289 00290 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 00291 guard, 00292 this->addr_lookup_lock_, 00293 this->object_addr_); 00294 00295 if (this->object_addr_.get_type () != AF_INET 00296 #if defined (ACE_HAS_IPV6) 00297 && this->object_addr_.get_type () != AF_INET6 00298 #endif /* ACE_HAS_IPV6 */ 00299 ) 00300 { 00301 this->object_addr_ = iiop_addr; 00302 this->object_addr_.set_port_number (this->ssl_component_.port); 00303 } 00304 } 00305 00306 return this->object_addr_; 00307 }
TAO_SSLIOP_Endpoint & TAO_SSLIOP_Endpoint::operator= | ( | const TAO_SSLIOP_Endpoint & | other | ) |
Need to have an assignment operator since the SSLIOP_Profile class may have to reorder its list of endpoints based on filtering by the EndpointPolicy.
Definition at line 91 of file SSLIOP_Endpoint.cpp.
References destroy_iiop_endpoint_, iiop_endpoint(), iiop_endpoint_, next_, object_addr_, qop_, ssl_component_, and trust_.
00092 { 00093 this->object_addr_ = other.object_addr_; 00094 this->qop_ = other.qop_; 00095 this->trust_ = other.trust_; 00096 this->ssl_component_ = other.ssl_component_; 00097 00098 this->next_ = 0; // do not copy list membership, since we are only cloning the values 00099 00100 this->iiop_endpoint(other.iiop_endpoint_, 00101 other.destroy_iiop_endpoint_); 00102 return *this; 00103 }
ACE_INLINE::Security::QOP TAO_SSLIOP_Endpoint::qop | ( | void | ) | const |
Get the Quality-of-Protection settings for this endpoint.
Definition at line 47 of file SSLIOP_Endpoint.inl.
References qop_.
00048 { 00049 return this->qop_; 00050 }
void TAO_SSLIOP_Endpoint::set_sec_attrs | ( | ::Security::QOP | qop, | |
const ::Security::EstablishTrust & | trust, | |||
const TAO::SSLIOP::OwnCredentials_ptr | creds | |||
) |
Set the Quality-of-Protection, establishment of trust, and credentials for this endpoint. This is all done in one function so that the guard may be used uniformly.
Definition at line 310 of file SSLIOP_Endpoint.cpp.
References TAO::SSLIOP::OwnCredentials::_duplicate(), ACE_GUARD, credentials_, credentials_set_, TAO_Endpoint::hash_val_, qop_, TAO_SYNCH_MUTEX, and trust_.
Referenced by TAO_SSLIOP_Synthetic_Endpoint::duplicate(), duplicate(), and TAO::SSLIOP::Connector::ssliop_connect().
00313 { 00314 if (this->credentials_set_) 00315 return; 00316 00317 ACE_GUARD (TAO_SYNCH_MUTEX, 00318 guard, 00319 this->addr_lookup_lock_); 00320 00321 // double-check 00322 if (this->credentials_set_) 00323 return; 00324 00325 this->qop_ = q; 00326 this->trust_ = t; 00327 this->credentials_ = TAO::SSLIOP::OwnCredentials::_duplicate (c); 00328 this->credentials_set_ = 1; 00329 00330 // reset the hash value to force a recomputation. 00331 this->hash_val_ = 0; 00332 }
ACE_INLINEconst ::SSLIOP::SSL & TAO_SSLIOP_Endpoint::ssl_component | ( | void | ) | const |
Return SSL component corresponding to this endpoint.
Definition at line 41 of file SSLIOP_Endpoint.inl.
References ssl_component_.
Referenced by TAO::SSLIOP::Connector::connect(), TAO::SSLIOP::Connector::iiop_connect(), TAO_SSLIOP_Synthetic_Endpoint::is_equivalent(), and TAO::SSLIOP::Connector::ssliop_connect().
00042 { 00043 return this->ssl_component_; 00044 }
ACE_INLINE::Security::EstablishTrust TAO_SSLIOP_Endpoint::trust | ( | void | ) | const |
Get the establishment of trust settings for this endpoint.
Definition at line 53 of file SSLIOP_Endpoint.inl.
References trust_.
Referenced by TAO_SSLIOP_Synthetic_Endpoint::duplicate().
00054 { 00055 return this->trust_; 00056 }
friend class TAO_SSLIOP_Profile [friend] |
Definition at line 59 of file SSLIOP_Endpoint.h.
SSLIOP-specific credentials for this endpoint object.
Definition at line 198 of file SSLIOP_Endpoint.h.
Referenced by credentials(), and set_sec_attrs().
int TAO_SSLIOP_Endpoint::credentials_set_ [private] |
A flag indicating that credentials_ was explicitly initialized.
Definition at line 201 of file SSLIOP_Endpoint.h.
Referenced by credentials_set(), and set_sec_attrs().
bool TAO_SSLIOP_Endpoint::destroy_iiop_endpoint_ [private] |
Flag that determines whether or not the iiop_endpoint_ member is deallocated with delete().
Definition at line 189 of file SSLIOP_Endpoint.h.
Referenced by iiop_endpoint(), and operator=().
IIOP counterpart.
Since SSLIOP is an 'extension' of IIOP, each SSLIOP_Endpoint contains SSL-specific information plus a pointer to the IIOP_Endpoint containing the IIOP portion of our address.
Definition at line 185 of file SSLIOP_Endpoint.h.
Referenced by iiop_endpoint(), operator=(), and ~TAO_SSLIOP_Endpoint().
TAO_SSLIOP_Endpoint* TAO_SSLIOP_Endpoint::next_ [private] |
IIOP Endpoints can be stringed into a list. Return the next endpoint in the list, if any.
Definition at line 177 of file SSLIOP_Endpoint.h.
Referenced by TAO_SSLIOP_Profile::add_endpoint(), TAO_SSLIOP_Profile::do_is_equivalent(), TAO_SSLIOP_Profile::encode_endpoints(), next(), operator=(), and TAO_SSLIOP_Profile::remove_endpoint().
ACE_INET_Addr TAO_SSLIOP_Endpoint::object_addr_ [mutable, private] |
Cached instance of ACE_INET_Addr for use in making invocations, etc.
Definition at line 173 of file SSLIOP_Endpoint.h.
Referenced by object_addr(), operator=(), and TAO_SSLIOP_Endpoint().
::Security::QOP TAO_SSLIOP_Endpoint::qop_ [private] |
Quailty-of-Protection settings for this endpoint object.
Definition at line 192 of file SSLIOP_Endpoint.h.
Referenced by operator=(), qop(), and set_sec_attrs().
::SSLIOP::SSL TAO_SSLIOP_Endpoint::ssl_component_ [protected] |
Cache the SSL tagged component in a decoded format. Notice that we do not need to marshal this object!
Definition at line 167 of file SSLIOP_Endpoint.h.
Referenced by addr_to_string(), hash(), operator=(), TAO_SSLIOP_Profile::parse_string(), ssl_component(), TAO_SSLIOP_Endpoint(), and TAO_SSLIOP_Synthetic_Endpoint::TAO_SSLIOP_Synthetic_Endpoint().
::Security::EstablishTrust TAO_SSLIOP_Endpoint::trust_ [private] |
Establishment of trust settings for this endpoint object.
Definition at line 195 of file SSLIOP_Endpoint.h.
Referenced by is_equivalent(), operator=(), set_sec_attrs(), TAO_SSLIOP_Endpoint(), and trust().