Dochelp in Bcc
Casemail in Cc

Hello Douglas,
                         Thank you for your inquiry about MS-ADTS 
specification. We have created incident 115051312732870 to track the 
investigation for this issue. One of the Open specifications team member will 
contact you shortly.


Regards,
Sreekanth Nadendla
Microsoft Windows Open Specifications

-----Original Message-----
From: Douglas Bagnall [mailto:[email protected]] 
Sent: Wednesday, May 13, 2015 6:44 PM
To: Interoperability Documentation Help
Cc: [email protected]
Subject: detecting failed DCs in the KCC (MS-ADTS 6.2.2.3.4.4)


MS-ADTS 6.2.2.3.4.4 (v20140502, page 569) defines BridgeheadDCFailed
thus:

    /***** BridgeheadDCFailed *****/
    /* Determine whether a given DC is known to be in a failed state.
     * IN: objectGUID - objectGUID of the DC's nTDSDSA object.
     * IN: detectFailedDCs - TRUE if and only failed DC detection is
     *     enabled.
     * RETURNS: TRUE if and only if the DC should be considered to be in a
     *          failed state.
     */
    BridgeheadDCFailed(IN GUID objectGUID, IN bool detectFailedDCs) : bool
    {
        IF bit NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED is set in
        the options attribute of the site settings object for the local
        DC's site
            RETURN FALSE
        ELSEIF a tuple z exists in the kCCFailedLinks or
        kCCFailedConnections variables such that z.UUIDDsa =
        objectGUID, z.FailureCount > 1, and the current time -
        z.TimeFirstFailure > 2 hours
            RETURN TRUE
        ELSE
            RETURN detectFailedDCs
        ENDIF

The way the detectFailedDCs parameter is used in the pseudo-code seems at odds 
with its description in the comments (which is consistent with comments 
elsewhere in the stack). The pseudo-code is using detectFailedDCs as a default 
value in the case a failure is not detected, not as a switch turning detection 
on or off. As written, you can only actually detect a failed DC if 
detectFailedDCs is *false* -- when it is true, the return value merely reflects 
the NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED bit.

Shouldn't it look more like this:

        IF detectFailedDCs is FALSE or
           bit NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED is set [...]
            RETURN FALSE
        ELSEIF a tuple z exists [...]
            RETURN TRUE
        ELSE
            RETURN FALSE
        ENDIF


or is it the comments that need fixing?

cheers,
Douglas Bagnall
_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to