summaryrefslogtreecommitdiff
path: root/source3/utils
diff options
context:
space:
mode:
Diffstat (limited to 'source3/utils')
-rw-r--r--source3/utils/net.c7
-rw-r--r--source3/utils/net_rpc.c19
2 files changed, 20 insertions, 6 deletions
diff --git a/source3/utils/net.c b/source3/utils/net.c
index 800aeded0a..b3b72e2465 100644
--- a/source3/utils/net.c
+++ b/source3/utils/net.c
@@ -277,8 +277,13 @@ struct cli_state *net_make_ipc_connection(unsigned flags)
} else {
nt_status = connect_to_ipc(&cli, &server_ip, server_name);
}
+
SAFE_FREE(server_name);
- return cli;
+ if (NT_STATUS_IS_OK(nt_status)) {
+ return cli;
+ } else {
+ return NULL;
+ }
}
static int net_user(int argc, const char **argv)
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index 8b8278b053..11f73a1387 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -309,15 +309,24 @@ static int rpc_join_usage(int argc, const char **argv)
* Main 'net_rpc_join()' (where the admain username/password is used) is
* in net_rpc_join.c
* Assume if a -U is specified, it's the new style, otherwise it's the
- * old style
+ * old style. If 'oldstyle' is specfied explicity, do it and don't prompt.
**/
int net_rpc_join(int argc, const char **argv)
{
- if ((net_rpc_join_oldstyle(argc, argv) == 0))
- return 0;
-
- return net_rpc_join_newstyle(argc, argv);
+ struct functable func[] = {
+ {"oldstyle", net_rpc_join_oldstyle},
+ {NULL, NULL}
+ };
+
+ if (argc == 0) {
+ if ((net_rpc_join_oldstyle(argc, argv) == 0))
+ return 0;
+
+ return net_rpc_join_newstyle(argc, argv);
+ }
+
+ return net_run_function(argc, argv, func, rpc_join_usage);
}