s3:ntlmssp: use client.netbios_name instead of workstation
authorStefan Metzmacher <metze@samba.org>
Wed, 30 Dec 2009 15:53:08 +0000 (16:53 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 24 Mar 2010 16:34:56 +0000 (17:34 +0100)
metze

Signed-off-by: Günther Deschner <gd@samba.org>
source3/auth/auth_ntlmssp.c
source3/include/ntlmssp.h
source3/libsmb/ntlmssp.c
source3/rpc_server/srv_pipe.c
source3/utils/ntlm_auth.c

index 1609c71fff9a9af66c973c4d87697efb77e8bde9..a62d42900805c2c316a166934ce13c1627b45f93 100644 (file)
@@ -92,7 +92,7 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state,
        /* the client has given us its machine name (which we otherwise would not get on port 445).
           we need to possibly reload smb.conf if smb.conf includes depend on the machine name */
 
-       set_remote_machine_name(auth_ntlmssp_state->ntlmssp_state->workstation, True);
+       set_remote_machine_name(auth_ntlmssp_state->ntlmssp_state->client.netbios_name, True);
 
        /* setup the string used by %U */
        /* sub_set_smb_name checks for weird internally */
@@ -103,7 +103,7 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state,
        nt_status = make_user_info_map(&user_info, 
                                       auth_ntlmssp_state->ntlmssp_state->user, 
                                       auth_ntlmssp_state->ntlmssp_state->domain, 
-                                      auth_ntlmssp_state->ntlmssp_state->workstation, 
+                                      auth_ntlmssp_state->ntlmssp_state->client.netbios_name,
                                       auth_ntlmssp_state->ntlmssp_state->lm_resp.data ? &auth_ntlmssp_state->ntlmssp_state->lm_resp : NULL, 
                                       auth_ntlmssp_state->ntlmssp_state->nt_resp.data ? &auth_ntlmssp_state->ntlmssp_state->nt_resp : NULL, 
                                       NULL, NULL, NULL,
index 8774a0b1a96c38ec648d45cd03af12347e14e06e..55ab9225f4f01fee530a7d03fb44c78bffccced9 100644 (file)
@@ -54,7 +54,6 @@ struct ntlmssp_state
        bool use_ccache;
        const char *user;
        const char *domain;
-       const char *workstation;
        unsigned char *nt_hash;
        unsigned char *lm_hash;
 
index 58935ed19b7a97412124e5db78b985f69f2d1c2f..5e48b1aba83f36f944ae084b9f14d9ddb2d63c4d 100644 (file)
@@ -599,7 +599,6 @@ static NTSTATUS ntlmssp_server_auth(struct ntlmssp_state *ntlmssp_state,
 
        ntlmssp_state->user = NULL;
        ntlmssp_state->domain = NULL;
-       ntlmssp_state->workstation = NULL;
 
        /* now the NTLMSSP encoded auth hashes */
        if (!msrpc_parse(ntlmssp_state, &request, parse_string,
@@ -609,7 +608,7 @@ static NTSTATUS ntlmssp_server_auth(struct ntlmssp_state *ntlmssp_state,
                         &ntlmssp_state->nt_resp,
                         &ntlmssp_state->domain,
                         &ntlmssp_state->user,
-                        &ntlmssp_state->workstation,
+                        &ntlmssp_state->client.netbios_name,
                         &encrypted_session_key,
                         &auth_flags)) {
                auth_flags = 0;
@@ -629,7 +628,7 @@ static NTSTATUS ntlmssp_server_auth(struct ntlmssp_state *ntlmssp_state,
                                 &ntlmssp_state->nt_resp,
                                 &ntlmssp_state->domain,
                                 &ntlmssp_state->user,
-                                &ntlmssp_state->workstation)) {
+                                &ntlmssp_state->client.netbios_name)) {
                        DEBUG(1, ("ntlmssp_server_auth: failed to parse NTLMSSP (tried both formats):\n"));
                        dump_data(2, request.data, request.length);
 
@@ -651,7 +650,10 @@ static NTSTATUS ntlmssp_server_auth(struct ntlmssp_state *ntlmssp_state,
        }
 
        DEBUG(3,("Got user=[%s] domain=[%s] workstation=[%s] len1=%lu len2=%lu\n",
-                ntlmssp_state->user, ntlmssp_state->domain, ntlmssp_state->workstation, (unsigned long)ntlmssp_state->lm_resp.length, (unsigned long)ntlmssp_state->nt_resp.length));
+                ntlmssp_state->user, ntlmssp_state->domain,
+                ntlmssp_state->client.netbios_name,
+                (unsigned long)ntlmssp_state->lm_resp.length,
+                (unsigned long)ntlmssp_state->nt_resp.length));
 
 #if 0
        file_save("nthash1.dat",  &ntlmssp_state->nt_resp.data,  &ntlmssp_state->nt_resp.length);
index f6ed50c945608b80995f0c864e2836037b2ec928..7b02ac8b1fa4640afd4dfe850b10beeb82c9ca86 100644 (file)
@@ -704,7 +704,8 @@ static bool pipe_ntlmssp_verify_final(pipes_struct *p, DATA_BLOB *p_resp_blob)
 
        DEBUG(5, ("pipe_ntlmssp_verify_final: OK: user: %s domain: %s "
                  "workstation: %s\n", a->ntlmssp_state->user,
-                 a->ntlmssp_state->domain, a->ntlmssp_state->workstation));
+                 a->ntlmssp_state->domain,
+                 a->ntlmssp_state->client.netbios_name));
 
        if (a->server_info->ptok == NULL) {
                DEBUG(1,("Error: Authmodule failed to provide nt_user_token\n"));
index 3eb34a7d9a0dec3b6981e06bba4ad7222a541687..049aa309e65d70271401f7fba6e6a9c698d535ee 100644 (file)
@@ -571,7 +571,7 @@ static NTSTATUS winbind_pw_check(struct ntlmssp_state *ntlmssp_state, DATA_BLOB
        char *unix_name = NULL;
 
        nt_status = contact_winbind_auth_crap(ntlmssp_state->user, ntlmssp_state->domain,
-                                             ntlmssp_state->workstation,
+                                             ntlmssp_state->client.netbios_name,
                                              &ntlmssp_state->chal,
                                              &ntlmssp_state->lm_resp,
                                              &ntlmssp_state->nt_resp, 
@@ -595,7 +595,7 @@ static NTSTATUS winbind_pw_check(struct ntlmssp_state *ntlmssp_state, DATA_BLOB
                DEBUG(NT_STATUS_EQUAL(nt_status, NT_STATUS_ACCESS_DENIED) ? 0 : 3, 
                      ("Login for user [%s]\\[%s]@[%s] failed due to [%s]\n", 
                       ntlmssp_state->domain, ntlmssp_state->user, 
-                      ntlmssp_state->workstation, 
+                      ntlmssp_state->client.netbios_name,
                       error_string ? error_string : "unknown error (NULL)"));
                ntlmssp_state->callback_private = NULL;
        }
@@ -629,7 +629,8 @@ static NTSTATUS local_pw_check(struct ntlmssp_state *ntlmssp_state, DATA_BLOB *u
                                                              ntlmssp_state->user);
        } else {
                DEBUG(3, ("Login for user [%s]\\[%s]@[%s] failed due to [%s]\n", 
-                         ntlmssp_state->domain, ntlmssp_state->user, ntlmssp_state->workstation, 
+                         ntlmssp_state->domain, ntlmssp_state->user,
+                         ntlmssp_state->client.netbios_name,
                          nt_errstr(nt_status)));
                ntlmssp_state->callback_private = NULL;
        }