]> git.tdb.fi Git - libs/core.git/blob - source/fs/android/stat_owner.cpp
Improve robustness of resolving user/group names in Stat
[libs/core.git] / source / fs / android / stat_owner.cpp
1 #include <grp.h>
2 #include <pwd.h>
3 #include <msp/strings/format.h>
4 #include "stat.h"
5 #include "stat_private.h"
6
7 namespace Msp {
8 namespace FS {
9
10 void Stat::Private::fill_owner_info(Stat::OwnerInfo &result)
11 {
12         if(owner_id!=INVALID_UID)
13         {
14                 struct passwd *owner;
15                 if((owner = getpwuid(owner_id)))
16                         result.owner = owner->pw_name;
17                 else
18                         result.owner = format("%d", owner_id);
19         }
20         else
21                 result.owner = "None";
22
23         if(group_id!=INVALID_GID)
24         {
25                 struct group *group;
26                 if((group = getgrgid(group_id)))
27                         result.group = group->gr_name;
28                 else
29                         result.group = format("%d", group_id);
30         }
31         else
32                 result.group = "None";
33 }
34
35 } // namespace FS
36 } // namespace Msp