net: Move "net join" handling into a separate file.
authorKai Blin <kai@samba.org>
Tue, 13 May 2008 09:11:35 +0000 (11:11 +0200)
committerKai Blin <kai@samba.org>
Tue, 20 May 2008 12:27:24 +0000 (14:27 +0200)
source/Makefile.in
source/utils/net.c
source/utils/net_help.c
source/utils/net_join.c [new file with mode: 0644]
source/utils/net_proto.h

index 817cd1f0d22309660cf240e0333f2bdc636e8dc1..acb22d859692afea8f78ac6a7ce83c517482726b 100644 (file)
@@ -880,7 +880,7 @@ NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \
           utils/netlookup.o utils/net_sam.o utils/net_rpc_shell.o \
           utils/net_util.o utils/net_rpc_sh_acct.o utils/net_rpc_audit.o \
           $(PASSWD_UTIL_OBJ) utils/net_dns.o utils/net_ads_gpo.o \
-          utils/net_conf.o \
+          utils/net_conf.o utils/net_join.o\
           utils/net_registry.o \
           auth/token_util.o utils/net_dom.o
 
index 477c354cb8a82a7d6783e6db18e4c1220b99d38e..cc038e21782046a9eccbda34b62d194303778d3c 100644 (file)
@@ -586,17 +586,6 @@ static int net_group(struct net_context *c, int argc, const char **argv)
        return net_rap_group(c, argc, argv);
 }
 
-static int net_join(struct net_context *c, int argc, const char **argv)
-{
-       if (net_ads_check_our_domain(c) == 0) {
-               if (net_ads_join(c, argc, argv) == 0)
-                       return 0;
-               else
-                       d_fprintf(stderr, "ADS join did not work, falling back to RPC...\n");
-       }
-       return net_rpc_join(c, argc, argv);
-}
-
 static int net_changetrustpw(struct net_context *c, int argc, const char **argv)
 {
        if (net_ads_check_our_domain(c) == 0)
index 4bc5c15207d877b2532f0ab8954888611af9bc90..ed55e91526053c37b9253ee6fb20bd65266d7821 100644 (file)
@@ -77,17 +77,6 @@ int net_help_group(struct net_context *c, int argc, const char **argv)
        return -1;
 }
 
-int net_help_join(struct net_context *c, int argc, const char **argv)
-{
-       d_printf("\nnet [<method>] join [misc. options]\n"
-                "\tjoins this server to a domain\n");
-       d_printf("Valid methods: (auto-detected if not specified)\n");
-       d_printf("\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n");
-       d_printf("\trpc\t\t\t\tDCE-RPC\n");
-       net_common_flags_usage(c, argc, argv);
-       return -1;
-}
-
 int net_help_share(struct net_context *c, int argc, const char **argv)
 {
        d_printf(
@@ -234,7 +223,7 @@ int net_help(struct net_context *c, int argc, const char **argv)
                {"USER", net_help_user},
                {"GROUP", net_help_group},
                {"GROUPMAP", net_help_groupmap},
-               {"JOIN", net_help_join},
+               {"JOIN", net_join_usage},
                {"DOM", net_help_dom},
                {"VALIDATE", net_rap_validate_usage},
                {"GROUPMEMBER", net_rap_groupmember_usage},
diff --git a/source/utils/net_join.c b/source/utils/net_join.c
new file mode 100644 (file)
index 0000000..98188aa
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+   Samba Unix/Linux SMB client library
+   net join commands
+   Copyright (C) 2002  Jim McDonough  (jmcd@us.ibm.com)
+   Copyright (C) 2008  Kai Blin  (kai@samba.org)
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "utils/net.h"
+
+int net_join_usage(struct net_context *c, int argc, const char **argv)
+{
+       d_printf("\nnet [<method>] join [misc. options]\n"
+                "\tjoins this server to a domain\n");
+       d_printf("Valid methods: (auto-detected if not specified)\n");
+       d_printf("\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n");
+       d_printf("\trpc\t\t\t\tDCE-RPC\n");
+       net_common_flags_usage(c, argc, argv);
+       return -1;
+}
+
+int net_join(struct net_context *c, int argc, const char **argv)
+{
+       if (argc < 1)
+               return net_join_usage(c, argc, argv);
+
+       if (StrCaseCmp(argv[0], "HELP") == 0) {
+               net_join_usage(c, argc, argv);
+               return 0;
+       }
+
+       if (net_ads_check_our_domain(c) == 0) {
+               if (net_ads_join(c, argc, argv) == 0)
+                       return 0;
+               else
+                       d_fprintf(stderr, "ADS join did not work, falling back to RPC...\n");
+       }
+       return net_rpc_join(c, argc, argv);
+}
+
+
index d5ca40c9df7daa69db3f3cb86ba11cebc147fb00..6124f2ddd35e231c7bdc445e393259e793d6f0f9 100644 (file)
@@ -147,7 +147,6 @@ int net_groupmap(struct net_context *c, int argc, const char **argv);
 
 int net_help_user(struct net_context *c, int argc, const char **argv);
 int net_help_group(struct net_context *c, int argc, const char **argv);
-int net_help_join(struct net_context *c, int argc, const char **argv);
 int net_help_share(struct net_context *c, int argc, const char **argv);
 int net_help_file(struct net_context *c, int argc, const char **argv);
 int net_help_printer(struct net_context *c, int argc, const char **argv);
@@ -162,6 +161,11 @@ bool idmap_store_secret(const char *backend, bool alloc,
 int net_help_idmap(struct net_context *c, int argc, const char **argv);
 int net_idmap(struct net_context *c, int argc, const char **argv);
 
+/* The following definitions come from utils/net_join.c  */
+
+int net_join_usage(struct net_context *c, int argc, const char **argv);
+int net_join(struct net_context *c, int argc, const char **argv);
+
 /* The following definitions come from utils/net_lookup.c  */
 
 int net_lookup_usage(struct net_context *c, int argc, const char **argv);