diff options
Diffstat (limited to 'examples/C++NPv2/TPC_Logging_Server.cpp')
-rw-r--r-- | examples/C++NPv2/TPC_Logging_Server.cpp | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/examples/C++NPv2/TPC_Logging_Server.cpp b/examples/C++NPv2/TPC_Logging_Server.cpp deleted file mode 100644 index 7c78c02d22a..00000000000 --- a/examples/C++NPv2/TPC_Logging_Server.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* -** $Id$ -** -** This is the Thread-per-connection logging server example from Chapter 7. -** -** Copyright 2002 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/OS.h" -#include "ace/FILE_Addr.h" -#include "ace/FILE_Connector.h" -#include "Reactor_Logging_Server_Adapter.h" -#include "TPC_Logging_Server.h" -#include "TPCLS_export.h" - -int TPC_Logging_Handler::open (void *) { - static const ACE_TCHAR LOGFILE_SUFFIX[] = ACE_TEXT (".log"); - ACE_TCHAR filename[MAXHOSTNAMELEN + sizeof (LOGFILE_SUFFIX)]; - ACE_INET_Addr logging_peer_addr; - - peer ().get_remote_addr (logging_peer_addr); - logging_peer_addr.get_host_name (filename, MAXHOSTNAMELEN); - ACE_OS_String::strcat (filename, LOGFILE_SUFFIX); - - ACE_FILE_Connector connector; - connector.connect (log_file_, - ACE_FILE_Addr (filename), - 0, // No timeout. - ACE_Addr::sap_any, // Ignored. - 0, // Don't try to reuse the addr. - O_RDWR | O_CREAT | O_APPEND, - ACE_DEFAULT_FILE_PERMS); - - logging_handler_.peer ().set_handle (peer ().get_handle ()); - - return activate (THR_NEW_LWP | THR_DETACHED); -} - - -#if !defined (TPC_CERTIFICATE_FILENAME) -# define TPC_CERTIFICATE_FILENAME "tpc-cert.pem" -#endif /* !TPC_CERTIFICATE_FILENAME */ -#if !defined (TPC_KEY_FILENAME) -# define TPC_KEY_FILENAME "tpc-key.pem" -#endif /* !TPC_KEY_FILENAME */ - -int TPC_Logging_Acceptor::open - (const ACE_SOCK_Acceptor::PEER_ADDR &local_addr, - ACE_Reactor *reactor, - int flags, int use_select, int reuse_addr) { - if (PARENT::open (local_addr, reactor, flags, - use_select, reuse_addr) != 0) - return -1; - OpenSSL_add_ssl_algorithms (); - ssl_ctx_ = SSL_CTX_new (SSLv3_server_method ()); - if (ssl_ctx_ == 0) return -1; - - if (SSL_CTX_use_certificate_file (ssl_ctx_, - TPC_CERTIFICATE_FILENAME, - SSL_FILETYPE_PEM) <= 0 - || SSL_CTX_use_PrivateKey_file (ssl_ctx_, - TPC_KEY_FILENAME, - SSL_FILETYPE_PEM) <= 0 - || !SSL_CTX_check_private_key (ssl_ctx_)) - return -1; - ssl_ = SSL_new (ssl_ctx_); - return ssl_ == 0 ? -1 : 0; -} - - -int TPC_Logging_Acceptor::handle_close (ACE_HANDLE h, - ACE_Reactor_Mask mask) { - PARENT::handle_close (h, mask); - delete this; - return 0; -} - - -int TPC_Logging_Acceptor::accept_svc_handler - (TPC_Logging_Handler *sh) { - if (PARENT::accept_svc_handler (sh) == -1) return -1; - SSL_clear (ssl_); // Reset for new SSL connection. - SSL_set_fd - (ssl_, ACE_reinterpret_cast (int, sh->get_handle ())); - - SSL_set_verify - (ssl_, - SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, - 0); - if (SSL_accept (ssl_) == -1 - || SSL_shutdown (ssl_) == -1) return -1; - return 0; -} - - -typedef Reactor_Logging_Server_Adapter<TPC_Logging_Acceptor> - TPC_Logging_Server; - -ACE_FACTORY_DEFINE (TPCLS, TPC_Logging_Server) - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class Reactor_Logging_Server_Adapter<TPC_Logging_Acceptor>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate Reactor_Logging_Server_Adapter<TPC_Logging_Acceptor> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |