diff --git a/src/ca/client/udpiiu.cpp b/src/ca/client/udpiiu.cpp index e4e8bd31f..dcdb4f6af 100644 --- a/src/ca/client/udpiiu.cpp +++ b/src/ca/client/udpiiu.cpp @@ -163,6 +163,19 @@ udpiiu::udpiiu ( throwWithLocation ( noSocket () ); } +#ifdef IP_ADD_MEMBERSHIP + { + int flag = 1; + if(setsockopt(this->sock, IPPROTO_IP, IP_MULTICAST_LOOP, &flag, sizeof(flag))==-1) + { + char sockErrBuf[64]; + epicsSocketConvertErrnoToString ( + sockErrBuf, sizeof ( sockErrBuf ) ); + errlogPrintf("CAC: failed to set mcast loopback\n"); + } + } +#endif + int boolValue = true; int status = setsockopt ( this->sock, SOL_SOCKET, SO_BROADCAST, (char *) &boolValue, sizeof ( boolValue ) );