diff options
author | vishal <vishal@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-16 16:53:07 +0000 |
---|---|---|
committer | vishal <vishal@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-16 16:53:07 +0000 |
commit | 106d11ac16fabd78a853fdfae9d1028e72758b8d (patch) | |
tree | 0f81f82972b9ef60be77f15fd96a591d74f4f9bd /ace/SOCK_Dgram_Mcast.cpp | |
parent | e0322a19707bf555f270cd011545bb2716c652ab (diff) | |
download | ATCD-106d11ac16fabd78a853fdfae9d1028e72758b8d.tar.gz |
*** empty log message ***
Diffstat (limited to 'ace/SOCK_Dgram_Mcast.cpp')
-rw-r--r-- | ace/SOCK_Dgram_Mcast.cpp | 26 |
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 |