From 167dea37355cc272f0abfe58afacbd2dd01c95de Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Fri, 29 Jan 2016 08:33:41 -0500 Subject: [PATCH] rsrv: decouple some client/server config the automatic beacon address list should follow the server interface address list, and not be effected by any client config. Also, don't populate the interface address list from EPICS_CAS_BEACON_ADDR_LIST as this will almost never contain local interface addresses. --- src/ioc/rsrv/caservertask.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/ioc/rsrv/caservertask.c b/src/ioc/rsrv/caservertask.c index 7fee5e598..1fba6a941 100644 --- a/src/ioc/rsrv/caservertask.c +++ b/src/ioc/rsrv/caservertask.c @@ -284,10 +284,7 @@ void rsrv_build_addr_lists(void) assert(ca_beacon_port!=0); assert(ca_udp_port!=0); - if(envGetConfigParamPtr(&EPICS_CAS_AUTO_BEACON_ADDR_LIST)) - envGetBoolConfigParam(&EPICS_CAS_AUTO_BEACON_ADDR_LIST, &autobeaconlist); - else - envGetBoolConfigParam(&EPICS_CA_AUTO_ADDR_LIST, &autobeaconlist); + envGetBoolConfigParam(&EPICS_CAS_AUTO_BEACON_ADDR_LIST, &autobeaconlist); ellInit ( &casIntfAddrList ); ellInit ( &beaconAddrList ); @@ -325,8 +322,7 @@ void rsrv_build_addr_lists(void) { ELLLIST temp = ELLLIST_INIT; /* use the first parameter which is set. */ - if(addAddrToChannelAccessAddressList ( &temp, &EPICS_CAS_INTF_ADDR_LIST, ca_udp_port, 0 )) - addAddrToChannelAccessAddressList ( &temp, &EPICS_CAS_BEACON_ADDR_LIST, ca_udp_port, 0 ); + addAddrToChannelAccessAddressList ( &temp, &EPICS_CAS_INTF_ADDR_LIST, ca_udp_port, 0 ); removeDuplicateAddresses(&casIntfAddrList, &temp, 0); } @@ -398,8 +394,7 @@ void rsrv_build_addr_lists(void) /* collect user specified beacon address list * prefer EPICS_CAS_BEACON_ADDR_LIST, fallback to EPICS_CA_ADDR_LIST */ - if(addAddrToChannelAccessAddressList ( &temp, &EPICS_CAS_BEACON_ADDR_LIST, ca_beacon_port, 0 )) - addAddrToChannelAccessAddressList ( &temp, &EPICS_CA_ADDR_LIST, ca_beacon_port, 1 ); + addAddrToChannelAccessAddressList ( &temp, &EPICS_CAS_BEACON_ADDR_LIST, ca_beacon_port, 0 ); if (autobeaconlist) { /* auto populate with all broadcast addresses.