Implement more ucred_* calls
authorDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Thu, 18 Sep 2008 00:34:15 +0000 (00:34 +0000)
committerDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Thu, 18 Sep 2008 00:34:15 +0000 (00:34 +0000)
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ucred.c

index 4e606ab..aadb2c1 100644 (file)
@@ -23,6 +23,7 @@
 #include <errno.h>
 #define _STRUCTURED_PROC 1
 #include <sys/ucred.h>
+#include <auditP.h>
 #include <priv.h>
 #include <assert.h>
 
@@ -191,6 +192,56 @@ m_label_t *ucred_getlabel (const ucred_t *uc)
 }
 
 
+au_id_t ucred_getauid (const ucred_t *uc)
+{
+  if (uc->uc_audoff == 0)
+    return AU_NOAUDITID;
+  const auditinfo64_addr_t *info = (auditinfo64_addr_t *)
+      ((char *)uc + uc->uc_audoff);
+
+  return info->ai_auid;
+}
+
+
+au_asid_t ucred_getasid (const ucred_t *uc)
+{
+  if (uc->uc_audoff == 0)
+    return (au_asid_t)-1;
+  const auditinfo64_addr_t *info = (auditinfo64_addr_t *)
+      ((char *)uc + uc->uc_audoff);
+
+  return info->ai_asid;
+}
+
+
+const au_tid64_addr_t * ucred_getatid (const ucred_t *uc)
+{
+  if (uc->uc_audoff == 0)
+    {
+      __set_errno (EINVAL);
+      return NULL;
+    }
+  const auditinfo64_addr_t *info = (auditinfo64_addr_t *)
+      ((char *)uc + uc->uc_audoff);
+
+  return &info->ai_termid;
+}
+
+
+const au_mask_t * ucred_getamask (const ucred_t *uc)
+{
+  if (uc->uc_audoff == 0)
+    {
+      __set_errno (EINVAL);
+      return NULL;
+    }
+  const auditinfo64_addr_t *info = (auditinfo64_addr_t *)
+      ((char *)uc + uc->uc_audoff);
+
+  return &info->ai_mask;
+}
+
+
 size_t ucred_size (void)
 {
     const priv_impl_info_t *info = getprivimplinfo ();