s3-auth Change UNIX_USER_TOKEN -> struct security_unix_token
authorAndrew Bartlett <abartlet@samba.org>
Fri, 11 Feb 2011 09:38:51 +0000 (20:38 +1100)
committerStefan Metzmacher <metze@samba.org>
Tue, 22 Feb 2011 18:32:55 +0000 (19:32 +0100)
Andrew Bartlett

source3/include/proto.h
source3/include/smb.h
source3/locking/locking.c
source3/smbd/close.c
source3/smbd/posix_acls.c
source3/smbd/sec_ctx.c
source3/smbd/uid.c

index 3ff8d0bdc196b1464dc6d1d0ec9c03d197ae2966..6f508f9510839d4946216185b347ff4439c8d54f 100644 (file)
@@ -3046,12 +3046,12 @@ void del_deferred_open_entry(struct share_mode_lock *lck, uint64_t mid,
 bool remove_share_oplock(struct share_mode_lock *lck, files_struct *fsp);
 bool downgrade_share_oplock(struct share_mode_lock *lck, files_struct *fsp);
 NTSTATUS can_set_delete_on_close(files_struct *fsp, uint32 dosmode);
-const UNIX_USER_TOKEN *get_delete_on_close_token(struct share_mode_lock *lck, uint32_t name_hash);
+const struct security_unix_token *get_delete_on_close_token(struct share_mode_lock *lck, uint32_t name_hash);
 void set_delete_on_close_lck(files_struct *fsp,
                        struct share_mode_lock *lck,
                        bool delete_on_close,
-                       const UNIX_USER_TOKEN *tok);
-bool set_delete_on_close(files_struct *fsp, bool delete_on_close, const UNIX_USER_TOKEN *tok);
+                       const struct security_unix_token *tok);
+bool set_delete_on_close(files_struct *fsp, bool delete_on_close, const struct security_unix_token *tok);
 bool is_delete_on_close_set(struct share_mode_lock *lck, uint32_t name_hash);
 bool set_sticky_write_time(struct file_id fileid, struct timespec write_time);
 bool set_write_time(struct file_id fileid, struct timespec write_time);
@@ -5343,7 +5343,7 @@ void server_encryption_shutdown(void);
 
 /* The following definitions come from smbd/sec_ctx.c  */
 
-bool unix_token_equal(const UNIX_USER_TOKEN *t1, const UNIX_USER_TOKEN *t2);
+bool unix_token_equal(const struct security_unix_token *t1, const struct security_unix_token *t2);
 bool push_sec_ctx(void);
 void set_sec_ctx(uid_t uid, gid_t gid, int ngroups, gid_t *groups, struct security_token *token);
 void set_root_sec_ctx(void);
@@ -5513,7 +5513,7 @@ bool become_user(connection_struct *conn, uint16 vuid);
 bool unbecome_user(void);
 uid_t get_current_uid(connection_struct *conn);
 gid_t get_current_gid(connection_struct *conn);
-const UNIX_USER_TOKEN *get_current_utok(connection_struct *conn);
+const struct security_unix_token *get_current_utok(connection_struct *conn);
 const struct security_token *get_current_nttok(connection_struct *conn);
 uint16_t get_current_vuid(connection_struct *conn);
 
index 0776ed9656ee31c3df8d4f91af0f737a80e90d54..daf08c62076948063e28e82e311409a4643dc092 100644 (file)
@@ -202,13 +202,6 @@ struct lsa_name_info {
 #define PRIMARY_USER_SID_INDEX 0
 #define PRIMARY_GROUP_SID_INDEX 1
 
-typedef struct unix_user_token {
-       uid_t uid;
-       gid_t gid;
-       uint32_t ngroups;
-       gid_t *groups;
-} UNIX_USER_TOKEN;
-
 typedef struct write_cache {
        SMB_OFF_T file_size;
        SMB_OFF_T offset;
@@ -520,7 +513,7 @@ typedef struct connection_struct {
 struct current_user {
        connection_struct *conn;
        uint16 vuid;
-       UNIX_USER_TOKEN ut;
+       struct security_unix_token ut;
        struct security_token *nt_user_token;
 };
 
@@ -728,7 +721,7 @@ Offset  Data                        length.
 struct delete_token_list {
        struct delete_token_list *next, *prev;
        uint32_t name_hash;
-       UNIX_USER_TOKEN *delete_token;
+       struct security_unix_token *delete_token;
 };
 
 struct share_mode_lock {
index 1942f440195fcf0877505cab2c7af05bc8d15015..00f384a13bd1477af1387f0569ca7efd6d513857 100644 (file)
@@ -584,7 +584,7 @@ static int parse_delete_tokens_list(struct share_mode_lock *lck,
                memcpy(&pdtl->name_hash, p, sizeof(pdtl->name_hash));
                p += sizeof(pdtl->name_hash);
 
-               pdtl->delete_token = TALLOC_ZERO_P(pdtl, UNIX_USER_TOKEN);
+               pdtl->delete_token = TALLOC_ZERO_P(pdtl, struct security_unix_token);
                if (pdtl->delete_token == NULL) {
                        DEBUG(0,("parse_delete_tokens_list: talloc failed"));
                        return -1;
@@ -808,7 +808,7 @@ static TDB_DATA unparse_share_modes(const struct share_mode_lock *lck)
 
        /* Store any delete on close tokens. */
        for (pdtl = lck->delete_tokens; pdtl; pdtl = pdtl->next) {
-               UNIX_USER_TOKEN *pdt = pdtl->delete_token;
+               struct security_unix_token *pdt = pdtl->delete_token;
                uint32_t token_size = sizeof(uint32_t) +
                                        sizeof(uint32_t) +
                                        sizeof(uid_t) +
@@ -1461,15 +1461,15 @@ NTSTATUS can_set_delete_on_close(files_struct *fsp, uint32 dosmode)
 }
 
 /*************************************************************************
- Return a talloced copy of a UNIX_USER_TOKEN. NULL on fail.
+ Return a talloced copy of a struct security_unix_token. NULL on fail.
  (Should this be in locking.c.... ?).
 *************************************************************************/
 
-static UNIX_USER_TOKEN *copy_unix_token(TALLOC_CTX *ctx, const UNIX_USER_TOKEN *tok)
+static struct security_unix_token *copy_unix_token(TALLOC_CTX *ctx, const struct security_unix_token *tok)
 {
-       UNIX_USER_TOKEN *cpy;
+       struct security_unix_token *cpy;
 
-       cpy = TALLOC_P(ctx, UNIX_USER_TOKEN);
+       cpy = TALLOC_P(ctx, struct security_unix_token);
        if (!cpy) {
                return NULL;
        }
@@ -1494,7 +1494,7 @@ static UNIX_USER_TOKEN *copy_unix_token(TALLOC_CTX *ctx, const UNIX_USER_TOKEN *
 
 static bool add_delete_on_close_token(struct share_mode_lock *lck,
                        uint32_t name_hash,
-                       const UNIX_USER_TOKEN *tok)
+                       const struct security_unix_token *tok)
 {
        struct delete_token_list *dtl;
 
@@ -1521,14 +1521,14 @@ static bool add_delete_on_close_token(struct share_mode_lock *lck,
  changed the delete on close flag. This will be noticed
  in the close code, the last closer will delete the file
  if flag is set.
- This makes a copy of any UNIX_USER_TOKEN into the
+ This makes a copy of any struct security_unix_token into the
  lck entry. This function is used when the lock is already granted.
 ****************************************************************************/
 
 void set_delete_on_close_lck(files_struct *fsp,
                        struct share_mode_lock *lck,
                        bool delete_on_close,
-                       const UNIX_USER_TOKEN *tok)
+                       const struct security_unix_token *tok)
 {
        struct delete_token_list *dtl;
        bool ret;
@@ -1565,7 +1565,7 @@ void set_delete_on_close_lck(files_struct *fsp,
        SMB_ASSERT(ret);
 }
 
-bool set_delete_on_close(files_struct *fsp, bool delete_on_close, const UNIX_USER_TOKEN *tok)
+bool set_delete_on_close(files_struct *fsp, bool delete_on_close, const struct security_unix_token *tok)
 {
        struct share_mode_lock *lck;
        
@@ -1596,7 +1596,7 @@ bool set_delete_on_close(files_struct *fsp, bool delete_on_close, const UNIX_USE
        return True;
 }
 
-const UNIX_USER_TOKEN *get_delete_on_close_token(struct share_mode_lock *lck, uint32_t name_hash)
+const struct security_unix_token *get_delete_on_close_token(struct share_mode_lock *lck, uint32_t name_hash)
 {
        struct delete_token_list *dtl;
 
index 0efa36f9a98b7b963103fc1f2b8a0f8664d3348c..4e05c4d64cfeecef26d89bf94f276d6c7c4a1ed6 100644 (file)
@@ -275,7 +275,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp,
        NTSTATUS status = NT_STATUS_OK;
        NTSTATUS tmp_status;
        struct file_id id;
-       const UNIX_USER_TOKEN *del_token = NULL;
+       const struct security_unix_token *del_token = NULL;
 
        /* Ensure any pending write time updates are done. */
        if (fsp->update_write_time_event) {
@@ -950,7 +950,7 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
        bool delete_dir = False;
        NTSTATUS status = NT_STATUS_OK;
        NTSTATUS status1 = NT_STATUS_OK;
-       const UNIX_USER_TOKEN *del_token = NULL;
+       const struct security_unix_token *del_token = NULL;
 
        /*
         * NT can set delete_on_close of the last open
index 8707ff799c661b3e4bb8a967d7751ba38c820c6f..5faf26f8b09816efdaf70f69e79b587c8b1ce601 100644 (file)
@@ -1306,7 +1306,7 @@ static bool uid_entry_in_group(connection_struct *conn, canon_ace *uid_ace, cano
         * and don't need to do the complex user_in_group_sid() call
         */
        if (uid_ace->unix_ug.uid == get_current_uid(conn)) {
-               const UNIX_USER_TOKEN *curr_utok = NULL;
+               const struct security_unix_token *curr_utok = NULL;
                size_t i;
 
                if (group_ace->unix_ug.gid == get_current_gid(conn)) {
@@ -2652,7 +2652,7 @@ static canon_ace *canonicalise_acl(struct connection_struct *conn,
 static bool current_user_in_group(connection_struct *conn, gid_t gid)
 {
        int i;
-       const UNIX_USER_TOKEN *utok = get_current_utok(conn);
+       const struct security_unix_token *utok = get_current_utok(conn);
 
        for (i = 0; i < utok->ngroups; i++) {
                if (utok->groups[i] == gid) {
index 54ee7aca4975081339dc9d38ff9d20510fcfbdb4..9e409dee41a31849d68dd51721d2230abd1f979b 100644 (file)
@@ -27,7 +27,7 @@ extern struct current_user current_user;
  Are two UNIX tokens equal ?
 ****************************************************************************/
 
-bool unix_token_equal(const UNIX_USER_TOKEN *t1, const UNIX_USER_TOKEN *t2)
+bool unix_token_equal(const struct security_unix_token *t1, const struct security_unix_token *t2)
 {
        if (t1->uid != t2->uid || t1->gid != t2->gid ||
                        t1->ngroups != t2->ngroups) {
@@ -132,7 +132,7 @@ static void gain_root(void)
  Get the list of current groups.
 ****************************************************************************/
 
-static int get_current_groups(gid_t gid, size_t *p_ngroups, gid_t **p_groups)
+static int get_current_groups(gid_t gid, uint32_t *p_ngroups, gid_t **p_groups)
 {
        int i;
        gid_t grp;
index 0890ae698cf4896489341424bbf86248e9aa8ebd..9a6b06dd0fb3841e8143932c3329aa986b446666 100644 (file)
@@ -536,7 +536,7 @@ gid_t get_current_gid(connection_struct *conn)
  doesn't alter this value.
 ****************************************************************************/
 
-const UNIX_USER_TOKEN *get_current_utok(connection_struct *conn)
+const struct security_unix_token *get_current_utok(connection_struct *conn)
 {
        return &current_user.ut;
 }