diff options
author | Jeff Layton <jlayton@redhat.com> | 2010-04-24 15:57:49 +0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2010-05-06 03:24:11 +0400 |
commit | 26efa0bac9dc3587ee8892c06642735bcded59e5 (patch) | |
tree | 2d6d75ffa9671b972cadcbc62ed365e992ea247a /fs/cifs/cifssmb.c | |
parent | 198b5682781b97251afd9025dbf559a77969abdd (diff) | |
download | linux-26efa0bac9dc3587ee8892c06642735bcded59e5.tar.xz |
cifs: have decode_negTokenInit set flags in server struct
...rather than the secType. This allows us to get rid of the MSKerberos
securityEnum. The client just makes a decision at upcall time.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r-- | fs/cifs/cifssmb.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 30742d8eef14..c65c3419dd37 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c @@ -597,13 +597,19 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses) server->secType = RawNTLMSSP; } else { rc = decode_negTokenInit(pSMBr->u.extended_response. - SecurityBlob, - count - 16, - &server->secType); + SecurityBlob, count - 16, + server); if (rc == 1) rc = 0; else rc = -EINVAL; + + if (server->sec_kerberos || server->sec_mskerberos) + server->secType = Kerberos; + else if (server->sec_ntlmssp) + server->secType = RawNTLMSSP; + else + rc = -EOPNOTSUPP; } } else server->capabilities &= ~CAP_EXTENDED_SECURITY; |