Skip to content

Commit

Permalink
s3:libsmb: Add a setup_stat_from_stat_ex() function
Browse files Browse the repository at this point in the history
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14101

Signed-off-by: Andreas Schneider <[email protected]>
Reviewed-by: Jeremy Allison <[email protected]>
  • Loading branch information
cryptomilk committed Dec 19, 2019
1 parent 0fe9dc5 commit b3e3cb3
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
3 changes: 3 additions & 0 deletions source3/include/libsmb_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -532,6 +532,9 @@ void setup_stat(struct stat *st,
struct timespec access_time_ts,
struct timespec change_time_ts,
struct timespec write_time_ts);
void setup_stat_from_stat_ex(const struct stat_ex *stex,
const char *fname,
struct stat *st);

int
SMBC_stat_ctx(SMBCCTX *context,
Expand Down
37 changes: 37 additions & 0 deletions source3/libsmb/libsmb_stat.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,43 @@ void setup_stat(struct stat *st,
st->st_mtime = convert_timespec_to_time_t(write_time_ts);
}

void setup_stat_from_stat_ex(const struct stat_ex *stex,
const char *fname,
struct stat *st)
{
st->st_atime = convert_timespec_to_time_t(stex->st_ex_atime);
st->st_ctime = convert_timespec_to_time_t(stex->st_ex_ctime);
st->st_mtime = convert_timespec_to_time_t(stex->st_ex_mtime);

st->st_mode = stex->st_ex_mode;
st->st_size = stex->st_ex_size;
#ifdef HAVE_STAT_ST_BLKSIZE
st->st_blksize = 512;
#endif
#ifdef HAVE_STAT_ST_BLOCKS
st->st_blocks = (st->st_size + 511) / 512;
#endif
#ifdef HAVE_STRUCT_STAT_ST_RDEV
st->st_rdev = 0;
#endif
st->st_uid = stex->st_ex_uid;
st->st_gid = stex->st_ex_gid;

st->st_nlink = stex->st_ex_nlink;

if (stex->st_ex_ino == 0) {
st->st_ino = 0;
if (fname != NULL) {
st->st_ino = generate_inode(fname);
}
} else {
st->st_ino = stex->st_ex_ino;
}

st->st_dev = stex->st_ex_dev;

}

/*
* Routine to stat a file given a name
*/
Expand Down

0 comments on commit b3e3cb3

Please sign in to comment.