#include <SSLIOP_Connector.h>
Inheritance diagram for TAO::SSLIOP::Connector:
Concrete instance of the TAO_Connector class. Responsible for establishing a connection with a server and is called from the Connector_Registry.
Definition at line 55 of file SSLIOP_Connector.h.
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 139 of file SSLIOP_Connector.h. |
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 128 of file SSLIOP_Connector.h. |
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 131 of file SSLIOP_Connector.h. |
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 135 of file SSLIOP_Connector.h. |
|
Constructor.
Definition at line 29 of file SSLIOP_Connector.cpp.
00030 : TAO::IIOP_SSL_Connector (), 00031 qop_ (qop), 00032 connect_strategy_ (), 00033 base_connector_ () 00034 { 00035 } |
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 849 of file SSLIOP_Connector.cpp.
00851 { 00852 TAO::SSLIOP::Connection_Handler* handler= 00853 dynamic_cast<TAO::SSLIOP::Connection_Handler*> (svc_handler); 00854 00855 if (handler) 00856 // Cancel from the connector 00857 return this->base_connector_.cancel (handler); 00858 00859 return -1; 00860 } |
|
Reimplemented from TAO_IIOP_Connector. Definition at line 344 of file SSLIOP_Connector.cpp. References ACE_OS::strchr(), ACE_OS::strlen(), and ACE_OS::strncmp().
00345 { 00346 // Check for a valid string 00347 if (!endpoint || !*endpoint) return -1; // Failure 00348 00349 const char *protocol[] = { "ssliop", "sslioploc" }; 00350 00351 size_t first_slot = ACE_OS::strchr (endpoint, ':') - endpoint; 00352 00353 size_t len0 = ACE_OS::strlen (protocol[0]); 00354 size_t len1 = ACE_OS::strlen (protocol[1]); 00355 00356 // Check for the proper prefix in the IOR. If the proper prefix 00357 // isn't in the IOR then it is not an IOR we can use. 00358 if (first_slot == len0 && ACE_OS::strncmp (endpoint, protocol[0], len0) == 0) 00359 return 0; 00360 00361 if (first_slot == len1 && ACE_OS::strncmp (endpoint, protocol[1], len1) == 0) 00362 return 0; 00363 00364 // Failure: not an SSLIOP IOR 00365 // DO NOT throw an exception here. 00366 return -1; 00367 } |
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 78 of file SSLIOP_Connector.cpp. References TAO::IIOP_SSL_Connector::close().
00079 { 00080 (void) this->TAO::IIOP_SSL_Connector::close (); 00081 00082 delete this->base_connector_.creation_strategy (); 00083 delete this->base_connector_.concurrency_strategy (); 00084 return this->base_connector_.close (); 00085 } |
|
|
|
|
|
Reimplemented from TAO_IIOP_Connector. Definition at line 222 of file SSLIOP_Connector.cpp. References TAO_Profile::_decr_refcnt(), ACE_NEW_RETURN, and TAO_Profile::decode().
00223 { 00224 TAO_Profile *pfile = 0; 00225 ACE_NEW_RETURN (pfile, 00226 TAO_SSLIOP_Profile (this->orb_core ()), 00227 0); 00228 00229 const int r = pfile->decode (cdr); 00230 if (r == -1) 00231 { 00232 pfile->_decr_refcnt (); 00233 pfile = 0; 00234 } 00235 00236 return pfile; 00237 } |
|
IIOP-specific connection establishment.
|
|
|
|
SSL-specific profile.
|
|
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 38 of file SSLIOP_Connector.cpp. References ACE_NEW_RETURN, TAO::IIOP_SSL_Connector::open(), TAO_Connector::orb_core(), TAO_ORB_Core::reactor(), and TAO_ORB_Core::thr_mgr().
00039 { 00040 // Since the ACE_Strategy_Connector (and ACE_Connector) cannot 00041 // handle non-blocking connections with protocols that have more 00042 // than one handshake, such as SSL, force blocking connections for 00043 // SSLIOP. This deficiency will be addressed soon. 00044 ACE_NEW_RETURN (this->active_connect_strategy_, 00045 TAO_Blocked_Connect_Strategy (orb_core), 00046 -1); 00047 00048 if (this->TAO::IIOP_SSL_Connector::open (orb_core) == -1) 00049 return -1; 00050 00051 // Our connect creation strategy 00052 CONNECT_CREATION_STRATEGY *connect_creation_strategy = 0; 00053 00054 ACE_NEW_RETURN (connect_creation_strategy, 00055 CONNECT_CREATION_STRATEGY 00056 (orb_core->thr_mgr (), 00057 orb_core, 00058 0 /* Forcibly disable TAO's GIOPlite feature. 00059 It introduces a security hole. */), 00060 -1); 00061 00062 // Our activation strategy 00063 CONNECT_CONCURRENCY_STRATEGY *concurrency_strategy = 0; 00064 00065 ACE_NEW_RETURN (concurrency_strategy, 00066 CONNECT_CONCURRENCY_STRATEGY (orb_core), 00067 -1); 00068 00069 ACE_Reactor *r = this->orb_core ()->reactor (); 00070 00071 return this->base_connector_.open (r, 00072 connect_creation_strategy, 00073 &this->connect_strategy_, 00074 concurrency_strategy); 00075 } |
|
Retrieve SSLIOP credentials from the policy overrides list and set up the underlying SSL connection to use the X.509 certificates stored within them. |
|
SSLIOP-specific connection establishment.
|
|
The connector initiating connection requests for IIOP.
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 151 of file SSLIOP_Connector.h. |
|
Our connect strategy.
Reimplemented from TAO::IIOP_SSL_Connector. Definition at line 148 of file SSLIOP_Connector.h. |
|
If zero, connect to IIOP over SSL port by default. Otherwise, connect to the insecure IIOP port. Definition at line 145 of file SSLIOP_Connector.h. |