ACE_SSL  6.2.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
ACE_SSL_SOCK_Acceptor Class Reference

Defines a factory that creates new ACE_SSL_SOCK_Stream objects passively. More...

#include <SSL_SOCK_Acceptor.h>

Inheritance diagram for ACE_SSL_SOCK_Acceptor:
Inheritance graph
Collaboration diagram for ACE_SSL_SOCK_Acceptor:
Collaboration graph

Public Types

typedef ACE_INET_Addr PEER_ADDR
 Meta-type info. More...
 
typedef ACE_SSL_SOCK_Stream PEER_STREAM
 Meta-type info. More...
 

Public Member Functions

 ACE_SSL_SOCK_Acceptor (void)
 Default constructor. More...
 
 ~ACE_SSL_SOCK_Acceptor (void)
 Default destructor. More...
 
 ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap, int reuse_addr=0, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
 
 ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
 
int open (const ACE_Addr &local_sap, int reuse_addr=0, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
 
int close (void)
 Close the listening socket. More...
 
Passive Connection "accept" Methods

These are the canonical methods exposed by the Acceptor pattern.

int accept (ACE_SSL_SOCK_Stream &new_stream, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, bool restart=true, bool reset_new_handle=false) const
 
int accept (ACE_SSL_SOCK_Stream &new_stream, ACE_Accept_QoS_Params qos_params, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, bool restart=true, bool reset_new_handle=false) const
 
- Public Member Functions inherited from ACE_SSL_SOCK
int set_option (int level, int option, void *optval, int optlen) const
 
int get_option (int level, int option, void *optval, int *optlen) const
 
int enable (int value) const
 
int disable (int value) const
 
void set_handle (ACE_HANDLE)
 
ACE_HANDLE get_handle (void) const
 
int control (int cmd, void *arg) const
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Protected Member Functions

int ssl_accept (ACE_SSL_SOCK_Stream &new_stream, ACE_Time_Value *timeout) const
 Complete SSL passive connection establishment. More...
 
- Protected Member Functions inherited from ACE_SSL_SOCK
 ACE_SSL_SOCK (void)
 
 ~ACE_SSL_SOCK (void)
 Destructor. More...
 

Private Attributes

ACE_SOCK_Acceptor acceptor_
 The BSD-socket workhorse. More...
 

Detailed Description

Defines a factory that creates new ACE_SSL_SOCK_Stream objects passively.

The ACE_SSL_SOCK_Acceptor has its own ACE_SOCK_Acceptor which handles the basic socket acceptance. This class is a wrapper which adds the SSL acceptance handshake handling. Since SSL is record oriented, some additional steps must be taken after the basic socket acceptance to complete the SSL handshake that takes place at session establishment.

Note
The user must currently ensure that only one thread services a given SSL session at any given time since some underlying SSL implementations, such as OpenSSL, are not entirely thread-safe or reentrant.

Member Typedef Documentation

Meta-type info.

Meta-type info.

Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor ( void  )

Default constructor.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_SSL_SOCK_Acceptor::~ACE_SSL_SOCK_Acceptor ( void  )

Default destructor.

ACE_INLINE ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor ( const ACE_Addr local_sap,
int  reuse_addr = 0,
int  protocol_family = PF_UNSPEC,
int  backlog = ACE_DEFAULT_BACKLOG,
int  protocol = 0 
)

Initiate a passive mode SSL/BSD-style acceptor socket.

Parameters
local_sapThe address that we're going to listen for connections on. If this is ACE_Addr::sap_any, this socket listens on an the "any" IP address and selects an unused port. To find out what port was selected, call this object's ACE_SOCK::get_local_addr(ACE_Addr&) method upon return.
ACE_INLINE ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor ( const ACE_Addr local_sap,
ACE_Protocol_Info protocolinfo,
ACE_SOCK_GROUP  g,
u_long  flags,
int  reuse_addr,
int  protocol_family = PF_UNSPEC,
int  backlog = ACE_DEFAULT_BACKLOG,
int  protocol = 0 
)

Initiate a passive-mode QoS-enabled acceptor socket.

Parameters
local_sapThe address that we're going to listen for connections on. If this is ACE_Addr::sap_any, this socket listens on an the "any" IP address and selects an unused port. To find out what port was selected, call this object's ACE_SOCK::get_local_addr(ACE_Addr&) method upon return.

Member Function Documentation

int ACE_SSL_SOCK_Acceptor::accept ( ACE_SSL_SOCK_Stream new_stream,
ACE_Addr remote_addr = 0,
ACE_Time_Value timeout = 0,
bool  restart = true,
bool  reset_new_handle = false 
) const

Accept a new ACE_SSL_SOCK_Stream connection. On successful return, the socket has been accepted and the SSL handshake has been completed.

Parameters
new_streamThe ACE_SSL_SOCK_Stream object that will receive the new SSL socket.
remote_addrPointer to an ACE_INET_Addr object that will receive the address of the peer that connected.
timeoutThe maximum time to wait for the combined socket acceptance and handshake completion. 0 means block forever, a timeout of {0, 0} means poll.
restart1 means "restart if interrupted," that is, if errno == EINTR.
Returns
0 if success; -1 for failure (errno contains error code).
int ACE_SSL_SOCK_Acceptor::accept ( ACE_SSL_SOCK_Stream new_stream,
ACE_Accept_QoS_Params  qos_params,
ACE_Addr remote_addr = 0,
ACE_Time_Value timeout = 0,
bool  restart = true,
bool  reset_new_handle = false 
) const

Accept a new ACE_SSL_SOCK_Stream connection using the RVSP QoS information in qos_params.

Parameters
new_streamThe ACE_SSL_SOCK_Stream object that will receive the new SSL socket.
remote_addrPointer to an ACE_INET_Addr object that will receive the address of the peer that connected.
timeoutThe maximum time to wait for the combined socket acceptance and handshake completion. 0 means block forever, a timeout of {0, 0} means poll.
restart1 means "restart if interrupted," that is, if errno == EINTR.
Returns
0 if success; -1 for failure (errno contains error code).
ACE_INLINE int ACE_SSL_SOCK_Acceptor::close ( void  )

Close the listening socket.

ACE_INLINE int ACE_SSL_SOCK_Acceptor::open ( const ACE_Addr local_sap,
int  reuse_addr = 0,
int  protocol_family = PF_UNSPEC,
int  backlog = ACE_DEFAULT_BACKLOG,
int  protocol = 0 
)

Initiate a passive mode SSL/BSD-style acceptor socket.

Parameters
local_sapThe address that we're going to listen for connections on. If this is ACE_Addr::sap_any, this socket listens on an the "any" IP address and selects an unused port. To find out what port was selected, call this object's ACE_SOCK::get_local_addr(ACE_Addr&) method upon return.
Returns
0 if success; -1 for failure (errno contains error code).
int ACE_SSL_SOCK_Acceptor::ssl_accept ( ACE_SSL_SOCK_Stream new_stream,
ACE_Time_Value timeout 
) const
protected

Complete SSL passive connection establishment.

Member Data Documentation

ACE_SOCK_Acceptor ACE_SSL_SOCK_Acceptor::acceptor_
private

The BSD-socket workhorse.

ACE_SSL_SOCK_Acceptor::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.


The documentation for this class was generated from the following files: