summaryrefslogtreecommitdiff
path: root/ace/SOCK_Dgram_Mcast.cpp
diff options
context:
space:
mode:
authorvishal <vishal@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-08-16 16:53:07 +0000
committervishal <vishal@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-08-16 16:53:07 +0000
commit106d11ac16fabd78a853fdfae9d1028e72758b8d (patch)
tree0f81f82972b9ef60be77f15fd96a591d74f4f9bd /ace/SOCK_Dgram_Mcast.cpp
parente0322a19707bf555f270cd011545bb2716c652ab (diff)
downloadATCD-106d11ac16fabd78a853fdfae9d1028e72758b8d.tar.gz
*** empty log message ***
Diffstat (limited to 'ace/SOCK_Dgram_Mcast.cpp')
-rw-r--r--ace/SOCK_Dgram_Mcast.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/ace/SOCK_Dgram_Mcast.cpp b/ace/SOCK_Dgram_Mcast.cpp
index 2b3c3a5d2bf..e5ebee0b344 100644
--- a/ace/SOCK_Dgram_Mcast.cpp
+++ b/ace/SOCK_Dgram_Mcast.cpp
@@ -402,14 +402,24 @@ ACE_SOCK_Dgram_Mcast::subscribe (const ACE_INET_Addr &mcast_addr,
// Tell network device driver to read datagrams with a
// <mcast_request_if_> IP interface.
- else if (ACE_OS::join_leaf (this->get_handle (),
- ACE_reinterpret_cast (const sockaddr *,
- &this->mcast_request_if_.imr_multiaddr),
- sizeof this->mcast_request_if_.imr_multiaddr,
- qos_params) == ACE_INVALID_HANDLE)
- return -1;
- else
- return 0;
+ else
+ {
+
+ sockaddr_in mult_addr;
+
+ mult_addr.sin_family = protocol_family;
+ mult_addr.sin_port = ACE_HTONS (mcast_addr.get_port_number ());
+ mult_addr.sin_addr = this->mcast_request_if_.imr_multiaddr;
+
+ if (ACE_OS::join_leaf (this->get_handle (),
+ ACE_reinterpret_cast (const sockaddr *,
+ &mult_addr),
+ sizeof mult_addr,
+ qos_params) == ACE_INVALID_HANDLE)
+ return -1;
+ else
+ return 0;
+ }
}
int