mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
Fix another join problem. Don't use a TALLOC_CTX before it has been
initialized. Also split out the oldstyle join into a new fn, allowing us to call it with no failure message from net rpc join, but displaying a failure message when used with net rpc oldjoin.
This commit is contained in:
parent
4c90421070
commit
07d6ed4343
@ -118,8 +118,6 @@ static int run_rpc_command(struct cli_state *cli_arg, const int pipe_idx, int co
|
||||
return -1;
|
||||
}
|
||||
|
||||
domain_sid = net_get_remote_domain_sid(cli, mem_ctx);
|
||||
|
||||
/* Create mem_ctx */
|
||||
|
||||
if (!(mem_ctx = talloc_init("run_rpc_command"))) {
|
||||
@ -128,6 +126,8 @@ static int run_rpc_command(struct cli_state *cli_arg, const int pipe_idx, int co
|
||||
return -1;
|
||||
}
|
||||
|
||||
domain_sid = net_get_remote_domain_sid(cli, mem_ctx);
|
||||
|
||||
if (!cli_nt_session_open(cli, pipe_idx)) {
|
||||
DEBUG(0, ("Could not initialise pipe\n"));
|
||||
}
|
||||
@ -276,7 +276,7 @@ static NTSTATUS rpc_oldjoin_internals(const DOM_SID *domain_sid, struct cli_stat
|
||||
* @return A shell status integer (0 for success)
|
||||
**/
|
||||
|
||||
static int net_rpc_oldjoin(int argc, const char **argv)
|
||||
static int net_rpc_perform_oldjoin(int argc, const char **argv)
|
||||
{
|
||||
return run_rpc_command(NULL, PI_NETLOGON,
|
||||
NET_FLAGS_ANONYMOUS | NET_FLAGS_PDC,
|
||||
@ -284,6 +284,27 @@ static int net_rpc_oldjoin(int argc, const char **argv)
|
||||
argc, argv);
|
||||
}
|
||||
|
||||
/**
|
||||
* Join a domain, the old way. This function exists to allow
|
||||
* the message to be displayed when oldjoin was explicitly
|
||||
* requested, but not when it was implied by "net rpc join"
|
||||
*
|
||||
* @param argc Standard main() style argc
|
||||
* @param argc Standard main() style argv. Initial components are already
|
||||
* stripped
|
||||
*
|
||||
* @return A shell status integer (0 for success)
|
||||
**/
|
||||
|
||||
static int net_rpc_oldjoin(int argc, const char **argv)
|
||||
{
|
||||
int rc = net_rpc_perform_oldjoin(argc, argv);
|
||||
|
||||
if (rc) {
|
||||
d_printf("Failed to join domain\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Basic usage function for 'net rpc join'
|
||||
* @param argc Standard main() style argc
|
||||
@ -319,7 +340,7 @@ static int rpc_join_usage(int argc, const char **argv)
|
||||
|
||||
int net_rpc_join(int argc, const char **argv)
|
||||
{
|
||||
if ((net_rpc_oldjoin(argc, argv) == 0))
|
||||
if ((net_rpc_perform_oldjoin(argc, argv) == 0))
|
||||
return 0;
|
||||
|
||||
return net_rpc_join_newstyle(argc, argv);
|
||||
|
Loading…
Reference in New Issue
Block a user