diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
commit | d9661aebab28abc0ec4fb1e716170d347d56c168 (patch) | |
tree | ecb671ab4b8e299bf5cbb8b2dfeed8a49b65fc06 /apps/Gateway/Gateway/Proxy_Handler_Connector.cpp | |
parent | ea0d28240863caf437a18071bfd03e7b146c5ade (diff) | |
download | ATCD-unlabeled-4.3.2.tar.gz |
This commit was manufactured by cvs2svn to create branchunlabeled-4.3.2
'unlabeled-4.3.2'.
Diffstat (limited to 'apps/Gateway/Gateway/Proxy_Handler_Connector.cpp')
-rw-r--r-- | apps/Gateway/Gateway/Proxy_Handler_Connector.cpp | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/apps/Gateway/Gateway/Proxy_Handler_Connector.cpp b/apps/Gateway/Gateway/Proxy_Handler_Connector.cpp deleted file mode 100644 index dc18eca8500..00000000000 --- a/apps/Gateway/Gateway/Proxy_Handler_Connector.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "Proxy_Handler_Connector.h" -// $Id$ - - -Proxy_Handler_Connector::Proxy_Handler_Connector (void) -{ -} - -// Override the connection-failure method to add timer support. -// Note that these timers perform "expoential backoff" to -// avoid rapidly trying to reestablish connections when a link -// goes down. - -int -Proxy_Handler_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask) -{ - ACE_Connector<Proxy_Handler, ACE_SOCK_CONNECTOR>::AST *stp = 0; - - // Locate the ACE_Svc_Handler corresponding to the socket descriptor. - if (this->handler_map_.find (sd, stp) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate proxy %d in connector map, %p\n", - sd, "find"), -1); - - Proxy_Handler *proxy_handler = stp->svc_handler (); - - // Schedule a reconnection request at some point in the future - // (note that proxy_handler uses an exponential backoff scheme). - if (ACE_Service_Config::reactor ()->schedule_timer - (proxy_handler, 0, proxy_handler->timeout ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - return 0; -} - -// Initiate (or reinitiate) a connection to the Proxy_Handler. - -int -Proxy_Handler_Connector::initiate_connection (Proxy_Handler *proxy_handler, - ACE_Synch_Options &synch_options) -{ - char addr_buf[MAXHOSTNAMELEN]; - - // Mark ourselves as idle so that the various iterators - // will ignore us until we are reconnected. - proxy_handler->state (Proxy_Handler::IDLE); - - // We check the remote addr second so that it remains in the addr_buf. - if (proxy_handler->local_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1 - || proxy_handler->remote_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "can't obtain peer's address"), -1); - - // Try to connect to the Peer. - - if (this->connect (proxy_handler, proxy_handler->remote_addr (), - synch_options, proxy_handler->local_addr ()) == -1) - { - if (errno != EWOULDBLOCK) - { - proxy_handler->state (Proxy_Handler::FAILED); - ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n", - "connect", addr_buf)); - - // Reschedule ourselves to try and connect again. - if (synch_options[ACE_Synch_Options::USE_REACTOR]) - { - if (ACE_Service_Config::reactor ()->schedule_timer - (proxy_handler, 0, proxy_handler->timeout ()) == 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - } - else - // Failures on synchronous connects are reported as errors - // so that the caller can decide how to proceed. - return -1; - } - else - { - proxy_handler->state (Proxy_Handler::CONNECTING); - ACE_DEBUG ((LM_DEBUG, - "(%t) in the process of connecting %s to %s\n", - synch_options[ACE_Synch_Options::USE_REACTOR] - ? "asynchronously" : "synchronously", addr_buf)); - } - } - else - { - proxy_handler->state (Proxy_Handler::ESTABLISHED); - ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n", - addr_buf, proxy_handler->get_handle ())); - } - return 0; -} |