X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fwgtpkg-permissions.c;h=83794463e40bd5522ad6d285912cee146e8e6f57;hb=c6b2074e18ce7a37a59bc1c3831407b42b18c889;hp=c341054df155919a1b35c878e53b5ac2aca2c9c3;hpb=66155de48c685b29d96ca95bc1a45078f8f4c681;p=src%2Fapp-framework-main.git diff --git a/src/wgtpkg-permissions.c b/src/wgtpkg-permissions.c index c341054..8379446 100644 --- a/src/wgtpkg-permissions.c +++ b/src/wgtpkg-permissions.c @@ -1,5 +1,5 @@ /* - Copyright 2015 IoT.bzh + Copyright 2015, 2016 IoT.bzh author: José Bollo @@ -32,18 +32,10 @@ struct permission { unsigned level: 3; }; -static const char prefix_of_permissions[] = FWK_PREFIX_PERMISSION; - static unsigned int nrpermissions = 0; static struct permission *permissions = NULL; static unsigned int indexiter = 0; -/* check is the name has the correct prefix for permissions */ -int is_standard_permission(const char *name) -{ - return 0 == memcmp(name, prefix_of_permissions, sizeof(prefix_of_permissions) - 1); -} - /* retrieves the permission of name */ static struct permission *get_permission(const char *name) { @@ -137,13 +129,25 @@ int permission_exists(const char *name) /* request the permission, returns 1 if granted or 0 otherwise */ int request_permission(const char *name) { +#define HACK_ALLOWING_REQUESTED_PERMISSIONS 1 + struct permission *p = get_permission(name); + +#if defined(HACK_ALLOWING_REQUESTED_PERMISSIONS) && HACK_ALLOWING_REQUESTED_PERMISSIONS + if (!p) + p = add_permission(name); +#endif if (p) { +#if defined(HACK_ALLOWING_REQUESTED_PERMISSIONS) && HACK_ALLOWING_REQUESTED_PERMISSIONS + p->granted = 1; +#endif p->requested = 1; if (p->granted) return 1; } return 0; + +#undef HACK_ALLOWING_REQUESTED_PERMISSIONS } /* iteration over granted and requested permissions */