diff options
Diffstat (limited to 'src/wgtpkg-permissions.c')
-rw-r--r-- | src/wgtpkg-permissions.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/wgtpkg-permissions.c b/src/wgtpkg-permissions.c index 25758e4..e20cede 100644 --- a/src/wgtpkg-permissions.c +++ b/src/wgtpkg-permissions.c @@ -33,6 +33,7 @@ static const char prefix_of_permissions[] = PREFIXPERMISSION; static int nrpermissions = 0; static struct permission *permissions = NULL; +static int indexiter = 0; /* check is the name has the correct prefix for permissions */ int is_standard_permission(const char *name) @@ -130,3 +131,20 @@ int request_permission(const char *name) return 0; } +/* iteration over granted and requested permissions */ +const char *first_usable_permission() +{ + indexiter = 0; + return next_usable_permission(); +} + +const char *next_usable_permission() +{ + while(indexiter < nrpermissions) { + struct permission *p = &permissions[indexiter++]; + if (p->granted && p->requested) + return p->name; + } + return NULL; +} + |