committed a fix for mantis 302

This commit is contained in:
Jeff Hill
2008-09-19 23:27:52 +00:00
parent a6f4c7efd9
commit 2bf9959e11
4 changed files with 12 additions and 6 deletions

View File

@@ -23,7 +23,8 @@ epicsShareFunc void epicsShareAPI configureChannelAccessAddressList
( struct ELLLIST *pList, SOCKET sock, unsigned short port ); ( struct ELLLIST *pList, SOCKET sock, unsigned short port );
epicsShareFunc void epicsShareAPI addAddrToChannelAccessAddressList epicsShareFunc void epicsShareAPI addAddrToChannelAccessAddressList
( struct ELLLIST *pList, const ENV_PARAM *pEnv, unsigned short port ); ( struct ELLLIST *pList, const ENV_PARAM *pEnv,
unsigned short port, int ignoreNonDefaultPort );
epicsShareFunc void epicsShareAPI printChannelAccessAddressList epicsShareFunc void epicsShareAPI printChannelAccessAddressList
( const struct ELLLIST *pList ); ( const struct ELLLIST *pList );

View File

@@ -74,7 +74,8 @@ static char *getToken ( const char **ppString, char *pBuf, unsigned bufSIze )
* addAddrToChannelAccessAddressList () * addAddrToChannelAccessAddressList ()
*/ */
extern "C" void epicsShareAPI addAddrToChannelAccessAddressList extern "C" void epicsShareAPI addAddrToChannelAccessAddressList
( ELLLIST *pList, const ENV_PARAM *pEnv, unsigned short port ) ( ELLLIST *pList, const ENV_PARAM *pEnv,
unsigned short port, int ignoreNonDefaultPort )
{ {
osiSockAddrNode *pNewNode; osiSockAddrNode *pNewNode;
const char *pStr; const char *pStr;
@@ -96,6 +97,10 @@ extern "C" void epicsShareAPI addAddrToChannelAccessAddressList
continue; continue;
} }
if ( ignoreNonDefaultPort && addr.sin_port != port ) {
continue;
}
pNewNode = (osiSockAddrNode *) calloc (1, sizeof(*pNewNode)); pNewNode = (osiSockAddrNode *) calloc (1, sizeof(*pNewNode));
if (pNewNode==NULL) { if (pNewNode==NULL) {
fprintf ( stderr, "addAddrToChannelAccessAddressList(): no memory available for configuration\n"); fprintf ( stderr, "addAddrToChannelAccessAddressList(): no memory available for configuration\n");
@@ -235,7 +240,7 @@ extern "C" void epicsShareAPI configureChannelAccessAddressList
} }
} }
} }
addAddrToChannelAccessAddressList ( &tmpList, &EPICS_CA_ADDR_LIST, port ); addAddrToChannelAccessAddressList ( &tmpList, &EPICS_CA_ADDR_LIST, port, FALSE );
removeDuplicateAddresses ( pList, &tmpList, 0 ); removeDuplicateAddresses ( pList, &tmpList, 0 );
} }

View File

@@ -167,7 +167,7 @@ casDGIntfIO::casDGIntfIO ( caServerI & serverIn, clientBufMemoryManager & memMgr
// add in the configured addresses // add in the configured addresses
// //
addAddrToChannelAccessAddressList ( addAddrToChannelAccessAddressList (
& BCastAddrList, pParam, beaconPort ); & BCastAddrList, pParam, beaconPort, pParam == & EPICS_CA_ADDR_LIST );
} }
removeDuplicateAddresses ( & this->beaconAddrList, & BCastAddrList, 0 ); removeDuplicateAddresses ( & this->beaconAddrList, & BCastAddrList, 0 );
@@ -177,7 +177,7 @@ casDGIntfIO::casDGIntfIO ( caServerI & serverIn, clientBufMemoryManager & memMgr
ellInit ( & parsed ); ellInit ( & parsed );
ellInit ( & filtered ); ellInit ( & filtered );
// we dont care what port they are coming from // we dont care what port they are coming from
addAddrToChannelAccessAddressList ( & parsed, & EPICS_CAS_IGNORE_ADDR_LIST, 0 ); addAddrToChannelAccessAddressList ( & parsed, & EPICS_CAS_IGNORE_ADDR_LIST, 0, false );
removeDuplicateAddresses ( & filtered, & parsed, true ); removeDuplicateAddresses ( & filtered, & parsed, true );
while ( ELLNODE * pRawNode = ellGet ( & filtered ) ) { while ( ELLNODE * pRawNode = ellGet ( & filtered ) ) {

View File

@@ -205,7 +205,7 @@ void rsrv_online_notify_task(void *pParm)
* add in the configured addresses * add in the configured addresses
*/ */
addAddrToChannelAccessAddressList ( addAddrToChannelAccessAddressList (
&autoAddrList, pParam, port); &autoAddrList, pParam, port, pParam == &EPICS_CA_ADDR_LIST );
} }
removeDuplicateAddresses ( &beaconAddrList, &autoAddrList, 0 ); removeDuplicateAddresses ( &beaconAddrList, &autoAddrList, 0 );