summaryrefslogtreecommitdiff
path: root/source3/rpcclient
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpcclient')
-rw-r--r--source3/rpcclient/cmd_netlogon.c19
-rw-r--r--source3/rpcclient/rpcclient.c23
2 files changed, 20 insertions, 22 deletions
diff --git a/source3/rpcclient/cmd_netlogon.c b/source3/rpcclient/cmd_netlogon.c
index 1421c4da26..e6ec28beab 100644
--- a/source3/rpcclient/cmd_netlogon.c
+++ b/source3/rpcclient/cmd_netlogon.c
@@ -296,25 +296,6 @@ static NTSTATUS cmd_netlogon_sam_logon(struct cli_state *cli,
if (argc == 6)
sscanf(argv[5], "%i", &auth_level);
- /* Authenticate ourselves with the domain controller */
-
- if (!secrets_init()) {
- fprintf(stderr, "Unable to initialise secrets database\n");
- return result;
- }
-
- if (!secrets_fetch_trust_account_password(lp_workgroup(), trust_passwd, NULL)) {
- fprintf(stderr, "could not fetch trust account password\n");
- goto done;
- }
-
- result = cli_nt_setup_creds(cli, get_sec_chan(), trust_passwd, &neg_flags, auth_level);
-
- if (!NT_STATUS_IS_OK(result)) {
- fprintf(stderr, "Error initialising session creds\n");
- goto done;
- }
-
/* Perform the sam logon */
result = cli_netlogon_sam_logon(cli, mem_ctx, username, password, logon_type);
diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c
index 2338d72f19..0cb4ba98c8 100644
--- a/source3/rpcclient/rpcclient.c
+++ b/source3/rpcclient/rpcclient.c
@@ -475,11 +475,28 @@ static NTSTATUS do_cmd(struct cli_state *cli,
/* Open pipe */
- if (cmd_entry->pipe_idx != -1)
- if (!cli_nt_session_open(cli, cmd_entry->pipe_idx)) {
- DEBUG(0, ("Could not initialize pipe\n"));
+ if (cmd_entry->pipe_idx == PI_NETLOGON) {
+ uchar trust_password[16];
+
+ if (!secrets_fetch_trust_account_password(lp_workgroup(),
+ trust_password,
+ NULL)) {
+ return NT_STATUS_UNSUCCESSFUL;
+ }
+
+ if (!cli_nt_open_netlogon(cli, trust_password,
+ SEC_CHAN_WKSTA)) {
+ DEBUG(0, ("Could not initialize NETLOGON pipe\n"));
return NT_STATUS_UNSUCCESSFUL;
}
+ } else {
+ if (cmd_entry->pipe_idx != -1) {
+ if (!cli_nt_session_open(cli, cmd_entry->pipe_idx)) {
+ DEBUG(0, ("Could not initialize pipe\n"));
+ return NT_STATUS_UNSUCCESSFUL;
+ }
+ }
+ }
/* Run command */