Finish removal of iconv_convenience in public API's.
[bbaumbach/samba-autobuild/.git] / source4 / dsdb / kcc / kcc_drs_replica_info.c
index 98defc888d1306e146c87d30744edc0138c083b3..170105642b24d916ce98c1f19b92fc2dc01eb755 100644 (file)
@@ -122,7 +122,7 @@ static WERROR get_repl_prop_metadata_ctr(TALLOC_CTX *mem_ctx,
        }
 
        ndr_err = ndr_pull_struct_blob(omd_value, mem_ctx,
-                                      lp_iconv_convenience(ldb_get_opaque(samdb, "loadparm")), obj_metadata_ctr,
+                                       obj_metadata_ctr,
                                       (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                DEBUG(0,(__location__ ": Failed to parse replPropertyMetaData for %s\n",
@@ -175,12 +175,14 @@ static WERROR kccdrs_replica_get_info_obj_metadata2(TALLOC_CTX *mem_ctx,
                                                    struct drsuapi_DsReplicaGetInfo *r,
                                                    union drsuapi_DsReplicaInfo *reply,
                                                    struct ldb_dn *dn,
-                                                   int base_index)
+                                                   uint32_t base_index)
 {
        WERROR status;
        struct replPropertyMetaDataBlob omd_ctr;
        struct replPropertyMetaData1 *attr;
        struct drsuapi_DsReplicaObjMetaData2Ctr *metadata2;
+       const struct dsdb_schema *schema;
+
        uint32_t i, j;
 
        DEBUG(0, ("kccdrs_replica_get_info_obj_metadata2() called\n"));
@@ -196,6 +198,12 @@ static WERROR kccdrs_replica_get_info_obj_metadata2(TALLOC_CTX *mem_ctx,
        status = get_repl_prop_metadata_ctr(mem_ctx, samdb, dn, &omd_ctr);
        W_ERROR_NOT_OK_RETURN(status);
 
+       schema = dsdb_get_schema(samdb, reply);
+       if (!schema) {
+               DEBUG(0,(__location__": Failed to get the schema\n"));
+               return WERR_INTERNAL_ERROR;
+       }
+
        reply->objmetadata2 = talloc_zero(mem_ctx, struct drsuapi_DsReplicaObjMetaData2Ctr);
        W_ERROR_HAVE_NO_MEMORY(reply->objmetadata2);
        metadata2 = reply->objmetadata2;
@@ -215,7 +223,7 @@ static WERROR kccdrs_replica_get_info_obj_metadata2(TALLOC_CTX *mem_ctx,
                /* get a reference to the attribute on 'omd_ctr' */
                attr = &omd_ctr.ctr.ctr1.array[j];
 
-               schema_attr = dsdb_attribute_by_attributeID_id(dsdb_get_schema(samdb), attr->attid);
+               schema_attr = dsdb_attribute_by_attributeID_id(schema, attr->attid);
 
                DEBUG(0, ("attribute_id = %d, attribute_name: %s\n", attr->attid, schema_attr->lDAPDisplayName));
 
@@ -383,7 +391,7 @@ static WERROR get_master_ncs(TALLOC_CTX *mem_ctx, struct ldb_context *samdb,
        struct ncList *nc_list = NULL;
        struct ncList *nc_list_elem;
        int ret;
-       int i;
+       unsigned int i;
        char *nc_str;
 
        ret = ldb_search(samdb, mem_ctx, &res, ldb_get_config_basedn(samdb),
@@ -401,7 +409,7 @@ static WERROR get_master_ncs(TALLOC_CTX *mem_ctx, struct ldb_context *samdb,
 
        for (i = 0; i < res->count; i++) {
                struct ldb_message_element *msg_elem = ldb_msg_find_element(res->msgs[i], "hasMasterNCs");
-               int k;
+               unsigned int k;
 
                if (!msg_elem || msg_elem->num_values == 0) {
                        DEBUG(0,(__location__ ": Failed: Attribute hasMasterNCs not found - %s\n",
@@ -563,18 +571,18 @@ static WERROR kccdrs_replica_get_info_neighbours(TALLOC_CTX *mem_ctx,
                                                 struct ldb_context *samdb,
                                                 struct drsuapi_DsReplicaGetInfo *r,
                                                 union drsuapi_DsReplicaInfo *reply,
-                                                int base_index,
+                                                uint32_t base_index,
                                                 struct GUID req_src_dsa_guid,
                                                 const char *object_dn_str)
 {
        WERROR status;
-       int i, j;
+       uint32_t i, j;
        struct ldb_dn *nc_dn = NULL;
        struct ncList *p_nc_list = NULL;
        struct repsFromToBlob *reps_from_blob = NULL;
        struct repsFromTo2 *reps_from = NULL;
        uint32_t c_reps_from;
-       int i_rep;
+       uint32_t i_rep;
        struct drsuapi_DsReplicaNeighbour neigh;
        struct ncList *nc_list = NULL;
 
@@ -680,18 +688,18 @@ static WERROR kccdrs_replica_get_info_repsto(TALLOC_CTX *mem_ctx,
                                             struct ldb_context *samdb,
                                             struct drsuapi_DsReplicaGetInfo *r,
                                             union drsuapi_DsReplicaInfo *reply,
-                                            int base_index,
+                                            uint32_t base_index,
                                             struct GUID req_src_dsa_guid,
                                             const char *object_dn_str)
 {
        WERROR status;
-       int i, j;
+       uint32_t i, j;
        struct ncList *p_nc_list = NULL;
        struct ldb_dn *nc_dn = NULL;
        struct repsFromToBlob *reps_to_blob;
        struct repsFromTo2 *reps_to;
        uint32_t c_reps_to;
-       int i_rep;
+       uint32_t i_rep;
        struct drsuapi_DsReplicaNeighbour neigh;
        struct ncList *nc_list = NULL;
 
@@ -754,7 +762,7 @@ NTSTATUS kccdrs_replica_get_info(struct irpc_message *msg,
        WERROR status;
        struct drsuapi_DsReplicaGetInfoRequest1 *req1;
        struct drsuapi_DsReplicaGetInfoRequest2 *req2;
-       int base_index;
+       uint32_t base_index;
        union drsuapi_DsReplicaInfo *reply;
        struct GUID req_src_dsa_guid;
        const char *object_dn_str = NULL;