Removed smack dependency 69/324969/2
authorEunhye Choi <eunhae1.choi@samsung.com>
Thu, 29 May 2025 10:41:09 +0000 (19:41 +0900)
committerEunhye Choi <eunhae1.choi@samsung.com>
Thu, 29 May 2025 23:52:35 +0000 (08:52 +0900)
Removed smack dependency by using cynara api

[Version] 1.1.49

Change-Id: I3c6b91e4e0b1a9cc5ef78e156ad1c5c2ca2d5399

CMakeLists.txt
packaging/capi-media-webrtc.spec
src/webrtc_restriction.c

index 59e9e8d5cba5370add43e3f0d9cd3b599b869bb7..abcdca9b12ad6b6dd0080c928c154e5ac64ead62 100644 (file)
@@ -12,7 +12,7 @@ INCLUDE_DIRECTORIES(${INC_DIR})
 
 SET(dependents "dlog glib-2.0 gstreamer-1.0 gstreamer-webrtc-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 \
     gstreamer-allocators-1.0 libpulse json-glib-1.0 iniparser mm-common mm-display-interface capi-media-tool \
-    libtbm cynara-client libsmack capi-system-info bundle capi-media-sound-manager mm-fileinfo")
+    libtbm cynara-client cynara-creds-self capi-system-info bundle capi-media-sound-manager mm-fileinfo")
 IF(NOT TIZEN_PROFILE_TV)
     SET(dependents "${dependents} resource-manager resource-center-api")
     IF(TIZEN_FEATURE_UI)
index 2a989d59ada9b022d21c7fc5a814dc98389501d3..367dffb9359d279dbbbc677bd299ec66991e63e7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    1.1.48
+Version:    1.1.49
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
@@ -32,7 +32,7 @@ BuildRequires:  pkgconfig(libsoup-2.4)
 BuildRequires:  pkgconfig(libwebsockets)
 %endif
 BuildRequires:  pkgconfig(cynara-client)
-BuildRequires:  pkgconfig(libsmack)
+BuildRequires:  pkgconfig(cynara-creds-self)
 BuildRequires:  pkgconfig(capi-system-info)
 BuildRequires:  pkgconfig(capi-media-sound-manager)
 BuildRequires:  pkgconfig(bundle)
index b8f3ece384dd493b92e648889be27a9ebafd594c..203399061125b3e570a038166c1295d737e3eeba 100644 (file)
@@ -17,7 +17,7 @@
 #include "webrtc.h"
 #include "webrtc_private.h"
 #include <cynara-client.h>
-#include <sys/smack.h>
+#include <cynara-creds-self.h>
 #include <system_info.h>
 
 int _check_privilege(const char *privilege)
@@ -25,18 +25,24 @@ int _check_privilege(const char *privilege)
        int ret = WEBRTC_ERROR_NONE;
        int cynara_ret;
        cynara *cynara_h;
-       char *smack_label;
+       char *client_identification;
        char uid[10];
 
        RET_VAL_IF(privilege == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "privilege is NULL");
-       RET_VAL_IF(cynara_initialize(&cynara_h, NULL) != CYNARA_API_SUCCESS, WEBRTC_ERROR_INVALID_OPERATION,
-               "failed to cynara_initialize()");
-       RET_VAL_IF(smack_new_label_from_self(&smack_label) == -1, WEBRTC_ERROR_INVALID_OPERATION, "failed to smack_new_label_from_self()");
+       RET_VAL_IF(cynara_initialize(&cynara_h, NULL) != CYNARA_API_SUCCESS,
+               WEBRTC_ERROR_INVALID_OPERATION, "failed to cynara_initialize()");
+
+       ret = cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification);
+       if (ret != CYNARA_API_SUCCESS) {
+               LOG_ERROR("failed to cynara_creds_self_get_client()");
+               cynara_finish(cynara_h);
+               return WEBRTC_ERROR_INVALID_OPERATION;
+       }
 
        snprintf(uid, sizeof(uid), "%d", getuid());
-       LOG_DEBUG("smack_label[%s] uid[%s]\n", smack_label, uid);
+       LOG_DEBUG("client_identification[%s] uid[%s]\n", client_identification, uid);
 
-       cynara_ret = cynara_check(cynara_h, smack_label, "", uid, privilege);
+       cynara_ret = cynara_check(cynara_h, client_identification, "", uid, privilege);
 //LCOV_EXCL_START
        if (cynara_ret != CYNARA_API_ACCESS_ALLOWED) {
                LOG_ERROR("NOT ALLOWED, privilege[%s], cynara_ret[%d]", privilege, cynara_ret);
@@ -48,7 +54,7 @@ int _check_privilege(const char *privilege)
        LOG_INFO("ALLOWED, privilege[%s]", privilege);
 
 exit:
-       free(smack_label);
+       free(client_identification);
        cynara_finish(cynara_h);
        return ret;
 }