add EPICS_CA_MCAST_TTL
may be necessary/helpful for mcast search/beacon usage across sub-nets.
This commit is contained in:
@@ -191,6 +191,22 @@ udpiiu::udpiiu (
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IP_MULTICAST_TTL
|
||||
{
|
||||
int ttl;
|
||||
long val;
|
||||
if(envGetLongConfigParam(&EPICS_CA_MCAST_TTL, &val))
|
||||
val =1;
|
||||
ttl = val;
|
||||
if ( setsockopt(this->sock, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&ttl, sizeof(ttl))) {
|
||||
char sockErrBuf[64];
|
||||
epicsSocketConvertErrnoToString (
|
||||
sockErrBuf, sizeof ( sockErrBuf ) );
|
||||
errlogPrintf("CAC: failed to set mcast ttl %d\n", ttl);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
int boolValue = true;
|
||||
int status = setsockopt ( this->sock, SOL_SOCKET, SO_BROADCAST,
|
||||
(char *) &boolValue, sizeof ( boolValue ) );
|
||||
|
||||
@@ -320,6 +320,22 @@ void rsrv_build_addr_lists(void)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IP_MULTICAST_TTL
|
||||
{
|
||||
int ttl;
|
||||
long val;
|
||||
if(envGetLongConfigParam(&EPICS_CA_MCAST_TTL, &val))
|
||||
val =1;
|
||||
ttl = val;
|
||||
if ( setsockopt(beaconSocket, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&ttl, sizeof(ttl))) {
|
||||
char sockErrBuf[64];
|
||||
epicsSocketConvertErrnoToString (
|
||||
sockErrBuf, sizeof ( sockErrBuf ) );
|
||||
errlogPrintf("rsrv: failed to set mcast ttl %d\n", ttl);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* populate the interface address list (default is empty) */
|
||||
|
||||
1
src/libCom/env/envDefs.h
vendored
1
src/libCom/env/envDefs.h
vendored
@@ -51,6 +51,7 @@ epicsShareExtern const ENV_PARAM EPICS_CA_MAX_ARRAY_BYTES;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CA_AUTO_MAX_ARRAY_BYTES;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CA_MAX_SEARCH_PERIOD;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CA_NAME_SERVERS;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CA_MCAST_TTL;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CAS_INTF_ADDR_LIST;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CAS_IGNORE_ADDR_LIST;
|
||||
epicsShareExtern const ENV_PARAM EPICS_CAS_AUTO_BEACON_ADDR_LIST;
|
||||
|
||||
Reference in New Issue
Block a user