summaryrefslogtreecommitdiff
path: root/usr/src/lib/libbsm/common/au_to.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libbsm/common/au_to.c')
-rw-r--r--usr/src/lib/libbsm/common/au_to.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/usr/src/lib/libbsm/common/au_to.c b/usr/src/lib/libbsm/common/au_to.c
index 9ee2dd7b7a..2e77248b4b 100644
--- a/usr/src/lib/libbsm/common/au_to.c
+++ b/usr/src/lib/libbsm/common/au_to.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.
*/
@@ -1211,6 +1211,34 @@ au_to_upriv(char sorf, char *priv)
}
/*
+ * au_to_user
+ * return s:
+ * pointer to a user token.
+ */
+token_t *
+au_to_user(uid_t uid, char *username)
+{
+ token_t *token; /* local token */
+ adr_t adr; /* adr memory stream header */
+ char data_header = AUT_USER; /* header for this token */
+ short bytes; /* length of string */
+
+ bytes = (short)strlen(username) + 1;
+
+ token = get_token(sizeof (char) + sizeof (uid_t) + sizeof (short) +
+ bytes);
+ if (token == NULL)
+ return (NULL);
+ adr_start(&adr, token->tt_data);
+ adr_char(&adr, &data_header, 1);
+ adr_uid(&adr, &uid, 1);
+ adr_short(&adr, &bytes, 1);
+ adr_char(&adr, username, bytes);
+
+ return (token);
+}
+
+/*
* au_to_xatom
* return s:
* pointer to a xatom token.