summaryrefslogtreecommitdiff
path: root/source3/libnet/libnet_dssync.h
diff options
context:
space:
mode:
Diffstat (limited to 'source3/libnet/libnet_dssync.h')
-rw-r--r--source3/libnet/libnet_dssync.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/source3/libnet/libnet_dssync.h b/source3/libnet/libnet_dssync.h
index c98e650fcc..9b18dae4f5 100644
--- a/source3/libnet/libnet_dssync.h
+++ b/source3/libnet/libnet_dssync.h
@@ -19,11 +19,14 @@
struct dssync_context;
-typedef NTSTATUS (*dssync_processing_fn_t)(TALLOC_CTX *,
- struct drsuapi_DsReplicaObjectListItemEx *,
- struct drsuapi_DsReplicaOIDMapping_Ctr *,
- bool,
- struct dssync_context *ctx);
+struct dssync_ops {
+ NTSTATUS (*startup)(struct dssync_context *ctx, TALLOC_CTX *mem_ctx);
+ NTSTATUS (*process_objects)(struct dssync_context *ctx,
+ TALLOC_CTX *mem_ctx,
+ struct drsuapi_DsReplicaObjectListItemEx *objects,
+ struct drsuapi_DsReplicaOIDMapping_Ctr *mappings);
+ NTSTATUS (*finish)(struct dssync_context *ctx, TALLOC_CTX *mem_ctx);
+};
struct dssync_context {
const char *domain_name;
@@ -34,14 +37,12 @@ struct dssync_context {
DATA_BLOB session_key;
const char *output_filename;
- dssync_processing_fn_t processing_fn;
+ void *private_data;
+
+ const struct dssync_ops *ops;
char *result_message;
char *error_message;
};
-NTSTATUS libnet_dssync_dump_keytab(TALLOC_CTX *mem_ctx,
- struct drsuapi_DsReplicaObjectListItemEx *cur,
- struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr,
- bool last_query,
- struct dssync_context *ctx);
+extern const struct dssync_ops libnet_dssync_keytab_ops;