summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2015-09-15 18:26:56 +0200
committerJohnny Willemsen <jwillemsen@remedy.nl>2015-09-15 18:26:56 +0200
commit784e8c92244dc081bef3d7ac6ba5ddc0d720474b (patch)
tree15a06a83a63792a9b8f5be958813003570f9c22e
parent006534e2c5070472f5ae630018a904191dbf42a1 (diff)
parent51007817985b0c4eb361d567929be02d2f1b9109 (diff)
downloadATCD-784e8c92244dc081bef3d7ac6ba5ddc0d720474b.tar.gz
Merge branch 'master' of git://github.com/DOCGroup/ATCD
-rw-r--r--ACE/ace/Cached_Connect_Strategy_T.cpp5
-rw-r--r--ACE/ace/config-macosx-elcapitan.h6
-rw-r--r--ACE/include/makeinclude/platform_macosx_elcapitan.GNU3
-rw-r--r--ACE/tests/Cached_Conn_Strategy_Fail_Test.cpp123
-rw-r--r--ACE/tests/run_test.lst1
-rw-r--r--ACE/tests/tests.mpc7
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp20
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp2
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp3
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp22
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));
}
}