summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-29 16:26:53 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-29 16:26:53 +0000
commitfe9d3c146bf4cffc29607cf56d78cd917331e655 (patch)
treef9e9684abcda93d4263775c8bc141ceec6f094d2
parentdc2da40a95be71622c1b01fbb89c6ac28ab7446a (diff)
downloadATCD-fe9d3c146bf4cffc29607cf56d78cd917331e655.tar.gz
*** empty log message ***
-rw-r--r--apps/JAWS/server/HTTP_Server_T.cpp15
-rw-r--r--apps/JAWS/server/HTTP_Server_T.h3
-rw-r--r--examples/IPC_SAP/SOCK_SAP/C-inserver.cpp6
-rw-r--r--examples/Logger/simple-server/Logging_Acceptor.cpp19
-rw-r--r--examples/Reactor/ReactorEx/test_network_events.cpp21
-rw-r--r--examples/Reactor/WFMO_Reactor/test_network_events.cpp21
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i19
-rw-r--r--netsvcs/servers/servers.mak87
-rw-r--r--netsvcs/servers/servers.mdpbin49664 -> 52736 bytes
9 files changed, 171 insertions, 20 deletions
diff --git a/apps/JAWS/server/HTTP_Server_T.cpp b/apps/JAWS/server/HTTP_Server_T.cpp
index ee219d24863..69c428bc699 100644
--- a/apps/JAWS/server/HTTP_Server_T.cpp
+++ b/apps/JAWS/server/HTTP_Server_T.cpp
@@ -4,14 +4,19 @@
#define HTTP_SERVER_T_I
template <class ACE_LOCK> int
-LOCK_SOCK_Acceptor<ACE_LOCK>::accept (ACE_SOCK_Stream &ns,
- ACE_Addr *ra,
- ACE_Time_Value *to,
- int r) const
+LOCK_SOCK_Acceptor<ACE_LOCK>::accept (ACE_SOCK_Stream &stream,
+ ACE_Addr *remote_address,
+ ACE_Time_Value *timeout,
+ int restart,
+ int reset_new_handle) const
{
ACE_Guard<ACE_LOCK> m ((ACE_LOCK &) this->lock_);
- return ACE_SOCK_Acceptor::accept (ns, ra, to, r);
+ return ACE_SOCK_Acceptor::accept (stream,
+ remote_adrress,
+ timeout,
+ restart,
+ reset_new_handle);
}
#endif /* HTTP_SERVER_T_I */
diff --git a/apps/JAWS/server/HTTP_Server_T.h b/apps/JAWS/server/HTTP_Server_T.h
index d3f6aa9ad10..36a6acb35d6 100644
--- a/apps/JAWS/server/HTTP_Server_T.h
+++ b/apps/JAWS/server/HTTP_Server_T.h
@@ -29,7 +29,8 @@ public:
int accept (ACE_SOCK_Stream &new_stream,
ACE_Addr *remote_addr = 0,
ACE_Time_Value *timeout = 0,
- int restart = 1) const;
+ int restart = 1,
+ int reset_new_handle = 0) const;
private:
LOCK lock_;
diff --git a/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp b/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp
index e2a0c0cca94..1bbcb64d4d8 100644
--- a/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp
+++ b/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp
@@ -26,7 +26,7 @@ int main (int argc, char *argv[])
/* Associate address with endpoint */
if (ACE_OS::bind (s_handle, (struct sockaddr *) &saddr,
- sizeof saddr) == -1)
+ sizeof saddr) == -1)
ACE_OS::perror ("bind"), ACE_OS::exit (1);
/* Make endpoint listen for service requests */
@@ -46,7 +46,7 @@ int main (int argc, char *argv[])
/* Create a new endpoint of communication */
do
n_handle = ACE_OS::accept (s_handle, (struct sockaddr *)
- &cli_addr, &cli_addr_len);
+ &cli_addr, &cli_addr_len);
while (n_handle == ACE_INVALID_HANDLE && errno == EINTR);
if (n_handle == ACE_INVALID_HANDLE)
@@ -57,7 +57,7 @@ int main (int argc, char *argv[])
int addr_len = sizeof cli_addr.sin_addr.s_addr;
hp = ACE_OS::gethostbyaddr ((char *) &cli_addr.sin_addr,
- addr_len, AF_INET);
+ addr_len, AF_INET);
if (hp != 0)
ACE_OS::printf ("client %s\n", hp->h_name), ACE_OS::fflush (stdout);
diff --git a/examples/Logger/simple-server/Logging_Acceptor.cpp b/examples/Logger/simple-server/Logging_Acceptor.cpp
index c0e5a061bb7..eec370f15f8 100644
--- a/examples/Logger/simple-server/Logging_Acceptor.cpp
+++ b/examples/Logger/simple-server/Logging_Acceptor.cpp
@@ -3,6 +3,7 @@
#include "Logging_Acceptor.h"
#include "Logging_Handler.h"
#include "Reactor_Singleton.h"
+#include "ace/WFMO_Reactor.h"
// Initialize peer_acceptor object.
@@ -56,7 +57,23 @@ Logging_Acceptor::handle_input (ACE_HANDLE)
// Accept the connection from a client client daemon.
- if (this->peer_acceptor_.accept (svc_handler->peer ()) == -1
+ int reset_new_handle = 0;
+#if defined (ACE_WIN32)
+ // Try to find out if the implementation of the reactor that we are
+ // using is the WFMO_Reactor. If so we need to reset the event
+ // association for the newly created handle. This is because the
+ // newly created handle will inherit the properties of the listen
+ // handle, including its event associations.
+ if (dynamic_cast <ACE_WFMO_Reactor *> (this->reactor ()->implementation ()))
+ reset_new_handle = 1;
+#endif /* ACE_WIN32 */
+
+ if (this->peer_acceptor_.accept (svc_handler->peer (), // stream
+ 0, // remote address
+ 0, // timeout
+ 1, // restart
+ reset_new_handle // reset new handler
+ ) == -1
|| svc_handler->open () == -1)
{
svc_handler->close ();
diff --git a/examples/Reactor/ReactorEx/test_network_events.cpp b/examples/Reactor/ReactorEx/test_network_events.cpp
index a954f626e5e..3dfce3d2102 100644
--- a/examples/Reactor/ReactorEx/test_network_events.cpp
+++ b/examples/Reactor/ReactorEx/test_network_events.cpp
@@ -32,6 +32,7 @@
// ============================================================================
#include "ace/Reactor.h"
+#include "ace/WFMO_Reactor.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Acceptor.h"
@@ -149,8 +150,24 @@ Network_Listener::handle_input (ACE_HANDLE handle)
ACE_INET_Addr remote_address;
ACE_SOCK_Stream stream;
- ACE_ASSERT (this->acceptor_.accept (stream, &remote_address) == 0);
-
+ int reset_new_handle = 0;
+#if defined (ACE_WIN32)
+ // Try to find out if the implementation of the reactor that we are
+ // using is the WFMO_Reactor. If so we need to reset the event
+ // association for the newly created handle. This is because the
+ // newly created handle will inherit the properties of the listen
+ // handle, including its event associations.
+ if (dynamic_cast <ACE_WFMO_Reactor *> (this->reactor ()->implementation ()))
+ reset_new_handle = 1;
+#endif /* ACE_WIN32 */
+
+ ACE_ASSERT (this->acceptor_.accept (stream, // stream
+ &remote_address, // remote address
+ 0, // timeout
+ 1, // restart
+ reset_new_handle // reset new handler
+ ) == 0);
+
ACE_DEBUG ((LM_DEBUG, "Remote connection from: "));
remote_address.dump ();
diff --git a/examples/Reactor/WFMO_Reactor/test_network_events.cpp b/examples/Reactor/WFMO_Reactor/test_network_events.cpp
index a954f626e5e..3dfce3d2102 100644
--- a/examples/Reactor/WFMO_Reactor/test_network_events.cpp
+++ b/examples/Reactor/WFMO_Reactor/test_network_events.cpp
@@ -32,6 +32,7 @@
// ============================================================================
#include "ace/Reactor.h"
+#include "ace/WFMO_Reactor.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Acceptor.h"
@@ -149,8 +150,24 @@ Network_Listener::handle_input (ACE_HANDLE handle)
ACE_INET_Addr remote_address;
ACE_SOCK_Stream stream;
- ACE_ASSERT (this->acceptor_.accept (stream, &remote_address) == 0);
-
+ int reset_new_handle = 0;
+#if defined (ACE_WIN32)
+ // Try to find out if the implementation of the reactor that we are
+ // using is the WFMO_Reactor. If so we need to reset the event
+ // association for the newly created handle. This is because the
+ // newly created handle will inherit the properties of the listen
+ // handle, including its event associations.
+ if (dynamic_cast <ACE_WFMO_Reactor *> (this->reactor ()->implementation ()))
+ reset_new_handle = 1;
+#endif /* ACE_WIN32 */
+
+ ACE_ASSERT (this->acceptor_.accept (stream, // stream
+ &remote_address, // remote address
+ 0, // timeout
+ 1, // restart
+ reset_new_handle // reset new handler
+ ) == 0);
+
ACE_DEBUG ((LM_DEBUG, "Remote connection from: "));
remote_address.dump ();
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
index a925df264e1..5a46787ad7c 100644
--- a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
@@ -3,6 +3,7 @@
#include "ace/Get_Opt.h"
+#include "ace/WFMO_Reactor.h"
ACE_INLINE
Handle_R_Stream::Handle_R_Stream (void)
@@ -83,7 +84,23 @@ Handle_R_Stream::handle_input (int)
char buf[BUFSIZ];
int bytes;
- if (this->accept (this->new_remote_stream) == -1)
+ int reset_new_handle = 0;
+#if defined (ACE_WIN32)
+ // Try to find out if the implementation of the reactor that we are
+ // using is the WFMO_Reactor. If so we need to reset the event
+ // association for the newly created handle. This is because the
+ // newly created handle will inherit the properties of the listen
+ // handle, including its event associations.
+ if (dynamic_cast <ACE_WFMO_Reactor *> (ACE_Reactor::instance ()->implementation ()))
+ reset_new_handle = 1;
+#endif /* ACE_WIN32 */
+
+ if (this->accept (this->new_remote_stream, // stream
+ 0, // remote address
+ 0, // timeout
+ 1, // restart
+ reset_new_handle // reset new handler
+ ) == -1)
return -1;
else
ACE_DEBUG ((LM_INFO, "new_remote_stream fd = %d\n",
diff --git a/netsvcs/servers/servers.mak b/netsvcs/servers/servers.mak
index ace35245ab1..da0d38dbc9e 100644
--- a/netsvcs/servers/servers.mak
+++ b/netsvcs/servers/servers.mak
@@ -60,8 +60,8 @@ CLEAN :
if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
+# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
/Fp"$(INTDIR)/servers.pch" /YX /Fo"$(INTDIR)/" /c
CPP_OBJS=.\Release/
CPP_SBRS=.\.
@@ -117,9 +117,10 @@ CLEAN :
if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\lib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\lib" /D "WIN32" /D "_DEBUG" /D\
- "_CONSOLE" /Fp"$(INTDIR)/servers.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
+# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /Zi /Od /I "..\lib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+CPP_PROJ=/nologo /MDd /W3 /Gm /GR /GX /Zi /Od /I "..\lib" /D "WIN32" /D\
+ "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/servers.pch" /YX /Fo"$(INTDIR)/"\
+ /Fd"$(INTDIR)/" /c
CPP_OBJS=.\debug/
CPP_SBRS=.\.
# ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -187,13 +188,74 @@ SOURCE=.\main.cpp
DEP_CPP_MAIN_=\
"..\..\ace\config-win32.h"\
{$(INCLUDE)}"\ace\ACE.h"\
+ {$(INCLUDE)}"\ace\ACE.i"\
+ {$(INCLUDE)}"\ace\Atomic_Op.i"\
+ {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
+ {$(INCLUDE)}"\ace\Auto_Ptr.h"\
+ {$(INCLUDE)}"\ace\Auto_Ptr.i"\
{$(INCLUDE)}"\ace\config-win32-common.h"\
{$(INCLUDE)}"\ace\config.h"\
+ {$(INCLUDE)}"\ace\Containers.cpp"\
+ {$(INCLUDE)}"\ace\Containers.h"\
+ {$(INCLUDE)}"\ace\Containers.i"\
+ {$(INCLUDE)}"\ace\Event_Handler.h"\
+ {$(INCLUDE)}"\ace\Event_Handler.i"\
+ {$(INCLUDE)}"\ace\Free_List.cpp"\
+ {$(INCLUDE)}"\ace\Free_List.h"\
+ {$(INCLUDE)}"\ace\Free_List.i"\
+ {$(INCLUDE)}"\ace\Handle_Set.h"\
+ {$(INCLUDE)}"\ace\Handle_Set.i"\
+ {$(INCLUDE)}"\ace\Log_Msg.h"\
+ {$(INCLUDE)}"\ace\Log_Priority.h"\
+ {$(INCLUDE)}"\ace\Log_Record.h"\
+ {$(INCLUDE)}"\ace\Log_Record.i"\
+ {$(INCLUDE)}"\ace\Malloc.h"\
+ {$(INCLUDE)}"\ace\Malloc.i"\
+ {$(INCLUDE)}"\ace\Malloc_T.cpp"\
+ {$(INCLUDE)}"\ace\Malloc_T.h"\
+ {$(INCLUDE)}"\ace\Malloc_T.i"\
+ {$(INCLUDE)}"\ace\Managed_Object.cpp"\
+ {$(INCLUDE)}"\ace\Managed_Object.h"\
+ {$(INCLUDE)}"\ace\Managed_Object.i"\
+ {$(INCLUDE)}"\ace\Mem_Map.h"\
+ {$(INCLUDE)}"\ace\Mem_Map.i"\
+ {$(INCLUDE)}"\ace\Memory_Pool.h"\
+ {$(INCLUDE)}"\ace\Memory_Pool.i"\
+ {$(INCLUDE)}"\ace\Object_Manager.h"\
+ {$(INCLUDE)}"\ace\Object_Manager.i"\
{$(INCLUDE)}"\ace\OS.h"\
+ {$(INCLUDE)}"\ace\OS.i"\
+ {$(INCLUDE)}"\ace\Reactor.h"\
+ {$(INCLUDE)}"\ace\Reactor.i"\
+ {$(INCLUDE)}"\ace\Reactor_Impl.h"\
{$(INCLUDE)}"\ace\Service_Config.h"\
+ {$(INCLUDE)}"\ace\Service_Config.i"\
{$(INCLUDE)}"\ace\Service_Object.h"\
+ {$(INCLUDE)}"\ace\Service_Object.i"\
{$(INCLUDE)}"\ace\Shared_Object.h"\
+ {$(INCLUDE)}"\ace\Shared_Object.i"\
+ {$(INCLUDE)}"\ace\Signal.h"\
+ {$(INCLUDE)}"\ace\Signal.i"\
+ {$(INCLUDE)}"\ace\SString.h"\
+ {$(INCLUDE)}"\ace\SString.i"\
{$(INCLUDE)}"\ace\stdcpp.h"\
+ {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
+ {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
+ {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
+ {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
+ {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
+ {$(INCLUDE)}"\ace\Synch.h"\
+ {$(INCLUDE)}"\ace\Synch.i"\
+ {$(INCLUDE)}"\ace\Synch_T.cpp"\
+ {$(INCLUDE)}"\ace\Synch_T.h"\
+ {$(INCLUDE)}"\ace\Synch_T.i"\
+ {$(INCLUDE)}"\ace\Thread.h"\
+ {$(INCLUDE)}"\ace\Thread.i"\
+ {$(INCLUDE)}"\ace\Timer_Queue.h"\
+ {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
+ {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
+ {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
+ {$(INCLUDE)}"\ace\Trace.h"\
{$(INCLUDE)}"\ace\ws2tcpip.h"\
NODEP_CPP_MAIN_=\
@@ -229,6 +291,7 @@ DEP_CPP_MAIN_=\
{$(INCLUDE)}"\ace\Acceptor.h"\
{$(INCLUDE)}"\ace\Acceptor.i"\
{$(INCLUDE)}"\ace\ACE.h"\
+ {$(INCLUDE)}"\ace\ACE.i"\
{$(INCLUDE)}"\ace\Addr.h"\
{$(INCLUDE)}"\ace\Addr.i"\
{$(INCLUDE)}"\ace\Atomic_Op.i"\
@@ -237,6 +300,9 @@ DEP_CPP_MAIN_=\
{$(INCLUDE)}"\ace\Auto_Ptr.i"\
{$(INCLUDE)}"\ace\config-win32-common.h"\
{$(INCLUDE)}"\ace\config.h"\
+ {$(INCLUDE)}"\ace\Connector.cpp"\
+ {$(INCLUDE)}"\ace\Connector.h"\
+ {$(INCLUDE)}"\ace\Connector.i"\
{$(INCLUDE)}"\ace\Containers.cpp"\
{$(INCLUDE)}"\ace\Containers.h"\
{$(INCLUDE)}"\ace\Containers.i"\
@@ -295,11 +361,17 @@ DEP_CPP_MAIN_=\
{$(INCLUDE)}"\ace\Object_Manager.i"\
{$(INCLUDE)}"\ace\OS.h"\
{$(INCLUDE)}"\ace\OS.i"\
+ {$(INCLUDE)}"\ace\Reactor.h"\
+ {$(INCLUDE)}"\ace\Reactor.i"\
+ {$(INCLUDE)}"\ace\Reactor_Impl.h"\
{$(INCLUDE)}"\ace\Service_Config.h"\
+ {$(INCLUDE)}"\ace\Service_Config.i"\
{$(INCLUDE)}"\ace\Service_Object.h"\
+ {$(INCLUDE)}"\ace\Service_Object.i"\
{$(INCLUDE)}"\ace\Service_Types.h"\
{$(INCLUDE)}"\ace\Service_Types.i"\
{$(INCLUDE)}"\ace\Shared_Object.h"\
+ {$(INCLUDE)}"\ace\Shared_Object.i"\
{$(INCLUDE)}"\ace\Signal.h"\
{$(INCLUDE)}"\ace\Signal.i"\
{$(INCLUDE)}"\ace\SOCK.h"\
@@ -331,6 +403,7 @@ DEP_CPP_MAIN_=\
{$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
{$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
{$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
+ {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
{$(INCLUDE)}"\ace\Svc_Handler.cpp"\
{$(INCLUDE)}"\ace\Svc_Handler.h"\
{$(INCLUDE)}"\ace\Svc_Handler.i"\
@@ -351,6 +424,10 @@ DEP_CPP_MAIN_=\
{$(INCLUDE)}"\ace\Thread_Manager.i"\
{$(INCLUDE)}"\ace\Time_Request_Reply.h"\
{$(INCLUDE)}"\ace\Time_Value.h"\
+ {$(INCLUDE)}"\ace\Timer_Queue.h"\
+ {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
+ {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
+ {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
{$(INCLUDE)}"\ace\TLI.h"\
{$(INCLUDE)}"\ace\TLI.i"\
{$(INCLUDE)}"\ace\TLI_Acceptor.h"\
diff --git a/netsvcs/servers/servers.mdp b/netsvcs/servers/servers.mdp
index 4fb7058dd7e..bf1d8afcbab 100644
--- a/netsvcs/servers/servers.mdp
+++ b/netsvcs/servers/servers.mdp
Binary files differ