diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2015-09-15 18:26:56 +0200 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2015-09-15 18:26:56 +0200 |
commit | 784e8c92244dc081bef3d7ac6ba5ddc0d720474b (patch) | |
tree | 15a06a83a63792a9b8f5be958813003570f9c22e | |
parent | 006534e2c5070472f5ae630018a904191dbf42a1 (diff) | |
parent | 51007817985b0c4eb361d567929be02d2f1b9109 (diff) | |
download | ATCD-784e8c92244dc081bef3d7ac6ba5ddc0d720474b.tar.gz |
Merge branch 'master' of git://github.com/DOCGroup/ATCD
-rw-r--r-- | ACE/ace/Cached_Connect_Strategy_T.cpp | 5 | ||||
-rw-r--r-- | ACE/ace/config-macosx-elcapitan.h | 6 | ||||
-rw-r--r-- | ACE/include/makeinclude/platform_macosx_elcapitan.GNU | 3 | ||||
-rw-r--r-- | ACE/tests/Cached_Conn_Strategy_Fail_Test.cpp | 123 | ||||
-rw-r--r-- | ACE/tests/run_test.lst | 1 | ||||
-rw-r--r-- | ACE/tests/tests.mpc | 7 | ||||
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp | 20 | ||||
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp | 2 | ||||
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp | 22 |
10 files changed, 169 insertions, 23 deletions
diff --git a/ACE/ace/Cached_Connect_Strategy_T.cpp b/ACE/ace/Cached_Connect_Strategy_T.cpp index 7af66260693..aec3a1e42d8 100644 --- a/ACE/ace/Cached_Connect_Strategy_T.cpp +++ b/ACE/ace/Cached_Connect_Strategy_T.cpp @@ -271,7 +271,10 @@ ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATE // connect(). if (errno == EWOULDBLOCK || errno == ETIMEDOUT) - errno = ENOTSUP; + { + errno = ENOTSUP; + return -1; + } else if (ACE::out_of_handles (errno) || errno == EADDRINUSE) { // If the connect failed due to the process running out of diff --git a/ACE/ace/config-macosx-elcapitan.h b/ACE/ace/config-macosx-elcapitan.h new file mode 100644 index 00000000000..933cec6ed0e --- /dev/null +++ b/ACE/ace/config-macosx-elcapitan.h @@ -0,0 +1,6 @@ +#ifndef ACE_CONFIG_MACOSX_ELCAPITAN_H +#define ACE_CONFIG_MACOSX_ELCAPITAN_H + +#include "ace/config-macosx-yosemite.h" + +#endif // ACE_CONFIG_MACOSX_ELCAPITAN_H diff --git a/ACE/include/makeinclude/platform_macosx_elcapitan.GNU b/ACE/include/makeinclude/platform_macosx_elcapitan.GNU new file mode 100644 index 00000000000..9d3c12028a2 --- /dev/null +++ b/ACE/include/makeinclude/platform_macosx_elcapitan.GNU @@ -0,0 +1,3 @@ + +include $(ACE_ROOT)/include/makeinclude/platform_macosx_yosemite.GNU + diff --git a/ACE/tests/Cached_Conn_Strategy_Fail_Test.cpp b/ACE/tests/Cached_Conn_Strategy_Fail_Test.cpp new file mode 100644 index 00000000000..03440bc9f74 --- /dev/null +++ b/ACE/tests/Cached_Conn_Strategy_Fail_Test.cpp @@ -0,0 +1,123 @@ +//============================================================================= +/** + * @file Cached_Conn_Strategy_Fail_Test.cpp + * + * This test verifies the return code when ACE_Cached_Connect_Strategy_T + * fails to connect. + * + * @author Like Ma <likemartinma@gmail.com> + */ +//============================================================================= + + +#include "test_config.h" + +#include "ace/OS_NS_string.h" +#include "ace/INET_Addr.h" +#include "ace/SOCK_Connector.h" +#include "ace/SOCK_Acceptor.h" +#include "ace/Svc_Handler.h" +#include "ace/SOCK_Stream.h" +#include "ace/Acceptor.h" +#include "ace/Connector.h" +#include "ace/Get_Opt.h" +#include "ace/Caching_Utility_T.h" +#include "ace/Cached_Connect_Strategy_T.h" +#include "ace/Handle_Gobbler.h" + +#if defined(_MSC_VER) +#pragma warning(disable:4503) +#endif /* _MSC_VER */ + + + +typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> SVC_HANDLER; + +typedef size_t ATTRIBUTES; +typedef std::pair<SVC_HANDLER *, ATTRIBUTES> + CACHED_HANDLER; +typedef ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr> + ACE_ADDR; +typedef ACE_Hash<ACE_ADDR> H_KEY; +typedef ACE_Equal_To<ACE_ADDR> C_KEYS; + +typedef ACE_Hash_Map_Manager_Ex<ACE_ADDR, CACHED_HANDLER, H_KEY, C_KEYS, ACE_Null_Mutex> + HASH_MAP; +typedef ACE_Hash_Map_Iterator_Ex<ACE_ADDR, CACHED_HANDLER, H_KEY, C_KEYS, ACE_Null_Mutex> + HASH_MAP_ITERATOR; +typedef ACE_Hash_Map_Reverse_Iterator_Ex<ACE_ADDR, CACHED_HANDLER, H_KEY, C_KEYS, ACE_Null_Mutex> + HASH_MAP_REVERSE_ITERATOR; + +typedef ACE_Recyclable_Handler_Cleanup_Strategy<ACE_ADDR, CACHED_HANDLER, HASH_MAP> + CLEANUP_STRATEGY; +typedef ACE_Recyclable_Handler_Caching_Utility<ACE_ADDR, CACHED_HANDLER, HASH_MAP, HASH_MAP_ITERATOR, ATTRIBUTES> + CACHING_UTILITY; + +typedef ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY> + LRU_CACHING_STRATEGY; + +typedef ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY> + LFU_CACHING_STRATEGY; +typedef ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY> + FIFO_CACHING_STRATEGY; +typedef ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY> + NULL_CACHING_STRATEGY; +typedef ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, LRU_CACHING_STRATEGY> + LRU_CACHING_STRATEGY_ADAPTER; +typedef ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, LFU_CACHING_STRATEGY> + LFU_CACHING_STRATEGY_ADAPTER; +typedef ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, FIFO_CACHING_STRATEGY> + FIFO_CACHING_STRATEGY_ADAPTER; +typedef ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, NULL_CACHING_STRATEGY> + NULL_CACHING_STRATEGY_ADAPTER; +typedef ACE_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY> + CACHING_STRATEGY; + +typedef ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_SOCK_ACCEPTOR> + ACCEPTOR; + +typedef ACE_Strategy_Connector<SVC_HANDLER, ACE_SOCK_CONNECTOR> + STRATEGY_CONNECTOR; + +typedef ACE_NOOP_Creation_Strategy<SVC_HANDLER> + NULL_CREATION_STRATEGY; + +typedef ACE_NOOP_Concurrency_Strategy<SVC_HANDLER> + NULL_ACTIVATION_STRATEGY; + +typedef ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_SOCK_CONNECTOR, CACHING_STRATEGY, ATTRIBUTES, ACE_SYNCH_NULL_MUTEX> + CACHED_CONNECT_STRATEGY; + +int run_main (int, ACE_TCHAR *[]) +{ + ACE_START_TEST (ACE_TEXT ("Cached_Conn_Strategy_Fail_Test")); + + CACHING_STRATEGY *caching_strategy = 0; + ACE_NEW_NORETURN (caching_strategy, NULL_CACHING_STRATEGY_ADAPTER); + ACE_TEST_ASSERT (caching_strategy); + + CACHED_CONNECT_STRATEGY caching_connect_strategy (*caching_strategy); + NULL_CREATION_STRATEGY creation_strategy; + NULL_ACTIVATION_STRATEGY activation_strategy; + + STRATEGY_CONNECTOR strategy_connector (0, + &creation_strategy, + &caching_connect_strategy, + &activation_strategy); + + ACE_INET_Addr remote_addr (80, "www.google.com"); + + ACE_Synch_Options opts(ACE_Synch_Options::USE_TIMEOUT, ACE_Time_Value(0, 1)); + // Perform a blocking connect to the server using the Strategy + // Connector with a connection caching strategy. + SVC_HANDLER *svc_handler = 0; + int result = strategy_connector.connect (svc_handler, remote_addr, opts); + ACE_TEST_ASSERT (result == -1); + ACE_TEST_ASSERT (ENOTSUP == errno); + + ACE_END_TEST; + return 0; +} + + +// vim: set ts=2 sw=2 sts=2 et: diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst index 5a06c1e9ee0..17e9c5cd0b0 100644 --- a/ACE/tests/run_test.lst +++ b/ACE/tests/run_test.lst @@ -277,3 +277,4 @@ Wild_Match_Test SSL/Bug_2912_Regression_Test: SSL !ACE_FOR_TAO !BAD_AIO SSL/SSL_Asynch_Stream_Test: SSL !ACE_FOR_TAO !BAD_AIO !FIXED_BUGS_ONLY SSL/Thread_Pool_Reactor_SSL_Test: SSL +Cached_Conn_Strategy_Fail_Test diff --git a/ACE/tests/tests.mpc b/ACE/tests/tests.mpc index f6024307672..6f1f122b48f 100644 --- a/ACE/tests/tests.mpc +++ b/ACE/tests/tests.mpc @@ -2229,3 +2229,10 @@ project(Missing_Svc_Conf_Test) : acetest { Missing_Svc_Conf_Test.cpp } } + +project(Cached_Conn_Strategy_Fail_Test): acetest { + exename = Cached_Conn_Strategy_Fail_Test + Source_Files { + Cached_Conn_Strategy_Fail_Test.cpp + } +} diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp index 3d3f7389af5..28e83aaecd3 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp @@ -150,7 +150,7 @@ ImR_Activator_i::init_with_orb (CORBA::ORB_ptr orb, const Activator_Options& opt CORBA::String_var ior = this->orb_->object_to_string (activator.in ()); if (this->debug_ > 0) - ORBSVCS_DEBUG((LM_DEBUG, "ImR Activator: Starting %s\n", name_.c_str ())); + ORBSVCS_DEBUG((LM_DEBUG, "ImR Activator: Starting %C\n", name_.c_str ())); // initialize our process manager. // This requires a reactor that has signal handling. @@ -173,7 +173,7 @@ ImR_Activator_i::init_with_orb (CORBA::ORB_ptr orb, const Activator_Options& opt if (this->debug_ > 1) { ORBSVCS_DEBUG ((LM_DEBUG, - "ImR Activator: The Activator IOR is: <%s>\n", ior.in ())); + "ImR Activator: The Activator IOR is: <%C>\n", ior.in ())); } // The last thing we do is write out the ior so that a test program can assume @@ -206,7 +206,7 @@ ImR_Activator_i::init (Activator_Options& opts) // Must use IOR style objrefs, because URLs sometimes get mangled when passed // to ACE_Process::spawn(). cmdline += "-ORBUseImR 0 -ORBObjRefStyle IOR "; - ACE_ARGV av (cmdline.c_str ()); + ACE_ARGV av (ACE_TEXT_CHAR_TO_TCHAR (cmdline.c_str ())); int argc = av.argc (); CORBA::ORB_var orb = @@ -306,7 +306,7 @@ ImR_Activator_i::kill_server (const char* name, CORBA::Long lastpid, CORBA::Shor { if (debug_ > 1) ORBSVCS_DEBUG((LM_DEBUG, - "ImR Activator: Killing server <%s>...\n", + "ImR Activator: Killing server <%C>...\n", name)); pid_t pid = static_cast<pid_t>(lastpid); bool found = false; @@ -329,7 +329,7 @@ ImR_Activator_i::kill_server (const char* name, CORBA::Long lastpid, CORBA::Shor : ACE::terminate_process (pid); if (debug_ > 1) ORBSVCS_DEBUG((LM_DEBUG, - "ImR Activator: Killing server <%s> " + "ImR Activator: Killing server <%C> " "signal %d to pid %d, result = %d\n", name, signum, pid, result)); if (!found && result == 0 && this->notify_imr_) @@ -442,23 +442,25 @@ ImR_Activator_i::start_server(const char* name, // process's environment. proc_opts.enable_unicode_environment (); - proc_opts.setenv (ACE_TEXT("TAO_USE_IMR"), "1"); + proc_opts.setenv (ACE_TEXT ("TAO_USE_IMR"), ACE_TEXT ("1")); if (!CORBA::is_nil (this->locator_.in ())) { CORBA::String_var ior = orb_->object_to_string (locator_.in ()); - proc_opts.setenv (ACE_TEXT("ImplRepoServiceIOR"), ior.in()); + proc_opts.setenv (ACE_TEXT ("ImplRepoServiceIOR"), + ACE_TEXT_CHAR_TO_TCHAR (ior.in ())); } for (CORBA::ULong i = 0; i < env.length (); ++i) { - proc_opts.setenv (ACE_TEXT_CHAR_TO_TCHAR(env[i].name.in ()), env[i].value.in ()); + proc_opts.setenv (ACE_TEXT_CHAR_TO_TCHAR (env[i].name.in ()), + ACE_TEXT_CHAR_TO_TCHAR (env[i].value.in ())); } pid_t pid = this->process_mgr_.spawn (proc_opts, this); if (pid == ACE_INVALID_PID) { ORBSVCS_ERROR ((LM_ERROR, - "ImR Activator: Cannot start server <%C> using <%s>\n", name, cmdline)); + "ImR Activator: Cannot start server <%C> using <%C>\n", name, cmdline)); throw ImplementationRepository::CannotActivate( CORBA::string_dup ( diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp index f4ce6380c14..8f6d9699dcf 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp @@ -238,7 +238,7 @@ ImR_Locator_i::init (Options& opts) this->opts_ = &opts; ACE_CString cmdline = opts.cmdline (); cmdline += " -orbuseimr 0"; - ACE_ARGV av (cmdline.c_str ()); + ACE_ARGV av (ACE_TEXT_CHAR_TO_TCHAR (cmdline.c_str ())); int argc = av.argc (); ACE_TCHAR** argv = av.argv (); diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp index bfeaee55aae..bc7076310ec 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp @@ -125,7 +125,8 @@ Locator_XMLHandler::startElement (const ACEXML_Char*, } else { - this->extra_params_.push_back (std::make_pair (ACE_TEXT_ALWAYS_CHAR (name.c_str()), value)); + const ACE_CString name_cstr (ACE_TEXT_ALWAYS_CHAR (name.c_str ())); + this->extra_params_.push_back (std::make_pair (name_cstr, value)); } } } diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp index 1c6689bcb01..2ce654e6c03 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp @@ -81,7 +81,7 @@ TAO_IMR_i::init (int argc, ACE_TCHAR **argv) } catch (const CORBA::Exception& ex) { - ORBSVCS_ERROR ((LM_ERROR, "TAO_IMR_i::init - %s\n", exception_message)); + ORBSVCS_ERROR ((LM_ERROR, "TAO_IMR_i::init - %C\n", exception_message)); ex._tao_print_exception ("Exception"); return -1; } @@ -203,7 +203,7 @@ TAO_IMR_Op::display_server_information (const ImplementationRepository::ServerIn act = "AUTO_START"; // Print out information - ORBSVCS_DEBUG ((LM_DEBUG, "Server <%s>\n", info.server.in ())); + ORBSVCS_DEBUG ((LM_DEBUG, "Server <%C>\n", info.server.in ())); const char * locked_out = ""; @@ -217,7 +217,7 @@ TAO_IMR_Op::display_server_information (const ImplementationRepository::ServerIn ORBSVCS_DEBUG ((LM_DEBUG, " Activator: %C\n" " Command Line: %C\n" - " Working Directory: %s\n" + " Working Directory: %C\n" " Activation Mode: %C\n" " Number of retries: %d\n" "%C", @@ -228,7 +228,7 @@ TAO_IMR_Op::display_server_information (const ImplementationRepository::ServerIn limit - 1, locked_out)); for (CORBA::ULong i = 0; i < info.startup.environment.length (); ++i) - ORBSVCS_DEBUG ((LM_DEBUG, "Environment Variable: %s=%s\n", + ORBSVCS_DEBUG ((LM_DEBUG, "Environment Variable: %C=%C\n", info.startup.environment[i].name.in (), info.startup.environment[i].value.in ())); @@ -866,7 +866,7 @@ TAO_IMR_Op_Activate::run (void) if (!this->quiet_) { ORBSVCS_ERROR ((LM_ERROR, - "Cannot activate server <%C>, reason: <%s>\n", + "Cannot activate server <%C>, reason: <%C>\n", this->server_name_.c_str (), ex.reason.in ())); } @@ -1001,7 +1001,7 @@ TAO_IMR_Op_IOR::run (void) ior += this->server_name_; } - ORBSVCS_DEBUG ((LM_DEBUG, ACE_TEXT ("%s\n"), ior.c_str ())); + ORBSVCS_DEBUG ((LM_DEBUG, ACE_TEXT ("%C\n"), ior.c_str ())); if (this->filename_.length () > 0) { @@ -1062,7 +1062,7 @@ TAO_IMR_Op_Kill::run (void) if (!this->quiet_) { ORBSVCS_ERROR ((LM_ERROR, - "Cannot complete kill of <%C>, reason: <%s>\n", + "Cannot complete kill of <%C>, reason: <%C>\n", this->server_name_.c_str (), ex.reason.in ())); } @@ -1106,7 +1106,7 @@ TAO_IMR_Op_Link::run (void) catch (const ImplementationRepository::CannotComplete& ex) { ORBSVCS_ERROR ((LM_ERROR, - "Cannot complete kill of <%C>, reason: <%s>\n", + "Cannot complete kill of <%C>, reason: <%C>\n", this->server_name_.c_str (), ex.reason.in ())); return TAO_IMR_Op::CANNOT_COMPLETE; @@ -1366,7 +1366,7 @@ TAO_IMR_Op_Register::run (void) { ORBSVCS_DEBUG ((LM_DEBUG, "Updating Server <%C> with default " - "activator of <%s>.\n", + "activator of <%C>.\n", this->server_name_.c_str (), options->activator.in ())); } @@ -1420,8 +1420,8 @@ TAO_IMR_Op_List::display_server_information (const ImplementationRepository::Ser else { if (this->terse_) - ORBSVCS_DEBUG ((LM_DEBUG, "%s\n", info.server.in ())); + ORBSVCS_DEBUG ((LM_DEBUG, "%C\n", info.server.in ())); else - ORBSVCS_DEBUG ((LM_DEBUG, "<%s> %s\n", info.server.in (), maybe)); + ORBSVCS_DEBUG ((LM_DEBUG, "<%C> %C\n", info.server.in (), maybe)); } } |