Apply cynara APIs (remove security-server dependency) 46/37846/4 tizen_3.0.2015.q2_common accepted/tizen/common/20150414.095919 accepted/tizen/mobile/20150410.133947 accepted/tizen/tv/20150410.133642 accepted/tizen/wearable/20150410.133814 submit/tizen/20150410.114705 submit/tizen/20150410.114845 submit/tizen_common/20150410.115646 submit/tizen_mobile/20150410.115428
authorJiwan Kim <ji-wan.kim@samsung.com>
Tue, 7 Apr 2015 10:15:02 +0000 (19:15 +0900)
committerJiwan Kim <ji-wan.kim@samsung.com>
Fri, 10 Apr 2015 02:05:21 +0000 (11:05 +0900)
Change-Id: Ie65c555c6b4186eaf59ff1e5fc6b10e6f370b53f
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
16 files changed:
CMakeLists.txt
packaging/tel-plugin-dbus_tapi.spec
src/call.c
src/common.c
src/common.h
src/desc-dbus.c
src/gps.c
src/modem.c
src/network.c
src/oem.c
src/phonebook.c
src/sap.c
src/sat.c
src/sim.c
src/sms.c
src/ss.c

index 965ae36..fba69e2 100755 (executable)
@@ -20,8 +20,9 @@ pkg_check_modules(pkgs REQUIRED
        tcore
        aul
        appsvc
-       security-server
        pkgmgr
+       cynara-client
+       cynara-session
 )
 
 FOREACH(flag ${pkgs_CFLAGS})
index ed3f3d0..80d1002 100755 (executable)
@@ -19,8 +19,10 @@ BuildRequires:  pkgconfig(gio-unix-2.0)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(libxml-2.0)
 BuildRequires:  pkgconfig(pkgmgr)
-BuildRequires:  pkgconfig(security-server)
 BuildRequires:  pkgconfig(tcore)
+BuildRequires:  pkgconfig(cynara-client)
+BuildRequires:  pkgconfig(cynara-session)
+
 
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
index da30ff4..2e5c756 100755 (executable)
@@ -224,10 +224,11 @@ static gboolean on_call_dial(TelephonyCall *call, GDBusMethodInvocation *invocat
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        memset(&req, 0x0,sizeof(req));
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -260,8 +261,9 @@ static gboolean on_call_answer(TelephonyCall *call, GDBusMethodInvocation *invoc
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -288,8 +290,9 @@ static gboolean on_call_end(TelephonyCall *call, GDBusMethodInvocation *invocati
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -316,8 +319,9 @@ static gboolean on_call_start_cont_dtmf(TelephonyCall *call, GDBusMethodInvocati
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -343,8 +347,9 @@ static gboolean on_call_stop_cont_dtmf(TelephonyCall *call, GDBusMethodInvocatio
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -367,8 +372,9 @@ static gboolean on_call_send_burst_dtmf(TelephonyCall *call, GDBusMethodInvocati
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -406,8 +412,9 @@ static gboolean on_call_active(TelephonyCall *call, GDBusMethodInvocation *invoc
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -433,8 +440,9 @@ static gboolean on_call_hold(TelephonyCall *call, GDBusMethodInvocation *invocat
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -460,8 +468,9 @@ static gboolean on_call_swap(TelephonyCall *call, GDBusMethodInvocation *invocat
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -487,8 +496,9 @@ static gboolean on_call_join(TelephonyCall *call, GDBusMethodInvocation *invocat
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -514,8 +524,9 @@ static gboolean on_call_split(TelephonyCall *call, GDBusMethodInvocation *invoca
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -541,8 +552,9 @@ static gboolean on_call_transfer(TelephonyCall *call, GDBusMethodInvocation *inv
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -568,8 +580,9 @@ static gboolean on_call_deflect(TelephonyCall *call, GDBusMethodInvocation *invo
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -596,8 +609,9 @@ static gboolean on_call_get_privacy_mode(TelephonyCall *call, GDBusMethodInvocat
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -619,8 +633,9 @@ static gboolean on_call_set_privacy_mode(TelephonyCall *call, GDBusMethodInvocat
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -647,6 +662,7 @@ static gboolean on_call_get_status(TelephonyCall *call, GDBusMethodInvocation *i
        GSList *o_list = 0;
        CoreObject *o = 0;
        CallObject *co = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        gchar call_number[MAX_CALL_NUMBER_LEN];
        gint call_type;
@@ -654,7 +670,7 @@ static gboolean on_call_get_status(TelephonyCall *call, GDBusMethodInvocation *i
        gint call_status;
        gboolean call_multiparty_state;
 
-       if (!check_access_control (invocation, AC_CALL, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -703,6 +719,7 @@ static gboolean on_call_get_status_all(TelephonyCall *call, GDBusMethodInvocatio
        GSList *list = 0;
        CoreObject *o = 0;
        CallObject *co = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        GVariant *gv = 0;
        GVariantBuilder b;
@@ -716,7 +733,7 @@ static gboolean on_call_get_status_all(TelephonyCall *call, GDBusMethodInvocatio
 
        int len, i;
 
-       if (!check_access_control (invocation, AC_CALL, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -834,8 +851,9 @@ static gboolean on_call_set_sound_path(TelephonyCall *call, GDBusMethodInvocatio
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -862,8 +880,9 @@ static gboolean on_call_get_sound_volume_level(TelephonyCall *call, GDBusMethodI
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -902,8 +921,9 @@ static gboolean on_call_set_sound_volume_level(TelephonyCall *call, GDBusMethodI
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -930,8 +950,9 @@ static gboolean on_call_get_sound_mute_status(TelephonyCall *call, GDBusMethodIn
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -954,8 +975,9 @@ static gboolean on_call_set_sound_mute_status(TelephonyCall *call, GDBusMethodIn
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -984,8 +1006,9 @@ static gboolean on_call_set_sound_recording(TelephonyCall *call, GDBusMethodInvo
        struct treq_call_set_sound_recording req;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1011,8 +1034,9 @@ static gboolean on_call_set_sound_equalization(TelephonyCall *call, GDBusMethodI
        struct treq_call_set_sound_equalization req;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1040,8 +1064,9 @@ static gboolean on_call_set_sound_noise_reduction(TelephonyCall *call, GDBusMeth
        struct treq_call_set_sound_noise_reduction req;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1068,8 +1093,9 @@ static gboolean on_call_set_sound_clock_status(TelephonyCall *call, GDBusMethodI
        struct treq_call_set_sound_clock_status req;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1096,8 +1122,9 @@ static gboolean on_call_set_preferred_voice_subscription(TelephonyCall *call, GD
        struct treq_call_set_preferred_voice_subscription req;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1122,8 +1149,9 @@ static gboolean on_call_get_preferred_voice_subscription(TelephonyCall *call, GD
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_CALL, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_CALL, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1148,8 +1176,9 @@ static gboolean on_call_modify(TelephonyCall *call,
        struct treq_call_modify req = {0};
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control(invocation, AC_CALL, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
@@ -1177,8 +1206,9 @@ static gboolean on_call_confirm_modify(TelephonyCall *call,
        struct treq_call_confirm_modify req = {0};
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control(invocation, AC_CALL, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_CALL, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, call, invocation);
index fd051a9..a62678f 100755 (executable)
@@ -22,7 +22,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <glib.h>
-#include <security-server.h>
+#include <dbus/dbus.h>
 
 #include <tcore.h>
 #include <plugin.h>
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 
+#include <cynara-session.h>
+
 #include "generated-code.h"
 #include "common.h"
 
+#define PERM_WRITE     "w"
+#define PERM_EXECUTE   "x"
+#define TELEPHONY_PRIVILEGE            "http://tizen.org/privilege/telephony"
+#define TELEPHONY_ADMIN_PRIVILEGE      "http://tizen.org/privilege/telephony.admin"
 
 static void _free_hook(UserRequest *ur)
 {
@@ -80,7 +86,7 @@ UserRequest *dbus_plugin_macro_user_request_new(struct custom_data *ctx, void *o
        return ur;
 }
 
-gboolean check_access_control (GDBusMethodInvocation *invoc, const char *label, const char *perm)
+gboolean check_access_control (cynara *p_cynara, GDBusMethodInvocation *invoc, const char *label, const char *perm)
 {
        GDBusConnection *conn;
        GVariant *result_pid;
@@ -90,6 +96,20 @@ gboolean check_access_control (GDBusMethodInvocation *invoc, const char *label,
        unsigned int pid;
        int ret;
        int result = FALSE;
+       /* For cynara */
+       GVariant *result_uid;
+       GVariant *result_smack;
+       const gchar *unique_name = NULL;
+       gchar *client_smack = NULL;
+       char *client_session = NULL;
+       unsigned int uid;
+       gchar *uid_string = NULL;
+       const char *privilege = NULL;
+
+       if (!p_cynara) {
+               warn ("access control denied (fail to get cynara handle)");
+               goto OUT;
+       }
 
        conn = g_dbus_method_invocation_get_connection (invoc);
        if (!conn) {
@@ -97,6 +117,12 @@ gboolean check_access_control (GDBusMethodInvocation *invoc, const char *label,
                goto OUT;
        }
 
+       unique_name = g_dbus_connection_get_unique_name(conn);
+       if (!unique_name) {
+               warn ("access control denied (fail to get unique name)");
+               goto OUT;
+       }
+
        sender = g_dbus_method_invocation_get_sender (invoc);
 
        param = g_variant_new ("(s)", sender);
@@ -105,6 +131,7 @@ gboolean check_access_control (GDBusMethodInvocation *invoc, const char *label,
                goto OUT;
        }
 
+       /* Get PID */
        result_pid = g_dbus_connection_call_sync (conn, "org.freedesktop.DBus",
                        "/org/freedesktop/DBus",
                        "org.freedesktop.DBus",
@@ -126,15 +153,69 @@ gboolean check_access_control (GDBusMethodInvocation *invoc, const char *label,
        g_variant_get (result_pid, "(u)", &pid);
        g_variant_unref (result_pid);
 
-       dbg ("sender: %s pid = %u", sender, pid);
+       /* Get UID */
+       result_uid = g_dbus_connection_call_sync (conn, "org.freedesktop.DBus",
+                       "/org/freedesktop/DBus",
+                       "org.freedesktop.DBus",
+                       "GetConnectionUnixUser",
+                       g_variant_new("(s)", unique_name), G_VARIANT_TYPE("(u)"),
+                       G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+       if (error) {
+               warn ("access control denied (dbus error: %d(%s))",
+                               error->code, error->message);
+               g_error_free (error);
+               goto OUT;
+       }
+
+       if (!result_uid) {
+               warn ("access control denied (fail to get uid for cynara)");
+               goto OUT;
+       }
 
-       ret = security_server_check_privilege_by_pid (pid, label, perm);
-       if (ret != SECURITY_SERVER_API_SUCCESS) {
+       g_variant_get (result_uid, "(u)", &uid);
+       g_variant_unref (result_uid);
+       uid_string = g_strdup_printf("%u", uid);
+
+       /* Get Smack label */
+       result_smack = g_dbus_connection_call_sync (conn, "org.freedesktop.DBus",
+                       "/org/freedesktop/DBus",
+                       "org.freedesktop.DBus",
+                       "GetConnectionSmackContext",
+                       g_variant_new("(s)", unique_name), G_VARIANT_TYPE("(s)"),
+                       G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+       if (error) {
+               warn ("access control denied (dbus error: %d(%s))",
+                               error->code, error->message);
+               g_error_free (error);
+               goto OUT;
+       }
+       if (!result_smack) {
+               warn ("access control denied (fail to get smack for cynara)");
+               goto OUT;
+       }
+       g_variant_get (result_smack, "(s)", &client_smack);
+       g_variant_unref (result_smack);
+
+       dbg ("sender: %s pid = %u uid = %u smack = %s", sender, pid, uid, client_smack);
+
+       client_session = cynara_session_from_pid(pid);
+       if (!client_session) {
+               warn ("access control denied (fail to get cynara client session)");
+               goto OUT;
+       }
+
+       if (g_strrstr(perm, PERM_WRITE) == NULL && g_strrstr(perm, PERM_EXECUTE) == NULL) {
+               privilege = TELEPHONY_PRIVILEGE;
+       } else {
+               privilege = TELEPHONY_ADMIN_PRIVILEGE;
+       }
+
+       ret = cynara_check(p_cynara, client_smack, client_session, uid_string, privilege);
+       if (ret != CYNARA_API_ACCESS_ALLOWED) {
                warn ("pid(%u) access (%s - %s) denied(%d)", pid, label, perm, ret);
        }
        else
                result = TRUE;
-
 OUT:
        if (result == FALSE) {
                g_dbus_method_invocation_return_error (invoc,
@@ -142,6 +223,10 @@ OUT:
                                G_DBUS_ERROR_ACCESS_DENIED,
                                "No access rights");
        }
+       free(client_session);
+       g_free(client_smack);
+       g_free(uid_string);
+
        return result;
 }
 
index 6d5f9c5..86f4ce7 100644 (file)
@@ -24,6 +24,8 @@
 #include <glib.h>
 #include <gio/gio.h>
 
+#include <cynara-client.h>
+
 #include "type/sim.h"
 
 #include "generated-code.h"
@@ -69,6 +71,8 @@ struct custom_data {
 
        gboolean name_acquired;
        guint owner_id;
+
+       cynara *p_cynara;
 };
 
 struct dbus_request_info {
@@ -85,7 +89,7 @@ struct dbus_request_info {
 
 char *dbus_plugin_get_cp_name_by_object_path(const char *object_path);
 UserRequest *dbus_plugin_macro_user_request_new(struct custom_data *ctx, void *object, GDBusMethodInvocation *invocation);
-gboolean check_access_control (GDBusMethodInvocation *invoc, const char *label, const char *perm);
+gboolean check_access_control (cynara *p_cynara, GDBusMethodInvocation *invoc, const char *label, const char *perm);
 
 gboolean dbus_plugin_util_load_xml(char *docname, char *groupname, void **i_doc, void **i_root_node);
 void dbus_plugin_util_unload_xml(void **i_doc, void **i_root_node);
index d1cd8bc..fc8609f 100755 (executable)
@@ -558,17 +558,27 @@ static gboolean on_init(TcorePlugin *p)
        Communicator *comm;
        struct custom_data *data;
        guint id;
+       cynara *p_cynara = NULL;
 
        if (!p)
                return FALSE;
 
        dbg("i'm init!");
 
+       /* Initialize cynara handle */
+       if (CYNARA_API_SUCCESS == cynara_initialize(&p_cynara, NULL)) {
+               dbg("cynara handle is successfully initialized.");
+       } else {
+               err("Failed to initialize cynara handle.");
+               return FALSE;
+       }
+
        data = calloc(1, sizeof(struct custom_data));
        if (!data) {
                return FALSE;
        }
 
+       data->p_cynara = p_cynara;
        data->plugin = p;
 
        comm = tcore_communicator_new(p, "dbus", &ops);
@@ -637,6 +647,11 @@ static void on_unload(TcorePlugin *p)
        }
        g_slist_free(data->cached_data);
 
+       if (data->p_cynara) {
+               cynara_finish(data->p_cynara);
+               data->p_cynara = NULL;
+       }
+
        free(data);
 
        tcore_server_remove_communicator(s, comm);
index 8d7bcc7..5568ddc 100755 (executable)
--- a/src/gps.c
+++ b/src/gps.c
@@ -31,8 +31,9 @@ on_gps_set_frequency_aiding (TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -61,8 +62,9 @@ on_gps_confirm_measure_pos (TelephonyGps *gps,
        gboolean result = TRUE;
        guchar *decoded_data = NULL;
        gsize length;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -93,8 +95,9 @@ on_enable_smart_assistant(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -117,8 +120,9 @@ on_disable_smart_assistant(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -144,6 +148,7 @@ on_sync_smart_assistant_area_list(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        GVariantIter *iter = NULL;
        GVariant *b = NULL;
@@ -151,7 +156,7 @@ on_sync_smart_assistant_area_list(TelephonyGps *gps,
        gint item1, item2;
        dbg("enter count=%d", count);
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -198,13 +203,14 @@ on_del_smart_assistant_area_list(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        GVariantIter *iter = NULL;
        GVariant *b = NULL;
        int i = 0;
        gint item1, item2;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -251,8 +257,9 @@ on_add_smart_assistant_area(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -281,8 +288,9 @@ on_modify_smart_assistant_area(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
@@ -312,8 +320,9 @@ on_set_smart_assistant_info(TelephonyGps *gps,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_GPS, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_GPS, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, gps, invocation);
index 279a02d..3685d40 100644 (file)
@@ -49,8 +49,9 @@ on_modem_set_power (TelephonyModem *modem, GDBusMethodInvocation *invocation,
        UserRequest *ur = NULL;
        enum tcore_request_command command;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
@@ -97,8 +98,9 @@ on_modem_set_flight_mode (TelephonyModem *modem, GDBusMethodInvocation *invocati
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
@@ -130,8 +132,9 @@ on_modem_get_flight_mode (TelephonyModem *modem, GDBusMethodInvocation *invocati
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
@@ -160,8 +163,9 @@ on_modem_get_version (TelephonyModem *modem, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
@@ -189,8 +193,9 @@ on_modem_get_serial_number (TelephonyModem *modem, GDBusMethodInvocation *invoca
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
@@ -218,8 +223,9 @@ on_modem_get_imei (TelephonyModem *modem, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
@@ -247,8 +253,9 @@ static gboolean on_modem_set_dun_pin_ctrl (TelephonyModem *modem, GDBusMethodInv
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, modem, invocation);
index f219c29..f39b3fc 100755 (executable)
@@ -465,8 +465,9 @@ on_network_search (TelephonyNetwork *network, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -488,8 +489,9 @@ on_network_search_cancel (TelephonyNetwork *network, GDBusMethodInvocation *invo
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -511,8 +513,9 @@ on_network_get_selection_mode (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -535,8 +538,9 @@ on_network_set_selection_mode (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        memset(&req, 0, sizeof(struct treq_network_set_plmn_selection_mode));
@@ -577,8 +581,9 @@ on_network_set_service_domain (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -603,8 +608,9 @@ on_network_get_service_domain (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -627,8 +633,9 @@ on_network_set_band (TelephonyNetwork *network, GDBusMethodInvocation *invocatio
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -654,8 +661,9 @@ on_network_get_band (TelephonyNetwork *network, GDBusMethodInvocation *invocatio
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -678,8 +686,9 @@ on_network_set_mode (TelephonyNetwork *network, GDBusMethodInvocation *invocatio
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -704,8 +713,9 @@ on_network_get_mode (TelephonyNetwork *network, GDBusMethodInvocation *invocatio
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -728,8 +738,9 @@ on_network_set_preferred_plmn (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -762,8 +773,9 @@ on_network_get_preferred_plmn (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -785,8 +797,9 @@ on_network_get_serving_network (TelephonyNetwork *network, GDBusMethodInvocation
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -808,8 +821,9 @@ on_network_get_neighboring_cell_info (TelephonyNetwork *network, GDBusMethodInvo
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -831,8 +845,9 @@ on_network_set_default_data_subscription (TelephonyNetwork *network, GDBusMethod
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -854,8 +869,9 @@ on_network_get_default_data_subscription (TelephonyNetwork *network, GDBusMethod
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -876,8 +892,9 @@ static gboolean on_network_set_default_subs(TelephonyNetwork *network, GDBusMeth
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -899,8 +916,9 @@ static gboolean on_network_get_default_subs(TelephonyNetwork *network, GDBusMeth
        struct custom_data *ctx = user_data;
        UserRequest *ur;
        TReturn ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -926,8 +944,9 @@ on_network_set_emergency_callback_mode (TelephonyNetwork *network,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -955,8 +974,9 @@ on_network_set_roaming_preference (TelephonyNetwork *network,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
@@ -982,8 +1002,9 @@ on_network_get_roaming_preference (TelephonyNetwork *network,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_NETWORK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_NETWORK, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, network, invocation);
index 3b3b20c..a0a6ead 100644 (file)
--- a/src/oem.c
+++ b/src/oem.c
@@ -68,8 +68,9 @@ send_oem_data(TelephonyOEM *oem,
        gint result = 1;
        guchar *decoded_data = NULL;
        gsize length;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_MODEM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_MODEM, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, oem, invocation);
index 30bd631..f6c45af 100755 (executable)
@@ -58,8 +58,9 @@ static gboolean on_phonebook_get_init_status(TelephonyPhonebook *phonebook, GDBu
        GSList *co_list = NULL;
        CoreObject *co_pb = NULL;
        TcorePlugin *plugin = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -108,8 +109,9 @@ static gboolean on_phonebook_get_count(TelephonyPhonebook *phonebook, GDBusMetho
        GSList *co_list = NULL;
        CoreObject *co_pb = NULL;
        gboolean pb_status = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -155,8 +157,9 @@ static gboolean on_phonebook_get_info(TelephonyPhonebook *phonebook, GDBusMethod
        GSList *co_list = NULL;
        CoreObject *co_pb = NULL;
        gboolean pb_status = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -203,8 +206,9 @@ static gboolean on_phonebook_get_usim_info(TelephonyPhonebook *phonebook, GDBusM
        GSList *co_list = NULL;
        CoreObject *co_pb = NULL;
        gboolean pb_status = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -252,8 +256,9 @@ static gboolean on_phonebook_read_record(TelephonyPhonebook *phonebook, GDBusMet
        GSList *co_list = NULL;
        CoreObject *co_pb = NULL;
        gboolean pb_status = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -312,8 +317,9 @@ static gboolean on_phonebook_update_record(TelephonyPhonebook *phonebook, GDBusM
        CoreObject *co_pb = NULL;
        gboolean pb_status = FALSE;
        int temp_len = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "x"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
@@ -417,8 +423,9 @@ static gboolean on_phonebook_delete_record(TelephonyPhonebook *phonebook, GDBusM
        GSList *co_list = NULL;
        CoreObject *co_pb = NULL;
        gboolean pb_status = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_PHONEBOOK, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_PHONEBOOK, "x"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
index 11a86f6..dd4dba1 100644 (file)
--- a/src/sap.c
+++ b/src/sap.c
@@ -45,8 +45,9 @@ static gboolean on_sap_connect(TelephonySap *sap, GDBusMethodInvocation *invocat
        UserRequest *ur = NULL;
        TReturn ret;
        struct treq_sap_req_connect req_conn;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
@@ -71,8 +72,9 @@ static gboolean on_sap_disconnect(TelephonySap *sap, GDBusMethodInvocation *invo
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
@@ -93,8 +95,9 @@ static gboolean on_sap_get_status(TelephonySap *sap, GDBusMethodInvocation *invo
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
@@ -115,8 +118,9 @@ static gboolean on_sap_get_atr(TelephonySap *sap, GDBusMethodInvocation *invocat
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
@@ -143,10 +147,11 @@ static gboolean on_sap_transfer_apdu(TelephonySap *sap, GDBusMethodInvocation *i
        GVariant *inner_gv = NULL;
        guchar rt_i;
        int i =0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        dbg("Func Entrance");
 
-       if (!check_access_control (invocation, AC_SAP, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "x"))
                return TRUE;
 
        memset(&t_apdu, 0, sizeof(struct treq_sap_transfer_apdu));
@@ -186,8 +191,9 @@ static gboolean on_sap_set_protocol(TelephonySap *sap, GDBusMethodInvocation *in
        UserRequest *ur = NULL;
        TReturn ret;
        struct treq_sap_set_protocol set_protocol;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
@@ -214,8 +220,9 @@ static gboolean on_sap_set_power(TelephonySap *sap, GDBusMethodInvocation *invoc
        UserRequest *ur = NULL;
        TReturn ret;
        struct treq_sap_set_power set_power;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "w"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
@@ -240,8 +247,9 @@ static gboolean on_sap_get_card_reader_status(TelephonySap *sap, GDBusMethodInvo
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAP, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SAP, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sap, invocation);
index d0d51be..4054d5e 100755 (executable)
--- a/src/sat.c
+++ b/src/sat.c
@@ -106,7 +106,9 @@ static gboolean on_sat_get_main_menu_info(TelephonySAT *sat, GDBusMethodInvocati
        GVariant *icon_id = NULL;
        GVariant *icon_list = NULL;
 #endif
-       if (!check_access_control (invocation, AC_SAT, "r"))
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
+
+       if (!check_access_control (p_cynara, invocation, AC_SAT, "r"))
                return TRUE;
 
        main_menu = _sat_get_main_menu(ctx, GET_CP_NAME(invocation));
@@ -144,8 +146,9 @@ static gboolean on_sat_send_display_status(TelephonySAT *sat, GDBusMethodInvocat
        struct custom_data *ctx = user_data;
        gboolean result = FALSE;
        gint out_param = 1;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAT, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAT, "x"))
                return TRUE;
 
        cp_name = GET_CP_NAME(invocation);
@@ -174,12 +177,13 @@ static gboolean on_sat_send_user_confirm(TelephonySAT *sat, GDBusMethodInvocatio
        TcorePlugin *plg = NULL;
        char *cp_name;
        struct custom_data *ctx = user_data;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        gboolean result = FALSE;
        gint out_param = 1;
        GVariant *confirm_data = NULL;
 
-       if (!check_access_control (invocation, AC_SAT, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAT, "x"))
                return TRUE;
 
        cp_name = GET_CP_NAME(invocation);
@@ -211,11 +215,12 @@ static gboolean on_sat_send_app_exec_result(TelephonySAT *sat, GDBusMethodInvoca
        TcorePlugin *plg = NULL;
        char *cp_name;
        struct custom_data *ctx = user_data;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        gboolean result = FALSE;
        gint out_param = 1;
 
-       if (!check_access_control (invocation, AC_SAT, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAT, "x"))
                return TRUE;
 
        cp_name = GET_CP_NAME(invocation);
@@ -246,8 +251,9 @@ static gboolean on_sat_select_menu(TelephonySAT *sat, GDBusMethodInvocation *inv
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        struct treq_sat_envelop_cmd_data envelop_data;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SAT, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAT, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sat, invocation);
@@ -278,10 +284,11 @@ static gboolean on_sat_download_event(TelephonySAT *sat, GDBusMethodInvocation *
        TReturn rv;
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        struct treq_sat_envelop_cmd_data envelop_data;
 
-       if (!check_access_control (invocation, AC_SAT, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SAT, "x"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sat, invocation);
index 3eaa6b2..0ce5669 100755 (executable)
--- a/src/sim.c
+++ b/src/sim.c
@@ -374,8 +374,9 @@ static gboolean on_sim_get_init_status(TelephonySim *sim, GDBusMethodInvocation
        enum tel_sim_status sim_status = SIM_STATUS_UNKNOWN;
        gboolean sim_changed = FALSE;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -396,8 +397,9 @@ static gboolean on_sim_get_card_type(TelephonySim *sim, GDBusMethodInvocation *i
        struct custom_data *ctx = user_data;
        enum tel_sim_type sim_type = SIM_TYPE_UNKNOWN;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -416,8 +418,9 @@ static gboolean on_sim_get_imsi(TelephonySim *sim, GDBusMethodInvocation *invoca
        struct custom_data *ctx = user_data;
        struct tel_sim_imsi *n_imsi;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -441,8 +444,9 @@ static gboolean on_sim_get_ecc(TelephonySim *sim, GDBusMethodInvocation *invocat
        struct custom_data *ctx = user_data;
        CoreObject *co_sim = NULL;
        struct tel_sim_ecc_list *ecc_list = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -497,10 +501,11 @@ static gboolean on_sim_get_iccid(TelephonySim *sim, GDBusMethodInvocation *invoc
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct tel_sim_iccid* iccid = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        dbg("Func Entrance");
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -536,8 +541,9 @@ static gboolean on_sim_get_language(TelephonySim *sim, GDBusMethodInvocation *in
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -565,8 +571,9 @@ static gboolean on_sim_set_language(TelephonySim *sim, GDBusMethodInvocation *in
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_set_language set_language;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "w"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -598,8 +605,9 @@ static gboolean on_sim_get_call_forwarding(TelephonySim *sim, GDBusMethodInvocat
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -637,8 +645,9 @@ static gboolean on_sim_set_call_forwarding(TelephonySim *sim, GDBusMethodInvocat
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_set_callforwarding req_cf;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "w"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -691,8 +700,9 @@ static gboolean on_sim_get_message_waiting(TelephonySim *sim, GDBusMethodInvocat
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -729,8 +739,9 @@ static gboolean on_sim_set_message_waiting(TelephonySim *sim, GDBusMethodInvocat
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_set_messagewaiting req_mw;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "w"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -788,8 +799,9 @@ static gboolean on_sim_get_mailbox(TelephonySim *sim, GDBusMethodInvocation *inv
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -825,8 +837,9 @@ static gboolean on_sim_set_mailbox(TelephonySim *sim, GDBusMethodInvocation *inv
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_set_mailbox req_mb;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "w"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "w"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -883,8 +896,9 @@ static gboolean on_sim_get_cphsinfo(TelephonySim *sim, GDBusMethodInvocation *in
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -910,8 +924,9 @@ static gboolean on_sim_get_service_table(TelephonySim *sim, GDBusMethodInvocatio
        struct custom_data *ctx = user_data;
        CoreObject *co_sim = NULL;
        struct tel_sim_service_table *svct = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -987,8 +1002,9 @@ static gboolean on_sim_get_msisdn(TelephonySim *sim, GDBusMethodInvocation *invo
        CoreObject *co_sim = NULL;
        struct tel_sim_msisdn_list *msisdn_list = NULL;
        gboolean read_from_modem = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1059,8 +1075,9 @@ static gboolean on_sim_get_oplmnwact(TelephonySim *sim, GDBusMethodInvocation *i
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1088,8 +1105,9 @@ static gboolean on_sim_get_spn(TelephonySim *sim, GDBusMethodInvocation *invocat
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct tel_sim_spn* spn = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1125,8 +1143,9 @@ static gboolean on_sim_get_cphs_netname(TelephonySim *sim, GDBusMethodInvocation
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct tel_sim_cphs_netname *cphs_netname = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1162,8 +1181,9 @@ static gboolean on_sim_get_gid(TelephonySim *sim, GDBusMethodInvocation *invocat
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1199,8 +1219,9 @@ static gboolean on_sim_authentication(TelephonySim *sim, GDBusMethodInvocation *
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_req_authentication req_auth;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1275,8 +1296,9 @@ static gboolean on_sim_verify_sec(TelephonySim *sim, GDBusMethodInvocation *invo
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_verify_pins verify_pins;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1313,8 +1335,9 @@ static gboolean on_sim_verify_puk(TelephonySim *sim, GDBusMethodInvocation *invo
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_verify_puks verify_puks;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1353,8 +1376,9 @@ static gboolean on_sim_change_pin(TelephonySim *sim, GDBusMethodInvocation *invo
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_change_pins change_pins;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1392,8 +1416,9 @@ static gboolean on_sim_disable_facility(TelephonySim *sim, GDBusMethodInvocation
        TReturn ret;
        struct treq_sim_disable_facility dis_facility;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1455,8 +1480,9 @@ static gboolean on_sim_enable_facility(TelephonySim *sim, GDBusMethodInvocation
        TReturn ret;
        struct treq_sim_enable_facility en_facility;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1517,8 +1543,9 @@ static gboolean on_sim_get_facility(TelephonySim *sim, GDBusMethodInvocation *in
        TReturn ret;
        struct treq_sim_get_facility_status facility;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1578,8 +1605,9 @@ static gboolean on_sim_get_lock_info(TelephonySim *sim, GDBusMethodInvocation *i
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_get_lock_info lock_info;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1642,8 +1670,9 @@ static gboolean on_sim_transfer_apdu(TelephonySim *sim, GDBusMethodInvocation *i
        TReturn ret;
        CoreObject *co_sim = NULL;
        int i =0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "x"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "x"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1686,8 +1715,9 @@ static gboolean on_sim_get_atr(TelephonySim *sim, GDBusMethodInvocation *invocat
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control (p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1718,10 +1748,11 @@ static gboolean on_sim_get_fields(TelephonySim *sim, GDBusMethodInvocation *invo
        CoreObject *co_sim = NULL;
        GVariantBuilder b;
        GVariant *gv_fields = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        dbg("Func Entrance");
 
-       if (!check_access_control (invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1768,8 +1799,9 @@ static gboolean on_sim_set_power_state(TelephonySim *sim, GDBusMethodInvocation
        TReturn ret;
        CoreObject *co_sim = NULL;
        struct treq_sim_set_powerstate set_powerstate;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SIM, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "w"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1800,8 +1832,9 @@ static gboolean on_sim_get_impi(TelephonySim *sim,
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control(invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1827,8 +1860,9 @@ static gboolean on_sim_get_impu(TelephonySim *sim,
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control(invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1854,8 +1888,9 @@ static gboolean on_sim_get_domain(TelephonySim *sim,
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control(invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1881,8 +1916,9 @@ static gboolean on_sim_get_pcscf(TelephonySim *sim,
        UserRequest *ur = NULL;
        TReturn ret;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control(invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1907,10 +1943,11 @@ static gboolean on_sim_get_app_list(TelephonySim *sim,
        struct custom_data *ctx = user_data;
        CoreObject *co_sim = NULL;
        unsigned char app_list = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        dbg("Func Entrance");
 
-       if (!check_access_control(invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
@@ -1927,10 +1964,11 @@ static gboolean on_sim_get_isim_service_table(TelephonySim *sim,
        struct custom_data *ctx = user_data;
        struct tel_sim_ist *ist = NULL;
        CoreObject *co_sim = NULL;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        dbg("Func Entrance");
 
-       if (!check_access_control(invocation, AC_SIM, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SIM, "r"))
                return TRUE;
 
        DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
index e201d88..b9eee54 100755 (executable)
--- a/src/sms.c
+++ b/src/sms.c
@@ -53,12 +53,13 @@ on_sms_send_msg(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        int i = 0;
        GVariantIter *iter = 0;
        GVariant *inner_gv = 0;
 
-       if (!check_access_control (invocation, AC_SMS, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "x"))
                return TRUE;
 
        memset(&sendMsg, 0 , sizeof(struct treq_sms_send_msg));
@@ -119,8 +120,9 @@ on_sms_read_msg(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        readMsg.index = arg_index;
@@ -151,12 +153,13 @@ on_sms_save_msg(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        int i = 0;
        GVariantIter *iter = 0;
        GVariant *inner_gv = 0;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        if (SMS_NETTYPE_3GPP == format) {
@@ -216,8 +219,9 @@ on_sms_delete_msg(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "x"))
                return TRUE;
 
        deleteMsg.index = arg_index;
@@ -242,8 +246,9 @@ on_sms_get_msg_count(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sms, invocation);
@@ -268,8 +273,9 @@ on_sms_get_sca(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        getSca.index = arg_index;
@@ -300,12 +306,13 @@ on_sms_set_sca(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        int i = 0;
        GVariantIter *iter = 0;
        GVariant *inner_gv = 0;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        memset(&setSca, 0, sizeof(struct treq_sms_set_sca));
@@ -361,8 +368,9 @@ on_sms_get_cb_config(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sms, invocation);
@@ -391,6 +399,7 @@ on_sms_set_cb_config(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        GVariant *value = NULL;
        GVariant *inner_gv = 0;
@@ -399,7 +408,7 @@ on_sms_set_cb_config(TelephonySms *sms, GDBusMethodInvocation *invocation,
        const gchar *key = NULL;
        int i = 0;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        setCbConfig.net3gppType = arg_net3gppType;
@@ -457,8 +466,9 @@ on_sms_set_mem_status(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        memStatus.memory_status = arg_memoryStatus;
@@ -484,8 +494,9 @@ on_sms_get_pref_bearer(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sms, invocation);
@@ -510,8 +521,9 @@ on_sms_set_pref_bearer(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        setPrefBearer.svc = arg_bearerType;
@@ -542,6 +554,7 @@ on_sms_set_delivery_report(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        guchar *decoded_sca = NULL;
        guchar *decoded_tpdu = NULL;
@@ -549,7 +562,7 @@ on_sms_set_delivery_report(TelephonySms *sms, GDBusMethodInvocation *invocation,
        gsize decoded_sca_len = 0;
        gsize decoded_tpdu_len = 0;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        memset(&deliveryReport, 0, sizeof(struct treq_sms_set_delivery_report));
@@ -628,8 +641,9 @@ on_sms_set_msg_status(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        msgStatus.index = arg_index;
@@ -657,8 +671,9 @@ on_sms_get_sms_params(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        getParams.index = arg_index;
@@ -700,12 +715,13 @@ on_sms_set_sms_params(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
        int i = 0;
        GVariantIter *iter = 0;
        GVariant *inner_gv = 0;
 
-       if (!check_access_control (invocation, AC_SMS, "w"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "w"))
                return TRUE;
 
        memset(&setParams, 0, sizeof(struct treq_sms_set_params));
@@ -777,8 +793,9 @@ on_sms_get_sms_param_cnt(TelephonySms *sms, GDBusMethodInvocation *invocation,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        TReturn ret = TCORE_RETURN_SUCCESS;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        ur = MAKE_UR(ctx, sms, invocation);
@@ -803,8 +820,9 @@ on_sms_get_sms_ready_status(TelephonySms *sms, GDBusMethodInvocation *invocation
        CoreObject *co_sms = NULL;
        TcorePlugin *plugin = NULL;
        gboolean ready_status = FALSE;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SMS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SMS, "r"))
                return TRUE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
index 84bdecf..12f354a 100755 (executable)
--- a/src/ss.c
+++ b/src/ss.c
@@ -151,8 +151,9 @@ on_ss_activate_barring (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_SS, "x"))
                return TRUE;
 
        memset(&req, 0, sizeof(struct treq_ss_barring));
@@ -195,8 +196,9 @@ on_ss_deactivate_barring (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_SS, "x"))
                return TRUE;
 
        memset(&req, 0, sizeof(struct treq_ss_barring));
@@ -238,8 +240,9 @@ on_ss_change_barring_password (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "x"))
+       if (!check_access_control(p_cynara, invocation, AC_SS, "x"))
                return TRUE;
 
        memset(&req, 0, sizeof(struct treq_ss_barring_change_password));
@@ -280,8 +283,9 @@ on_ss_get_barring_status (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "r"))
+       if (!check_access_control(p_cynara, invocation, AC_SS, "r"))
                return TRUE;
 
        memset(&req, 0, sizeof(struct treq_ss_barring));
@@ -320,8 +324,9 @@ on_ss_register_forwarding (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
 
@@ -366,8 +371,9 @@ on_ss_deregister_forwarding (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
 
@@ -412,8 +418,9 @@ on_ss_activate_forwarding (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
 
@@ -458,8 +465,9 @@ on_ss_deactivate_forwarding (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
 
@@ -500,8 +508,9 @@ on_ss_get_forwarding_status (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "r")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "r")) {
                return TRUE;
        }
 
@@ -537,8 +546,9 @@ on_ss_activate_waiting (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
 
@@ -572,8 +582,9 @@ on_ss_deactivate_waiting (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
        memset(&req, 0, sizeof(struct treq_ss_waiting));
@@ -606,8 +617,9 @@ on_ss_get_waiting_status (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "r")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "r")) {
                return TRUE;
        }
 
@@ -642,8 +654,9 @@ on_ss_set_cli_status (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "w")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "w")) {
                return TRUE;
        }
 
@@ -679,8 +692,9 @@ on_ss_get_cli_status (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "r")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "r")) {
                return TRUE;
        }
 
@@ -717,8 +731,9 @@ on_ss_send_ussd (TelephonySs *ss,
        struct custom_data *ctx = user_data;
        UserRequest *ur = NULL;
        int ret = 0;
+       cynara *p_cynara = (ctx)?ctx->p_cynara:NULL;
 
-       if (!check_access_control (invocation, AC_SS, "x")) {
+       if (!check_access_control(p_cynara, invocation, AC_SS, "x")) {
                return TRUE;
        }
        memset(&req, 0, sizeof(struct treq_ss_ussd));