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, 1211 insertions, 241 deletions
diff --git a/ACE/NEWS b/ACE/NEWS
index 2e2cb9b4628..ead8d8db44f 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -8,16 +8,6 @@ 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 9bf45ceb24e..87d78be7197 100644
--- a/ACE/ace/Dev_Poll_Reactor.cpp
+++ b/ACE/ace/Dev_Poll_Reactor.cpp
@@ -1320,7 +1320,22 @@ 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);
+ {
+ 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 */
+ }
}
}
// Scope close handles eh ref count decrement, if needed.
diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp
index 96e26b93dcf..65722e5c4d6 100644
--- a/ACE/ace/INET_Addr.cpp
+++ b/ACE/ace/INET_Addr.cpp
@@ -152,31 +152,11 @@ 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_i ();
+ this->reset ();
}
ACE_INET_Addr &
@@ -203,8 +183,6 @@ 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;
@@ -295,7 +273,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_i ();
+ this->reset ();
this->set (address, address_family);
}
@@ -304,7 +282,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_i ();
+ this->reset ();
this->set (address, address_family);
}
@@ -316,7 +294,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_i ();
+ this->reset ();
this->set (sa);
}
@@ -383,6 +361,12 @@ 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)
{
@@ -410,35 +394,16 @@ ACE_INET_Addr::set (u_short port_number,
return -1;
# else
struct addrinfo hints;
- struct addrinfo *res = 0, *curr = 0;
+ struct addrinfo *res = 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);
- 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 ();
+ this->set_addr (res->ai_addr,
+ ACE_Utils::truncate_cast<int>(res->ai_addrlen));
+ this->set_port_number (port_number, encode);
::freeaddrinfo (res);
return 0;
}
@@ -464,40 +429,34 @@ 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
{
- this->inet_addrs_iter_ = this->inet_addrs_.end ();
- return this->set (port_number,
- encode ? ACE_NTOHL (addrv4.s_addr) : addrv4.s_addr,
- encode);
- }
-
- hostent hentry;
- ACE_HOSTENT_DATA buf;
- int h_error = 0; // Not the same as errno!
+ hostent hentry;
+ ACE_HOSTENT_DATA buf;
+ int h_error = 0; // Not the same as errno!
- hostent *hp = ACE_OS::gethostbyname_r (host_name, &hentry,
- buf, &h_error);
- if (hp == 0)
- {
- errno = h_error;
- return -1;
- }
+ hostent *hp = ACE_OS::gethostbyname_r (host_name, &hentry,
+ buf, &h_error);
+ if (hp == 0)
+ errno = h_error;
- 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);
+ 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);
+ }
}
- this->reset ();
- return 0;
}
// Helper function to get a port number from a port name.
@@ -673,18 +632,17 @@ ACE_INET_Addr::get_addr (void) const
}
void
-ACE_INET_Addr::set_addr (const void *addr, int len)
+ACE_INET_Addr::set_addr (void *addr, int len)
{
this->set_addr (addr, len, 0);
}
// Set a pointer to the address.
void
-ACE_INET_Addr::set_addr (const void *addr, int /* len */, int map)
+ACE_INET_Addr::set_addr (void *addr, int /* len */, int map)
{
ACE_TRACE ("ACE_INET_Addr::set_addr");
- const struct sockaddr_in *getfamily =
- static_cast<const struct sockaddr_in *> (addr);
+ struct sockaddr_in *getfamily = static_cast<struct sockaddr_in *> (addr);
if (getfamily->sin_family == AF_INET)
{
@@ -702,8 +660,7 @@ ACE_INET_Addr::set_addr (const void *addr, int /* len */, int map)
#if defined (ACE_HAS_IPV6)
else if (getfamily->sin_family == AF_INET6)
{
- const struct sockaddr_in6 *in6 =
- static_cast<const struct sockaddr_in6*> (addr);
+ struct sockaddr_in6 *in6 = static_cast<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),
@@ -719,7 +676,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_i ();
+ this->reset ();
this->set (addr, len);
}
@@ -730,7 +687,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_i ();
+ this->reset ();
if (this->set (port_number, inet_address) == -1)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
@@ -746,7 +703,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_i ();
+ this->reset ();
if (this->set (port_name,
host_name,
protocol) == -1)
@@ -761,7 +718,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_i ();
+ this->reset ();
if (this->set (port_name,
host_name,
protocol) == -1)
@@ -778,7 +735,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_i ();
+ this->reset ();
if (this->set (port_name,
ACE_HTONL (inet_address),
protocol) == -1)
@@ -793,7 +750,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_i ();
+ this->reset ();
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 c1a40553754..94528891bbd 100644
--- a/ACE/ace/INET_Addr.h
+++ b/ACE/ace/INET_Addr.h
@@ -19,7 +19,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Addr.h"
-#include <vector>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -28,10 +27,6 @@ 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
{
@@ -208,14 +203,14 @@ public:
int get_addr_size(void) const;
/// Set a pointer to the address.
- virtual void set_addr (const void *, int len);
+ virtual void set_addr (void *, int len);
/// Set a pointer to the address.
- virtual void set_addr (const void *, int len, int map);
+ virtual void set_addr (void *, int len, int map);
/**
* Transform the current ACE_INET_Addr address into string format.
- * If @a ipaddr_format is true this produces "ip-number:port-number"
+ * If @a ipaddr_format is ttrue 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
@@ -366,13 +361,6 @@ 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;
@@ -390,22 +378,18 @@ private:
int determine_type (void) const;
/// Initialize underlying inet_addr_ to default values
- void reset_i (void);
+ void reset (void);
/// Underlying representation.
/// This union uses the knowledge that the two structures share the
/// first member, sa_family (as all sockaddr structures do).
- union ip46
+ union
{
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 2532bb9cb6f..6cc14c97558 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_i (void)
+ACE_INET_Addr::reset (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 1acc40c1053..a734beb1ae2 100644
--- a/ACE/ace/Multihomed_INET_Addr.cpp
+++ b/ACE/ace/Multihomed_INET_Addr.cpp
@@ -243,40 +243,21 @@ void
ACE_Multihomed_INET_Addr::get_addresses(sockaddr_in *addrs,
size_t size) const
{
- 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 primary address to the first slot of the user-supplied array
+ if (size > 0) {
+ addrs[0] = *reinterpret_cast<sockaddr_in*> (this->get_addr ());
+ }
// Copy secondary addresses to remaining slots of the user-supplied
// array. Secondary address [i] is copied to slot [i+1]
- 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;
- }
- }
+
+ 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());
+ }
}
#if defined (ACE_HAS_IPV6)
@@ -284,40 +265,22 @@ void
ACE_Multihomed_INET_Addr::get_addresses(sockaddr_in6 *addrs,
size_t size) const
{
- 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)
+ // Copy primary address to the first slot of the user-supplied array
+ if (size > 0)
{
- sockaddr_in6 *in6 = reinterpret_cast<sockaddr_in6*> (me.get_addr ());
- if (in6->sin6_family == AF_INET6)
- {
- addrs[i] = *in6;
- ++i;
- }
- if (!me.next ())
- break;
+ addrs[0] = *reinterpret_cast<sockaddr_in6*> (this->get_addr ());
}
// Copy secondary addresses to remaining slots of the user-supplied
// array. Secondary address [i] is copied to slot [i+1]
- for (size_t j = 0; j < this->secondaries_.size (); ++j)
+ size_t top =
+ size - 1 < this->secondaries_.size() ?
+ size - 1 : this->secondaries_.size();
+
+ for (size_t i = 0; i < top; ++i)
{
- 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;
- }
+ addrs[i+1] =
+ *reinterpret_cast<sockaddr_in6*> (this->secondaries_[i].get_addr());
}
}
#endif /* ACE_HAS_IPV6 */
diff --git a/ACE/apps/Gateway/Gateway/.gitignore b/ACE/apps/Gateway/Gateway/.gitignore
new file mode 100644
index 00000000000..e41fe225306
--- /dev/null
+++ b/ACE/apps/Gateway/Gateway/.gitignore
@@ -0,0 +1 @@
+/gatewayd
diff --git a/ACE/apps/Gateway/Peer/.gitignore b/ACE/apps/Gateway/Peer/.gitignore
new file mode 100644
index 00000000000..0609af732f2
--- /dev/null
+++ b/ACE/apps/Gateway/Peer/.gitignore
@@ -0,0 +1 @@
+/peerd
diff --git a/ACE/apps/JAWS/server/.gitignore b/ACE/apps/JAWS/server/.gitignore
new file mode 100644
index 00000000000..95811e0016a
--- /dev/null
+++ b/ACE/apps/JAWS/server/.gitignore
@@ -0,0 +1 @@
+/main
diff --git a/ACE/apps/drwho/.gitignore b/ACE/apps/drwho/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/apps/drwho/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/apps/gperf/src/.gitignore b/ACE/apps/gperf/src/.gitignore
new file mode 100644
index 00000000000..45889fb918c
--- /dev/null
+++ b/ACE/apps/gperf/src/.gitignore
@@ -0,0 +1,2 @@
+/ace_gperf
+/gperf
diff --git a/ACE/apps/gperf/tests/.gitignore b/ACE/apps/gperf/tests/.gitignore
new file mode 100644
index 00000000000..f5739620364
--- /dev/null
+++ b/ACE/apps/gperf/tests/.gitignore
@@ -0,0 +1,29 @@
+/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
new file mode 100644
index 00000000000..e03d21d2d92
--- /dev/null
+++ b/ACE/apps/mkcsregdb/.gitignore
@@ -0,0 +1 @@
+/mkcsregdb
diff --git a/ACE/apps/soreduce/.gitignore b/ACE/apps/soreduce/.gitignore
new file mode 100644
index 00000000000..668fb90c2e3
--- /dev/null
+++ b/ACE/apps/soreduce/.gitignore
@@ -0,0 +1 @@
+/soreduce
diff --git a/ACE/bin/.gitignore b/ACE/bin/.gitignore
new file mode 100644
index 00000000000..1ac82dfd0ba
--- /dev/null
+++ b/ACE/bin/.gitignore
@@ -0,0 +1,9 @@
+/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 d7e63a1ed83..ba664a183c2 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,$(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)' .
+ '$(filter-out all depend,$(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 9c58750ed4c..c3ba27e384f 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"])
+ "ACE_wrappers", ["TAO", ".gitignore"])
# 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"])
+ "ACE_wrappers/TAO", ["CIAO", "DAnCE", ".gitignore"])
# 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", [])
+ "ACE_wrappers/TAO/DAnCE", [".gitignore"])
# 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", [])
+ "ACE_wrappers/TAO/CIAO", [".gitignore"])
# 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 6322f2c9401..f5fa8a33f0f 100644
--- a/ACE/bin/valgrind.supp
+++ b/ACE/bin/valgrind.supp
@@ -35,6 +35,13 @@
}
{
+ <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 574e5639634..ef38733e838 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 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 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>
</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
new file mode 100644
index 00000000000..b554655b816
--- /dev/null
+++ b/ACE/examples/APG/Active_Objects/.gitignore
@@ -0,0 +1,2 @@
+/AO
+/AO2
diff --git a/ACE/examples/APG/Config/.gitignore b/ACE/examples/APG/Config/.gitignore
new file mode 100644
index 00000000000..a68e3e1c0be
--- /dev/null
+++ b/ACE/examples/APG/Config/.gitignore
@@ -0,0 +1,3 @@
+/ARGV_Example
+/Get_Opt
+/Get_Opt_Long
diff --git a/ACE/examples/APG/Containers/.gitignore b/ACE/examples/APG/Containers/.gitignore
new file mode 100644
index 00000000000..eabc4edccc7
--- /dev/null
+++ b/ACE/examples/APG/Containers/.gitignore
@@ -0,0 +1,12 @@
+/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
new file mode 100644
index 00000000000..abe0e9c6058
--- /dev/null
+++ b/ACE/examples/APG/Logging/.gitignore
@@ -0,0 +1,18 @@
+/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
new file mode 100644
index 00000000000..73dc4196699
--- /dev/null
+++ b/ACE/examples/APG/Misc_IPC/.gitignore
@@ -0,0 +1,3 @@
+/UDP_Broadcast
+/UDP_Multicast
+/UDP_Unicast
diff --git a/ACE/examples/APG/Naming/.gitignore b/ACE/examples/APG/Naming/.gitignore
new file mode 100644
index 00000000000..dcded266d87
--- /dev/null
+++ b/ACE/examples/APG/Naming/.gitignore
@@ -0,0 +1,5 @@
+/Netlocal
+/Netlocal_reader
+/Nodelocal
+/Nodelocal_shared
+/Nodelocal_shared_reader
diff --git a/ACE/examples/APG/Proactor/.gitignore b/ACE/examples/APG/Proactor/.gitignore
new file mode 100644
index 00000000000..b2d1ad0aedd
--- /dev/null
+++ b/ACE/examples/APG/Proactor/.gitignore
@@ -0,0 +1 @@
+/HA_Proactive_Status
diff --git a/ACE/examples/APG/Processes/.gitignore b/ACE/examples/APG/Processes/.gitignore
new file mode 100644
index 00000000000..9c584f698d2
--- /dev/null
+++ b/ACE/examples/APG/Processes/.gitignore
@@ -0,0 +1,4 @@
+/Process_Manager_Death
+/Process_Manager_Spawn
+/Process_Mutex
+/Spawn
diff --git a/ACE/examples/APG/Reactor/.gitignore b/ACE/examples/APG/Reactor/.gitignore
new file mode 100644
index 00000000000..949279badd7
--- /dev/null
+++ b/ACE/examples/APG/Reactor/.gitignore
@@ -0,0 +1,8 @@
+/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
new file mode 100644
index 00000000000..c0380deab46
--- /dev/null
+++ b/ACE/examples/APG/Shared_Memory/.gitignore
@@ -0,0 +1,5 @@
+/Hash_Map
+/Malloc
+/Mem_Map
+/PI_Malloc
+/Pool_Growth
diff --git a/ACE/examples/APG/Signals/.gitignore b/ACE/examples/APG/Signals/.gitignore
new file mode 100644
index 00000000000..136fbd6b628
--- /dev/null
+++ b/ACE/examples/APG/Signals/.gitignore
@@ -0,0 +1,5 @@
+/SigAction
+/SigGuard
+/SigHandler
+/SigHandlers
+/SigInfo
diff --git a/ACE/examples/APG/Sockets/.gitignore b/ACE/examples/APG/Sockets/.gitignore
new file mode 100644
index 00000000000..1ecd53c1f22
--- /dev/null
+++ b/ACE/examples/APG/Sockets/.gitignore
@@ -0,0 +1,4 @@
+/Basic
+/Basic_Robust
+/Iovec
+/Server
diff --git a/ACE/examples/APG/Streams/.gitignore b/ACE/examples/APG/Streams/.gitignore
new file mode 100644
index 00000000000..53f7185d0df
--- /dev/null
+++ b/ACE/examples/APG/Streams/.gitignore
@@ -0,0 +1 @@
+/Answerer
diff --git a/ACE/examples/APG/Svc_Config/.gitignore b/ACE/examples/APG/Svc_Config/.gitignore
new file mode 100644
index 00000000000..1e14438ff32
--- /dev/null
+++ b/ACE/examples/APG/Svc_Config/.gitignore
@@ -0,0 +1,2 @@
+/HA_Configurable_Server_Dynamic
+/HA_Configurable_Server_Static
diff --git a/ACE/examples/APG/ThreadManagement/.gitignore b/ACE/examples/APG/ThreadManagement/.gitignore
new file mode 100644
index 00000000000..5a29ec72211
--- /dev/null
+++ b/ACE/examples/APG/ThreadManagement/.gitignore
@@ -0,0 +1,9 @@
+/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
new file mode 100644
index 00000000000..54880bf57f1
--- /dev/null
+++ b/ACE/examples/APG/ThreadPools/.gitignore
@@ -0,0 +1,5 @@
+/Futures
+/LF_ThreadPool
+/TP_Reactor
+/Task_ThreadPool
+/ThreadPool
diff --git a/ACE/examples/APG/ThreadSafety/.gitignore b/ACE/examples/APG/ThreadSafety/.gitignore
new file mode 100644
index 00000000000..324e6258753
--- /dev/null
+++ b/ACE/examples/APG/ThreadSafety/.gitignore
@@ -0,0 +1,8 @@
+/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
new file mode 100644
index 00000000000..136d1b40f19
--- /dev/null
+++ b/ACE/examples/APG/Threads/.gitignore
@@ -0,0 +1,6 @@
+/Activate
+/Condition_Variables
+/Guards
+/Message_Blocks
+/Message_Queue
+/Mutexes
diff --git a/ACE/examples/APG/Timers/.gitignore b/ACE/examples/APG/Timers/.gitignore
new file mode 100644
index 00000000000..ccc432acf0c
--- /dev/null
+++ b/ACE/examples/APG/Timers/.gitignore
@@ -0,0 +1,4 @@
+/Alarm
+/Task
+/Timers
+/Upcall
diff --git a/ACE/examples/ASX/.gitignore b/ACE/examples/ASX/.gitignore
new file mode 100644
index 00000000000..aa2584b96c2
--- /dev/null
+++ b/ACE/examples/ASX/.gitignore
@@ -0,0 +1 @@
+/Mess
diff --git a/ACE/examples/ASX/CCM_App/.gitignore b/ACE/examples/ASX/CCM_App/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/examples/ASX/CCM_App/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/examples/ASX/Message_Queue/.gitignore b/ACE/examples/ASX/Message_Queue/.gitignore
new file mode 100644
index 00000000000..16a39ce88c7
--- /dev/null
+++ b/ACE/examples/ASX/Message_Queue/.gitignore
@@ -0,0 +1,3 @@
+/bounded_buffer
+/buffer_stream
+/priority_buffer
diff --git a/ACE/examples/Bounded_Packet_Relay/.gitignore b/ACE/examples/Bounded_Packet_Relay/.gitignore
new file mode 100644
index 00000000000..c4bd6fde9b7
--- /dev/null
+++ b/ACE/examples/Bounded_Packet_Relay/.gitignore
@@ -0,0 +1 @@
+/bpr_thread
diff --git a/ACE/examples/C++NPv1/.gitignore b/ACE/examples/C++NPv1/.gitignore
new file mode 100644
index 00000000000..77d7cfec4d7
--- /dev/null
+++ b/ACE/examples/C++NPv1/.gitignore
@@ -0,0 +1,7 @@
+/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
new file mode 100644
index 00000000000..51bbbf3f126
--- /dev/null
+++ b/ACE/examples/C++NPv2/.gitignore
@@ -0,0 +1,7 @@
+/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
new file mode 100644
index 00000000000..e9fa5cdaf19
--- /dev/null
+++ b/ACE/examples/Connection/blocking/.gitignore
@@ -0,0 +1,2 @@
+/acceptor
+/connector
diff --git a/ACE/examples/Connection/misc/.gitignore b/ACE/examples/Connection/misc/.gitignore
new file mode 100644
index 00000000000..28a98cefb1b
--- /dev/null
+++ b/ACE/examples/Connection/misc/.gitignore
@@ -0,0 +1,2 @@
+/handler
+/test_upipe
diff --git a/ACE/examples/Connection/non_blocking/.gitignore b/ACE/examples/Connection/non_blocking/.gitignore
new file mode 100644
index 00000000000..3540d1e5c58
--- /dev/null
+++ b/ACE/examples/Connection/non_blocking/.gitignore
@@ -0,0 +1,8 @@
+/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
new file mode 100644
index 00000000000..9549c238ea8
--- /dev/null
+++ b/ACE/examples/DLL/.gitignore
@@ -0,0 +1 @@
+/test_dll
diff --git a/ACE/examples/Export/.gitignore b/ACE/examples/Export/.gitignore
new file mode 100644
index 00000000000..ee4c9268234
--- /dev/null
+++ b/ACE/examples/Export/.gitignore
@@ -0,0 +1 @@
+/test
diff --git a/ACE/examples/IOStream/client/.gitignore b/ACE/examples/IOStream/client/.gitignore
new file mode 100644
index 00000000000..5b0ab5f6d96
--- /dev/null
+++ b/ACE/examples/IOStream/client/.gitignore
@@ -0,0 +1 @@
+/iostream_client
diff --git a/ACE/examples/IOStream/server/.gitignore b/ACE/examples/IOStream/server/.gitignore
new file mode 100644
index 00000000000..90dc4ae4186
--- /dev/null
+++ b/ACE/examples/IOStream/server/.gitignore
@@ -0,0 +1 @@
+/iostream_server
diff --git a/ACE/examples/IPC_SAP/ATM_SAP/.gitignore b/ACE/examples/IPC_SAP/ATM_SAP/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/examples/IPC_SAP/ATM_SAP/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore b/ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore
new file mode 100644
index 00000000000..4cb5a43f87f
--- /dev/null
+++ b/ACE/examples/IPC_SAP/DEV_SAP/reader/.gitignore
@@ -0,0 +1 @@
+/reader
diff --git a/ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore b/ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore
new file mode 100644
index 00000000000..85995761ae7
--- /dev/null
+++ b/ACE/examples/IPC_SAP/DEV_SAP/writer/.gitignore
@@ -0,0 +1 @@
+/writer
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/.gitignore b/ACE/examples/IPC_SAP/FIFO_SAP/.gitignore
new file mode 100644
index 00000000000..86da185f69e
--- /dev/null
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/.gitignore
@@ -0,0 +1,5 @@
+/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
new file mode 100644
index 00000000000..7149778f20e
--- /dev/null
+++ b/ACE/examples/IPC_SAP/FILE_SAP/.gitignore
@@ -0,0 +1 @@
+/client
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/.gitignore b/ACE/examples/IPC_SAP/SOCK_SAP/.gitignore
new file mode 100644
index 00000000000..2f265d3beb0
--- /dev/null
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/.gitignore
@@ -0,0 +1,9 @@
+/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
new file mode 100644
index 00000000000..9be63f13af1
--- /dev/null
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/.gitignore
@@ -0,0 +1,8 @@
+/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
new file mode 100644
index 00000000000..20d399edb0f
--- /dev/null
+++ b/ACE/examples/IPC_SAP/TLI_SAP/.gitignore
@@ -0,0 +1,8 @@
+/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
new file mode 100644
index 00000000000..4bfbe69e809
--- /dev/null
+++ b/ACE/examples/IPC_SAP/UPIPE_SAP/.gitignore
@@ -0,0 +1,3 @@
+/ex1
+/ex2
+/ex3
diff --git a/ACE/examples/Log_Msg/.gitignore b/ACE/examples/Log_Msg/.gitignore
new file mode 100644
index 00000000000..3d189aefc37
--- /dev/null
+++ b/ACE/examples/Log_Msg/.gitignore
@@ -0,0 +1,3 @@
+/test_callback
+/test_log_msg
+/test_ostream
diff --git a/ACE/examples/Logger/Acceptor-server/.gitignore b/ACE/examples/Logger/Acceptor-server/.gitignore
new file mode 100644
index 00000000000..b5211414214
--- /dev/null
+++ b/ACE/examples/Logger/Acceptor-server/.gitignore
@@ -0,0 +1 @@
+/server_loggerd
diff --git a/ACE/examples/Logger/client/.gitignore b/ACE/examples/Logger/client/.gitignore
new file mode 100644
index 00000000000..6f9eb8585e2
--- /dev/null
+++ b/ACE/examples/Logger/client/.gitignore
@@ -0,0 +1 @@
+/logging_app
diff --git a/ACE/examples/Logger/simple-server/.gitignore b/ACE/examples/Logger/simple-server/.gitignore
new file mode 100644
index 00000000000..b5211414214
--- /dev/null
+++ b/ACE/examples/Logger/simple-server/.gitignore
@@ -0,0 +1 @@
+/server_loggerd
diff --git a/ACE/examples/Mem_Map/IO-tests/.gitignore b/ACE/examples/Mem_Map/IO-tests/.gitignore
new file mode 100644
index 00000000000..d14a1483665
--- /dev/null
+++ b/ACE/examples/Mem_Map/IO-tests/.gitignore
@@ -0,0 +1 @@
+/test_io
diff --git a/ACE/examples/Mem_Map/file-reverse/.gitignore b/ACE/examples/Mem_Map/file-reverse/.gitignore
new file mode 100644
index 00000000000..4537d71bad0
--- /dev/null
+++ b/ACE/examples/Mem_Map/file-reverse/.gitignore
@@ -0,0 +1 @@
+/file-reverse
diff --git a/ACE/examples/Misc/.gitignore b/ACE/examples/Misc/.gitignore
new file mode 100644
index 00000000000..55e8014abe6
--- /dev/null
+++ b/ACE/examples/Misc/.gitignore
@@ -0,0 +1,9 @@
+/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
new file mode 100644
index 00000000000..0ba69c7c118
--- /dev/null
+++ b/ACE/examples/Naming/.gitignore
@@ -0,0 +1,4 @@
+/multiple_contexts
+/non_existent
+/open
+/writers
diff --git a/ACE/examples/OS/Process/.gitignore b/ACE/examples/OS/Process/.gitignore
new file mode 100644
index 00000000000..023c5cf00b6
--- /dev/null
+++ b/ACE/examples/OS/Process/.gitignore
@@ -0,0 +1,2 @@
+/imore
+/process
diff --git a/ACE/examples/Reactor/Dgram/.gitignore b/ACE/examples/Reactor/Dgram/.gitignore
new file mode 100644
index 00000000000..f9e8a652625
--- /dev/null
+++ b/ACE/examples/Reactor/Dgram/.gitignore
@@ -0,0 +1,2 @@
+/codgram
+/dgram
diff --git a/ACE/examples/Reactor/FIFO/.gitignore b/ACE/examples/Reactor/FIFO/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/examples/Reactor/FIFO/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/examples/Reactor/Misc/.gitignore b/ACE/examples/Reactor/Misc/.gitignore
new file mode 100644
index 00000000000..6bc218ddd18
--- /dev/null
+++ b/ACE/examples/Reactor/Misc/.gitignore
@@ -0,0 +1,8 @@
+/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
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/examples/Reactor/Multicast/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/examples/Reactor/Ntalker/.gitignore b/ACE/examples/Reactor/Ntalker/.gitignore
new file mode 100644
index 00000000000..fadab13047e
--- /dev/null
+++ b/ACE/examples/Reactor/Ntalker/.gitignore
@@ -0,0 +1 @@
+/ntalker
diff --git a/ACE/examples/Reactor/Proactor/.gitignore b/ACE/examples/Reactor/Proactor/.gitignore
new file mode 100644
index 00000000000..4197d14cf21
--- /dev/null
+++ b/ACE/examples/Reactor/Proactor/.gitignore
@@ -0,0 +1,7 @@
+/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
new file mode 100644
index 00000000000..9bf3950044b
--- /dev/null
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/.gitignore
@@ -0,0 +1,10 @@
+/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
new file mode 100644
index 00000000000..e509c06d45b
--- /dev/null
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/.gitignore
@@ -0,0 +1 @@
+/server_test
diff --git a/ACE/examples/Service_Configurator/Misc/.gitignore b/ACE/examples/Service_Configurator/Misc/.gitignore
new file mode 100644
index 00000000000..95811e0016a
--- /dev/null
+++ b/ACE/examples/Service_Configurator/Misc/.gitignore
@@ -0,0 +1 @@
+/main
diff --git a/ACE/examples/Shared_Malloc/.gitignore b/ACE/examples/Shared_Malloc/.gitignore
new file mode 100644
index 00000000000..e4c4ead7539
--- /dev/null
+++ b/ACE/examples/Shared_Malloc/.gitignore
@@ -0,0 +1,4 @@
+/malloc
+/multiple
+/persistence
+/posind
diff --git a/ACE/examples/Shared_Memory/.gitignore b/ACE/examples/Shared_Memory/.gitignore
new file mode 100644
index 00000000000..174a8bd2829
--- /dev/null
+++ b/ACE/examples/Shared_Memory/.gitignore
@@ -0,0 +1,2 @@
+/testmm
+/testsv
diff --git a/ACE/examples/Smart_Pointers/.gitignore b/ACE/examples/Smart_Pointers/.gitignore
new file mode 100644
index 00000000000..bab072fe704
--- /dev/null
+++ b/ACE/examples/Smart_Pointers/.gitignore
@@ -0,0 +1,2 @@
+/Widget
+/gadget
diff --git a/ACE/examples/Synch/.gitignore b/ACE/examples/Synch/.gitignore
new file mode 100644
index 00000000000..0025a50fe03
--- /dev/null
+++ b/ACE/examples/Synch/.gitignore
@@ -0,0 +1 @@
+/proc_sema
diff --git a/ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore b/ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore
new file mode 100644
index 00000000000..bffc3f5319f
--- /dev/null
+++ b/ACE/examples/System_V_IPC/SV_Message_Queues/.gitignore
@@ -0,0 +1,4 @@
+/mqclient
+/mqserver
+/tmqclient
+/tmqserver
diff --git a/ACE/examples/System_V_IPC/SV_Semaphores/.gitignore b/ACE/examples/System_V_IPC/SV_Semaphores/.gitignore
new file mode 100644
index 00000000000..b0a7f71865f
--- /dev/null
+++ b/ACE/examples/System_V_IPC/SV_Semaphores/.gitignore
@@ -0,0 +1,2 @@
+/sem1
+/sem2
diff --git a/ACE/examples/Threads/.gitignore b/ACE/examples/Threads/.gitignore
new file mode 100644
index 00000000000..158c437e80e
--- /dev/null
+++ b/ACE/examples/Threads/.gitignore
@@ -0,0 +1,22 @@
+/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
new file mode 100644
index 00000000000..989af357134
--- /dev/null
+++ b/ACE/examples/Timer_Queue/.gitignore
@@ -0,0 +1,4 @@
+/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
new file mode 100644
index 00000000000..95811e0016a
--- /dev/null
+++ b/ACE/examples/Web_Crawler/.gitignore
@@ -0,0 +1 @@
+/main
diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU
index e40c81b887f..ff3ca562280 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
new file mode 100644
index 00000000000..e0bc4eff858
--- /dev/null
+++ b/ACE/protocols/ace/INet/.gitignore
@@ -0,0 +1,2 @@
+/ftp_simple_wget
+/http_simple_wget
diff --git a/ACE/protocols/examples/RMCast/Send_Msg/.gitignore b/ACE/protocols/examples/RMCast/Send_Msg/.gitignore
new file mode 100644
index 00000000000..969d6fe3941
--- /dev/null
+++ b/ACE/protocols/examples/RMCast/Send_Msg/.gitignore
@@ -0,0 +1,2 @@
+/receiver
+/sender
diff --git a/ACE/protocols/examples/TMCast/Member/.gitignore b/ACE/protocols/examples/TMCast/Member/.gitignore
new file mode 100644
index 00000000000..c54316dadd2
--- /dev/null
+++ b/ACE/protocols/examples/TMCast/Member/.gitignore
@@ -0,0 +1 @@
+/member
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore b/ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore b/ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/protocols/tests/HTBP/Send_Large_Msg/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore b/ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore
new file mode 100644
index 00000000000..b6aca8272f5
--- /dev/null
+++ b/ACE/protocols/tests/HTBP/Send_Recv_Tests/.gitignore
@@ -0,0 +1 @@
+/SendRecv_Test
diff --git a/ACE/protocols/tests/HTBP/ping/.gitignore b/ACE/protocols/tests/HTBP/ping/.gitignore
new file mode 100644
index 00000000000..3d33a15f751
--- /dev/null
+++ b/ACE/protocols/tests/HTBP/ping/.gitignore
@@ -0,0 +1,2 @@
+/client
+/server
diff --git a/ACE/protocols/tests/RMCast/.gitignore b/ACE/protocols/tests/RMCast/.gitignore
new file mode 100644
index 00000000000..969d6fe3941
--- /dev/null
+++ b/ACE/protocols/tests/RMCast/.gitignore
@@ -0,0 +1,2 @@
+/receiver
+/sender
diff --git a/ACE/tests/.gitignore b/ACE/tests/.gitignore
new file mode 100644
index 00000000000..f21f84dc116
--- /dev/null
+++ b/ACE/tests/.gitignore
@@ -0,0 +1,179 @@
+/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
new file mode 100644
index 00000000000..3bc7bd09d13
--- /dev/null
+++ b/ACE/tests/Dev_Poll_Reactor_Echo_Test.cpp
@@ -0,0 +1,574 @@
+//=============================================================================
+/**
+ * @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 9e2cfc7a4a9..4743b2894f3 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_.
-static int check_type_consistency (const ACE_INET_Addr &addr)
+int check_type_consistency (const ACE_INET_Addr &addr)
{
int family = -1;
@@ -49,52 +49,6 @@ static 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;
@@ -319,9 +273,6 @@ 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
new file mode 100644
index 00000000000..05511861d36
--- /dev/null
+++ b/ACE/tests/SSL/.gitignore
@@ -0,0 +1,2 @@
+/SSL_Asynch_Stream_Test
+/Thread_Pool_Reactor_SSL_Test
diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst
index 8e4bb4a230d..c009eb8c511 100644
--- a/ACE/tests/run_test.lst
+++ b/ACE/tests/run_test.lst
@@ -114,6 +114,7 @@ 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 adb95592aa6..0250deeb75d 100644
--- a/ACE/tests/tests.mpc
+++ b/ACE/tests/tests.mpc
@@ -853,6 +853,13 @@ 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