diff mbox

[linux-cifs-client] cifs: move security option parsing to own function

Message ID OFBA0193DC.B1422D6A-ON87257730.00512ECD-86257730.0051415C@us.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Steven French May 27, 2010, 2:47 p.m. UTC
None
diff mbox

Patch

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index ee78b65..bf7e40c 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -972,6 +972,61 @@  extract_hostname(const char *unc)
 }
 
 static int
+cifs_parse_sec_option(char *value, struct smb_vol *vol)
+{
+                substring_t args[MAX_OPT_ARGS];
+                switch (match_token(value, cifs_sec_options, args)) {
+                case Opt_sec_krb5i:
+                                vol->secFlg |= CIFSSEC_MAY_KRB5 | 
CIFSSEC_MUST_SIGN;
+                                break;
+                case Opt_sec_krb5p:
+                                /* vol->secFlg |= CIFSSEC_MUST_SEAL | 
CIFSSEC_MAY_KRB5; */
+                                cERROR(1, "Krb5 cifs privacy not 
supported");
+                                return 1;
+                case Opt_sec_krb5:
+                                vol->secFlg |= CIFSSEC_MAY_KRB5;
+                                break;
+#ifdef CONFIG_CIFS_EXPERIMENTAL
+                case Opt_sec_ntlmsspi:
+                                vol->secFlg |= CIFSSEC_MAY_NTLMSSP | 
CIFSSEC_MUST_SIGN;
+                                break;
+                case Opt_sec_ntlmssp:
+                                vol->secFlg |= CIFSSEC_MAY_NTLMSSP;
+                                break;
+#endif
+                case Opt_sec_ntlmv2i:
+                                vol->secFlg |= CIFSSEC_MAY_NTLMV2 | 
CIFSSEC_MUST_SIGN;
+                                break;
+                case Opt_sec_ntlmv2:
+                                vol->secFlg |= CIFSSEC_MAY_NTLMV2;
+                                break;
+                case Opt_sec_ntlmi:
+                                vol->secFlg |= CIFSSEC_MAY_NTLM | 
CIFSSEC_MUST_SIGN;
+                                break;
+                case Opt_sec_ntlm:
+                                /* ntlm is default so can be turned off 
too */
+                                vol->secFlg |= CIFSSEC_MAY_NTLM;
+                                break;
+                case Opt_sec_nontlm:
+                                /* BB is there a better way to do this? 
*/
+                                vol->secFlg |= CIFSSEC_MAY_NTLMV2;
+                                break;
+#ifdef CONFIG_CIFS_WEAK_PW_HASH
+                case Opt_sec_lanman:
+                                vol->secFlg |= CIFSSEC_MAY_LANMAN;
+                                break;
+#endif
+                case Opt_sec_none:
+                                vol->nullauth = 1;
+                                break;
+                default:
+                                cERROR(1, "bad security option: %s", 
value);