Exemplo n.º 1
0
    void
    initgroups(const uid_t uid,
               const gid_t gid)
    {
      static __thread gid_t_cache cache;

      gid_t_vector &gidlist = cache[uid];
      if(gidlist.empty())
        prime_cache(uid,gid,gidlist);

      setgroups(gidlist);
    }
Exemplo n.º 2
0
static ssize_t cprime_pread(
                vfs_handle_struct * handle,
                files_struct *      fsp,
                int                 fd,
                void *              data,
		        size_t              count,
                SMB_OFF_T           offset)
{
        if (g_readbuf) {
                prime_cache(handle, fsp, fd, offset, count);
        }

        return SMB_VFS_NEXT_PREAD(handle, fsp, fd, data, count, offset);
}
Exemplo n.º 3
0
static ssize_t cprime_sendfile(
                struct vfs_handle_struct *  handle,
                int                         tofd,
                files_struct *              fsp,
                int                         fromfd,
                const DATA_BLOB *           header,
                SMB_OFF_T                   offset,
                size_t                      count)
{
        if (g_readbuf && offset == 0) {
                prime_cache(handle, fsp, fromfd, offset, count);
        }

        return SMB_VFS_NEXT_SENDFILE(handle, tofd, fsp, fromfd,
                                     header, offset, count);
}
Exemplo n.º 4
0
static ssize_t cprime_read(
                vfs_handle_struct * handle,
                files_struct *      fsp,
                int                 fd,
                void *              data,
                size_t              count)
{
        SMB_OFF_T offset;

        offset = SMB_VFS_LSEEK(fsp, fd, 0, SEEK_CUR);
        if (offset >= 0 && g_readbuf)  {
                prime_cache(handle, fsp, fd, offset, count);
                SMB_VFS_LSEEK(fsp, fd, offset, SEEK_SET);
        }

        return SMB_VFS_NEXT_READ(handle, fsp, fd, data, count);
}