libnet dssync: rename repl_nodiff flag to force_full_replication.
[ira/wip.git] / source3 / libnet / libnet_dssync.h
1 /*
2  *  Unix SMB/CIFS implementation.
3  *  libnet Support
4  *  Copyright (C) Guenther Deschner 2008
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 3 of the License, or
9  *  (at your option) any later version.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 struct dssync_context;
21
22 struct dssync_ops {
23         NTSTATUS (*startup)(struct dssync_context *ctx, TALLOC_CTX *mem_ctx,
24                             struct replUpToDateVectorBlob **pold_utdv);
25         NTSTATUS (*process_objects)(struct dssync_context *ctx,
26                                     TALLOC_CTX *mem_ctx,
27                                     struct drsuapi_DsReplicaObjectListItemEx *objects,
28                                     struct drsuapi_DsReplicaOIDMapping_Ctr *mappings);
29         NTSTATUS (*finish)(struct dssync_context *ctx, TALLOC_CTX *mem_ctx,
30                            struct replUpToDateVectorBlob *new_utdv);
31 };
32
33 struct dssync_context {
34         const char *domain_name;
35         const char *dns_domain_name;
36         struct rpc_pipe_client *cli;
37         const char *nc_dn;
38         bool single;
39         bool force_full_replication;
40         uint32_t object_count;
41         const char **object_dns;
42         struct policy_handle bind_handle;
43         DATA_BLOB session_key;
44         const char *output_filename;
45         struct drsuapi_DsBindInfo28 remote_info28;
46
47         void *private_data;
48
49         const struct dssync_ops *ops;
50
51         char *result_message;
52         char *error_message;
53 };
54
55 extern const struct dssync_ops libnet_dssync_keytab_ops;