Print this page
NEX-14666 Need to provide SMB 2.1 Client
NEX-17187 panic in smbfs_acl_store
NEX-17231 smbfs create xattr files finds wrong file
NEX-17224 smbfs lookup EINVAL should be ENOENT
NEX-17260 SMB1 client fails to list directory after NEX-14666
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
and: (cleanup)
4295 libshare sa_get_proto_status sometimes returns unallocated strings
Reviewed by: Marcel Telka <marcel@telka.sk>
Approved by: Garrett D'Amore <garrett@damore.org>
*** 20,29 ****
--- 20,31 ----
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright 2018 Nexenta Systems, Inc. All rights reserved.
*/
/*
* SMB specific functions
*/
*** 68,77 ****
--- 70,80 ----
static int string_length_check_validator(int, char *, char *);
static int yes_no_validator(int, char *, char *);
static int ip_address_validator(int, char *, char *);
static int minauth_validator(int, char *, char *);
static int password_validator(int, char *, char *);
+ static int protocol_validator(int, char *, char *);
static int signing_validator(int, char *, char *);
int propset_changed = 0;
/*
*** 180,189 ****
--- 183,198 ----
0, 0, MAX_VALUE_BUFLEN,
string_length_check_validator},
{ "signing", NULL, PROTO_OPT_SIGNING,
0, 0, MAX_VALUE_BUFLEN,
signing_validator},
+ { "min_protocol", NULL, PROTO_OPT_MIN_PROTOCOL,
+ 0, 0, MAX_VALUE_BUFLEN,
+ protocol_validator},
+ { "max_protocol", NULL, PROTO_OPT_MAX_PROTOCOL,
+ 0, 0, MAX_VALUE_BUFLEN,
+ protocol_validator},
{NULL}
};
/*
* Check the range of value as int range.
*** 268,289 ****
/*ARGSUSED*/
static int
minauth_validator(int index, char *section, char *value)
{
if (value == NULL)
return (SA_BAD_VALUE);
! if (strlen(value) == 0)
return (SA_OK);
! if (strcmp(value, "kerberos") == 0 ||
! strcmp(value, "ntlmv2") == 0 ||
! strcmp(value, "ntlm") == 0 ||
! strcmp(value, "lm") == 0 ||
! strcmp(value, "none") == 0)
! return (SA_OK);
! else
return (SA_BAD_VALUE);
}
/*ARGSUSED*/
static int
signing_validator(int index, char *section, char *value)
--- 277,310 ----
/*ARGSUSED*/
static int
minauth_validator(int index, char *section, char *value)
{
+ int ival;
+
if (value == NULL)
return (SA_BAD_VALUE);
! ival = smb_cf_minauth_from_str(value);
! if (ival == -1)
! return (SA_BAD_VALUE);
!
return (SA_OK);
! }
!
! /*ARGSUSED*/
! static int
! protocol_validator(int index, char *section, char *value)
! {
! int ival;
!
! if (value == NULL)
return (SA_BAD_VALUE);
+ ival = smb_cf_version_from_str(value);
+ if (ival == -1)
+ return (SA_BAD_VALUE);
+
+ return (SA_OK);
}
/*ARGSUSED*/
static int
signing_validator(int index, char *section, char *value)