5.107 IsRevealSecretRequest

 procedure IsRevealSecretRequest(DRS_MSG_GETCHGREQ_V10 msgIn)
     : boolean

Informative summary of behavior: The IsRevealSecretRequest procedure returns true if the source DC is requesting secret attributes.

 if AmILHServer() = false then
   if (DRS_WRITE_REP in msgIn.ulFlags) then 
     return true
   else
     return false
 endif
  
 /* if source DC is requesting FSMO related operation then it is same
    as a reveal secret request */
 if (msgIn.ulExtendedOp = EXOP_FSMO_REQ_ROLE     or
     msgIn.ulExtendedOp = EXOP_FSMO_REQ_RID_ALLOC or
     msgIn.ulExtendedOp = EXOP_FSMO_RID_REQ_ROLE  or
     msgIn.ulExtendedOp = EXOP_FSMO_REQ_PDC       or
     msgIn.ulExtendedOp = EXOP_FSMO_ABANDON_ROLE) then
   return true
 endif
  
 /* if source DC is requesting for special secrets processing then it
    implies that it is not requesting for secrets */
 if ({DRS_SPECIAL_SECRET_PROCESSING} ∩ msgIn.ulFlags) then
   return false
 endif 
  
 if (msgIn.ulExtendedOp = EXOP_REPL_SECRETS or
     msgIn.pAttributeSet = null then /* requesting all attributes that
                                       includes secrets*/
   return true
 endif
  
 for i := 0 to msgIn.pPartialAttrSet.cAttrs - 1 
   if IsSecretAttribute(msgIn.pPartialAttrSet.rgPartialAttr[i]) then
     return true;
   endif
 endfor
  
 for i := 0 to msgIn.pPartialAttrSetEx.cAttrs - 1 
   if IsSecretAttribute(msgIn.pPartialAttrSetEx.rgPartialAttr[i]) then
     return true;
   endif
 endfor   
  
 return false;
Show: