summaryrefslogtreecommitdiff
path: root/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/smbsrv/libsmb/common/smb_wksids.c')
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_wksids.c40
1 files changed, 36 insertions, 4 deletions
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c b/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
index ef9400b785..58cc60918e 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -60,6 +60,8 @@ static smb_wka_t wka_tbl[] = {
SidTypeWellKnownGroup, 0, NULL, NULL },
{ 0, "S-1-3-4", "Owner Rights",
SidTypeWellKnownGroup, 0, NULL, NULL },
+ { 0, "S-1-3-5", "Group Rights",
+ SidTypeWellKnownGroup, 0, NULL, NULL },
{ 1, "S-1-5", "NT Pseudo Domain",
SidTypeDomain, 0, NULL, NULL },
{ 2, "S-1-5-1", "Dialup",
@@ -124,7 +126,11 @@ static smb_wka_t wka_tbl[] = {
SMB_WKAFLG_LGRP_ENABLE,
"Members can bypass file security to back up files", NULL },
{ 3, "S-1-5-32-552", "Replicator",
- SidTypeAlias, 0, NULL, NULL }
+ SidTypeAlias, 0, NULL, NULL },
+ { 3, "S-1-5-32-766", "Current Owner",
+ SidTypeAlias, 0, NULL, NULL },
+ { 3, "S-1-5-32-767", "Current Group",
+ SidTypeAlias, 0, NULL, NULL },
};
#define SMB_WKA_NUM (sizeof (wka_tbl)/sizeof (wka_tbl[0]))
@@ -161,7 +167,7 @@ smb_wka_lookup_sid(smb_sid_t *sid)
* entry, otherwise returns NULL.
*/
smb_sid_t *
-smb_wka_get_sid(char *name)
+smb_wka_get_sid(const char *name)
{
smb_wka_t *entry;
smb_sid_t *sid = NULL;
@@ -178,7 +184,7 @@ smb_wka_get_sid(char *name)
* the table, otherwise returns NULL.
*/
smb_wka_t *
-smb_wka_lookup_name(char *name)
+smb_wka_lookup_name(const char *name)
{
smb_wka_t *entry;
int i;
@@ -197,6 +203,32 @@ smb_wka_lookup_name(char *name)
}
/*
+ * Lookup a name in the BUILTIN domain.
+ */
+smb_wka_t *
+smb_wka_lookup_builtin(const char *name)
+{
+ smb_wka_t *entry;
+ int i;
+
+ (void) rw_rdlock(&wk_rwlock);
+ for (i = 0; i < SMB_WKA_NUM; ++i) {
+ entry = &wka_tbl[i];
+
+ if (entry->wka_domidx != 3)
+ continue;
+
+ if (!smb_strcasecmp(name, entry->wka_name, 0)) {
+ (void) rw_unlock(&wk_rwlock);
+ return (entry);
+ }
+ }
+
+ (void) rw_unlock(&wk_rwlock);
+ return (NULL);
+}
+
+/*
* Returns the Netbios domain name for the given index
*/
char *