summaryrefslogtreecommitdiff
path: root/ACE
diff options
context:
space:
mode:
Diffstat (limited to 'ACE')
-rw-r--r--ACE/NEWS10
-rw-r--r--ACE/ace/Dev_Poll_Reactor.cpp17
-rw-r--r--ACE/ace/INET_Addr.cpp139
-rw-r--r--ACE/ace/INET_Addr.h26
-rw-r--r--ACE/ace/INET_Addr.inl2
-rw-r--r--ACE/ace/Multihomed_INET_Addr.cpp81
-rw-r--r--ACE/apps/Gateway/Gateway/.gitignore1
-rw-r--r--ACE/apps/Gateway/Peer/.gitignore1
-rw-r--r--ACE/apps/JAWS/server/.gitignore1
-rw-r--r--ACE/apps/drwho/.gitignore2
-rw-r--r--ACE/apps/gperf/src/.gitignore2
-rw-r--r--ACE/apps/gperf/tests/.gitignore29
-rw-r--r--ACE/apps/mkcsregdb/.gitignore1
-rw-r--r--ACE/apps/soreduce/.gitignore1
-rw-r--r--ACE/bin/.gitignore9
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm2
-rwxr-xr-xACE/bin/make_release.py8
-rw-r--r--ACE/bin/valgrind.supp7
-rw-r--r--ACE/docs/bczar/bczar.html4
-rw-r--r--ACE/examples/APG/Active_Objects/.gitignore2
-rw-r--r--ACE/examples/APG/Config/.gitignore3
-rw-r--r--ACE/examples/APG/Containers/.gitignore12
-rw-r--r--ACE/examples/APG/Logging/.gitignore18
-rw-r--r--ACE/examples/APG/Misc_IPC/.gitignore3
-rw-r--r--ACE/examples/APG/Naming/.gitignore5
-rw-r--r--ACE/examples/APG/Proactor/.gitignore1
-rw-r--r--ACE/examples/APG/Processes/.gitignore4
-rw-r--r--ACE/examples/APG/Reactor/.gitignore8
-rw-r--r--ACE/examples/APG/Shared_Memory/.gitignore5
-rw-r--r--ACE/examples/APG/Signals/.gitignore5
-rw-r--r--ACE/examples/APG/Sockets/.gitignore4
-rw-r--r--ACE/examples/APG/Streams/.gitignore1
-rw-r--r--ACE/examples/APG/Svc_Config/.gitignore2
-rw-r--r--ACE/examples/APG/ThreadManagement/.gitignore9
-rw-r--r--ACE/examples/APG/ThreadPools/.gitignore5
-rw-r--r--ACE/examples/APG/ThreadSafety/.gitignore8
-rw-r--r--ACE/examples/APG/Threads/.gitignore6
-rw-r--r--ACE/examples/APG/Timers/.gitignore4
-rw-r--r--ACE/examples/ASX/.gitignore1
-rw-r--r--ACE/examples/ASX/CCM_App/.gitignore2
-rw-r--r--ACE/examples/ASX/Message_Queue/.gitignore3
-rw-r--r--ACE/examples/Bounded_Packet_Relay/.gitignore1
-rw-r--r--ACE/examples/C++NPv1/.gitignore7
-rw-r--r--ACE/examples/C++NPv2/.gitignore7
-rw-r--r--ACE/examples/Connection/blocking/.gitignore2
-rw-r--r--ACE/examples/Connection/misc/.gitignore2
-rw-r--r--ACE/examples/Connection/non_blocking/.gitignore8
-rw-r--r--ACE/examples/DLL/.gitignore1
-rw-r--r--ACE/examples/Export/.gitignore1
-rw-r--r--ACE/examples/IOStream/client/.gitignore1
-rw-r--r--ACE/examples/IOStream/server/.gitignore1
-rw-r--r--ACE/examples/IPC_SAP/ATM_SAP/.gitignore2
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore1
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore1
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/.gitignore5
-rw-r--r--ACE/examples/IPC_SAP/FILE_SAP/.gitignore1
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/.gitignore9
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/.gitignore8
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/.gitignore8
-rw-r--r--ACE/examples/IPC_SAP/UPIPE_SAP/.gitignore3
-rw-r--r--ACE/examples/Log_Msg/.gitignore3
-rw-r--r--ACE/examples/Logger/Acceptor-server/.gitignore1
-rw-r--r--ACE/examples/Logger/client/.gitignore1
-rw-r--r--ACE/examples/Logger/simple-server/.gitignore1
-rw-r--r--ACE/examples/Mem_Map/IO-tests/.gitignore1
-rw-r--r--ACE/examples/Mem_Map/file-reverse/.gitignore1
-rw-r--r--ACE/examples/Misc/.gitignore9
-rw-r--r--ACE/examples/Naming/.gitignore4
-rw-r--r--ACE/examples/OS/Process/.gitignore2
-rw-r--r--ACE/examples/Reactor/Dgram/.gitignore2
-rw-r--r--ACE/examples/Reactor/FIFO/.gitignore2
-rw-r--r--ACE/examples/Reactor/Misc/.gitignore8
-rw-r--r--ACE/examples/Reactor/Multicast/.gitignore2
-rw-r--r--ACE/examples/Reactor/Ntalker/.gitignore1
-rw-r--r--ACE/examples/Reactor/Proactor/.gitignore7
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/.gitignore10
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/.gitignore1
-rw-r--r--ACE/examples/Service_Configurator/Misc/.gitignore1
-rw-r--r--ACE/examples/Shared_Malloc/.gitignore4
-rw-r--r--ACE/examples/Shared_Memory/.gitignore2
-rw-r--r--ACE/examples/Smart_Pointers/.gitignore2
-rw-r--r--ACE/examples/Synch/.gitignore1
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore4
-rw-r--r--ACE/examples/System_V_IPC/SV_Semaphores/.gitignore2
-rw-r--r--ACE/examples/Threads/.gitignore22
-rw-r--r--ACE/examples/Timer_Queue/.gitignore4
-rw-r--r--ACE/examples/Web_Crawler/.gitignore1
-rw-r--r--ACE/include/makeinclude/rules.lib.GNU2
-rw-r--r--ACE/protocols/ace/INet/.gitignore2
-rw-r--r--ACE/protocols/examples/RMCast/Send_Msg/.gitignore2
-rw-r--r--ACE/protocols/examples/TMCast/Member/.gitignore1
-rw-r--r--ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore2
-rw-r--r--ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore2
-rw-r--r--ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore1
-rw-r--r--ACE/protocols/tests/HTBP/ping/.gitignore2
-rw-r--r--ACE/protocols/tests/RMCast/.gitignore2
-rw-r--r--ACE/tests/.gitignore179
-rw-r--r--ACE/tests/Dev_Poll_Reactor_Echo_Test.cpp574
-rw-r--r--ACE/tests/INET_Addr_Test.cpp51
-rw-r--r--ACE/tests/SSL/.gitignore2
-rw-r--r--ACE/tests/run_test.lst1
-rw-r--r--ACE/tests/tests.mpc7
102 files changed, 241 insertions, 1211 deletions
diff --git a/ACE/NEWS b/ACE/NEWS
index ead8d8db44f..2e2cb9b4628 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -8,6 +8,16 @@ USER VISIBLE CHANGES BETWEEN ACE-6.3.1 and ACE-6.3.2
supported. Please see tests/Chrono_Test.cpp for more
details.
+. Allow ACE_INET_Addr to hold all addresses associated with a hostname. The
+ set of addresses always has a "current" address which is accessed by the
+ usual "get"-type methods on the class. Two new methods are added to deal
+ with multiple addresses:
+ - bool next (void): makes the next available address the "current" one.
+ Returns false if there are no more addresses.
+ - void reset (void): resets the iteration mechanism to be able to examine
+ all of the addresses again.
+ ACE_Multihomed_INET_Addr has also been enhanced so that the get_addresses()
+ methods copy all available addresses related to each name.
USER VISIBLE CHANGES BETWEEN ACE-6.3.0 and ACE-6.3.1
====================================================
diff --git a/ACE/ace/Dev_Poll_Reactor.cpp b/ACE/ace/Dev_Poll_Reactor.cpp
index 87d78be7197..9bf45ceb24e 100644
--- a/ACE/ace/Dev_Poll_Reactor.cpp
+++ b/ACE/ace/Dev_Poll_Reactor.cpp
@@ -1320,22 +1320,7 @@ ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard)
if (info != 0 && info->event_handler == eh)
{
if (status < 0)
- {
- this->remove_handler_i (handle, disp_mask, grd);
-#ifdef ACE_HAS_EVENT_POLL
- // epoll-based effectively suspends handlers around the upcall.
- // If the handler must be resumed, check to be sure it's the
- // same handle/handler combination still.
- if (reactor_resumes_eh)
- {
- info = this->handler_rep_.find (handle);
- if (info != 0 && info->event_handler == eh)
- {
- this->resume_handler_i (handle);
- }
- }
-#endif /* ACE_HAS_EVENT_POLL */
- }
+ this->remove_handler_i (handle, disp_mask, grd);
}
}
// Scope close handles eh ref count decrement, if needed.
diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp
index 65722e5c4d6..96e26b93dcf 100644
--- a/ACE/ace/INET_Addr.cpp
+++ b/ACE/ace/INET_Addr.cpp
@@ -152,11 +152,31 @@ ACE_INET_Addr::hash (void) const
return this->get_ip_address () + this->get_port_number ();
}
+bool
+ACE_INET_Addr::next (void)
+{
+ if (this->inet_addrs_.empty () ||
+ this->inet_addrs_iter_ == this->inet_addrs_.end ())
+ return false;
+
+ union ip46 next_a = *this->inet_addrs_iter_++;
+ this->set_addr (&next_a, sizeof (next_a));
+ return true;
+}
+
+void
+ACE_INET_Addr::reset (void)
+{
+ this->inet_addrs_iter_ = this->inet_addrs_.begin ();
+ this->next ();
+ return;
+}
+
ACE_INET_Addr::ACE_INET_Addr (void)
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
// ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
}
ACE_INET_Addr &
@@ -183,6 +203,8 @@ ACE_INET_Addr::set (const ACE_INET_Addr &sa)
this->set_type (sa.get_type());
this->set_size (sa.get_size());
+ this->inet_addrs_ = sa.inet_addrs_;
+ this->reset ();
}
return 0;
@@ -273,7 +295,7 @@ ACE_INET_Addr::ACE_INET_Addr (const char address[], int address_family)
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
this->set (address, address_family);
}
@@ -282,7 +304,7 @@ ACE_INET_Addr::ACE_INET_Addr (const wchar_t address[], int address_family)
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
this->set (address, address_family);
}
@@ -294,7 +316,7 @@ ACE_INET_Addr::ACE_INET_Addr (const ACE_INET_Addr &sa)
: ACE_Addr (sa.get_type (), sa.get_size())
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
this->set (sa);
}
@@ -361,12 +383,6 @@ ACE_INET_Addr::set (u_short port_number,
{
if (hp != 0)
{
- struct sockaddr_in6 v6;
- ACE_OS::memset (&v6, 0, sizeof (v6));
- v6.sin6_family = AF_INET6;
- (void) ACE_OS::memcpy ((void *) &v6.sin6_addr,
- hp->h_addr,
- hp->h_length);
this->set_type (hp->h_addrtype);
for (size_t i = 0; hp->h_addr_list[i]; ++i)
{
@@ -394,16 +410,35 @@ ACE_INET_Addr::set (u_short port_number,
return -1;
# else
struct addrinfo hints;
- struct addrinfo *res = 0;
+ struct addrinfo *res = 0, *curr = 0;
int error = 0;
ACE_OS::memset (&hints, 0, sizeof (hints));
hints.ai_family = AF_INET6;
if ((error = ::getaddrinfo (host_name, 0, &hints, &res)) == 0)
{
this->set_type (res->ai_family);
- this->set_addr (res->ai_addr,
- ACE_Utils::truncate_cast<int>(res->ai_addrlen));
- this->set_port_number (port_number, encode);
+ for (curr = res; curr; curr = curr->ai_next)
+ {
+ union ip46 next_addr;
+ if (curr->ai_family == AF_INET6)
+ {
+ ACE_OS::memcpy (&next_addr.in6_,
+ curr->ai_addr,
+ curr->ai_addrlen);
+ next_addr.in6_.sin6_port =
+ encode ? ACE_NTOHS (port_number) : port_number;
+ }
+ else
+ {
+ ACE_OS::memcpy (&next_addr.in4_,
+ curr->ai_addr,
+ curr->ai_addrlen);
+ next_addr.in4_.sin_port =
+ encode ? ACE_NTOHS (port_number) : port_number;
+ }
+ this->inet_addrs_.push_back (next_addr);
+ }
+ this->reset ();
::freeaddrinfo (res);
return 0;
}
@@ -429,34 +464,40 @@ ACE_INET_Addr::set (u_short port_number,
struct in_addr addrv4;
if (ACE_OS::inet_aton (host_name,
&addrv4) == 1)
- return this->set (port_number,
- encode ? ACE_NTOHL (addrv4.s_addr) : addrv4.s_addr,
- encode);
- else
{
- hostent hentry;
- ACE_HOSTENT_DATA buf;
- int h_error = 0; // Not the same as errno!
+ this->inet_addrs_iter_ = this->inet_addrs_.end ();
+ return this->set (port_number,
+ encode ? ACE_NTOHL (addrv4.s_addr) : addrv4.s_addr,
+ encode);
+ }
- hostent *hp = ACE_OS::gethostbyname_r (host_name, &hentry,
- buf, &h_error);
- if (hp == 0)
- errno = h_error;
+ hostent hentry;
+ ACE_HOSTENT_DATA buf;
+ int h_error = 0; // Not the same as errno!
- if (hp == 0)
- {
- return -1;
- }
- else
- {
- (void) ACE_OS::memcpy ((void *) &addrv4.s_addr,
- hp->h_addr,
- hp->h_length);
- return this->set (port_number,
- encode ? ACE_NTOHL (addrv4.s_addr) : addrv4.s_addr,
- encode);
- }
+ hostent *hp = ACE_OS::gethostbyname_r (host_name, &hentry,
+ buf, &h_error);
+ if (hp == 0)
+ {
+ errno = h_error;
+ return -1;
}
+
+ this->set_type (hp->h_addrtype);
+ for (size_t i = 0; hp->h_addr_list[i]; ++i)
+ {
+ union ip46 next_addr;
+ struct sockaddr_in *next_addr_in = (struct sockaddr_in *)&next_addr.in4_;
+ (void) ACE_OS::memset (&next_addr, sizeof (next_addr), 0);
+ next_addr_in->sin_family = AF_INET;
+ next_addr_in->sin_port = encode ? ACE_NTOHS (port_number) : port_number;
+ (void) ACE_OS::memcpy ((void *) &next_addr_in->sin_addr,
+ hp->h_addr_list[i],
+ hp->h_length);
+ this->inet_addrs_.push_back (next_addr);
+ }
+ this->reset ();
+ return 0;
}
// Helper function to get a port number from a port name.
@@ -632,17 +673,18 @@ ACE_INET_Addr::get_addr (void) const
}
void
-ACE_INET_Addr::set_addr (void *addr, int len)
+ACE_INET_Addr::set_addr (const void *addr, int len)
{
this->set_addr (addr, len, 0);
}
// Set a pointer to the address.
void
-ACE_INET_Addr::set_addr (void *addr, int /* len */, int map)
+ACE_INET_Addr::set_addr (const void *addr, int /* len */, int map)
{
ACE_TRACE ("ACE_INET_Addr::set_addr");
- struct sockaddr_in *getfamily = static_cast<struct sockaddr_in *> (addr);
+ const struct sockaddr_in *getfamily =
+ static_cast<const struct sockaddr_in *> (addr);
if (getfamily->sin_family == AF_INET)
{
@@ -660,7 +702,8 @@ ACE_INET_Addr::set_addr (void *addr, int /* len */, int map)
#if defined (ACE_HAS_IPV6)
else if (getfamily->sin_family == AF_INET6)
{
- struct sockaddr_in6 *in6 = static_cast<struct sockaddr_in6*> (addr);
+ const struct sockaddr_in6 *in6 =
+ static_cast<const struct sockaddr_in6*> (addr);
this->set_port_number (in6->sin6_port, 0);
this->set_address (reinterpret_cast<const char*> (&in6->sin6_addr),
sizeof (in6->sin6_addr),
@@ -676,7 +719,7 @@ ACE_INET_Addr::ACE_INET_Addr (const sockaddr_in *addr, int len)
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
this->set (addr, len);
}
@@ -687,7 +730,7 @@ ACE_INET_Addr::ACE_INET_Addr (u_short port_number,
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
if (this->set (port_number, inet_address) == -1)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
@@ -703,7 +746,7 @@ ACE_INET_Addr::ACE_INET_Addr (const char port_name[],
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
if (this->set (port_name,
host_name,
protocol) == -1)
@@ -718,7 +761,7 @@ ACE_INET_Addr::ACE_INET_Addr (const wchar_t port_name[],
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
if (this->set (port_name,
host_name,
protocol) == -1)
@@ -735,7 +778,7 @@ ACE_INET_Addr::ACE_INET_Addr (const char port_name[],
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
if (this->set (port_name,
ACE_HTONL (inet_address),
protocol) == -1)
@@ -750,7 +793,7 @@ ACE_INET_Addr::ACE_INET_Addr (const wchar_t port_name[],
: ACE_Addr (determine_type (), sizeof (inet_addr_))
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset ();
+ this->reset_i ();
if (this->set (port_name,
ACE_HTONL (inet_address),
protocol) == -1)
diff --git a/ACE/ace/INET_Addr.h b/ACE/ace/INET_Addr.h
index 94528891bbd..c1a40553754 100644
--- a/ACE/ace/INET_Addr.h
+++ b/ACE/ace/INET_Addr.h
@@ -19,6 +19,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Addr.h"
+#include <vector>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -27,6 +28,10 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
* @brief Defines a C++ wrapper facade for the Internet domain address
* family format.
+ *
+ * ACE_INET_Addr can hold all of the IP addresses assigned to a single name.
+ * By default it refers only to the first, if there is more than one. The
+ * next() method can make the others available in turn.
*/
class ACE_Export ACE_INET_Addr : public ACE_Addr
{
@@ -203,14 +208,14 @@ public:
int get_addr_size(void) const;
/// Set a pointer to the address.
- virtual void set_addr (void *, int len);
+ virtual void set_addr (const void *, int len);
/// Set a pointer to the address.
- virtual void set_addr (void *, int len, int map);
+ virtual void set_addr (const void *, int len, int map);
/**
* Transform the current ACE_INET_Addr address into string format.
- * If @a ipaddr_format is ttrue this produces "ip-number:port-number"
+ * If @a ipaddr_format is true this produces "ip-number:port-number"
* (e.g., "128.252.166.57:1234"), whereas if @a ipaddr_format is false
* this produces "ip-name:port-number" (e.g.,
* "tango.cs.wustl.edu:1234"). Returns -1 if the @a size of the
@@ -361,6 +366,13 @@ public:
/// Computes and returns hash value.
virtual u_long hash (void) const;
+ /// If there is another address to examine, move to it and return true;
+ /// else return false.
+ bool next (void);
+
+ /// Reset the set of address so they can be scanned again using next().
+ void reset (void);
+
/// Dump the state of an object.
void dump (void) const;
@@ -378,18 +390,22 @@ private:
int determine_type (void) const;
/// Initialize underlying inet_addr_ to default values
- void reset (void);
+ void reset_i (void);
/// Underlying representation.
/// This union uses the knowledge that the two structures share the
/// first member, sa_family (as all sockaddr structures do).
- union
+ union ip46
{
sockaddr_in in4_;
#if defined (ACE_HAS_IPV6)
sockaddr_in6 in6_;
#endif /* ACE_HAS_IPV6 */
} inet_addr_;
+ // If there is more than one address assigned to a given name, this
+ // holds all of them; one is always copied to inet_addr_.
+ std::vector<union ip46> inet_addrs_;
+ std::vector<union ip46>::iterator inet_addrs_iter_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/INET_Addr.inl b/ACE/ace/INET_Addr.inl
index 6cc14c97558..2532bb9cb6f 100644
--- a/ACE/ace/INET_Addr.inl
+++ b/ACE/ace/INET_Addr.inl
@@ -7,7 +7,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE void
-ACE_INET_Addr::reset (void)
+ACE_INET_Addr::reset_i (void)
{
ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_));
if (this->get_type() == AF_INET)
diff --git a/ACE/ace/Multihomed_INET_Addr.cpp b/ACE/ace/Multihomed_INET_Addr.cpp
index a734beb1ae2..1acc40c1053 100644
--- a/ACE/ace/Multihomed_INET_Addr.cpp
+++ b/ACE/ace/Multihomed_INET_Addr.cpp
@@ -243,21 +243,40 @@ void
ACE_Multihomed_INET_Addr::get_addresses(sockaddr_in *addrs,
size_t size) const
{
- // Copy primary address to the first slot of the user-supplied array
- if (size > 0) {
- addrs[0] = *reinterpret_cast<sockaddr_in*> (this->get_addr ());
- }
+ if (size == 0)
+ return;
+ // Copy primary address(es) to the first slot(s) of the user-supplied array
+ ACE_INET_Addr me (*this);
+ size_t i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ sockaddr_in *in4 = reinterpret_cast<sockaddr_in*> (me.get_addr ());
+ if (in4->sin_family == AF_INET)
+ {
+ addrs[i] = *in4;
+ ++i;
+ }
+ if (!me.next ())
+ break;
+ }
// Copy secondary addresses to remaining slots of the user-supplied
// array. Secondary address [i] is copied to slot [i+1]
-
- size_t top = size - 1 < this->secondaries_.size() ?
- size - 1 : this->secondaries_.size();
-
- for (size_t i = 0; i < top; ++i) {
- addrs[i+1] =
- *reinterpret_cast<sockaddr_in*> (this->secondaries_[i].get_addr());
- }
+ for (size_t j = 0; j < this->secondaries_.size (); ++j)
+ {
+ ACE_INET_Addr copy (this->secondaries_[j]);
+ for (; i < size; ++i)
+ {
+ sockaddr_in *in4 = reinterpret_cast<sockaddr_in*> (copy.get_addr ());
+ if (in4->sin_family == AF_INET)
+ {
+ addrs[i] = *in4;
+ ++i;
+ }
+ if (!copy.next ())
+ break;
+ }
+ }
}
#if defined (ACE_HAS_IPV6)
@@ -265,22 +284,40 @@ void
ACE_Multihomed_INET_Addr::get_addresses(sockaddr_in6 *addrs,
size_t size) const
{
- // Copy primary address to the first slot of the user-supplied array
- if (size > 0)
+ if (size == 0)
+ return;
+ // Copy primary address(es) to the first slot(s) of the user-supplied array
+ ACE_INET_Addr me (*this);
+ size_t i = 0;
+ for (i = 0; i < size; ++i)
{
- addrs[0] = *reinterpret_cast<sockaddr_in6*> (this->get_addr ());
+ sockaddr_in6 *in6 = reinterpret_cast<sockaddr_in6*> (me.get_addr ());
+ if (in6->sin6_family == AF_INET6)
+ {
+ addrs[i] = *in6;
+ ++i;
+ }
+ if (!me.next ())
+ break;
}
// Copy secondary addresses to remaining slots of the user-supplied
// array. Secondary address [i] is copied to slot [i+1]
- size_t top =
- size - 1 < this->secondaries_.size() ?
- size - 1 : this->secondaries_.size();
-
- for (size_t i = 0; i < top; ++i)
+ for (size_t j = 0; j < this->secondaries_.size (); ++j)
{
- addrs[i+1] =
- *reinterpret_cast<sockaddr_in6*> (this->secondaries_[i].get_addr());
+ ACE_INET_Addr copy (this->secondaries_[j]);
+ for (; i < size; ++i)
+ {
+ sockaddr_in6 *in6 =
+ reinterpret_cast<sockaddr_in6*> (copy.get_addr ());
+ if (in6->sin6_family == AF_INET6)
+ {
+ addrs[i] = *in6;
+ ++i;
+ }
+ if (!copy.next ())
+ break;
+ }
}
}
#endif /* ACE_HAS_IPV6 */
diff --git a/ACE/apps/Gateway/Gateway/.gitignore b/ACE/apps/Gateway/Gateway/.gitignore
deleted file mode 100644
index e41fe225306..00000000000
--- a/ACE/apps/Gateway/Gateway/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/gatewayd
diff --git a/ACE/apps/Gateway/Peer/.gitignore b/ACE/apps/Gateway/Peer/.gitignore
deleted file mode 100644
index 0609af732f2..00000000000
--- a/ACE/apps/Gateway/Peer/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/peerd
diff --git a/ACE/apps/JAWS/server/.gitignore b/ACE/apps/JAWS/server/.gitignore
deleted file mode 100644
index 95811e0016a..00000000000
--- a/ACE/apps/JAWS/server/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/main
diff --git a/ACE/apps/drwho/.gitignore b/ACE/apps/drwho/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/apps/drwho/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/apps/gperf/src/.gitignore b/ACE/apps/gperf/src/.gitignore
deleted file mode 100644
index 45889fb918c..00000000000
--- a/ACE/apps/gperf/src/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/ace_gperf
-/gperf
diff --git a/ACE/apps/gperf/tests/.gitignore b/ACE/apps/gperf/tests/.gitignore
deleted file mode 100644
index f5739620364..00000000000
--- a/ACE/apps/gperf/tests/.gitignore
+++ /dev/null
@@ -1,29 +0,0 @@
-/ada.cpp
-/adadefs.cpp
-/aout
-/aout.out
-/c.cpp
-/corba.cpp
-/cout
-/cout.out
-/cpp.cpp
-/cppout
-/cppout.out
-/idl.cpp
-/iout
-/iout.out
-/iout2
-/iout2.out
-/m3out
-/m3out.out
-/modula3.cpp
-/pascal.cpp
-/pout
-/pout.out
-/preout
-/preout.out
-/tao.cpp
-/taoout
-/taoout.out
-/tout
-/tout.out
diff --git a/ACE/apps/mkcsregdb/.gitignore b/ACE/apps/mkcsregdb/.gitignore
deleted file mode 100644
index e03d21d2d92..00000000000
--- a/ACE/apps/mkcsregdb/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/mkcsregdb
diff --git a/ACE/apps/soreduce/.gitignore b/ACE/apps/soreduce/.gitignore
deleted file mode 100644
index 668fb90c2e3..00000000000
--- a/ACE/apps/soreduce/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/soreduce
diff --git a/ACE/bin/.gitignore b/ACE/bin/.gitignore
deleted file mode 100644
index 1ac82dfd0ba..00000000000
--- a/ACE/bin/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/ace_gperf
-/tao_catior
-/tao_idl*
-/tao_ifr*
-/tao_imr*
-/tao_logWalker
-/tao_nsadd
-/tao_nsdel
-/tao_nslist
diff --git a/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
index ba664a183c2..d7e63a1ed83 100644
--- a/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
+++ b/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
@@ -99,7 +99,7 @@ sub write_comps {
if ($named) {
$self->write_named_targets($fh, $crlf, \%targnum, \@list,
'REMAINING_TARGETS := ' .
- '$(filter-out all depend,$(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)' .
+ '$(filter-out all,$(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)' .
"$crlf$crlf\$(REMAINING_TARGETS)", '', '',
$self->project_target_translation(1), 1);
}
diff --git a/ACE/bin/make_release.py b/ACE/bin/make_release.py
index c3ba27e384f..9c58750ed4c 100755
--- a/ACE/bin/make_release.py
+++ b/ACE/bin/make_release.py
@@ -861,7 +861,7 @@ def package (stage_dir, package_dir, decorator):
pass # swallow any errors
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers"),
- "ACE_wrappers", ["TAO", ".gitignore"])
+ "ACE_wrappers", ["TAO"])
# write_file_lists ("fACE" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
@@ -876,7 +876,7 @@ def package (stage_dir, package_dir, decorator):
# for TAO:
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers/TAO"),
- "ACE_wrappers/TAO", ["CIAO", "DAnCE", ".gitignore"])
+ "ACE_wrappers/TAO", ["CIAO", "DAnCE"])
# write_file_lists ("fTAO" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
@@ -891,7 +891,7 @@ def package (stage_dir, package_dir, decorator):
# for DAnCE:
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers/TAO/DAnCE"),
- "ACE_wrappers/TAO/DAnCE", [".gitignore"])
+ "ACE_wrappers/TAO/DAnCE", [])
# write_file_lists ("fTAO" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
@@ -905,7 +905,7 @@ def package (stage_dir, package_dir, decorator):
bin_files = list ()
# for CIAO:
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers/TAO/CIAO"),
- "ACE_wrappers/TAO/CIAO", [".gitignore"])
+ "ACE_wrappers/TAO/CIAO", [])
# write_file_lists ("fCIAO" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
diff --git a/ACE/bin/valgrind.supp b/ACE/bin/valgrind.supp
index f5fa8a33f0f..6322f2c9401 100644
--- a/ACE/bin/valgrind.supp
+++ b/ACE/bin/valgrind.supp
@@ -35,13 +35,6 @@
}
{
- <Suppress all the conditional jumps in grep>
- Memcheck:Cond
- ...
- obj:*/bin/grep
-}
-
-{
<Suppress all the leaks in ps>
Memcheck:Leak
...
diff --git a/ACE/docs/bczar/bczar.html b/ACE/docs/bczar/bczar.html
index ef38733e838..574e5639634 100644
--- a/ACE/docs/bczar/bczar.html
+++ b/ACE/docs/bczar/bczar.html
@@ -118,7 +118,7 @@
</ul>
If you want to perform a full build with qt support, than run:
<ul>
- <li><code>yum install rubygem-rmagick bison libxerces-c-devel psmisc yum-utils gdb unzip glibc-devel libasan bison redhat-lsb perl-Pod-Usage rubygems clang make patch libcgroup-devel ant setuptool system-config-network-tui system-config-firewall-tui lcov gnuplot java-1.7.0-openjdk git-svn perl svn screen pysvn automake doxygen bzip2 tar gzip openssh graphviz zip libtool gcc-c++ boost-devel valgrind openssl-devel gcc qt4 fltk-devel bzip2-devel rsync openssl lzo-devel zziplib-devel acpid acpi nfs-utils java xerces-c xerces-c-devel mc qt qt-devel icecream ruby ruby-devel lksctp-tools-devel git telnet GitPython NetworkManager wget mailx</code></li>
+ <li><code>yum install bison libxerces-c-devel psmisc yum-utils gdb unzip glibc-devel libasan bison redhat-lsb perl-Pod-Usage rubygems clang make patch libcgroup-devel ant setuptool system-config-network-tui system-config-firewall-tui lcov gnuplot java-1.7.0-openjdk git-svn perl svn screen pysvn automake doxygen bzip2 tar gzip openssh graphviz zip libtool gcc-c++ boost-devel valgrind openssl-devel gcc qt4 fltk-devel bzip2-devel rsync openssl lzo-devel zziplib-devel acpid acpi nfs-utils java xerces-c xerces-c-devel mc qt qt-devel icecream ruby ruby-devel lksctp-tools-devel git telnet GitPython NetworkManager wget mailx</code></li>
</ul>
For some optional i686 packages run
<ul>
@@ -165,7 +165,7 @@
</li>
<li>
Tag the release by executing<br>
- <code>ACE/bin/make_release.py --beta --update --tag --push</code><br>
+ <code>ACE/bin/make_release.py --beta --update --tag -- push</code><br>
This will only take a couple minutes to complete and once done successfully,
you can carry on with BOTH creating the kits and generating the doxygen
documentation in parallel. NOTE that <code>--beta</code> should be replaced
diff --git a/ACE/examples/APG/Active_Objects/.gitignore b/ACE/examples/APG/Active_Objects/.gitignore
deleted file mode 100644
index b554655b816..00000000000
--- a/ACE/examples/APG/Active_Objects/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/AO
-/AO2
diff --git a/ACE/examples/APG/Config/.gitignore b/ACE/examples/APG/Config/.gitignore
deleted file mode 100644
index a68e3e1c0be..00000000000
--- a/ACE/examples/APG/Config/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/ARGV_Example
-/Get_Opt
-/Get_Opt_Long
diff --git a/ACE/examples/APG/Containers/.gitignore b/ACE/examples/APG/Containers/.gitignore
deleted file mode 100644
index eabc4edccc7..00000000000
--- a/ACE/examples/APG/Containers/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
-/Allocator
-/Array
-/DLList
-/Hash_Map
-/Hash_Map_Hash
-/Map_Manager
-/Map_Manager_Specialization
-/Queues
-/RB_Tree
-/RB_Tree_Functors
-/Sets
-/Stacks
diff --git a/ACE/examples/APG/Logging/.gitignore b/ACE/examples/APG/Logging/.gitignore
deleted file mode 100644
index abe0e9c6058..00000000000
--- a/ACE/examples/APG/Logging/.gitignore
+++ /dev/null
@@ -1,18 +0,0 @@
-/Change_Instance_Default
-/Change_Mask
-/Howto_Syslog
-/Simple1
-/Simple2
-/Trace_Return
-/Use_Callback
-/Use_Callback2
-/Use_LogManager
-/Use_Logger
-/Use_Logging_Server
-/Use_Logging_Strategy
-/Use_Multiple_Sinks
-/Use_Ostream
-/Use_Stderr
-/Use_Syslog
-/Wrap_Macros
-/Wrap_Macros_Alt
diff --git a/ACE/examples/APG/Misc_IPC/.gitignore b/ACE/examples/APG/Misc_IPC/.gitignore
deleted file mode 100644
index 73dc4196699..00000000000
--- a/ACE/examples/APG/Misc_IPC/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/UDP_Broadcast
-/UDP_Multicast
-/UDP_Unicast
diff --git a/ACE/examples/APG/Naming/.gitignore b/ACE/examples/APG/Naming/.gitignore
deleted file mode 100644
index dcded266d87..00000000000
--- a/ACE/examples/APG/Naming/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/Netlocal
-/Netlocal_reader
-/Nodelocal
-/Nodelocal_shared
-/Nodelocal_shared_reader
diff --git a/ACE/examples/APG/Proactor/.gitignore b/ACE/examples/APG/Proactor/.gitignore
deleted file mode 100644
index b2d1ad0aedd..00000000000
--- a/ACE/examples/APG/Proactor/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/HA_Proactive_Status
diff --git a/ACE/examples/APG/Processes/.gitignore b/ACE/examples/APG/Processes/.gitignore
deleted file mode 100644
index 9c584f698d2..00000000000
--- a/ACE/examples/APG/Processes/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/Process_Manager_Death
-/Process_Manager_Spawn
-/Process_Mutex
-/Spawn
diff --git a/ACE/examples/APG/Reactor/.gitignore b/ACE/examples/APG/Reactor/.gitignore
deleted file mode 100644
index 949279badd7..00000000000
--- a/ACE/examples/APG/Reactor/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/Client
-/HAStatus
-/HAStatus-AC
-/Reschedule
-/Schedule_Timers
-/Timer_Cancel
-/Timer_State_Data
-/Timers
diff --git a/ACE/examples/APG/Shared_Memory/.gitignore b/ACE/examples/APG/Shared_Memory/.gitignore
deleted file mode 100644
index c0380deab46..00000000000
--- a/ACE/examples/APG/Shared_Memory/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/Hash_Map
-/Malloc
-/Mem_Map
-/PI_Malloc
-/Pool_Growth
diff --git a/ACE/examples/APG/Signals/.gitignore b/ACE/examples/APG/Signals/.gitignore
deleted file mode 100644
index 136fbd6b628..00000000000
--- a/ACE/examples/APG/Signals/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/SigAction
-/SigGuard
-/SigHandler
-/SigHandlers
-/SigInfo
diff --git a/ACE/examples/APG/Sockets/.gitignore b/ACE/examples/APG/Sockets/.gitignore
deleted file mode 100644
index 1ecd53c1f22..00000000000
--- a/ACE/examples/APG/Sockets/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/Basic
-/Basic_Robust
-/Iovec
-/Server
diff --git a/ACE/examples/APG/Streams/.gitignore b/ACE/examples/APG/Streams/.gitignore
deleted file mode 100644
index 53f7185d0df..00000000000
--- a/ACE/examples/APG/Streams/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/Answerer
diff --git a/ACE/examples/APG/Svc_Config/.gitignore b/ACE/examples/APG/Svc_Config/.gitignore
deleted file mode 100644
index 1e14438ff32..00000000000
--- a/ACE/examples/APG/Svc_Config/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/HA_Configurable_Server_Dynamic
-/HA_Configurable_Server_Static
diff --git a/ACE/examples/APG/ThreadManagement/.gitignore b/ACE/examples/APG/ThreadManagement/.gitignore
deleted file mode 100644
index 5a29ec72211..00000000000
--- a/ACE/examples/APG/ThreadManagement/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/Async_Cancel
-/Coop_Cancel
-/ExitHandler
-/Pool
-/Priorities
-/Signals
-/Signals2
-/Start_Hook
-/State
diff --git a/ACE/examples/APG/ThreadPools/.gitignore b/ACE/examples/APG/ThreadPools/.gitignore
deleted file mode 100644
index 54880bf57f1..00000000000
--- a/ACE/examples/APG/ThreadPools/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/Futures
-/LF_ThreadPool
-/TP_Reactor
-/Task_ThreadPool
-/ThreadPool
diff --git a/ACE/examples/APG/ThreadSafety/.gitignore b/ACE/examples/APG/ThreadSafety/.gitignore
deleted file mode 100644
index 324e6258753..00000000000
--- a/ACE/examples/APG/ThreadSafety/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/Atomic_Op
-/Barrier
-/Mutex
-/RW_Lock
-/Semaphore
-/TSS
-/Tokens
-/Tokens_Deadlock
diff --git a/ACE/examples/APG/Threads/.gitignore b/ACE/examples/APG/Threads/.gitignore
deleted file mode 100644
index 136d1b40f19..00000000000
--- a/ACE/examples/APG/Threads/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-/Activate
-/Condition_Variables
-/Guards
-/Message_Blocks
-/Message_Queue
-/Mutexes
diff --git a/ACE/examples/APG/Timers/.gitignore b/ACE/examples/APG/Timers/.gitignore
deleted file mode 100644
index ccc432acf0c..00000000000
--- a/ACE/examples/APG/Timers/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/Alarm
-/Task
-/Timers
-/Upcall
diff --git a/ACE/examples/ASX/.gitignore b/ACE/examples/ASX/.gitignore
deleted file mode 100644
index aa2584b96c2..00000000000
--- a/ACE/examples/ASX/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/Mess
diff --git a/ACE/examples/ASX/CCM_App/.gitignore b/ACE/examples/ASX/CCM_App/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/examples/ASX/CCM_App/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/examples/ASX/Message_Queue/.gitignore b/ACE/examples/ASX/Message_Queue/.gitignore
deleted file mode 100644
index 16a39ce88c7..00000000000
--- a/ACE/examples/ASX/Message_Queue/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bounded_buffer
-/buffer_stream
-/priority_buffer
diff --git a/ACE/examples/Bounded_Packet_Relay/.gitignore b/ACE/examples/Bounded_Packet_Relay/.gitignore
deleted file mode 100644
index c4bd6fde9b7..00000000000
--- a/ACE/examples/Bounded_Packet_Relay/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bpr_thread
diff --git a/ACE/examples/C++NPv1/.gitignore b/ACE/examples/C++NPv1/.gitignore
deleted file mode 100644
index 77d7cfec4d7..00000000000
--- a/ACE/examples/C++NPv1/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/RTTPC_logging_server
-/iterative_logging_server
-/logging_client
-/ppc_logging_server
-/reactive_logging_server
-/reactive_logging_server_ex
-/tpc_logging_server
diff --git a/ACE/examples/C++NPv2/.gitignore b/ACE/examples/C++NPv2/.gitignore
deleted file mode 100644
index 51bbbf3f126..00000000000
--- a/ACE/examples/C++NPv2/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/configurable_logging_server
-/display_logfile
-/reactor_logging_server
-/select_reactor_loggin_server
-/sr_configurable_logging_server
-/tp_reactor_logging_server
-/x
diff --git a/ACE/examples/Connection/blocking/.gitignore b/ACE/examples/Connection/blocking/.gitignore
deleted file mode 100644
index e9fa5cdaf19..00000000000
--- a/ACE/examples/Connection/blocking/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/acceptor
-/connector
diff --git a/ACE/examples/Connection/misc/.gitignore b/ACE/examples/Connection/misc/.gitignore
deleted file mode 100644
index 28a98cefb1b..00000000000
--- a/ACE/examples/Connection/misc/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/handler
-/test_upipe
diff --git a/ACE/examples/Connection/non_blocking/.gitignore b/ACE/examples/Connection/non_blocking/.gitignore
deleted file mode 100644
index 3540d1e5c58..00000000000
--- a/ACE/examples/Connection/non_blocking/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/lsock_client
-/lsock_server
-/sock_client
-/sock_server
-/spipe_client
-/spipe_server
-/tli_client
-/tli_server
diff --git a/ACE/examples/DLL/.gitignore b/ACE/examples/DLL/.gitignore
deleted file mode 100644
index 9549c238ea8..00000000000
--- a/ACE/examples/DLL/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/test_dll
diff --git a/ACE/examples/Export/.gitignore b/ACE/examples/Export/.gitignore
deleted file mode 100644
index ee4c9268234..00000000000
--- a/ACE/examples/Export/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/test
diff --git a/ACE/examples/IOStream/client/.gitignore b/ACE/examples/IOStream/client/.gitignore
deleted file mode 100644
index 5b0ab5f6d96..00000000000
--- a/ACE/examples/IOStream/client/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/iostream_client
diff --git a/ACE/examples/IOStream/server/.gitignore b/ACE/examples/IOStream/server/.gitignore
deleted file mode 100644
index 90dc4ae4186..00000000000
--- a/ACE/examples/IOStream/server/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/iostream_server
diff --git a/ACE/examples/IPC_SAP/ATM_SAP/.gitignore b/ACE/examples/IPC_SAP/ATM_SAP/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/examples/IPC_SAP/ATM_SAP/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore b/ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore
deleted file mode 100644
index 4cb5a43f87f..00000000000
--- a/ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/reader
diff --git a/ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore b/ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore
deleted file mode 100644
index 85995761ae7..00000000000
--- a/ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/writer
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/.gitignore b/ACE/examples/IPC_SAP/FIFO_SAP/.gitignore
deleted file mode 100644
index 86da185f69e..00000000000
--- a/ACE/examples/IPC_SAP/FIFO_SAP/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/FIFO-Msg-client
-/FIFO-Msg-server
-/FIFO-client
-/FIFO-server
-/FIFO-test
diff --git a/ACE/examples/IPC_SAP/FILE_SAP/.gitignore b/ACE/examples/IPC_SAP/FILE_SAP/.gitignore
deleted file mode 100644
index 7149778f20e..00000000000
--- a/ACE/examples/IPC_SAP/FILE_SAP/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/client
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/.gitignore b/ACE/examples/IPC_SAP/SOCK_SAP/.gitignore
deleted file mode 100644
index 2f265d3beb0..00000000000
--- a/ACE/examples/IPC_SAP/SOCK_SAP/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/C-inclient
-/C-inserver
-/CPP-inclient
-/CPP-inserver
-/CPP-memclient
-/CPP-memserver
-/CPP-unclient
-/CPP-unserver
-/FD-unclient
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/.gitignore b/ACE/examples/IPC_SAP/SPIPE_SAP/.gitignore
deleted file mode 100644
index 9be63f13af1..00000000000
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/NPClient
-/NPServer
-/client
-/consumer_msg
-/consumer_read
-/producer_msg
-/producer_read
-/server
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/.gitignore b/ACE/examples/IPC_SAP/TLI_SAP/.gitignore
deleted file mode 100644
index 20d399edb0f..00000000000
--- a/ACE/examples/IPC_SAP/TLI_SAP/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/ATM-client
-/ATM-server
-/CPP-client
-/CPP-server
-/db-client
-/db-server
-/ftp-client
-/ftp-server
diff --git a/ACE/examples/IPC_SAP/UPIPE_SAP/.gitignore b/ACE/examples/IPC_SAP/UPIPE_SAP/.gitignore
deleted file mode 100644
index 4bfbe69e809..00000000000
--- a/ACE/examples/IPC_SAP/UPIPE_SAP/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/ex1
-/ex2
-/ex3
diff --git a/ACE/examples/Log_Msg/.gitignore b/ACE/examples/Log_Msg/.gitignore
deleted file mode 100644
index 3d189aefc37..00000000000
--- a/ACE/examples/Log_Msg/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/test_callback
-/test_log_msg
-/test_ostream
diff --git a/ACE/examples/Logger/Acceptor-server/.gitignore b/ACE/examples/Logger/Acceptor-server/.gitignore
deleted file mode 100644
index b5211414214..00000000000
--- a/ACE/examples/Logger/Acceptor-server/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/server_loggerd
diff --git a/ACE/examples/Logger/client/.gitignore b/ACE/examples/Logger/client/.gitignore
deleted file mode 100644
index 6f9eb8585e2..00000000000
--- a/ACE/examples/Logger/client/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/logging_app
diff --git a/ACE/examples/Logger/simple-server/.gitignore b/ACE/examples/Logger/simple-server/.gitignore
deleted file mode 100644
index b5211414214..00000000000
--- a/ACE/examples/Logger/simple-server/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/server_loggerd
diff --git a/ACE/examples/Mem_Map/IO-tests/.gitignore b/ACE/examples/Mem_Map/IO-tests/.gitignore
deleted file mode 100644
index d14a1483665..00000000000
--- a/ACE/examples/Mem_Map/IO-tests/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/test_io
diff --git a/ACE/examples/Mem_Map/file-reverse/.gitignore b/ACE/examples/Mem_Map/file-reverse/.gitignore
deleted file mode 100644
index 4537d71bad0..00000000000
--- a/ACE/examples/Mem_Map/file-reverse/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/file-reverse
diff --git a/ACE/examples/Misc/.gitignore b/ACE/examples/Misc/.gitignore
deleted file mode 100644
index 55e8014abe6..00000000000
--- a/ACE/examples/Misc/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/test_XtReactor1
-/test_XtReactor2
-/test_dump
-/test_get_opt
-/test_profile_timer
-/test_read_buffer
-/test_set
-/test_sstring
-/test_trace
diff --git a/ACE/examples/Naming/.gitignore b/ACE/examples/Naming/.gitignore
deleted file mode 100644
index 0ba69c7c118..00000000000
--- a/ACE/examples/Naming/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/multiple_contexts
-/non_existent
-/open
-/writers
diff --git a/ACE/examples/OS/Process/.gitignore b/ACE/examples/OS/Process/.gitignore
deleted file mode 100644
index 023c5cf00b6..00000000000
--- a/ACE/examples/OS/Process/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/imore
-/process
diff --git a/ACE/examples/Reactor/Dgram/.gitignore b/ACE/examples/Reactor/Dgram/.gitignore
deleted file mode 100644
index f9e8a652625..00000000000
--- a/ACE/examples/Reactor/Dgram/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/codgram
-/dgram
diff --git a/ACE/examples/Reactor/FIFO/.gitignore b/ACE/examples/Reactor/FIFO/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/examples/Reactor/FIFO/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/examples/Reactor/Misc/.gitignore b/ACE/examples/Reactor/Misc/.gitignore
deleted file mode 100644
index 6bc218ddd18..00000000000
--- a/ACE/examples/Reactor/Misc/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/demuxing
-/early_timeouts
-/notification
-/pingpong
-/reactors
-/signals_1
-/signals_2
-/timer_queue
diff --git a/ACE/examples/Reactor/Multicast/.gitignore b/ACE/examples/Reactor/Multicast/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/examples/Reactor/Multicast/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/examples/Reactor/Ntalker/.gitignore b/ACE/examples/Reactor/Ntalker/.gitignore
deleted file mode 100644
index fadab13047e..00000000000
--- a/ACE/examples/Reactor/Ntalker/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/ntalker
diff --git a/ACE/examples/Reactor/Proactor/.gitignore b/ACE/examples/Reactor/Proactor/.gitignore
deleted file mode 100644
index 4197d14cf21..00000000000
--- a/ACE/examples/Reactor/Proactor/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/test_cancel
-/test_end_event_loop
-/test_multiple_loops
-/test_post_completions
-/test_proactor
-/test_timeout
-/test_udp_proactor
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/.gitignore b/ACE/examples/Service_Configurator/IPC-tests/client/.gitignore
deleted file mode 100644
index 9bf3950044b..00000000000
--- a/ACE/examples/Service_Configurator/IPC-tests/client/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-/local_dgram_test
-/local_fifo_test
-/local_pipe_test
-/local_spipe_test
-/local_stream_test
-/remote_broadcast_test
-/remote_dgram_test
-/remote_service_directory_test
-/remote_stream_test
-/remote_thr_stream_test
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/.gitignore b/ACE/examples/Service_Configurator/IPC-tests/server/.gitignore
deleted file mode 100644
index e509c06d45b..00000000000
--- a/ACE/examples/Service_Configurator/IPC-tests/server/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/server_test
diff --git a/ACE/examples/Service_Configurator/Misc/.gitignore b/ACE/examples/Service_Configurator/Misc/.gitignore
deleted file mode 100644
index 95811e0016a..00000000000
--- a/ACE/examples/Service_Configurator/Misc/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/main
diff --git a/ACE/examples/Shared_Malloc/.gitignore b/ACE/examples/Shared_Malloc/.gitignore
deleted file mode 100644
index e4c4ead7539..00000000000
--- a/ACE/examples/Shared_Malloc/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/malloc
-/multiple
-/persistence
-/posind
diff --git a/ACE/examples/Shared_Memory/.gitignore b/ACE/examples/Shared_Memory/.gitignore
deleted file mode 100644
index 174a8bd2829..00000000000
--- a/ACE/examples/Shared_Memory/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/testmm
-/testsv
diff --git a/ACE/examples/Smart_Pointers/.gitignore b/ACE/examples/Smart_Pointers/.gitignore
deleted file mode 100644
index bab072fe704..00000000000
--- a/ACE/examples/Smart_Pointers/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Widget
-/gadget
diff --git a/ACE/examples/Synch/.gitignore b/ACE/examples/Synch/.gitignore
deleted file mode 100644
index 0025a50fe03..00000000000
--- a/ACE/examples/Synch/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/proc_sema
diff --git a/ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore b/ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore
deleted file mode 100644
index bffc3f5319f..00000000000
--- a/ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/mqclient
-/mqserver
-/tmqclient
-/tmqserver
diff --git a/ACE/examples/System_V_IPC/SV_Semaphores/.gitignore b/ACE/examples/System_V_IPC/SV_Semaphores/.gitignore
deleted file mode 100644
index b0a7f71865f..00000000000
--- a/ACE/examples/System_V_IPC/SV_Semaphores/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/sem1
-/sem2
diff --git a/ACE/examples/Threads/.gitignore b/ACE/examples/Threads/.gitignore
deleted file mode 100644
index 158c437e80e..00000000000
--- a/ACE/examples/Threads/.gitignore
+++ /dev/null
@@ -1,22 +0,0 @@
-/auto_event
-/barrier1
-/barrier2
-/cancel
-/future1
-/future2
-/manual_event
-/process_mutex
-/process_semaphore
-/reader_writer
-/recursive_mutex
-/task_five
-/task_four
-/task_one
-/task_three
-/task_two
-/thread_manager
-/thread_pool
-/thread_specific
-/token
-/tss1
-/tss2
diff --git a/ACE/examples/Timer_Queue/.gitignore b/ACE/examples/Timer_Queue/.gitignore
deleted file mode 100644
index 989af357134..00000000000
--- a/ACE/examples/Timer_Queue/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/Asynch_Timer_Queue_Test
-/Reactor_Timer_Queue_Test
-/Thread_Custom_Handlers_Timer_Queue_Test
-/Thread_Timer_Queue_Test
diff --git a/ACE/examples/Web_Crawler/.gitignore b/ACE/examples/Web_Crawler/.gitignore
deleted file mode 100644
index 95811e0016a..00000000000
--- a/ACE/examples/Web_Crawler/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/main
diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU
index ff3ca562280..e40c81b887f 100644
--- a/ACE/include/makeinclude/rules.lib.GNU
+++ b/ACE/include/makeinclude/rules.lib.GNU
@@ -198,7 +198,7 @@ $(VLIB): $(VLOBJS)
ifdef ibmcxx_build
# This is required to get AIX IBM C/C++ to instantiate and compile the needed
# templates.
- if test -s ./$(TEMPINCDIR)/*.C; \
+ if test -s ./$(TEMPINCDIR)/*.C; \
then \
$(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \
$(RM) dummy; \
diff --git a/ACE/protocols/ace/INet/.gitignore b/ACE/protocols/ace/INet/.gitignore
deleted file mode 100644
index e0bc4eff858..00000000000
--- a/ACE/protocols/ace/INet/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/ftp_simple_wget
-/http_simple_wget
diff --git a/ACE/protocols/examples/RMCast/Send_Msg/.gitignore b/ACE/protocols/examples/RMCast/Send_Msg/.gitignore
deleted file mode 100644
index 969d6fe3941..00000000000
--- a/ACE/protocols/examples/RMCast/Send_Msg/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/receiver
-/sender
diff --git a/ACE/protocols/examples/TMCast/Member/.gitignore b/ACE/protocols/examples/TMCast/Member/.gitignore
deleted file mode 100644
index c54316dadd2..00000000000
--- a/ACE/protocols/examples/TMCast/Member/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/member
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore b/ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore b/ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore b/ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore
deleted file mode 100644
index b6aca8272f5..00000000000
--- a/ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/SendRecv_Test
diff --git a/ACE/protocols/tests/HTBP/ping/.gitignore b/ACE/protocols/tests/HTBP/ping/.gitignore
deleted file mode 100644
index 3d33a15f751..00000000000
--- a/ACE/protocols/tests/HTBP/ping/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/client
-/server
diff --git a/ACE/protocols/tests/RMCast/.gitignore b/ACE/protocols/tests/RMCast/.gitignore
deleted file mode 100644
index 969d6fe3941..00000000000
--- a/ACE/protocols/tests/RMCast/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/receiver
-/sender
diff --git a/ACE/tests/.gitignore b/ACE/tests/.gitignore
deleted file mode 100644
index f21f84dc116..00000000000
--- a/ACE/tests/.gitignore
+++ /dev/null
@@ -1,179 +0,0 @@
-/ACE_Init_Test
-/ACE_Test
-/ARGV_Test
-/Aio_Platform_Test
-/Arg_Shifter_Test
-/Array_Map_Test
-/Atomic_Op_Test
-/Auto_Event_Test
-/Auto_IncDec_Test
-/Barrier_Test
-/Based_Pointer_Test
-/Basic_Types_Test
-/Bound_Ptr_Test
-/Buffer_Stream_Test
-/Bug_1576_Regression_Test
-/Bug_1890_Regression_Test
-/Bug_2368_Regression_Test
-/Bug_2497_Regression_Test
-/Bug_2540_Regression_Test
-/Bug_2653_Regression_Test
-/Bug_2659_Regression_Test
-/Bug_2815_Regression_Test
-/Bug_2820_Regression_Test
-/CDR_Array_Test
-/CDR_File_Test
-/CDR_Test
-/Cache_Map_Manager_Test
-/Cached_Accept_Conn_Test
-/Cached_Allocator_Test
-/Cached_Conn_Test
-/Capabilities_Test
-/Codecs_Test
-/Collection_Test
-/Config_Test
-/Conn_Test
-/DLL_Test
-/DLList_Test
-/Date_Time_Test
-/Dev_Poll_Reactor_Test
-/Dev_Poll_Reactor_Echo_Test
-/Dirent_Test
-/Dynamic_Priority_Test
-/Enum_Interfaces_Test
-/Env_Value_Test
-/FIFO_Test
-/FlReactor_Test
-/Framework_Component_Test
-/Future_Set_Test
-/Future_Test
-/Get_Opt_Test
-/Handle_Set_Test
-/Hash_Map_Bucket_Iterator_Test
-/Hash_Map_Manager_Test
-/Hash_Multi_Map_Manager_Test
-/High_Res_Timer_Test
-/INET_Addr_Test
-/INET_Addr_Test_IPV6
-/IOStream_Test
-/Integer_Truncate_Test
-/Lazy_Map_Manager_Test
-/Log_Msg_Test
-/Logging_Strategy_Test
-/MEM_Stream_Test
-/MM_Shared_Memory_Test
-/MT_Reactor_Timer_Test
-/MT_Reactor_Upcall_Test
-/MT_Reference_Counted_Event_Handler_Test
-/MT_Reference_Counted_Notify_Test
-/MT_SOCK_Test
-/Malloc_Test
-/Manual_Event_Test
-/Map_Manager_Test
-/Map_Test
-/Max_Default_Port_Test
-/Max_Default_Port_Test_IPV6
-/Mem_Map_Test
-/Memcpy_Test
-/Message_Block_Test
-/Message_Queue_Notifications_Test
-/Message_Queue_Test
-/Message_Queue_Test_Ex
-/Multicast_Test
-/Multicast_Test_IPV6
-/Multihomed_INET_Addr_Test
-/Multihomed_INET_Addr_Test_IPV6
-/Naming_Test
-/Network_Adapters_Test
-/New_Fail_Test
-/NonBlocking_Conn_Test
-/Notification_Queue_Unit_Test
-/Notify_Performance_Test
-/OS_Test
-/Object_Manager_Test
-/Obstack_Test
-/OrdMultiSet_Test
-/Pipe_Test
-/Priority_Buffer_Test
-/Priority_Reactor_Test
-/Priority_Task_Test
-/Proactor_Scatter_Gather_Test
-/Proactor_Test
-/Proactor_Test_IPV6
-/Proactor_Timer_Test
-/Process_Manager_Test
-/Process_Manual_Event_Test
-/Process_Mutex_Test
-/Process_Semaphore_Test
-/Process_Strategy_Test
-/QtReactor_Test
-/QtReactor_Test_moc.cpp
-/RB_Tree_Test
-/Reactor_Dispatch_Order_Test
-/Reactor_Exceptions_Test
-/Reactor_Fairness_Test
-/Reactor_Notification_Queue_Test
-/Reactor_Notify_Test
-/Reactor_Performance_Test
-/Reactor_Registration_Test
-/Reactor_Timer_Test
-/Reactors_Test
-/Reader_Writer_Test
-/Recursive_Condition_Bug_Test
-/Recursive_Condition_Test
-/Recursive_Mutex_Test
-/Refcounted_Auto_Ptr_Test
-/Reference_Counted_Event_Handler_Test
-/Reverse_Lock_Test
-/SOCK_Connector_Test
-/SOCK_Dgram_Bcast_Test
-/SOCK_Dgram_Test
-/SOCK_Netlink_Test
-/SOCK_SEQPACK_SCTP_Test
-/SOCK_Send_Recv_Test
-/SOCK_Send_Recv_Test_IPV6
-/SOCK_Test
-/SOCK_Test_IPv6
-/SPIPE_Test
-/SString_Test
-/SV_Shared_Memory_Test
-/Semaphore_Test
-/Sendfile_Test
-/Service_Config_Test
-/Signal_Test
-/Sigset_Ops_Test
-/Simple_Message_Block_Test
-/Svc_Handler_Test
-/TP_Reactor_Test
-/TSS_Static_Test
-/TSS_Test
-/Task_Ex_Test
-/Task_Test
-/Thread_Creation_Threshold_Test
-/Thread_Manager_Test
-/Thread_Mutex_Test
-/Thread_Pool_Reactor_Resume_Test
-/Thread_Pool_Reactor_Test
-/Thread_Pool_Test
-/Time_Service_Test
-/Time_Value_Test
-/Timeprobe_Test
-/Timer_Cancellation_Test
-/Timer_Queue_Reference_Counting_Test
-/Timer_Queue_Test
-/TkReactor_Test
-/Token_Strategy_Test
-/Tokens_Test
-/UPIPE_SAP_Test
-/UUIDTest
-/Unbounded_Set_Test
-/Unbounded_Set_Test_Ex
-/UnloadLibACE
-/Upgradable_RW_Test
-/Vector_Test
-/WFMO_Reactor_Test
-/XtAthenaReactor_Test
-/XtMotifReactor_Test
-/XtReactor_Test
-/test.reg
-/testConfig.ini
diff --git a/ACE/tests/Dev_Poll_Reactor_Echo_Test.cpp b/ACE/tests/Dev_Poll_Reactor_Echo_Test.cpp
deleted file mode 100644
index 3bc7bd09d13..00000000000
--- a/ACE/tests/Dev_Poll_Reactor_Echo_Test.cpp
+++ /dev/null
@@ -1,574 +0,0 @@
-//=============================================================================
-/**
- * @file Dev_Poll_Reactor_Echo_Test.cpp
- *
- * This test implements a simple echo server using the
- * Dev_Poll_Reactor. This forces the reactor to behave like a
- * reactor would in a typical client/server application, i.e.,
- * receive a message then send a messages.
- * @author Justin Wilson <wilsonj@ociweb.com>
- */
-//=============================================================================
-
-#include "test_config.h"
-
-#if defined (ACE_HAS_DEV_POLL) || defined (ACE_HAS_EVENT_POLL)
-
-#include "ace/OS_NS_signal.h"
-#include "ace/Reactor.h"
-#include "ace/Dev_Poll_Reactor.h"
-
-#include "ace/Acceptor.h"
-#include "ace/Connector.h"
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/SOCK_Stream.h"
-
-#include "ace/OS_NS_unistd.h"
-#include "ace/OS_NS_netdb.h"
-
-#include <queue>
-
-typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> SVC_HANDLER;
-
-// ----------------------------------------------------
-
-class Client : public SVC_HANDLER
-{
-public:
-
- Client (void);
-
- //FUZZ: disable check_for_lack_ACE_OS
- virtual int open (void * = 0);
- //FUZZ: enable check_for_lack_ACE_OS
-
- virtual int handle_output (ACE_HANDLE handle);
-
- virtual int handle_input (ACE_HANDLE handle);
-
- virtual int handle_timeout (const ACE_Time_Value &current_time,
- const void *act);
-
- virtual int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- std::string sent;
- std::string received;
-
-private:
- unsigned int call_count_;
-};
-
-
-class Server : public SVC_HANDLER
-{
-public:
-
- Server (void);
-
- virtual int handle_input (ACE_HANDLE handle);
-
- virtual int handle_output (ACE_HANDLE handle);
-
- virtual int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
-private:
- int send_i (const char* buffer,
- size_t size);
-
- std::queue<std::string*> buffer_list_;
- size_t offset_;
-};
-
-// ----------------------------------------------------
-
-Client::Client (void)
- : call_count_ (0)
-{
-}
-
-int
-Client::open (void *)
-{
- // Trigger writes on a timer.
- ACE_Time_Value delay (1, 0);
- ACE_Time_Value restart (1, 0);
- if (this->reactor ()->schedule_timer (this,
- 0,
- delay,
- restart) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to schedule client side ")
- ACE_TEXT ("timer in ACE_Dev_Poll_Reactor")),
- -1);
- }
-
- if (this->reactor ()->register_handler (this, ACE_Event_Handler::READ_MASK) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to register for reading ")
- ACE_TEXT ("in ACE_Dev_Poll_Reactor")),
- -1);
- }
-
- return 0;
-}
-
-int
-Client::handle_output (ACE_HANDLE handle)
-{
- std::string buffer = "Hello, world!";
- ssize_t bytes_sent = this->peer ().send (buffer.data (), buffer.size ());
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Client::handle_output; handle = %d")
- ACE_TEXT (" bytes sent %d\n"),
- handle,
- bytes_sent));
-
- if (bytes_sent == -1)
- {
- if (errno == EWOULDBLOCK)
- return 0; // Flow control kicked in.
- else if (errno == EPIPE || errno == ECONNRESET)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Client::handle_output; server ")
- ACE_TEXT ("closed handle %d\n"),
- this->peer ().get_handle ()));
- return -1;
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Client::handle_output")),
- -1);
- }
- else if (bytes_sent == 0)
- return -1;
- else
- this->sent.append (buffer.substr (0, bytes_sent));
-
- return -1;
-}
-
-int
-Client::handle_input (ACE_HANDLE handle)
-{
- for (;;)
- {
- char buffer[BUFSIZ];
- ssize_t bytes_read = this->peer ().recv (buffer, BUFSIZ);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Client::handle_input handle = %d bytes_read = %d\n"),
- handle, bytes_read));
-
- if (bytes_read < 0 && errno == EWOULDBLOCK)
- {
- return 0;
- }
- else if (bytes_read == 0)
- {
- // Closed.
- return -1;
- }
- else
- {
- this->received.append (buffer, bytes_read);
- }
- }
-}
-
-int
-Client::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("(%t) Expected client timeout occured at: %T\n")));
-
- if (this->call_count_ != 10)
- {
- // Register for write.
- if (this->reactor ()->register_handler (this, ACE_Event_Handler::WRITE_MASK) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to register for writing ")
- ACE_TEXT ("in ACE_Dev_Poll_Reactor")),
- -1);
- }
- this->call_count_++;
- return 0;
- }
- else
- {
- // Shutdown.
- if (this->reactor ()->end_reactor_event_loop () == 0)
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("(%t) Successful client reactor shutdown.\n")));
- else
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Failed client reactor shutdown")));
-
- // Force this service handler to be closed in either case.
- return -1;
- }
-}
-
-int
-Client::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Client::handle_close handle = %d mask = %xd\n"), handle, mask));
- return 0;
- //return SVC_HANDLER::handle_close (handle, mask);
-}
-
-// ----------------------------------------------------
-
-Server::Server (void)
- : offset_ (0)
-{
-}
-
-int
-Server::handle_input (ACE_HANDLE handle)
-{
- for (;;)
- {
- char buffer[BUFSIZ];
- ssize_t bytes_read = this->peer ().recv (buffer, BUFSIZ);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Server::handle_input handle = %d bytes_read = %d\n"),
- handle, bytes_read));
-
- if (bytes_read == -1 && errno == EWOULDBLOCK)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Server::handle_input handle = %d EWOULDBLOCK\n"),
- handle));
- return 0;
- }
- else if (bytes_read == 0)
- {
- // Closed.
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Server::handle_input handle = %d CLOSED\n"),
- handle));
- return -1;
- }
- else
- {
- if (send_i (buffer, bytes_read) == -1)
- return -1;
- }
- }
-}
-
-int
-Server::send_i (const char* buffer,
- size_t size)
-{
- if (size == 0)
- {
- return 0;
- }
-
- if (buffer_list_.empty ())
- {
- // Register for write.
- if (this->reactor ()->register_handler (this, ACE_Event_Handler::WRITE_MASK) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to register for writing ")
- ACE_TEXT ("in ACE_Dev_Poll_Reactor")),
- -1);
- }
- }
-
- buffer_list_.push (new std::string (buffer, size));
- return 0;
-}
-
-int
-Server::handle_output (ACE_HANDLE handle)
-{
- while (!buffer_list_.empty ())
- {
- size_t bytes_to_send = buffer_list_.front ()->size () - offset_;
- ssize_t bytes_sent = this->peer ().send (buffer_list_.front ()->data () + offset_, bytes_to_send);
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Server::handle_output; handle = %d")
- ACE_TEXT (" bytes sent %d\n"),
- handle, bytes_sent));
-
- if (bytes_sent == -1)
- {
- if (errno == EWOULDBLOCK)
- return 0;
- else if (errno == EPIPE || errno == ECONNRESET)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Client::handle_output; server ")
- ACE_TEXT ("closed handle %d\n"),
- this->peer ().get_handle ()));
- return -1;
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Client::handle_output")),
- -1);
- }
- else if (bytes_sent == 0)
- return -1;
- else
- {
- if (bytes_sent == static_cast<ssize_t> (bytes_to_send))
- {
- delete buffer_list_.front ();
- buffer_list_.pop ();
- offset_ = 0;
- }
- else
- {
- offset_ += bytes_sent;
- }
- }
- }
-
- return -1;
-}
-
-int
-Server::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Server::handle_close handle = %d mask = %xd\n"), handle, mask));
- return 0;
- //return SVC_HANDLER::handle_close (handle, mask);
-}
-
-// ----------------------------------------------------
-
-typedef ACE_Acceptor<Server, ACE_SOCK_ACCEPTOR> ACCEPTOR;
-typedef ACE_Connector<Client, ACE_SOCK_CONNECTOR> CONNECTOR;
-
-// ----------------------------------------------------
-
-class TestAcceptor : public ACCEPTOR
-{
-public:
-
- virtual int accept_svc_handler (Server * handler)
- {
- int result = this->ACCEPTOR::accept_svc_handler (handler);
-
- if (result != 0)
- {
- if (errno != EWOULDBLOCK)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to accept connection")));
-
- return result;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Accepted connection. ")
- ACE_TEXT ("Stream handle: <%d>\n"),
- handler->get_handle ()));
-
- return result;
- }
-
-};
-
-// ----------------------------------------------------
-
-class TestConnector : public CONNECTOR
-{
-public:
-
- virtual int connect_svc_handler (
- CONNECTOR::handler_type *& handler,
- const CONNECTOR::addr_type &remote_addr,
- ACE_Time_Value *timeout,
- const CONNECTOR::addr_type &local_addr,
- int reuse_addr,
- int flags,
- int perms)
- {
- const int result = this->CONNECTOR::connect_svc_handler (handler,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-
- if (result != 0)
- return result;
-
- ACE_TCHAR hostname[MAXHOSTNAMELEN];
- if (remote_addr.get_host_name (hostname,
- sizeof (hostname)) != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to retrieve hostname")),
- -1);
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Connected to <%s:%d>.\n"),
- hostname,
- (int) remote_addr.get_port_number ()));
-
- return result;
- }
-
- virtual int connect_svc_handler (
- CONNECTOR::handler_type *& handler,
- CONNECTOR::handler_type *& sh_copy,
- const CONNECTOR::addr_type &remote_addr,
- ACE_Time_Value *timeout,
- const CONNECTOR::addr_type &local_addr,
- int reuse_addr,
- int flags,
- int perms) {
- sh_copy = handler;
- return this->connect_svc_handler (handler, remote_addr, timeout,
- local_addr, reuse_addr, flags,
- perms);
- }
-};
-
-// ----------------------------------------------------
-
-static int
-disable_signal (int sigmin, int sigmax)
-{
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
- sigset_t signal_set;
- if (ACE_OS::sigemptyset (&signal_set) == - 1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("sigemptyset failed")));
-
- for (int i = sigmin; i <= sigmax; i++)
- ACE_OS::sigaddset (&signal_set, i);
-
- // Put the <signal_set>.
-# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- // In multi-threaded application this is not POSIX compliant
- // but let's leave it just in case.
- if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
-# else
- if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
-# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t): %p\n"),
- ACE_TEXT ("SIG_BLOCK failed")),
- -1);
-#else
- ACE_UNUSED_ARG (sigmin);
- ACE_UNUSED_ARG (sigmax);
-#endif /* ACE_LACKS_UNIX_SIGNALS */
-
- return 0;
-}
-
-// ----------------------------------------------------
-
-int
-run_main (int, ACE_TCHAR *[])
-{
- ACE_START_TEST (ACE_TEXT ("Dev_Poll_Reactor_Echo_Test"));
-
- // Make sure we ignore SIGPIPE
- disable_signal (SIGPIPE, SIGPIPE);
-
- ACE_Dev_Poll_Reactor dp_reactor;
- dp_reactor.restart (1); // Restart on EINTR
- ACE_Reactor reactor (&dp_reactor);
-
- TestConnector client;
-
- int flags = 0;
- ACE_SET_BITS (flags, ACE_NONBLOCK); // Enable non-blocking in the
- // Svc_Handlers.
-
- if (client.open (&reactor, flags) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to open client service handler")),
- -1);
-
- unsigned short port = 54678;
-
- ACE_INET_Addr addr;
-
- if (addr.set (port, INADDR_LOOPBACK) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("server_worker - ACE_INET_Addr::set")),
- -1);
-
- TestAcceptor server;
-
- if (server.open (addr, &reactor, flags) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to open server service handler")),
- -1);
-
- Client *client_handler = 0;
-
- if (client.connect (client_handler, addr) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Unable to connect to server")),
- -1);
-
- if (reactor.run_reactor_event_loop () != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Error when running client ")
- ACE_TEXT ("reactor event loop")),
- -1);
-
- ACE_DEBUG((LM_DEBUG, "sent: %C\n", client_handler->sent.c_str ()));
- ACE_DEBUG((LM_DEBUG, "received: %C\n", client_handler->received.c_str ()));
-
- ACE_TEST_ASSERT (client_handler->sent == client_handler->received);
-
- ACE_END_TEST;
-
- return 0;
-}
-
-#else
-
-int
-run_main (int, ACE_TCHAR *[])
-{
- ACE_START_TEST (ACE_TEXT ("Dev_Poll_Reactor_Echo_Test"));
- ACE_ERROR ((LM_INFO,
- ACE_TEXT ("Dev Poll and Event Poll are not supported ")
- ACE_TEXT ("on this platform\n")));
- ACE_END_TEST;
- return 0;
-}
-
-#endif /* ACE_HAS_DEV_POLL || ACE_HAS_EVENT_POLL */
diff --git a/ACE/tests/INET_Addr_Test.cpp b/ACE/tests/INET_Addr_Test.cpp
index 4743b2894f3..9e2cfc7a4a9 100644
--- a/ACE/tests/INET_Addr_Test.cpp
+++ b/ACE/tests/INET_Addr_Test.cpp
@@ -20,7 +20,7 @@
// Make sure that ACE_Addr::addr_type_ is the same
// as the family of the inet_addr_.
-int check_type_consistency (const ACE_INET_Addr &addr)
+static int check_type_consistency (const ACE_INET_Addr &addr)
{
int family = -1;
@@ -49,6 +49,52 @@ int check_type_consistency (const ACE_INET_Addr &addr)
return 0;
}
+static bool test_multiple (void)
+{
+
+ bool success = true;
+
+ // Check the behavior when there are multiple addresses assigned to a name.
+ // The NTP pool should always return multiples, though always different.
+ ACE_INET_Addr ntp;
+ if (ntp.set (123, ACE_TEXT ("pool.ntp.org")) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("pool.ntp.org")));
+ return false;
+ }
+ size_t count = 0;
+ ACE_TCHAR addr_string[256];
+ do
+ {
+ ++count; // If lookup succeeded, there's at least one
+ ntp.addr_to_string (addr_string, sizeof (addr_string));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("IPv4 %B: %s\n"), count, addr_string));
+ }
+ while (ntp.next ());
+ success = count > 1;
+
+#if defined (ACE_HAS_IPV6)
+ ACE_INET_Addr ntp6;
+ if (ntp6.set (123, ACE_TEXT ("2.pool.ntp.org"), 1, AF_INET6) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("2.pool.ntp.org")));
+ return false;
+ }
+ count = 0;
+ do
+ {
+ ++count; // If lookup succeeded, there's at least one
+ ntp6.addr_to_string (addr_string, sizeof (addr_string));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("IPv6 %B: %s\n"), count, addr_string));
+ }
+ while (ntp6.next ());
+ if (count <= 1)
+ success = false;
+#endif /* ACE_HAS_IPV6 */
+
+ return success;
+}
+
struct Address {
const char* name;
bool loopback;
@@ -273,6 +319,9 @@ int run_main (int, ACE_TCHAR *[])
status = 1;
}
+ if (!test_multiple ())
+ status = 1;
+
ACE_END_TEST;
return status;
diff --git a/ACE/tests/SSL/.gitignore b/ACE/tests/SSL/.gitignore
deleted file mode 100644
index 05511861d36..00000000000
--- a/ACE/tests/SSL/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/SSL_Asynch_Stream_Test
-/Thread_Pool_Reactor_SSL_Test
diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst
index c009eb8c511..8e4bb4a230d 100644
--- a/ACE/tests/run_test.lst
+++ b/ACE/tests/run_test.lst
@@ -114,7 +114,6 @@ DLL_Test: !STATIC Linux
DLList_Test: !ACE_FOR_TAO
Date_Time_Test: !ACE_FOR_TAO
Dev_Poll_Reactor_Test: !nsk !ST
-Dev_Poll_Reactor_Echo_Test: !nsk !ST
Dirent_Test: !VxWorks_RTP !LabVIEW_RT
Dynamic_Priority_Test
Dynamic_Test
diff --git a/ACE/tests/tests.mpc b/ACE/tests/tests.mpc
index 0250deeb75d..adb95592aa6 100644
--- a/ACE/tests/tests.mpc
+++ b/ACE/tests/tests.mpc
@@ -853,13 +853,6 @@ project(Dev Poll Reactor Test) : acetest {
}
}
-project(Dev Poll Reactor Echo Test) : acetest {
- exename = Dev_Poll_Reactor_Echo_Test
- Source_Files {
- Dev_Poll_Reactor_Echo_Test.cpp
- }
-}
-
project(Dirent Test) : acetest {
exename = Dirent_Test