s4: Handle DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET in getncchanges
authorAnatoliy Atanasov <anatoliy.atanasov@postpath.com>
Wed, 23 Sep 2009 23:58:58 +0000 (16:58 -0700)
committerAnatoliy Atanasov <anatoliy.atanasov@postpath.com>
Thu, 24 Sep 2009 00:10:12 +0000 (17:10 -0700)
When this flag is specified in the request we shouldn't use the
uptodateness vector in the request.

source4/rpc_server/drsuapi/getncchanges.c

index 75f565179194d92095fa7e66e1b6fdfb2c709f51..22e82fb4e8d93c00462bf7bdd125e214ae39d8c5 100644 (file)
@@ -332,6 +332,12 @@ WERROR dcesrv_drsuapi_DsGetNCChanges(struct dcesrv_call_state *dce_call, TALLOC_
                return WERR_DS_DRA_BAD_NC;
        }
 
+       if ((r->in.req->req8.replica_flags & DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET)
+           == DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET) {
+               /* Ignore the _in_ uptpdateness vector*/
+               r->in.req->req8.uptodateness_vector = NULL;
+       } 
+
        werr = drs_security_level_check(dce_call, "DsGetNCChanges");
        if (!W_ERROR_IS_OK(werr)) {
                return werr;