Currently, deviceid is not applied based on Wi-Fi MAC address.
So, we fix this issue.
Signed-off-by: saerome.kim <saerome.kim@samsung.com>
Source7: net.fnm.service
Source8: d2ds.service
Source9: net.d2ds.service
-Source10: capi-network-familynet.manifest
BuildRequires: cmake
BuildRequires: pkgconfig(iotivity)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(capi-base-common)
+BuildRequires: pkgconfig(capi-network-wifi-manager)
BuildRequires: pkgconfig(libtzplatform-config)
BuildRequires: pkgconfig(aul)
BuildRequires: pkgconfig(gmock)
%description devel
This package contains the development files for %{name}.
-%package capi
-Summary: D2D Manager CAPI
-Group: Network & Connectivity/Other
-Requires: %{name} = %{version}-%{release}
-
-%description capi
-D2D Manager CAPI.
-
-%package capi-devel
-Summary: D2D Manager CAPI (Development)
-Group: Network & Connectivity/Other
-Requires: %{name} = %{version}-%{release}
-
-%description capi-devel
-This package contains the development files for %{name} CAPI.
-
%prep
%setup -q
chmod 644 %{SOURCE0}
chmod 644 %{SOURCE7}
chmod 644 %{SOURCE8}
chmod 644 %{SOURCE9}
-chmod 644 %{SOURCE10}
cp %{SOURCE2} .
cp %{SOURCE3} .
cp %{SOURCE7} .
cp %{SOURCE8} .
cp %{SOURCE9} .
-cp %{SOURCE10} .
%build
CFLAGS=$(echo $CFLAGS | sed 's/-O2/-O0/' | sed 's/-O1/-O0/' | sed 's/-Wp,-D_FORTIFY_SOURCE=2//')
cp test/oic_svr_db_client.dat oic_svr_db_subowner_client.dat
%postun
-#%{NETWORK_FW_DATADIR}/oic_amss_db.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_client_devowner.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_client_directpairing.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_client_nondevowner.dat
-%{NETWORK_FW_DATADIR}/oic_svr_db_server_justworks.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_randompin_with_empty_deviceid.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_server_justworks_default.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_server_justworks_protectedDB_plain.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_server_mfg.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_server_mvjustworks.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_server_preconfpin.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_client.dat
-#%{NETWORK_FW_DATADIR}/oic_svr_db_server.dat
-%{NETWORK_FW_DATADIR}/oic_svr_db_subowner_client.dat
-#%attr(750,network_fw,network_fw) %{_sbindir}/ocserverbasicops
-%attr(750,network_fw,network_fw) %{_sbindir}/sampleserver_justworks
-#%attr(750,network_fw,network_fw) %{_sbindir}/provisioningclient
-#%attr(750,network_fw,network_fw) %{_sbindir}/subownerclient
+rm -rf %{NETWORK_FW_DATADIR}/oic_pdm_d2ds.db
+rm -rf %{NETWORK_FW_DATADIR}/oic_pdm_subowner.db-journal
%files
%manifest %{name}.manifest
%attr(644,root,root) %{_unitdir}/d2dm.service
%attr(644,root,root) %{_unitdir}/fnm.service
%attr(644,root,root) %{_unitdir}/d2ds.service
+%attr(644,network_fw,network_fw) %{NETWORK_FW_DATADIR}/oic_svr_db_d2ds.dat
%files devel
%manifest %{name}-devel.manifest
%attr(750,network_fw,network_fw) %{_sbindir}/sampleserver_justworks
%attr(750,network_fw,network_fw) %{_sbindir}/provisioningclient
%attr(750,network_fw,network_fw) %{_sbindir}/subownerclient
-
-%files capi
-%manifest capi-network-familynet.manifest
-%defattr(-,root,root,-)
-%{_libdir}/libcapi-network-familynet.so*
-
-%files capi-devel
-%{_includedir}/*.h
-%{_libdir}/pkgconfig/*.pc
-%{_libdir}/libcapi-network-familynet.so
-%attr(777,root,root) %{_bindir}/familynet_unit_test
MESSAGE("===================================================================")
MESSAGE("Building...subowner client")
MESSAGE("===================================================================")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include/cjson)
+
SET(INTROSPECTION_PATH ${CMAKE_CURRENT_SOURCE_DIR}/introspection)
ADD_CUSTOM_COMMAND(
OUTPUT dbus1
COMMENT "Generating d2ds GDBus .c/.h"
)
+MESSAGE(" - Check cmake packagesion")
+pkg_check_modules(d2ds_pkgs REQUIRED ${COMMON_DEPS} ${TIZEN_DEPS} capi-network-wifi-manager)
+
ADD_CUSTOM_TARGET(GENERATED_D2DS_DBUS_CODE DEPENDS dbus1)
MESSAGE(" - Set source folder")
FILE(GLOB SUBOWNER_SRCS *.c)
SET(SUBOWNER_SRCS ${SUBOWNER_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/d2ds-generated-code.c)
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/d2ds-generated-code.c PROPERTIES GENERATED TRUE)
+INCLUDE_DIRECTORIES(${d2ds_pkgs_INCLUDE_DIRS})
+LINK_DIRECTORIES(${d2ds_pkgs_LIBRARY_DIRS})
+
SET(SUBOWNER "d2d-subowner")
ADD_EXECUTABLE(${SUBOWNER} ${SUBOWNER_SRCS})
ADD_DEPENDENCIES(${SUBOWNER} GENERATED_D2DS_DBUS_CODE)
-TARGET_LINK_LIBRARIES(${SUBOWNER} ${daemon_pkgs_LIBRARIES} pthread)
+TARGET_LINK_LIBRARIES(${SUBOWNER} ${d2ds_pkgs_LIBRARIES} pthread)
INSTALL(TARGETS ${SUBOWNER} DESTINATION bin)
+INSTALL(FILES oic_svr_db_d2ds.dat DESTINATION ${NETWORK_FW_DATADIR})
#include "pmtypes.h"
#include "pmutility.h"
+#include <wifi-manager.h>
#include <tzplatform_config.h>
#include "d2ds.h"
#include "d2ds-service-interface.h"
#include "d2ds-generated-code.h"
+#define WIFI_MAC_ADDR_LENGTH 17
+
#define MAX_FILE_PATH_LEN 1024
#define ACL_RESRC_MAX_LEN 128
#define CALLBACK_TIMEOUT_MS 10 * 50 /* 5sec = 100ms * 50 */
/* '_' for separaing from the same constant variable in srmresourcestrings.c */
-static const char* SVR_DB_FILE_NAME = "oic_svr_db_subowner_client.dat";
-static const char* PRVN_DB_FILE_NAME = "oic_pdm_subowner.db";
+static const char* SVR_DB_FILE_NAME = "oic_svr_db_d2ds.dat";
+static const char* PRVN_DB_FILE_NAME = "oic_pdm_d2ds.db";
#ifdef TEST
static const OicSecPrm_t SUPPORTED_PRMS[2] = { PRM_PRE_CONFIGURED, PRM_RANDOM_PIN };
}
}
+static const char* _wifi_error_to_string(wifi_manager_error_e err)
+{
+ switch (err) {
+ /* CHECK: List all enum values here */
+ CASE_TO_STR(WIFI_MANAGER_ERROR_NONE)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_INVALID_PARAMETER)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_OUT_OF_MEMORY)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_INVALID_OPERATION)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_OPERATION_FAILED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_NO_CONNECTION)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_NOW_IN_PROGRESS)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_ALREADY_EXISTS)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_OPERATION_ABORTED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_DHCP_FAILED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_INVALID_KEY)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_NO_REPLY)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_SECURITY_RESTRICTED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_ALREADY_INITIALIZED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_PERMISSION_DENIED)
+ CASE_TO_STR(WIFI_MANAGER_ERROR_NOT_SUPPORTED)
+ default :
+ return "WIFI_MANAGER_ERROR_UNKNOWN";
+ }
+}
static void _print_no_uuid(int idx, const OicUuid_t* uuid)
{
char uuid_string[256] = {0};
g_mutex_unlock(&owned_dev_mutex);
}
+static int _set_device_id_seed(void)
+{
+ int ret = WIFI_MANAGER_ERROR_NONE;
+ gchar *mac_addr = NULL;
+ const gchar *test_mac = "00:12:36:11:22:33";
+
+ wifi_manager_h wifi_handle = NULL;
+ bool wifi_activated = false;
+
+ /* Initialize Wi-Fi driver */
+ ret = wifi_manager_initialize(&wifi_handle);
+ if (WIFI_MANAGER_ERROR_NONE != ret)
+ D2DS_LOGE("Failed to get wifi manager handle ! [%d][%s]", ret, _wifi_error_to_string(ret));
+
+ wifi_manager_is_activated(wifi_handle, &wifi_activated);
+ if (false == wifi_activated) {
+ ret = wifi_manager_activate(wifi_handle, NULL, NULL);
+ if (WIFI_MANAGER_ERROR_NONE != ret)
+ D2DS_LOGE("Failed to activate wifi ! [%d][%s]", ret, _wifi_error_to_string(ret));
+ }
+
+ ret = wifi_manager_get_mac_address(wifi_handle, &mac_addr);
+ if (WIFI_MANAGER_ERROR_NONE != ret) {
+ D2DS_LOGE("Fail to get MAC address [%d][%s]", ret, _wifi_error_to_string(ret));
+ /* Make deviceID based on Fake MAC address */
+ ret = SetDeviceIdSeed(test_mac, WIFI_MAC_ADDR_LENGTH);
+ } else {
+ /* Make deviceID based on Wi-Fi MAC address */
+ ret = SetDeviceIdSeed((const guchar *)mac_addr, WIFI_MAC_ADDR_LENGTH);
+ g_free(mac_addr);
+ }
+ if (OC_STACK_OK != ret ) {
+ D2DS_LOGE( "SetDeviceIdSeed() error = [%d][%s]", ret, _error_to_string(ret));
+ }
+ wifi_manager_deinitialize(wifi_handle);
+ return ret;
+}
+
static int _init_provision_client(void)
{
- OCStackResult ret = OC_STACK_OK;
+ int ret = OC_STACK_OK;
char data_dir[MAX_FILE_PATH_LEN] = {0,};
- const uint8_t seed[6] = {0x00, 0x12, 0x34, 0x11, 0x22, 0x33};
snprintf(data_dir, MAX_FILE_PATH_LEN, "%s/network/%s",
tzplatform_getenv(TZ_SYS_GLOBALUSER_DATA), PRVN_DB_FILE_NAME);
return ret;
}
- /* Make deviceID based on Wi-Fi MAC address */
- ret = SetDeviceIdSeed(seed, 6);
- if (OC_STACK_OK != ret ) {
- D2DS_LOGE( "SetDeviceIdSeed() error = %d", ret);
- return ret;
- }
+ _set_device_id_seed();
/* initialize OC stack and provisioning manager */
ret = OCInit(NULL, 0, OC_CLIENT_SERVER);
if (OC_STACK_OK != ret ) {
- D2DS_LOGE( "OCInit() error = %d", ret);
+ D2DS_LOGE( "OCInit() error = [%d][%s]", ret, _error_to_string(ret));
return ret;
}
/* Do Self-Ownership Transfer */
ret = OCConfigSelfOwnership();
if (OC_STACK_OK != ret ) {
- D2DS_LOGE( "OCConfigSelfOwnership() error = %d", ret);
- return ret;
+ D2DS_LOGE( "OCConfigSelfOwnership() error = [%d][%s]", ret, _error_to_string(ret));
+ //return ret;
}
- if (access(data_dir, F_OK) != -1)
- D2DS_LOGI("Provisioning DB file already exists");
- else
- D2DS_LOGI("No provisioning DB file, creating new");
-
ret = OCInitPM(data_dir);
if (OC_STACK_OK != ret ) {
- D2DS_LOGE( "OCInitPM() error = %d", ret);
+ D2DS_LOGE( "OCInitPM() error = [%d][%s]", ret, _error_to_string(ret));
return ret;
}
--- /dev/null
+{\r
+ "acl": {\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": ["oic.wk.res"],\r
+ "if": ["oic.if.ll"]\r
+ },{\r
+ "href": "/oic/d",\r
+ "rel": "",\r
+ "rt": ["oic.wk.d"],\r
+ "if": ["oic.if.baseline", "oic.if.r"]\r
+ },{\r
+ "href": "/oic/p",\r
+ "rel": "",\r
+ "rt": ["oic.wk.p"],\r
+ "if": ["oic.if.baseline", "oic.if.r"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": ["oic.r.doxm"],\r
+ "if": ["oic.if.baseline"]\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": ["oic.r.pstat"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/pconf",\r
+ "rel": "",\r
+ "rt": ["oic.r.pconf"],\r
+ "if": ["oic.if.baseline"]\r
+ },\r
+ {\r
+ "href": "/oic/sec/dpairing",\r
+ "rel": "",\r
+ "rt": ["oic.r.dpairing"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "00000000-0000-0000-0000-000000000000"\r
+ },\r
+ "pstat": {\r
+ "isop": false,\r
+ "cm": 0,\r
+ "tm": 0,\r
+ "om": 3,\r
+ "sm": 3,\r
+ "deviceuuid": "00000000-0000-0000-0000-000000000000",\r
+ "rowneruuid": "00000000-0000-0000-0000-000000000000"\r
+ },\r
+ "doxm": {\r
+ "oxms": [0],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": false,\r
+ "deviceuuid": "00000000-0000-0000-0000-000000000000",\r
+ "devowneruuid": "",\r
+ "rowneruuid": "00000000-0000-0000-0000-000000000000"\r
+ }\r
+}\r