diff options
author | Günther Deschner <gd@samba.org> | 2007-01-23 10:51:35 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:17:22 -0500 |
commit | aeb834036d5cc576df6b284cebf6f4afcce4dfcc (patch) | |
tree | 5d6134b0ef380eaee1c33b42a2132248cc7c107e /source3 | |
parent | 23e227ac391a3f674712bdd09a0581a02cbc8a7e (diff) | |
download | samba-aeb834036d5cc576df6b284cebf6f4afcce4dfcc.tar.gz samba-aeb834036d5cc576df6b284cebf6f4afcce4dfcc.tar.bz2 samba-aeb834036d5cc576df6b284cebf6f4afcce4dfcc.zip |
r20970: Allow to define workstation for samlogon in rpcclient (for testing).
Guenther
(This used to be commit 5d4747fdf2e5874cb5d2238ee62e4fcac1676134)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/rpc_client/cli_netlogon.c | 7 | ||||
-rw-r--r-- | source3/rpcclient/cmd_netlogon.c | 18 |
2 files changed, 17 insertions, 8 deletions
diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index 28395de067..0fdc476775 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -733,6 +733,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, const char *domain, const char *username, const char *password, + const char *workstation, int logon_type) { prs_struct qbuf, rbuf; @@ -750,7 +751,11 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, ZERO_STRUCT(r); ZERO_STRUCT(ret_creds); - fstr_sprintf( clnt_name_slash, "\\\\%s", global_myname() ); + if (workstation) { + fstr_sprintf( clnt_name_slash, "\\\\%s", workstation ); + } else { + fstr_sprintf( clnt_name_slash, "\\\\%s", global_myname() ); + } /* Initialise input parameters */ diff --git a/source3/rpcclient/cmd_netlogon.c b/source3/rpcclient/cmd_netlogon.c index a1093d693f..5a2dd00f98 100644 --- a/source3/rpcclient/cmd_netlogon.c +++ b/source3/rpcclient/cmd_netlogon.c @@ -338,11 +338,12 @@ static NTSTATUS cmd_netlogon_sam_logon(struct rpc_pipe_client *cli, const char *username, *password; int auth_level = 2; uint32 logon_param = 0; + const char *workstation = NULL; /* Check arguments */ if (argc < 3 || argc > 6) { - fprintf(stderr, "Usage: samlogon <username> <password> " + fprintf(stderr, "Usage: samlogon <username> <password> [workstation]" "[logon_type (1 or 2)] [auth level (2 or 3)] [logon_parameter]\n"); return NT_STATUS_OK; } @@ -350,18 +351,21 @@ static NTSTATUS cmd_netlogon_sam_logon(struct rpc_pipe_client *cli, username = argv[1]; password = argv[2]; - if (argc >= 4) - sscanf(argv[3], "%i", &logon_type); + if (argc >= 4) + workstation = argv[3]; if (argc >= 5) - sscanf(argv[4], "%i", &auth_level); + sscanf(argv[4], "%i", &logon_type); - if (argc == 6) - sscanf(argv[5], "%x", &logon_param); + if (argc >= 6) + sscanf(argv[5], "%i", &auth_level); + + if (argc == 7) + sscanf(argv[6], "%x", &logon_param); /* Perform the sam logon */ - result = rpccli_netlogon_sam_logon(cli, mem_ctx, logon_param, lp_workgroup(), username, password, logon_type); + result = rpccli_netlogon_sam_logon(cli, mem_ctx, logon_param, lp_workgroup(), username, password, workstation, logon_type); if (!NT_STATUS_IS_OK(result)) goto done; |