summaryrefslogtreecommitdiff
path: root/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
diff options
context:
space:
mode:
authorGordon Ross <gwr@nexenta.com>2013-06-17 10:34:00 -0400
committerGordon Ross <gwr@nexenta.com>2015-06-04 16:46:25 -0400
commitb819cea2f73f98c5662230cc9affc8cc84f77fcf (patch)
treea3677952ded5706400717b9b79b0aeaa3d93a739 /usr/src/lib/smbsrv/libsmb/common/smb_sam.c
parent83d2dfe69259e79314662cf95e6d1f9103dcffe2 (diff)
downloadillumos-gate-b819cea2f73f98c5662230cc9affc8cc84f77fcf.tar.gz
5917 User-mode SMB server
Authored by: Thomas Keiser <thomas.keiser@nexenta.com> Authored by: Albert Lee <trisk@nexenta.com> Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Reviewed by: Albert Lee <trisk@omniti.com> Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src/lib/smbsrv/libsmb/common/smb_sam.c')
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_sam.c35
1 files changed, 34 insertions, 1 deletions
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_sam.c b/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
index 7016f5a878..e236b56724 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
@@ -19,9 +19,10 @@
* CDDL HEADER END
*/
/*
- * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
*/
#include <strings.h>
@@ -571,3 +572,35 @@ smb_lwka_lookup_sid(smb_sid_t *sid)
return (NULL);
}
+
+/*
+ * smb_sid_islocal
+ *
+ * Check a SID to see if it belongs to the local domain.
+ */
+boolean_t
+smb_sid_islocal(smb_sid_t *sid)
+{
+ smb_domain_t di;
+ boolean_t islocal = B_FALSE;
+
+ if (smb_domain_lookup_type(SMB_DOMAIN_LOCAL, &di))
+ islocal = smb_sid_indomain(di.di_binsid, sid);
+
+ return (islocal);
+}
+
+void
+smb_ids_free(smb_ids_t *ids)
+{
+ smb_id_t *id;
+ int i;
+
+ if ((ids != NULL) && (ids->i_ids != NULL)) {
+ id = ids->i_ids;
+ for (i = 0; i < ids->i_cnt; i++, id++)
+ smb_sid_free(id->i_sid);
+
+ free(ids->i_ids);
+ }
+}