return TRUE;\r
}\r
\r
+static gboolean _d2ds_dbus_handle_get_ownerid(NetD2ds *object,\r
+ GDBusMethodInvocation *invocation,\r
+ gpointer user_data)\r
+{\r
+ gchar *uuid_str = NULL;\r
+ int ret = D2DS_ERROR_NONE;\r
+ d2ds_service *service = (d2ds_service *)user_data;\r
+\r
+ d2ds_check_null_ret_error("service", service, FALSE);\r
+\r
+ ret = d2ds_request_get_ownerid(service, &uuid_str);\r
+ if (D2DS_ERROR_NONE != ret)\r
+ D2DS_LOGE("Failed to d2ds_request_get_ownerid = %d", ret);\r
+\r
+ net_d2ds_complete_get_ownerid(object, invocation, uuid_str, ret);\r
+\r
+ if (uuid_str)\r
+ g_free(uuid_str);\r
+\r
+ return TRUE;\r
+}\r
+\r
static void _d2ds_dbus_on_bus_acquired(GDBusConnection *conn, const gchar *name,\r
gpointer user_data)\r
{\r
G_CALLBACK(_d2ds_dbus_handle_prov_acl), service);\r
g_signal_connect(d2ds_dbus_object, "handle-prov-cred",\r
G_CALLBACK(_d2ds_dbus_handle_prov_cred), service);\r
+ g_signal_connect(d2ds_dbus_object, "handle-get-ownerid",\r
+ G_CALLBACK(_d2ds_dbus_handle_get_ownerid), service);\r
\r
ret = g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(d2ds_dbus_object),\r
conn, D2DS_DBUS_OBJPATH, &error);\r
#include "ocprovisioningmanager.h"
#include "oxmjustworks.h"
#include "oxmrandompin.h"
+//#include "srmutility.h"
#include "securevirtualresourcetypes.h"
#include "security/srmutility.h"
#include "pmtypes.h"
#define ACL_RESRC_ARRAY_SIZE 3
#define DISCOVERY_TIMEOUT 3 /* 3 sec */
-#define CALLBACK_TIMEOUT_S 5 /* 5 sec */
+#define CALLBACK_TIMEOUT_S 10 /* 10 sec */
#define CALLBACK_TIMEOUT_MS 10 * 50 /* 5sec = 100ms * 50 */
/* '_' for separaing from the same constant variable in srmresourcestrings.c */
D2DS_LOGI("%s", uuid_string);
}
-
#ifdef TEST
static OCProvisionDev_t* _get_dev_by_id(const OCProvisionDev_t* dev_lst, const int dev_num)
{
{
OCStackResult 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;
+ }
+
/* initialize OC stack and provisioning manager */
ret = OCInit(NULL, 0, OC_CLIENT_SERVER);
if (OC_STACK_OK != ret ) {
return ret;
}
+ /* Do Self-Ownership Transfer */
+ ret = OCConfigSelfOwnership();
+ if (OC_STACK_OK != ret ) {
+ D2DS_LOGE( "OCConfigSelfOwnership() error = %d", ret);
+ return ret;
+ }
+
if (access(data_dir, F_OK) != -1)
D2DS_LOGI("Provisioning DB file already exists");
else
static void _mot_cb(void* ctx, int nOfRes, OCProvisionResult_t* arr, bool has_error)
{
- int ret = D2DS_ERROR_NONE;
d2ds_subowner_s *client = (d2ds_subowner_s *)ctx;
if (!has_error) {
#endif
ret = OCDoMultipleOwnershipTransfer(g_client, con->target, _mot_cb);
if (OC_STACK_OK != ret ) {
- D2DS_LOGE( "OCDoMultipleOwnershipTransfer: ret = %d", ret);
+ D2DS_LOGE( "OCDoMultipleOwnershipTransfer: ret = %d (%s)", ret, _error_to_string(ret));
goto MOT_ENDED;
}
ret = _wait_cb_ret(CALLBACK_TIMEOUT_MS);
if(ret) {
- D2DS_LOGE( "OCProvisionCredentials callback error = %d", ret);
+ D2DS_LOGE( "OCProvisionCredentials callback error = %d (%s)", ret, _error_to_string(ret));
goto MOT_ENDED;
}
return NULL;
}
+ D2DS_LOGE("KSR");
+ _print_uuid(target);
+ _print_uuid(subject);
+
acl = (OicSecAcl_t*) OICCalloc(1, sizeof(OicSecAcl_t));
if (!acl) {
D2DS_LOGE( "acl : OICCalloc failed =%d", errno);
ret= OCProvisionACL((void*) g_client, con->subject, acl, _provisioning_acl_cb);
if (OC_STACK_OK != ret) {
- D2DS_LOGD( "OCProvisionACL API error: %d", ret);
+ D2DS_LOGD( "OCProvisionACL API error: %d (%s)", ret, _error_to_string(ret));
goto PVACL_ERROR;
}
- ret = _wait_cb_ret(CALLBACK_TIMEOUT_MS * 2);
+ ret = _wait_cb_ret(CALLBACK_TIMEOUT_S);
if (ret) {
D2DS_LOGE( "OCProvisionCredentials Faild = %d", errno);
goto PVACL_ERROR;
g_client->g_doneCB = false;
D2DS_LOGI("Provisioning Selected Pairwise Devices..");
- OCStackResult rst = OCProvisionCredentials((void*) g_client,
- SYMMETRIC_PAIR_WISE_KEY, OWNER_PSK_LENGTH_128,
- con->dev1, con->dev2, _provision_cred_cb);
- if (OC_STACK_OK != rst) {
- D2DS_LOGD( "OCProvisionPairwiseDevices API error: %d", rst);
+ ret = OCProvisionCredentials((void*) g_client,
+ SYMMETRIC_PAIR_WISE_KEY, OWNER_PSK_LENGTH_128,
+ con->dev1, con->dev2, _provision_cred_cb);
+ if (OC_STACK_OK != ret) {
+ D2DS_LOGD( "OCProvisionPairwiseDevices API error: %d (%s)", ret, _error_to_string(ret));
goto PVPWS_ERROR;
}
- ret = _wait_cb_ret(CALLBACK_TIMEOUT_MS);
+ ret = _wait_cb_ret(CALLBACK_TIMEOUT_S);
if (ret) {
D2DS_LOGE( "OCProvisionCredentials Faild = %d", errno);
goto PVPWS_ERROR;
return ret;
}
+int d2ds_request_get_ownerid(d2ds_service *service, gchar **uuid_str)
+{
+ int ret =D2DS_ERROR_NONE;
+ OicUuid_t uuid;
+
+ d2ds_check_null_ret_error("service", service, FALSE);
+
+ D2DS_LOGD("[IPC] Get Device ID");
+
+ ret = GetDoxmDevOwnerId(&uuid);
+ if (OC_STACK_OK != ret)
+ D2DS_LOGE("GetDoxmDevOwnerId faild = [%d][%s]", ret, _error_to_string(ret));
+
+ ret = ConvertUuidToStr(&uuid, uuid_str);
+ if (OC_STACK_OK != ret)
+ D2DS_LOGE("ConvertUuidToStr faild = [%d][%s]", ret, _error_to_string(ret));
+
+ return ret;
+}
+
int d2ds_request_disable(d2ds_service *service)
{
NOTUSED(service);
D2DS_LOGE( "OCStack stop error");
}
- OCDeleteDiscoveredDevices(g_client->g_mowned_list);
- OCDeleteDiscoveredDevices(g_client->g_motdev_list);
+ OCTerminatePM();
+
+ if (!g_client)
+ return D2DS_ERROR_NONE;
+
+ if (g_client->g_mowned_list)
+ OCDeleteDiscoveredDevices(g_client->g_mowned_list);
+ if (g_client->g_motdev_list)
+ OCDeleteDiscoveredDevices(g_client->g_motdev_list);
if (g_client->rnd_pin) {
g_free(g_client->rnd_pin);
g_client->rnd_pin = NULL;
}
+
g_free(g_client);
g_client = NULL;
- OCTerminatePM();
-
return D2DS_ERROR_NONE;
}