BuildRequires: pkgconfig(dali2-adaptor)
BuildRequires: pkgconfig(dali2-toolkit)
BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(cynara-creds-self)
BuildRequires: pkgconfig(wayland-tbm-client)
BuildRequires: pkgconfig(screen_connector_watcher)
BuildRequires: pkgconfig(watch-holder-base)
#include <dali/integration-api/debug.h>
#include <system_info.h>
#include <cynara-client.h>
+#include <cynara-creds-self.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
{
cynara* cynara;
int ret = 0;
- char subjectLabel[ SMACK_LABEL_LENGTH + 1 ] = "";
- char labelPath[ SMACK_LABEL_LENGTH + 1 ] = "/proc/self/attr/current";
char uid[10] = { 0, };
const char* clientSession = "";
- FILE *fp = NULL;
+ char* cynara_client = nullptr;
ret = cynara_initialize( &cynara, NULL );
if( ret != CYNARA_API_SUCCESS )
return false;
}
- fp = fopen( labelPath , "r" );
- if(fp != NULL)
+ ret = cynara_creds_self_get_client( CLIENT_METHOD_DEFAULT, &cynara_client);
+ if ( ret != CYNARA_API_SUCCESS)
{
- ret = fread( subjectLabel, 1, sizeof(subjectLabel), fp);
- if ( ret <= 0 )
- {
- fclose(fp);
- cynara_finish( cynara );
- return false;
- }
- fclose(fp);
+ DALI_LOG_ERROR("cynara_creds_self_get_client is failed : %d \n", ret);
+ return false;
}
- subjectLabel[ret] = '\0';
-
- snprintf( uid, 10, "%d", getuid() );
- ret = cynara_check( cynara, subjectLabel, clientSession, uid, privilege );
+ ret = cynara_check( cynara, cynara_client, clientSession, uid, privilege );
if( ret != CYNARA_API_ACCESS_ALLOWED )
{
cynara_finish( cynara );
+ free(cynara_client);
+ DALI_LOG_ERROR("cynara_check is failed : :%d \n", ret);
return false;
}
cynara_finish( cynara );
+ free(cynara_client);
return true;
}