- disable unused codes.
- implement emitting signal code.
Change-Id: I0d74c8e2ac3b95741a9e32cbc0766eb82130a464
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()
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)
ADD_SUBDIRECTORY(client)
ADD_SUBDIRECTORY(server)
-IF("${TEST_CLIENT}" STREQUAL "1")
+IF(DEFINED TEST_CLIENT)
ADD_SUBDIRECTORY(test-client)
ENDIF()
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}")
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")
* limitations under the License.
*/
+#ifndef USE_GDBUS
/* standard library header */
#include <stdio.h>
#include <string.h>
}
} /* namespace smartcard_service_api */
+#endif
* limitations under the License.
*/
+#ifndef USE_GDBUS
/* standard library header */
#include <stdio.h>
#include <string.h>
}
} /* namespace smartcard_service_api */
+#endif
#ifndef DISPATCHERMSG_H_
#define DISPATCHERMSG_H_
-
+#ifndef USE_GDBUS
/* standard library header */
/* SLP library header */
};
} /* namespace smartcard_service_api */
+#endif
#endif /* DISPATCHERMSG_H_ */
#ifndef MESSAGE_H_
#define MESSAGE_H_
-
+#ifndef USE_GDBUS
/* standard library header */
/* SLP library header */
};
} /* namespace smartcard_service_api */
+#endif
#endif /* MESSAGE_H_ */
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;
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)
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
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}")
}
}
+ 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 *
*
*
#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")))
}
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;
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++)
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)
{
{
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;
{
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;
msg.data.setBuffer((unsigned char *)terminal, strlen((char *)terminal) + 1);
instance.sendMessageToAllClients(msg);
+#endif
instance.removeReader(readerID);
}
break;
/* 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
{
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 :
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;
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);
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}")
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include "Debug.h"
#include "SEService.h"
}
};
-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)
_BEGIN();
-// net_nfc_is_authorized_nfc_access("autoutc099.SecureElementUnitTest", buffer, sizeof(buffer));
if (service != NULL)
{
_DBG("callback called, service [%p]", service);