s3:net: Use cmdline_messaging_context
authorChristof Schmitt <cs@samba.org>
Mon, 20 Aug 2018 23:01:00 +0000 (16:01 -0700)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 7 Sep 2018 15:26:15 +0000 (17:26 +0200)
Use cmdline_messaging_context with its error checking instead of open
coding the same steps.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13465

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/utils/net.c

index 3c095d0bc4ad47cd40fc706b58cfd31efd42565b..b3bd4b671181d6ca7384ed83203dd2681492d2e6 100644 (file)
@@ -48,6 +48,7 @@
 #include "../libcli/security/security.h"
 #include "passdb.h"
 #include "messages.h"
+#include "cmdline_contexts.h"
 
 #ifdef WITH_FAKE_KASERVER
 #include "utils/net_afs.h"
@@ -915,9 +916,7 @@ static struct functable net_func[] = {
        const char **argv_const = discard_const_p(const char *, argv);
        poptContext pc;
        TALLOC_CTX *frame = talloc_stackframe();
-       struct tevent_context *ev;
        struct net_context *c = talloc_zero(frame, struct net_context);
-       NTSTATUS status;
 
        struct poptOption long_options[] = {
                {"help",        'h', POPT_ARG_NONE,   0, 'h'},
@@ -1032,31 +1031,7 @@ static struct functable net_func[] = {
                }
        }
 
-       if (!lp_load_initial_only(get_dyn_CONFIGFILE())) {
-               d_fprintf(stderr, "Can't load %s - run testparm to debug it\n",
-                         get_dyn_CONFIGFILE());
-               exit(1);
-       }
-
-       ev = samba_tevent_context_init(c);
-       if (ev == NULL) {
-               d_fprintf(stderr, "samba_tevent_context_init failed\n");
-               exit(1);
-       }
-       status = messaging_init_client(c, ev, &c->msg_ctx);
-       if (geteuid() != 0 &&
-                       NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
-               /*
-                * Normal to fail to initialize messaging context
-                * if we're not root as we don't have ability to
-                * read lock directory.
-                */
-               DBG_NOTICE("Unable to initialize messaging context. "
-                       "Must be root to do that.\n");
-       } else if (!NT_STATUS_IS_OK(status)) {
-               d_fprintf(stderr, "Failed to init messaging context\n");
-               exit(1);
-       }
+       c->msg_ctx = cmdline_messaging_context(get_dyn_CONFIGFILE());
 
        if (!lp_load_global(get_dyn_CONFIGFILE())) {
                d_fprintf(stderr, "Can't load %s - run testparm to debug it\n",