The branch, master has been updated
via 6199ae4... s4-ldb: fixed command line parsing in oLschema2ldif
via 3b29f9c... s4-ldb: removed unused command line options -I and -O
via 8e1d947... s4-drs: If we are a RODC then do not send DSReplicaSync
messages
from 088096d... python: use '#!/usr/bin/env python' to cope with varying
install locations
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 6199ae474589f24180002a22f9c197ab973447b7
Author: Andrew Tridgell <[email protected]>
Date: Thu Mar 25 15:45:08 2010 +1100
s4-ldb: fixed command line parsing in oLschema2ldif
It really doesn't make sense to use the ldb command line code
commit 3b29f9c66e68abff8c49390d97b71b4762d28417
Author: Andrew Tridgell <[email protected]>
Date: Thu Mar 25 15:06:40 2010 +1100
s4-ldb: removed unused command line options -I and -O
These are not used anywehere, so they just confuse people
Pair-Programmed-With: Andrew Bartlett <[email protected]>
commit 8e1d94778702ac2ab18983abac630957d8782cf6
Author: Fernando J V da Silva <[email protected]>
Date: Wed Mar 24 13:02:36 2010 -0300
s4-drs: If we are a RODC then do not send DSReplicaSync messages
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/repl/drepl_service.c | 19 ++++++----
source4/lib/ldb/tools/cmdline.c | 2 -
source4/lib/ldb/tools/cmdline.h | 2 -
source4/utils/oLschema2ldif.c | 70 +++++++++++++++++++++++++++----------
4 files changed, 62 insertions(+), 31 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/repl/drepl_service.c
b/source4/dsdb/repl/drepl_service.c
index 3ed5885..4196f94 100644
--- a/source4/dsdb/repl/drepl_service.c
+++ b/source4/dsdb/repl/drepl_service.c
@@ -193,14 +193,17 @@ static void dreplsrv_task_init(struct task_server *task)
return;
}
- service->notify.interval = lp_parm_int(task->lp_ctx, NULL, "dreplsrv",
- "notify_interval", 5); /* in
seconds */
- status = dreplsrv_notify_schedule(service, service->notify.interval);
- if (!W_ERROR_IS_OK(status)) {
- task_server_terminate(task, talloc_asprintf(task,
- "dreplsrv: Failed to setup notify
schedule: %s\n",
-
win_errstr(status)), true);
- return;
+ /* if we are a RODC then we do not send DSReplicaSync*/
+ if (!samdb_rodc(service->samdb)) {
+ service->notify.interval = lp_parm_int(task->lp_ctx, NULL,
"dreplsrv",
+ "notify_interval",
5); /* in seconds */
+ status = dreplsrv_notify_schedule(service,
service->notify.interval);
+ if (!W_ERROR_IS_OK(status)) {
+ task_server_terminate(task, talloc_asprintf(task,
+ "dreplsrv: Failed to setup
notify schedule: %s\n",
+
win_errstr(status)), true);
+ return;
+ }
}
irpc_add_name(task->msg_ctx, "dreplsrv");
diff --git a/source4/lib/ldb/tools/cmdline.c b/source4/lib/ldb/tools/cmdline.c
index 869d5ca..180923f 100644
--- a/source4/lib/ldb/tools/cmdline.c
+++ b/source4/lib/ldb/tools/cmdline.c
@@ -56,8 +56,6 @@ static struct poptOption popt_options[] = {
{ "all", 'a', POPT_ARG_NONE, &options.all_records, 0,
"(|(objectClass=*)(distinguishedName=*))", NULL },
{ "nosync", 0, POPT_ARG_NONE, &options.nosync, 0, "non-synchronous
transactions", NULL },
{ "sorted", 'S', POPT_ARG_NONE, &options.sorted, 0, "sort attributes",
NULL },
- { "input", 'I', POPT_ARG_STRING, &options.input, 0, "Input File",
"Input" },
- { "output", 'O', POPT_ARG_STRING, &options.output, 0, "Output File",
"Output" },
{ NULL, 'o', POPT_ARG_STRING, NULL, 'o', "ldb_connect option",
"OPTION" },
{ "controls", 0, POPT_ARG_STRING, NULL, 'c', "controls", NULL },
{ "show-binary", 0, POPT_ARG_NONE, &options.show_binary, 0, "display
binary LDIF", NULL },
diff --git a/source4/lib/ldb/tools/cmdline.h b/source4/lib/ldb/tools/cmdline.h
index 52e7ece..e82b2ee 100644
--- a/source4/lib/ldb/tools/cmdline.h
+++ b/source4/lib/ldb/tools/cmdline.h
@@ -41,8 +41,6 @@ struct ldb_cmdline {
int num_records;
int num_searches;
const char *sasl_mechanism;
- const char *input;
- const char *output;
const char **controls;
int show_binary;
int tracing;
diff --git a/source4/utils/oLschema2ldif.c b/source4/utils/oLschema2ldif.c
index 077987a..29ed3bd 100644
--- a/source4/utils/oLschema2ldif.c
+++ b/source4/utils/oLschema2ldif.c
@@ -37,6 +37,7 @@
#include "dsdb/samdb/samdb.h"
#include "../lib/crypto/sha256.h"
#include "../librpc/gen_ndr/ndr_misc.h"
+#include "lib/cmdline/popt_common.h"
#define SCHEMA_UNKNOWN 0
#define SCHEMA_NAME 1
@@ -583,55 +584,86 @@ static struct schema_conv process_file(FILE *in, FILE
*out)
return ret;
}
+static struct options {
+ const char *basedn;
+ const char *input;
+ const char *output;
+} options;
+
+static struct poptOption popt_options[] = {
+ POPT_AUTOHELP
+ { "basedn", 'b', POPT_ARG_STRING, &options.basedn, 0, "base DN",
"DN" },
+ { "input", 'I', POPT_ARG_STRING, &options.input, 0,
+ "inputfile of OpenLDAP style schema otherwise STDIN", "inputfile"},
+ { "output", 'O', POPT_ARG_STRING, &options.output, 0,
+ "outputfile otherwise STDOUT", "outputfile"},
+ POPT_COMMON_VERSION
+ { NULL }
+};
+
+
static void usage(void)
{
- printf("Usage: oLschema2ldif -H NONE <options>\n");
+ poptContext pc;
+ printf("Usage: oLschema2ldif <options>\n");
printf("\nConvert OpenLDAP schema to AD-like LDIF format\n\n");
- printf("Options:\n");
- printf(" -I inputfile inputfile of OpenLDAP style schema otherwise
STDIN\n");
- printf(" -O outputfile outputfile otherwise STDOUT\n");
- printf(" -o options pass options like modules to activate\n");
- printf(" e.g: -o modules:timestamps\n");
- printf("\n");
printf("Converts records from an openLdap formatted schema to an ldif
schema\n\n");
+ pc = poptGetContext("oLschema2ldif", 0, NULL, popt_options,
+ POPT_CONTEXT_KEEP_FIRST);
+ poptPrintHelp(pc, stdout, 0);
exit(1);
}
+
int main(int argc, const char **argv)
{
TALLOC_CTX *ctx;
struct schema_conv ret;
- struct ldb_cmdline *options;
FILE *in = stdin;
FILE *out = stdout;
+ poptContext pc;
+ int opt;
+
ctx = talloc_new(NULL);
ldb_ctx = ldb_init(ctx, NULL);
setenv("LDB_URL", "NONE", 1);
- options = ldb_cmdline_process(ldb_ctx, argc, argv, usage);
- if (options->basedn == NULL) {
- perror("Base DN not specified");
+ pc = poptGetContext(argv[0], argc, argv, popt_options,
+ POPT_CONTEXT_KEEP_FIRST);
+
+ while((opt = poptGetNextOpt(pc)) != -1) {
+ fprintf(stderr, "Invalid option %s: %s\n",
+ poptBadOption(pc, 0), poptStrerror(opt));
+ usage();
+ }
+
+ if (options.basedn == NULL) {
+ printf("Base DN not specified\n");
+ usage();
exit(1);
} else {
- basedn = ldb_dn_new(ctx, ldb_ctx, options->basedn);
+ basedn = ldb_dn_new(ctx, ldb_ctx, options.basedn);
if ( ! ldb_dn_validate(basedn)) {
- perror("Malformed Base DN");
+ printf("Malformed Base DN\n");
+ usage();
exit(1);
}
}
- if (options->input) {
- in = fopen(options->input, "r");
+ if (options.input) {
+ in = fopen(options.input, "r");
if (!in) {
- perror(options->input);
+ perror(options.input);
+ usage();
exit(1);
}
}
- if (options->output) {
- out = fopen(options->output, "w");
+ if (options.output) {
+ out = fopen(options.output, "w");
if (!out) {
- perror(options->output);
+ perror(options.output);
+ usage();
exit(1);
}
}
--
Samba Shared Repository