s4:registry:regdiff: add TALLOC_CTX * argument to open_backend()
[mat/samba.git] / source4 / lib / registry / tools / regdiff.c
index 9b49799bed90f7b7003cd492d8711d868c61ea75..08c88a62edf40dfabe6bcc3e2b01e38b542b7834 100644 (file)
@@ -28,8 +28,9 @@
 
 enum reg_backend { REG_UNKNOWN, REG_LOCAL, REG_REMOTE, REG_NULL };
 
-static struct registry_context *open_backend(poptContext pc,
-                                            struct event_context *ev_ctx,
+static struct registry_context *open_backend(TALLOC_CTX *mem_ctx,
+                                            poptContext pc,
+                                            struct tevent_context *ev_ctx,
                                             struct loadparm_context *lp_ctx,
                                             enum reg_backend backend,
                                             const char *remote_host)
@@ -42,14 +43,14 @@ static struct registry_context *open_backend(poptContext pc,
                poptPrintUsage(pc, stderr, 0);
                return NULL;
        case REG_LOCAL:
-               error = reg_open_samba(NULL, &ctx, ev_ctx, lp_ctx, NULL, cmdline_credentials);
+               error = reg_open_samba(mem_ctx, &ctx, ev_ctx, lp_ctx, NULL, cmdline_credentials);
                break;
        case REG_REMOTE:
-               error = reg_open_remote(&ctx, NULL, cmdline_credentials, lp_ctx,
-                                       remote_host, NULL);
+               error = reg_open_remote(mem_ctx, &ctx, NULL, cmdline_credentials, lp_ctx,
+                                       remote_host, ev_ctx);
                break;
        case REG_NULL:
-               error = reg_open_local(NULL, &ctx);
+               error = reg_open_local(mem_ctx, &ctx);
                break;
        }
 
@@ -83,7 +84,7 @@ int main(int argc, const char **argv)
        };
        TALLOC_CTX *ctx;
        void *callback_data;
-       struct event_context *ev_ctx;
+       struct tevent_context *ev_ctx;
        struct reg_diff_callbacks *callbacks;
 
        ctx = talloc_init("regdiff");
@@ -118,20 +119,19 @@ int main(int argc, const char **argv)
 
        }
 
-       ev_ctx = event_context_init(NULL);
+       ev_ctx = s4_event_context_init(NULL);
 
-       h1 = open_backend(pc, ev_ctx, cmdline_lp_ctx, backend1, remote1);
+       h1 = open_backend(ctx, pc, ev_ctx, cmdline_lp_ctx, backend1, remote1);
        if (h1 == NULL)
                return 1;
 
-       h2 = open_backend(pc, ev_ctx, cmdline_lp_ctx, backend2, remote2);
+       h2 = open_backend(ctx, pc, ev_ctx, cmdline_lp_ctx, backend2, remote2);
        if (h2 == NULL)
                return 1;
 
        poptFreeContext(pc);
 
-       error = reg_dotreg_diff_save(ctx, outputfile, lp_iconv_convenience(cmdline_lp_ctx), &callbacks,
-                                    &callback_data);
+       error = reg_dotreg_diff_save(ctx, outputfile, &callbacks, &callback_data);
        if (!W_ERROR_IS_OK(error)) {
                fprintf(stderr, "Problem saving registry diff to '%s': %s\n",
                        outputfile, win_errstr(error));