Public Member Functions |
| IIOP_SSL_Transport (IIOP_SSL_Connection_Handler *handler, TAO_ORB_Core *orb_core) |
| Constructor.
|
| ~IIOP_SSL_Transport (void) |
| Default destructor.
|
| TAO_IIOP_Transport (TAO_IIOP_Connection_Handler *handler, TAO_ORB_Core *orb_core) |
| TAO_Transport (CORBA::ULong tag, TAO_ORB_Core *orb_core, size_t input_cdr_size=ACE_CDR::DEFAULT_BUFSIZE) |
virtual | ~TAO_Transport (void) |
CORBA::ULong | tag (void) const |
TAO_ORB_Core * | orb_core (void) const |
TAO_Transport_Mux_Strategy * | tms (void) const |
TAO_Wait_Strategy * | wait_strategy (void) const |
Drain_Result | handle_output (TAO::Transport::Drain_Constraints const &c) |
int | bidirectional_flag (void) const |
void | bidirectional_flag (int flag) |
void | cache_map_entry (TAO::Transport_Cache_Manager::HASH_MAP_ENTRY *entry) |
TAO::Transport_Cache_Manager::HASH_MAP_ENTRY * | cache_map_entry (void) |
size_t | id (void) const |
void | id (size_t id) |
TAO::Connection_Role | opened_as (void) const |
void | opened_as (TAO::Connection_Role) |
unsigned long | purging_order (void) const |
void | purging_order (unsigned long value) |
bool | queue_is_empty (void) |
bool | register_if_necessary (void) |
void | provide_handler (TAO::Connection_Handler_Set &handlers) |
bool | provide_blockable_handler (TAO::Connection_Handler_Set &handlers) |
virtual int | register_handler (void) |
virtual int | remove_handler (void) |
bool | idle_after_send (void) |
bool | idle_after_reply (void) |
virtual void | close_connection (void) |
void | messaging_init (TAO_GIOP_Message_Version const &version) |
virtual bool | post_connect_hook (void) |
ACE_Event_Handler::Reference_Count | add_reference (void) |
ACE_Event_Handler::Reference_Count | remove_reference (void) |
TAO_GIOP_Message_Base * | messaging_object (void) |
bool | is_connected (void) const |
bool | post_open (size_t id) |
void | pre_close (void) |
TAO_Connection_Handler * | connection_handler (void) |
TAO_OutputCDR & | out_stream (void) |
TAO_SYNCH_MUTEX & | output_cdr_lock (void) |
void | set_flush_in_post_open (void) |
bool | can_be_purged (void) |
int | generate_locate_request (TAO_Target_Specification &spec, TAO_Operation_Details &opdetails, TAO_OutputCDR &output) |
virtual int | generate_request_header (TAO_Operation_Details &opd, TAO_Target_Specification &spec, TAO_OutputCDR &msg) |
int | recache_transport (TAO_Transport_Descriptor_Interface *desc) |
virtual int | send_message_shared (TAO_Stub *stub, TAO_Message_Semantics message_semantics, const ACE_Message_Block *message_block, ACE_Time_Value *max_wait_time) |
int | format_queue_message (TAO_OutputCDR &stream, ACE_Time_Value *max_wait_time, TAO_Stub *stub) |
int | send_message_block_chain (const ACE_Message_Block *message_block, size_t &bytes_transferred, ACE_Time_Value *max_wait_time=0) |
int | send_message_block_chain_i (const ACE_Message_Block *message_block, size_t &bytes_transferred, TAO::Transport::Drain_Constraints const &dc) |
int | purge_entry (void) |
int | make_idle (void) |
int | update_transport (void) |
int | handle_timeout (const ACE_Time_Value ¤t_time, const void *act) |
size_t | recv_buffer_size (void) const |
size_t | sent_byte_count (void) const |
TAO_Codeset_Translator_Base * | char_translator (void) const |
TAO_Codeset_Translator_Base * | wchar_translator (void) const |
void | char_translator (TAO_Codeset_Translator_Base *) |
void | wchar_translator (TAO_Codeset_Translator_Base *) |
void | assign_translators (TAO_InputCDR *, TAO_OutputCDR *) |
void | clear_translators (TAO_InputCDR *, TAO_OutputCDR *) |
CORBA::Boolean | is_tcs_set () const |
void | first_request_sent (bool flag=false) |
bool | first_request () const |
void | send_connection_closed_notifications (void) |
TAO::Transport::Stats * | stats (void) const |
void | update_protocol_properties (int send_buffer_size, int recv_buffer_size, int no_delay, int enable_network_priority) |
virtual int | send_request (TAO_Stub *stub, TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, TAO_Message_Semantics message_semantics, ACE_Time_Value *max_wait_time) |
virtual int | send_message (TAO_OutputCDR &stream, TAO_Stub *stub=0, TAO_ServerRequest *request=0, TAO_Message_Semantics message_semantics=TAO_Message_Semantics(), ACE_Time_Value *max_time_wait=0) |
virtual int | tear_listen_point_list (TAO_InputCDR &cdr) |
virtual TAO_Connection_Handler * | connection_handler_i (void) |
IIOP Transport designed to be "SSL aware," i.e. it is aware of the existence of the SSLIOP Transport. It makes sure that SSL session state from a previous connection is not associated with the non-SSL connection handled by this handler.
However, this class overrides the handle_input() method to invalidate the current TSS SSL state during a standard IIOP (insecure) upcall. This prevents SSL session state from a previous SSL connection from being associated with non-SSL connections processed by this connection handler. In particular, this is very important for closing a security hole in nested upcalls. For example, an SSLIOP request is made. During that secure upcall, an insecure nested upcall is made. A naive implementation would associate the TSS SSL state from the secure upcall with the insecure upcall. This implementation closes that security hole.