fixed problems with ca clear channel protocol during reload of the access security file.

See https://bugs.launchpad.net/epics-base/+bug/1091401.
This commit is contained in:
Jeff Hill
2012-12-18 14:32:12 -07:00
parent a0798939b3
commit 89d000be08

View File

@@ -1992,6 +1992,15 @@ static int clear_channel_reply ( caHdrLargeArray *mp,
cas_commit_msg ( client, 0u );
SEND_UNLOCK(client);
/*
* remove from access control list
*/
status = asRemoveClient(&pciu->asClientPVT);
if(status != 0 && status != S_asLib_asNotActive){
errMessage(status, RECORD_NAME(&pciu->addr));
return RSRV_ERROR;
}
epicsMutexMustLock ( client->chanListLock );
if ( pciu->state == rsrvCS_inService ||
pciu->state == rsrvCS_pendConnectResp ) {
@@ -2011,15 +2020,6 @@ static int clear_channel_reply ( caHdrLargeArray *mp,
}
epicsMutexUnlock( client->chanListLock );
/*
* remove from access control list
*/
status = asRemoveClient(&pciu->asClientPVT);
if(status != 0 && status != S_asLib_asNotActive){
errMessage(status, RECORD_NAME(&pciu->addr));
return RSRV_ERROR;
}
LOCK_CLIENTQ;
status = bucketRemoveItemUnsignedId (pCaBucket, &pciu->sid);
if(status != S_bucket_success){