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

Reply via email to