More changes about using gdbus
authorWonkyu Kwon <wonkyu.kwon@samsung.com>
Tue, 23 Jul 2013 06:44:28 +0000 (15:44 +0900)
committerWonkyu Kwon <wonkyu.kwon@samsung.com>
Wed, 24 Jul 2013 08:56:38 +0000 (17:56 +0900)
 - disable unused codes.
 - implement emitting signal code.

Change-Id: I0d74c8e2ac3b95741a9e32cbc0766eb82130a464

17 files changed:
CMakeLists.txt
client/CMakeLists.txt
common/CMakeLists.txt
common/DispatcherHelper.cpp
common/Message.cpp
common/include/DispatcherMsg.h
common/include/Message.h
common/include/Terminal.h
packaging/smartcard-service.spec
server/CMakeLists.txt
server/ServerGDBus.cpp
server/ServerResource.cpp
server/ServerSEService.cpp
server/include/ServerGDBus.h
server/include/ServerResource.h
test-client/CMakeLists.txt
test-client/test-client-sync.cpp

index e5185cf..8646bee 100644 (file)
@@ -4,10 +4,10 @@ MESSAGE("build smartcard-service")
 
 SET(CMAKE_VERBOSE_MAKEFILE OFF)
 
-IF("${USE_GDBUS}" STREQUAL "1")
+IF(DEFINED USE_GDBUS)
        ADD_DEFINITIONS("-DUSE_GDBUS")
        
-       IF("${USE_AUTOSTART}" STREQUAL "1")
+       IF(DEFINED USE_AUTOSTART)
                ADD_DEFINITIONS("-DUSE_AUTOSTART")
        ENDIF()
 
@@ -23,7 +23,7 @@ ELSE()
        ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
        ADD_DEFINITIONS("-DUSE_IPC_EPOLL")
 
-       IF("${USE_AUTOSTART}" STREQUAL "1")
+       IF(DEFINED USE_AUTOSTART)
                ADD_DEFINITIONS("-DUSE_AUTOSTART")
 
                FIND_PROGRAM(DBUS_BINDING_TOOL NAMES dbus-binding-tool)
@@ -36,7 +36,7 @@ ADD_SUBDIRECTORY(common)
 ADD_SUBDIRECTORY(client)
 ADD_SUBDIRECTORY(server)
 
-IF("${TEST_CLIENT}" STREQUAL "1")
+IF(DEFINED TEST_CLIENT)
        ADD_SUBDIRECTORY(test-client)
 ENDIF()
 
index 43c8af6..e1cb236 100644 (file)
@@ -17,8 +17,15 @@ IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
 
+# pkg config
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_client REQUIRED glib-2.0 dlog dbus-glib-1 security-server)
+
+SET(PKG_MODULE glib-2.0 security-server dlog)
+IF(NOT DEFINED USE_GDBUS)
+       SET(PKG_MODULE ${PKG_MODULE} dbus-glib-1)
+ENDIF()
+
+pkg_check_modules(pkgs_client REQUIRED ${PKG_MODULE})
 
 MESSAGE("${LIB_NAME} ld flag : ${pkgs_client_LDFLAGS}")
 
index 5c2581a..de3a042 100644 (file)
@@ -41,8 +41,6 @@ IF("${ARCH}" STREQUAL "arm")
        MESSAGE("add -DTARGET")
 ENDIF("${ARCH}" STREQUAL "arm")
 
-MESSAGE("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
-
 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
 ADD_DEFINITIONS("-DSLP_DEBUG")
 ADD_DEFINITIONS("-DUSE_UNIX_DOMAIN")
index eb3d474..240704a 100644 (file)
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#ifndef USE_GDBUS
 /* standard library header */
 #include <stdio.h>
 #include <string.h>
@@ -144,3 +145,4 @@ namespace smartcard_service_api
        }
 
 } /* namespace smartcard_service_api */
+#endif
index 14755b5..d34d375 100644 (file)
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#ifndef USE_GDBUS
 /* standard library header */
 #include <stdio.h>
 #include <string.h>
@@ -212,3 +213,4 @@ namespace smartcard_service_api
        }
 
 } /* namespace smartcard_service_api */
+#endif
index 69138ba..4dc4f08 100644 (file)
@@ -16,7 +16,7 @@
 
 #ifndef DISPATCHERMSG_H_
 #define DISPATCHERMSG_H_
-
+#ifndef USE_GDBUS
 /* standard library header */
 
 /* SLP library header */
@@ -83,4 +83,5 @@ namespace smartcard_service_api
        };
 
 } /* namespace smartcard_service_api */
+#endif
 #endif /* DISPATCHERMSG_H_ */
index 2cdb2a4..4bb6a40 100644 (file)
@@ -16,7 +16,7 @@
 
 #ifndef MESSAGE_H_
 #define MESSAGE_H_
-
+#ifndef USE_GDBUS
 /* standard library header */
 
 /* SLP library header */
@@ -69,4 +69,5 @@ namespace smartcard_service_api
        };
 
 } /* namespace smartcard_service_api */
+#endif
 #endif /* MESSAGE_H_ */
index dccc9bf..c0adb27 100644 (file)
@@ -43,12 +43,9 @@ namespace smartcard_service_api
                static const int NOTIFY_SE_AVAILABLE = 1;
                static const int NOTIFY_SE_NOT_AVAILABLE = -1;
 
-               Terminal()
-               {
-                       statusCallback = NULL;
-                       initialized = false;
-                       name = NULL;
-               }
+               Terminal() : statusCallback(NULL),
+                       initialized(false), name(NULL) {}
+
                virtual ~Terminal() {}
 
                virtual bool initialize() = 0;
index e90992e..1e58a5f 100644 (file)
@@ -18,7 +18,6 @@ BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(gio-unix-2.0)
 BuildRequires: pkgconfig(security-server)
 BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(vconf)
 BuildRequires: pkgconfig(aul)
 BuildRequires: pkgconfig(libssl)
 BuildRequires: pkgconfig(pkgmgr)
@@ -27,8 +26,10 @@ BuildRequires: pkgconfig(pkgmgr-info)
 BuildRequires: pkgconfig(dbus-glib-1)
 %endif
 # for gdbus
+%if 0%{?use_gdbus:1}
 BuildRequires: python
 BuildRequires: python-xml
+%endif
 
 Requires(post):   /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
index 8a06155..8aed081 100644 (file)
@@ -6,13 +6,23 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../common/include)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
 
 AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ SRCS)
+IF(DEFINED USE_GDBUS)
+       AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/private SRCS)
+ENDIF()
 
 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
        SET(CMAKE_BUILD_TYPE "Release")
 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 
+# pkg config
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_server REQUIRED glib-2.0 gio-2.0 security-server vconf dlog dbus-glib-1)
+
+SET(PKG_MODULE glib-2.0 gio-2.0 gio-unix-2.0 security-server dlog)
+IF(NOT DEFINED USE_GDBUS)
+       SET(PKG_MODULE ${PKG_MODULE} dbus-glib-1)
+ENDIF()
+
+pkg_check_modules(pkgs_server REQUIRED ${PKG_MODULE})
 
 FOREACH(flag ${pkgs_server_CFLAGS})
        SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
index b536210..177a192 100644 (file)
@@ -330,6 +330,22 @@ namespace smartcard_service_api
                }
        }
 
+       void ServerGDBus::emitReaderInserted(unsigned int reader_id,
+               const char *reader_name)
+       {
+               smartcard_service_se_service_emit_reader_inserted(
+                       SMARTCARD_SERVICE_SE_SERVICE(seService),
+                       reader_id, reader_name);
+       }
+
+       void ServerGDBus::emitReaderRemoved(unsigned int reader_id,
+               const char *reader_name)
+       {
+               smartcard_service_se_service_emit_reader_removed(
+                       SMARTCARD_SERVICE_SE_SERVICE(seService),
+                       reader_id, reader_name);
+       }
+
        /* Reader *
         *
         *
index 79e5057..bc86a06 100644 (file)
@@ -31,6 +31,9 @@
 #include "SignatureHelper.h"
 #include "GPACE.h"
 #include "PKCS15.h"
+#ifdef USE_GDBUS
+#include "ServerGDBus.h"
+#endif
 
 #ifndef EXTERN_API
 #define EXTERN_API __attribute__((visibility("default")))
@@ -871,7 +874,7 @@ namespace smartcard_service_api
                }
                else
                {
-                       _ERR("select apdu is failed, rv [%d], length [%d]", rv, response.getLength());
+                       _ERR("transmitSync failed, rv [%d], length [%d]", rv, response.getLength());
                }
 
                return result;
@@ -1300,11 +1303,11 @@ namespace smartcard_service_api
                return result;
        }
 
+#ifndef USE_GDBUS
        bool ServerResource::sendMessageToAllClients(Message &msg)
        {
                bool result = true;
-#ifdef USE_GDBUS
-#else
+
                map<int, ClientInstance *>::iterator item;
 
                for (item = mapClients.begin(); item != mapClients.end(); item++)
@@ -1312,10 +1315,10 @@ namespace smartcard_service_api
                        if (item->second->sendMessageToAllServices(item->second->getSocket(), msg) == false)
                                result = false;
                }
-#endif
 
                return result;
        }
+#endif
 
        void ServerResource::terminalCallback(void *terminal, int event, int error, void *user_param)
        {
@@ -1327,19 +1330,25 @@ namespace smartcard_service_api
                        {
                                ServerResource &instance = ServerResource::getInstance();
                                unsigned int terminalID = IntegerHandle::INVALID_HANDLE;
-                               Message msg;
 
                                _INFO("[NOTIFY_SE_AVAILABLE]");
 
                                terminalID = instance.getTerminalID((char *)terminal);
                                if (terminalID != IntegerHandle::INVALID_HANDLE)
                                {
+                                       unsigned int readerID = instance.createReader(terminalID);
+#ifdef USE_GDBUS
+                                       ServerGDBus::getInstance().emitReaderInserted(readerID, (const char *)terminal);
+#else
+                                       Message msg;
+
                                        /* send all client to refresh reader */
                                        msg.message = msg.MSG_NOTIFY_SE_INSERTED;
-                                       msg.param1 = instance.createReader(terminalID);
+                                       msg.param1 = readerID;
                                        msg.data.setBuffer((unsigned char *)terminal, strlen((char *)terminal) + 1);
 
                                        instance.sendMessageToAllClients(msg);
+#endif
                                }
                        }
                        break;
@@ -1348,11 +1357,14 @@ namespace smartcard_service_api
                        {
                                ServerResource &instance = ServerResource::getInstance();
                                unsigned int readerID = IntegerHandle::INVALID_HANDLE;
-                               Message msg;
 
                                _INFO("[NOTIFY_SE_NOT_AVAILABLE]");
 
                                readerID = instance.getReaderID((char *)terminal);
+#ifdef USE_GDBUS
+                               ServerGDBus::getInstance().emitReaderRemoved(readerID, (const char *)terminal);
+#else
+                               Message msg;
 
                                /* send all client to refresh reader */
                                msg.message = msg.MSG_NOTIFY_SE_REMOVED;
@@ -1360,6 +1372,7 @@ namespace smartcard_service_api
                                msg.data.setBuffer((unsigned char *)terminal, strlen((char *)terminal) + 1);
 
                                instance.sendMessageToAllClients(msg);
+#endif
                                instance.removeReader(readerID);
                        }
                        break;
index 3e87425..6c119af 100644 (file)
 
 /* local header */
 #include "Debug.h"
-#include "Message.h"
 #include "TerminalInterface.h"
-#include "ServerSEService.h"
+#ifndef USE_GDBUS
+#include "Message.h"
 #include "ServerIPC.h"
+#endif
 #include "ServerResource.h"
+#include "ServerSEService.h"
 
 namespace smartcard_service_api
 {
@@ -231,27 +233,36 @@ namespace smartcard_service_api
 
        void ServerSEService::terminalCallback(void *terminal, int event, int error, void *user_param)
        {
-               Message msg;
-//             Terminal *term = NULL;
-
                switch (event)
                {
                case Terminal::NOTIFY_SE_AVAILABLE :
-                       /* send all client to refresh reader */
-                       msg.message = msg.MSG_NOTIFY_SE_INSERTED;
-                       msg.data.setBuffer((unsigned char *)terminal,
-                               strlen((char *)terminal) + 1);
+                       {
+#ifndef USE_GDBUS
+                               Message msg;
 
-                       ServerResource::getInstance().sendMessageToAllClients(msg);
+                               /* send all client to refresh reader */
+                               msg.message = msg.MSG_NOTIFY_SE_INSERTED;
+                               msg.data.setBuffer((unsigned char *)terminal,
+                                       strlen((char *)terminal) + 1);
+
+                               ServerResource::getInstance().sendMessageToAllClients(msg);
+#endif
+                       }
                        break;
 
                case Terminal::NOTIFY_SE_NOT_AVAILABLE :
-                       /* send all client to refresh reader */
-                       msg.message = msg.MSG_NOTIFY_SE_REMOVED;
-                       msg.data.setBuffer((unsigned char *)terminal,
-                               strlen((char *)terminal) + 1);
+                       {
+#ifndef USE_GDBUS
+                               Message msg;
+
+                               /* send all client to refresh reader */
+                               msg.message = msg.MSG_NOTIFY_SE_REMOVED;
+                               msg.data.setBuffer((unsigned char *)terminal,
+                                       strlen((char *)terminal) + 1);
 
-                       ServerResource::getInstance().sendMessageToAllClients(msg);
+                               ServerResource::getInstance().sendMessageToAllClients(msg);
+#endif
+                       }
                        break;
 
                default :
index 76181ab..456fe25 100644 (file)
@@ -39,6 +39,11 @@ namespace smartcard_service_api
                void _deinit();
                pid_t getPID(const char *name);
 
+               void emitReaderInserted(unsigned int reader_id,
+                       const char *reader_name);
+               void emitReaderRemoved(unsigned int reader_id,
+                       const char *reader_name);
+
        private :
 
                GDBusConnection *connection;
index 547c34f..504a5f0 100644 (file)
@@ -174,9 +174,9 @@ namespace smartcard_service_api
                void addAccessControlList(ServerChannel *channel, AccessControlList *acl);
                AccessControlList *getAccessControlList(Terminal *terminal);
                AccessControlList *getAccessControlList(ServerChannel *channel);
-
+#ifndef USE_GDBUS
                bool sendMessageToAllClients(Message &msg);
-
+#endif
                bool isAuthorizedNFCAccess(Terminal *terminal, ByteArray &aid,
                        vector<ByteArray> &hashes);
 
index a6d9221..b7c3e66 100644 (file)
@@ -15,7 +15,7 @@ IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_test_client REQUIRED glib-2.0 gthread-2.0 gobject-2.0 security-server vconf dlog dbus-glib-1)
+pkg_check_modules(pkgs_test_client REQUIRED glib-2.0 dlog)
 
 FOREACH(flag ${pkgs_test_client_CFLAGS})
        SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
index f7d8985..c4c2526 100644 (file)
@@ -17,7 +17,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <glib.h>
-#include <dbus/dbus-glib.h>
 
 #include "Debug.h"
 #include "SEService.h"
@@ -76,60 +75,6 @@ class TestEventHandler : public SEServiceListener
        }
 };
 
-bool net_nfc_is_authorized_nfc_access(const char *package, uint8_t *aid, uint32_t aid_len)
-{
-       bool result = false;
-       DBusGConnection *connection;
-       GError *error = NULL;
-
-       dbus_g_thread_init();
-
-       g_type_init();
-
-       connection = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
-       if (error == NULL)
-       {
-               DBusGProxy *proxy;
-
-               proxy = dbus_g_proxy_new_for_name(connection, "org.tizen.smartcard_service",
-                       "/org/tizen/smartcard_service", "org.tizen.smartcard_service");
-               if (proxy != NULL)
-               {
-                       gint rule = 0;
-                       GArray temp = { (gchar *)aid, aid_len };
-
-                       if (dbus_g_proxy_call(proxy, "check_nfc_access", &error,
-                               G_TYPE_STRING, package,
-                               dbus_g_type_get_collection("GArray", G_TYPE_UCHAR), &temp, G_TYPE_INVALID,
-                               G_TYPE_INT, rule, G_TYPE_INVALID) == false)
-                       {
-                               _ERR("check_nfc_access failed");
-                               if (error != NULL)
-                               {
-                                       _ERR("message : [%s]", error->message);
-                                       g_error_free(error);
-                               }
-                       }
-                       else
-                       {
-                               _INFO("check_nfc_access returns : %d", rule);
-                               result = !!rule;
-                       }
-               }
-               else
-               {
-                       _ERR("ERROR: Can't make dbus proxy");
-               }
-       }
-       else
-       {
-               _ERR("ERROR: Can't get on system bus [%s]", error->message);
-               g_error_free(error);
-       }
-
-       return result;
-}
-
 TestEventHandler testEventHandler;
 
 void testConnectedCallback(SEServiceHelper *service, void *userData)
@@ -141,7 +86,6 @@ void testConnectedCallback(SEServiceHelper *service, void *userData)
 
        _BEGIN();
 
-//     net_nfc_is_authorized_nfc_access("autoutc099.SecureElementUnitTest", buffer, sizeof(buffer));
        if (service != NULL)
        {
                _DBG("callback called, service [%p]", service);