diff options
author | Jeff Layton <jlayton@redhat.com> | 2013-05-26 07:00:58 -0400 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2013-06-24 02:56:42 -0400 |
commit | 9193400b69eaf8a409bd1c3d40ecd15445e6e08b (patch) | |
tree | 0ef4a4ee0626ffc03efd00d9781ad6c32b8b4476 /fs/cifs | |
parent | 9ddec561313b9c73d6f58a1910d37ea9d965d101 (diff) |
cifs: factor out check for extended security bit into separate function
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/cifssmb.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 1a3776322c71..e63961086752 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c | |||
@@ -539,6 +539,20 @@ decode_lanman_negprot_rsp(struct TCP_Server_Info *server, NEGOTIATE_RSP *pSMBr, | |||
539 | } | 539 | } |
540 | #endif | 540 | #endif |
541 | 541 | ||
542 | static bool | ||
543 | should_set_ext_sec_flag(unsigned int secFlags) | ||
544 | { | ||
545 | if ((secFlags & CIFSSEC_MUST_KRB5) == CIFSSEC_MUST_KRB5) | ||
546 | return true; | ||
547 | else if ((secFlags & CIFSSEC_AUTH_MASK) == CIFSSEC_MAY_KRB5) | ||
548 | return true; | ||
549 | else if ((secFlags & CIFSSEC_MUST_NTLMSSP) == CIFSSEC_MUST_NTLMSSP) | ||
550 | return true; | ||
551 | else if ((secFlags & CIFSSEC_AUTH_MASK) == CIFSSEC_MAY_NTLMSSP) | ||
552 | return true; | ||
553 | return false; | ||
554 | } | ||
555 | |||
542 | int | 556 | int |
543 | CIFSSMBNegotiate(const unsigned int xid, struct cifs_ses *ses) | 557 | CIFSSMBNegotiate(const unsigned int xid, struct cifs_ses *ses) |
544 | { | 558 | { |
@@ -572,15 +586,8 @@ CIFSSMBNegotiate(const unsigned int xid, struct cifs_ses *ses) | |||
572 | pSMB->hdr.Mid = get_next_mid(server); | 586 | pSMB->hdr.Mid = get_next_mid(server); |
573 | pSMB->hdr.Flags2 |= (SMBFLG2_UNICODE | SMBFLG2_ERR_STATUS); | 587 | pSMB->hdr.Flags2 |= (SMBFLG2_UNICODE | SMBFLG2_ERR_STATUS); |
574 | 588 | ||
575 | if ((secFlags & CIFSSEC_MUST_KRB5) == CIFSSEC_MUST_KRB5) | 589 | if (should_set_ext_sec_flag(secFlags)) { |
576 | pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC; | 590 | cifs_dbg(FYI, "Requesting extended security."); |
577 | else if ((secFlags & CIFSSEC_AUTH_MASK) == CIFSSEC_MAY_KRB5) { | ||
578 | cifs_dbg(FYI, "Kerberos only mechanism, enable extended security\n"); | ||
579 | pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC; | ||
580 | } else if ((secFlags & CIFSSEC_MUST_NTLMSSP) == CIFSSEC_MUST_NTLMSSP) | ||
581 | pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC; | ||
582 | else if ((secFlags & CIFSSEC_AUTH_MASK) == CIFSSEC_MAY_NTLMSSP) { | ||
583 | cifs_dbg(FYI, "NTLMSSP only mechanism, enable extended security\n"); | ||
584 | pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC; | 591 | pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC; |
585 | } | 592 | } |
586 | 593 | ||