r20970: Allow to define workstation for samlogon in rpcclient (for testing).
authorGünther Deschner <gd@samba.org>
Tue, 23 Jan 2007 10:51:35 +0000 (10:51 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:17:22 +0000 (12:17 -0500)
Guenther
(This used to be commit 5d4747fdf2e5874cb5d2238ee62e4fcac1676134)

source3/rpc_client/cli_netlogon.c
source3/rpcclient/cmd_netlogon.c

index 28395de067b0ad1a7037042738f95444a80b567a..0fdc476775e86cfa7c35c7b0c96d891917c701a0 100644 (file)
@@ -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 */
 
index a1093d693fb01f2d46f35bdfbe80612413ca33ca..5a2dd00f9800bb3fe58f356e66f9ac16197158d8 100644 (file)
@@ -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;