aboutsummaryrefslogtreecommitdiffstats
path: root/src/wgtpkg-permissions.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2015-12-11 22:55:11 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2015-12-11 22:55:11 +0100
commit12a227a2fc574cf0fd560453e1cdd15c50550abb (patch)
tree279f52c897e44951ca6d3a66ec2b3e0e2befb634 /src/wgtpkg-permissions.c
parent7e1027342a3cff95635ba2107f283321cf0efa08 (diff)
more work
Change-Id: I7eac968a21766be44068463bcab8aaaa3d12941f
Diffstat (limited to 'src/wgtpkg-permissions.c')
-rw-r--r--src/wgtpkg-permissions.c18
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;
+}
+