diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp b/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp index c7daca5cffd..78983c10989 100644 --- a/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp +++ b/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp @@ -46,29 +46,18 @@ TAO_IOR_Multicast::init (const char *ior, TAO_Service_ID service_id) { this->service_id_ = service_id; + this->mcast_addr_.set (port, mcast_addr); this->ior_ = ior; - if (this->mcast_addr_.set (port, - mcast_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "set"), - -1); - else if (this->response_addr_.set ((u_short) 0) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "set"), - -1); - else if (this->response_.open (this->response_addr_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "set"), - -1); + this->response_addr_.set ((u_short) 0); + this->response_.open (this->response_addr_); + // Use ACE_SOCK_Dgram_Mcast factory to subscribe to multicast group. - else if (this->mcast_dgram_.subscribe (this->mcast_addr_) == -1) + if (this->mcast_dgram_.subscribe (this->mcast_addr_) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "subscribe"), -1); + return 0; } @@ -82,8 +71,7 @@ TAO_IOR_Multicast::handle_timeout (const ACE_Time_Value &, int TAO_IOR_Multicast::handle_input (ACE_HANDLE) { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Entered TAO_IOR_Multicast::handle_input\n")); + ACE_DEBUG ((LM_DEBUG, "TAO_IOR_Multicast::Handle_input\n")); // The length of the service name string that follows. CORBA::Short header; @@ -97,7 +85,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) // Take a peek at the header to find out how long is the service // name string we should receive. ssize_t n = this->mcast_dgram_.recv (&header, - sizeof (header), + sizeof(header), remote_addr, MSG_PEEK); if (n <= 0) @@ -105,6 +93,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) "TAO_IOR_Multicast::handle_input - peek %d\n", n), 0); + else if (ACE_NTOHS (header) <= 0) ACE_ERROR_RETURN ((LM_ERROR, "Header value < 1\n"), @@ -115,7 +104,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) iovec iov[iovcnt]; iov[0].iov_base = (char *) &header; - iov[0].iov_len = sizeof (header); + iov[0].iov_len = sizeof(header); iov[1].iov_base = (char *) &remote_port; iov[1].iov_len = sizeof (ACE_UINT16); iov[2].iov_base = (char *) service_name; @@ -163,7 +152,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) // Reply to the multicast message. ACE_SOCK_Connector connector; ACE_INET_Addr peer_addr (ACE_NTOHS (remote_port), - remote_addr.get_host_addr ()); + remote_addr.get_host_name ()); ACE_SOCK_Stream stream; // Connect. @@ -193,6 +182,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) ssize_t result = stream.sendv_n (iovp, cnt); + // Close the stream. stream.close (); |