summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2008-07-29 22:52:59 +0200
committerMichael Adam <obnox@samba.org>2008-08-01 16:07:04 +0200
commitc655e295efce4b3f637f1be2c1d79bf1c16bac7b (patch)
treef6aaa6e719bea679d8d2d2b1bdec0825a12560ec
parent260bbf13d20fa94923dc8841a06267bf0ea102a7 (diff)
downloadsamba-c655e295efce4b3f637f1be2c1d79bf1c16bac7b.tar.gz
samba-c655e295efce4b3f637f1be2c1d79bf1c16bac7b.tar.bz2
samba-c655e295efce4b3f637f1be2c1d79bf1c16bac7b.zip
vampire keytab: add switch --repl-nodiff to trigger full replication.
I.e. replication without keeping track of the up to date vector. Michael (This used to be commit d4b36e447bce8692416e132ab9f53a6282f54cac)
-rw-r--r--source3/libnet/libnet_dssync.c2
-rw-r--r--source3/libnet/libnet_dssync.h1
-rw-r--r--source3/utils/net.c2
-rw-r--r--source3/utils/net.h1
-rw-r--r--source3/utils/net_rpc_samsync.c2
5 files changed, 7 insertions, 1 deletions
diff --git a/source3/libnet/libnet_dssync.c b/source3/libnet/libnet_dssync.c
index fa2bb2de14..cb8fa80ffa 100644
--- a/source3/libnet/libnet_dssync.c
+++ b/source3/libnet/libnet_dssync.c
@@ -410,7 +410,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
goto out;
}
- if (old_utdv) {
+ if (!ctx->repl_nodiff && old_utdv) {
pcursors = &cursors;
ZERO_STRUCTP(pcursors);
diff --git a/source3/libnet/libnet_dssync.h b/source3/libnet/libnet_dssync.h
index 13a68de4c7..7869b1620a 100644
--- a/source3/libnet/libnet_dssync.h
+++ b/source3/libnet/libnet_dssync.h
@@ -36,6 +36,7 @@ struct dssync_context {
struct rpc_pipe_client *cli;
const char *nc_dn;
bool single;
+ bool repl_nodiff;
const char *object_dn;
struct policy_handle bind_handle;
DATA_BLOB session_key;
diff --git a/source3/utils/net.c b/source3/utils/net.c
index e90e8f0a0f..c1b68eceb0 100644
--- a/source3/utils/net.c
+++ b/source3/utils/net.c
@@ -652,6 +652,8 @@ static struct functable net_func[] = {
{"exclude", 'X', POPT_ARG_STRING, &c->opt_exclude},
{"destination", 0, POPT_ARG_STRING, &c->opt_destination},
{"tallocreport", 0, POPT_ARG_NONE, &c->do_talloc_report},
+ /* Options for 'net rpc vampire (keytab)' */
+ {"repl-nodiff", 0, POPT_ARG_NONE, &c->opt_repl_nodiff},
POPT_COMMON_SAMBA
{ 0, 0, 0, 0}
diff --git a/source3/utils/net.h b/source3/utils/net.h
index 4f59ff995c..34e34a758a 100644
--- a/source3/utils/net.h
+++ b/source3/utils/net.h
@@ -57,6 +57,7 @@ struct net_context {
const char *opt_destination;
int opt_testmode;
bool opt_kerberos;
+ int opt_repl_nodiff;
int opt_have_ip;
struct sockaddr_storage opt_dest_ip;
diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c
index 11ada717da..1e477e3a09 100644
--- a/source3/utils/net_rpc_samsync.c
+++ b/source3/utils/net_rpc_samsync.c
@@ -296,6 +296,8 @@ static NTSTATUS rpc_vampire_keytab_ds_internals(struct net_context *c,
return status;
}
+ ctx->repl_nodiff = c->opt_repl_nodiff ? true : false;
+
if (argc >= 1) {
ctx->output_filename = argv[0];
}