blackberry release
git-svn-id: svn://db.shs.com.ru/pip@135 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
# else
|
||||
# include <sys/dcmd_io-net.h>
|
||||
# endif
|
||||
# define ip_mreqn ip_mreq
|
||||
# define imr_address imr_interface
|
||||
#endif
|
||||
#ifdef WINDOWS
|
||||
# include <io.h>
|
||||
@@ -341,13 +343,7 @@ bool PIEthernet::joinMulticastGroup(const PIString & group) {
|
||||
if (!params[Broadcast])
|
||||
;//piCoutObj << "Warning: \"Broadcast\" parameter not set, \"joinMulticastGroup(\"" << group << "\")\" may be useless!";
|
||||
parseAddress(path(), &ip_, &port_);
|
||||
struct
|
||||
#ifndef QNX
|
||||
ip_mreqn
|
||||
#else
|
||||
ip_mreq
|
||||
#endif
|
||||
mreq;
|
||||
struct ip_mreqn mreq;
|
||||
memset(&mreq, 0, sizeof(mreq));
|
||||
#ifdef LINUX
|
||||
//mreq.imr_address.s_addr = INADDR_ANY;
|
||||
@@ -355,16 +351,8 @@ bool PIEthernet::joinMulticastGroup(const PIString & group) {
|
||||
const PIEthernet::Interface * ci = il.getByAddress(ip_);
|
||||
if (ci != 0) mreq.imr_ifindex = ci->index;*/
|
||||
#endif
|
||||
in_addr_t addr;
|
||||
if (params[PIEthernet::Broadcast]) addr = INADDR_ANY;
|
||||
else addr = inet_addr(ip_.dataAscii());
|
||||
mreq.
|
||||
#ifndef QNX
|
||||
imr_address
|
||||
#else
|
||||
imr_interface
|
||||
#endif
|
||||
.s_addr = addr;
|
||||
if (params[PIEthernet::Broadcast]) mreq.imr_address.s_addr = INADDR_ANY;
|
||||
else mreq.imr_address.s_addr = inet_addr(ip_.dataAscii());
|
||||
/*#ifndef WINDOWS
|
||||
PIEthernet::InterfaceList il = interfaces();
|
||||
const PIEthernet::Interface * ci = il.getByAddress(ip_);
|
||||
@@ -407,24 +395,10 @@ bool PIEthernet::leaveMulticastGroup(const PIString & group) {
|
||||
PIFlags<Parameters> params = parameters();
|
||||
/// TODO windows
|
||||
parseAddress(path(), &ip_, &port_);
|
||||
struct
|
||||
#ifndef QNX
|
||||
ip_mreqn
|
||||
#else
|
||||
ip_mreq
|
||||
#endif
|
||||
mreq;
|
||||
struct ip_mreqn mreq;
|
||||
memset(&mreq, 0, sizeof(mreq));
|
||||
in_addr_t addr;
|
||||
if (params[PIEthernet::Broadcast]) addr = INADDR_ANY;
|
||||
else addr = inet_addr(ip_.dataAscii());
|
||||
mreq.
|
||||
#ifndef QNX
|
||||
imr_address
|
||||
#else
|
||||
imr_interface
|
||||
#endif
|
||||
.s_addr = addr;
|
||||
if (params[PIEthernet::Broadcast]) mreq.imr_address.s_addr = INADDR_ANY;
|
||||
else mreq.imr_address.s_addr = inet_addr(ip_.dataAscii());
|
||||
mreq.imr_multiaddr.s_addr = inet_addr(group.dataAscii());
|
||||
if (ethSetsockopt(sock, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq)) == -1) {
|
||||
piCoutObj << "Can`t leave multicast group " << group << ", " << ethErrorString();
|
||||
|
||||
Reference in New Issue
Block a user