X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftzplatform_config.h;h=17c89cdbf44d4466406ebc8a162d36863e0d0a54;hb=refs%2Ftags%2Ftizen_3.0.m14.3_ivi_release;hp=504032af409e9a6d4561ac381bd218717d5b573e;hpb=969c107260f89c628204440cb6255db0c8d857bd;p=platform%2Fcore%2Fsystem%2Ftizen-platform-wrapper.git diff --git a/src/tzplatform_config.h b/src/tzplatform_config.h index 504032a..17c89cd 100644 --- a/src/tzplatform_config.h +++ b/src/tzplatform_config.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2013 Intel Corporation. - * + * Copyright (C) 2013-2014 Intel Corporation. + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either @@ -28,15 +28,10 @@ extern "C" { #endif +#include #include -/* - Enforces the removal of the previously evaluated tizen platform variables. - - Call this function in case of changing of user inside the application. -*/ -extern -void tzplatform_reset(); +/*------------------------------ COMMON API (no context) ---------------*/ /* Return the count of variables. @@ -53,15 +48,49 @@ const char* tzplatform_getname(enum tzplatform_variable id); /* Return the id of the variable of 'name'. - Return _TZPLATFORM_VARIABLES_INVALID_ if 'name' doesn't match a + Return _TZPLATFORM_VARIABLES_INVALID_ if 'name' doesn't match a valid variable name. */ extern enum tzplatform_variable tzplatform_getid(const char *name); +/*------------------------------ GLOBAL API (default global context) ----*/ + +/* + Enforces the removal of the previously evaluated tizen platform variables. + + Call this function in case of changing of user inside the application. +*/ +extern +void tzplatform_reset(); + +/* + Set the user used for UID/EUID/USER/EUSER computations. + Using uid==(uid_t)-1 reset the context as if tzplatform_reset_user + was called. + + Returns 0 if uid is valid or -1 if not valid. +*/ +extern +int tzplatform_set_user(uid_t uid); + +/* +*/ +extern +uid_t tzplatform_get_user(); + +/* + Reset the user context to use the values returned by + getuid and geteuid. +*/ +extern +void tzplatform_reset_user(); + /* Return the read-only string value of the tizen plaform variable 'id'. - The tizen global values are globals to the application. + + The returned value is an allocated unique string that MUST not be freed. + Can return NULL in case of internal error or when 'id' isn't defined. */ extern @@ -74,19 +103,17 @@ extern int tzplatform_getenv_int(enum tzplatform_variable id); /* - Return the string resulting of the concatenation of string value of the + Return the string resulting of the concatenation of string value of the tizen plaform variable 'id' and the given string 'str'. - The returned value is a scratch buffer (unique for the thread) that is - available until the next call to 'tzplatform_mkstr', 'tzplatform_mkpath', - 'tzplatform_mkpath3' or 'tzplatform_mkpath4'. + The returned value is an allocated unique string that MUST not be freed. Can return NULL in case of internal error. Example: if TZ_SYS_HOME == "/opt/home" then calling - tzplatform_mkstr(TZ_SYS_HOME,"-yes") + tzplatform_mkstr(TZ_SYS_HOME,"-yes") will return "/opt/home-yes" */ @@ -94,21 +121,19 @@ extern const char* tzplatform_mkstr(enum tzplatform_variable id, const char *str); /* - Return the string resulting of the path-concatenation of string value of the + Return the string resulting of the path-concatenation of string value of the tizen plaform variable 'id' and the given string 'path'. path-concatenation is the concatenation taking care of / characters. - The returned value is a scratch buffer (unique for the thread) that is - available until the next call to 'tzplatform_mkstr', 'tzplatform_mkpath', - 'tzplatform_mkpath3' or 'tzplatform_mkpath4'. + The returned value is an allocated unique string that MUST not be freed. Can return NULL in case of internal error. Example: if TZ_SYS_HOME == "/opt/home" then calling - tzplatform_mkpath(TZ_SYS_HOME,"yes") + tzplatform_mkpath(TZ_SYS_HOME,"yes") will return "/opt/home/yes" */ @@ -116,14 +141,12 @@ extern const char* tzplatform_mkpath(enum tzplatform_variable id, const char *path); /* - Return the string resulting of the path-concatenation of string value of the + Return the string resulting of the path-concatenation of string value of the tizen plaform variable 'id' and the given strings 'path' and 'path2'. path-concatenation is the concatenation taking care of / characters. - The returned value is a scratch buffer (unique for the thread) that is - available until the next call to 'tzplatform_mkstr', 'tzplatform_mkpath', - 'tzplatform_mkpath3' or 'tzplatform_mkpath4'. + The returned value is an allocated unique string that MUST not be freed. Can return NULL in case of internal error. @@ -135,18 +158,16 @@ const char* tzplatform_mkpath(enum tzplatform_variable id, const char *path); will return "/opt/home/yes/no" */ extern -const char* tzplatform_mkpath3(enum tzplatform_variable id, const char *path, +const char* tzplatform_mkpath3(enum tzplatform_variable id, const char *path, const char *path2); /* - Return the string resulting of the path-concatenation of string value of the + Return the string resulting of the path-concatenation of string value of the tizen plaform variable 'id' and the given strings 'path', 'path2' and 'path3'. path-concatenation is the concatenation taking care of / characters. - The returned value is a scratch buffer (unique for the thread) that is - available until the next call to 'tzplatform_mkstr', 'tzplatform_mkpath', - 'tzplatform_mkpath3' or 'tzplatform_mkpath4'. + The returned value is an allocated unique string that MUST not be freed. Can return NULL in case of internal error. @@ -158,7 +179,7 @@ const char* tzplatform_mkpath3(enum tzplatform_variable id, const char *path, will return "/opt/home/yes/no/maybe" */ extern -const char* tzplatform_mkpath4(enum tzplatform_variable id, const char *path, +const char* tzplatform_mkpath4(enum tzplatform_variable id, const char *path, const char *path2, const char *path3); /* @@ -166,11 +187,11 @@ const char* tzplatform_mkpath4(enum tzplatform_variable id, const char *path, Retun -1 in case of error. Example: - if TZ_USER_NAME=="app" then calling: - - tzplatform_getuid(TZ_USER_NAME) - - will return the uid of the user 'app' + if TZ_USER_NAME=="app" then calling: + + tzplatform_getuid(TZ_USER_NAME) + + will return the uid of the user 'app' */ extern uid_t tzplatform_getuid(enum tzplatform_variable id); @@ -180,17 +201,212 @@ uid_t tzplatform_getuid(enum tzplatform_variable id); Retun -1 in case of error. Example: - if TZ_USER_GROUP=="app" then calling: - - tzplatform_getuid(TZ_USER_GROUP) - - will return the gid of the group 'app' + if TZ_USER_GROUP=="app" then calling: + + tzplatform_getuid(TZ_USER_GROUP) + + will return the gid of the group 'app' */ extern gid_t tzplatform_getgid(enum tzplatform_variable id); +/*------------------------------ CONTEXTUAL API --------------------------*/ + +struct tzplatform_context; + +/* + Creates a new platform 'context'. + Return 0 in case of success or a negative value in case of error. +*/ +extern +int tzplatform_context_create(struct tzplatform_context **context); + +/* + Destroys the platform 'context' previously created with 'tzplatform_context_create'. + The destroyed context must not be used after calling this function. +*/ +extern +void tzplatform_context_destroy(struct tzplatform_context *context); + +/* + Enforces the removal of the previously evaluated tizen platform variables. +*/ +extern +void tzplatform_context_reset(struct tzplatform_context *context); + +/* + Set the user used for UID/EUID/USER/EUSER computations. + Using uid==(uid_t)-1 reset the context as if tzplatform_context_reset_user + was called. + + Returns 0 if uid is valid or -1 if not valid. +*/ +extern +int tzplatform_context_set_user(struct tzplatform_context *context, uid_t uid); + +/* + Get the user set to the context. +*/ +extern +uid_t tzplatform_context_get_user(struct tzplatform_context *context); + +/* + Reset the user context to use the values returned by + getuid and geteuid. +*/ +extern +void tzplatform_context_reset_user(struct tzplatform_context *context); + +/* + Return the read-only string value of the tizen plaform variable 'id'. + + The returned value is an allocated unique string that MUST not be freed. + + Can return NULL in case of internal error or when 'id' isn't defined. +*/ +extern +const char* tzplatform_context_getenv(struct tzplatform_context *context, enum tzplatform_variable id); + +/* + Return the integer value of the tizen plaform variable 'id'. +*/ +extern +int tzplatform_context_getenv_int(struct tzplatform_context *context, enum tzplatform_variable id); + +/* + Return the string resulting of the concatenation of string value of the + tizen plaform variable 'id' and the given string 'str'. + + The returned value is an allocated unique string that MUST not be freed. + + Can return NULL in case of internal error. + + Example: + if TZ_SYS_HOME == "/opt/home" then calling + + tzplatform_context_mkstr(context, TZ_SYS_HOME,"-yes") + + will return "/opt/home-yes" +*/ +extern +const char* tzplatform_context_mkstr(struct tzplatform_context *context, enum tzplatform_variable id, const char *str); + +/* + Return the string resulting of the path-concatenation of string value of the + tizen plaform variable 'id' and the given string 'path'. + + path-concatenation is the concatenation taking care of / characters. + + The returned value is an allocated unique string that MUST not be freed. + + Can return NULL in case of internal error. + + Example: + if TZ_SYS_HOME == "/opt/home" then calling + + tzplatform_context_mkpath(context, TZ_SYS_HOME,"yes") + + will return "/opt/home/yes" +*/ +extern +const char* tzplatform_context_mkpath(struct tzplatform_context *context, enum tzplatform_variable id, const char *path); + +/* + Return the string resulting of the path-concatenation of string value of the + tizen plaform variable 'id' and the given strings 'path' and 'path2'. + + path-concatenation is the concatenation taking care of / characters. + + The returned value is an allocated unique string that MUST not be freed. + + Can return NULL in case of internal error. + + Example: + if TZ_SYS_HOME == "/opt/home" then calling + + tzplatform_context_mkpath3(context, TZ_SYS_HOME,"yes","no") + + will return "/opt/home/yes/no" +*/ +extern +const char* tzplatform_context_mkpath3(struct tzplatform_context *context, enum tzplatform_variable id, const char *path, + const char *path2); + +/* + Return the string resulting of the path-concatenation of string value of the + tizen plaform variable 'id' and the given strings 'path', 'path2' and 'path3'. + + path-concatenation is the concatenation taking care of / characters. + + The returned value is an allocated unique string that MUST not be freed. + + Can return NULL in case of internal error. + + Example: + if TZ_SYS_HOME == "/opt/home" then calling + + tzplatform_context_mkpath4(context, TZ_SYS_HOME,"yes","no","/maybe") + + will return "/opt/home/yes/no/maybe" +*/ +extern +const char* tzplatform_context_mkpath4(struct tzplatform_context *context, enum tzplatform_variable id, const char *path, + const char *path2, const char *path3); + +/* + Return the uid for a given user name, stored in variable + Retun -1 in case of error. + + Example: + if TZ_USER_NAME=="app" then calling: + + tzplatform_context_getuid(context, TZ_USER_NAME) + + will return the uid of the user 'app' +*/ +extern +uid_t tzplatform_context_getuid(struct tzplatform_context *context, enum tzplatform_variable id); + +/* + Return the gid for a given group name, stored in variable + Retun -1 in case of error. + + Example: + if TZ_USER_GROUP=="app" then calling: + + tzplatform_context_getuid(context, TZ_USER_GROUP) + + will return the gid of the group 'app' +*/ +extern +gid_t tzplatform_context_getgid(struct tzplatform_context *context, enum tzplatform_variable id); + + +/* + Return 1 if given uid is in the system admin group (named "system") + Return 0 if not + Return -1 in case of error. + + Example: + tzplatform_isadmin(1000) + + will return 0 or 1 depends on right of given uid. + + NOTE : + * If you pass the -1 value to this function it will take the current uid given + * by the POSIX function getuid(); + + *** WARNING : *** + * This is a temporary feature + * This will be managed by Cynara + +*/ +extern +int tzplatform_has_system_group(uid_t uid); + #ifdef __cplusplus } #endif -#endif // _LIBTIZEN-PLATFORM-WRAPPER +#endif /* LIBTIZEN_PLATFORM_WRAPPER */ +