s3-rpcclient: allow to define validation level for samlogon.
authorGünther Deschner <gd@samba.org>
Fri, 21 Jan 2011 15:58:32 +0000 (16:58 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 24 Jan 2011 15:56:00 +0000 (16:56 +0100)
Guenther

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

index 3046d277ee02a7b54c78e733d4e17e81d6137a16..914bfd3df698a48d81f7ec92b1176a5c32e64423 100644 (file)
@@ -159,6 +159,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
                                   const char *username,
                                   const char *password,
                                   const char *workstation,
+                                  uint16_t validation_level,
                                   int logon_type)
 {
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
@@ -168,7 +169,6 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
        union netr_LogonLevel *logon;
        union netr_Validation validation;
        uint8_t authoritative;
-       int validation_level = 3;
        fstring clnt_name_slash;
        struct dcerpc_binding_handle *b = cli->binding_handle;
 
index 107c222ceec8ede581beed2fcc78dea47c4816ba..bb38b75b95c3e873fe3e8403d5db691970a8c911 100644 (file)
@@ -15,6 +15,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
                                   const char *username,
                                   const char *password,
                                   const char *workstation,
+                                  uint16_t validation_level,
                                   int logon_type);
 NTSTATUS rpccli_netlogon_sam_network_logon(struct rpc_pipe_client *cli,
                                           TALLOC_CTX *mem_ctx,
index 1942352939a96fcd19fe4fb60d7d1435554b83f4..c909efe53fa8e6916481b124cbc1e3812edbc9de 100644 (file)
@@ -718,7 +718,7 @@ static NTSTATUS cmd_netlogon_sam_logon(struct rpc_pipe_client *cli,
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        int logon_type = NetlogonNetworkInformation;
        const char *username, *password;
-       int auth_level = 2;
+       uint16_t validation_level = 3;
        uint32 logon_param = 0;
        const char *workstation = NULL;
 
@@ -740,14 +740,14 @@ static NTSTATUS cmd_netlogon_sam_logon(struct rpc_pipe_client *cli,
                sscanf(argv[4], "%i", &logon_type);
 
        if (argc >= 6)
-               sscanf(argv[5], "%i", &auth_level);
+               validation_level = atoi(argv[5]);
 
        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, workstation, logon_type);
+       result = rpccli_netlogon_sam_logon(cli, mem_ctx, logon_param, lp_workgroup(), username, password, workstation, validation_level, logon_type);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;