static ug_nfc_share_result_e ug_nfc_share_make_mime_type_data_from_file_path(const char *path, uint8_t *type_data, uint32_t *type_size)
{
	ug_nfc_share_result_e result = UG_NFC_SHARE_ERROR;
	char *extension = NULL;

	LOGD("[%s(): %d] BEGIN >>>>", __FUNCTION__, __LINE__);

	retv_if(path == NULL, result);
	retv_if(type_data == NULL, result);
	retv_if(type_size == NULL, result);

	LOGD("typedata = %p, typesize = %d", type_data, *type_size);

	memset(type_data, 0, *type_size);
	*type_size = 0;

	extension = strrchr(path, '.');
	LOGD("extension = %s\n", GET_SAFE_STRING(extension));

	if (extension != NULL)
	{
		char *mime_str = NULL;

		if (mime_type_get_mime_type(extension+1, &mime_str) == MIME_TYPE_ERROR_NONE)
		{
			LOGD("mime_str[%s]", mime_str);

			*type_size = strlen(mime_str);
			memcpy(type_data, mime_str, *type_size);
			result = UG_NFC_SHARE_OK;
		}
		else
		{
			LOGD("ERROR :: mime_type_get_mime_type failed");
			result = UG_NFC_SHARE_ERROR;
		}
	}

	LOGD("mime type : %s", GET_SAFE_STRING((char *)type_data));

	LOGD("[%s(): %d] END >>>>", __FUNCTION__, __LINE__);

	return result;
}
static int __bt_opp_client_start_sending(int request_id, char *address,
					char **file_name_array, int file_count)
{
	GHashTable *hash;
	GValue *value;
	GPtrArray *ptr_array;
	DBusGConnection *g_conn;
	DBusGProxy *client_proxy;
	DBusGProxyCall *proxy_call;
	char *agent_path;
	char *ext;
	char *mime_type = NULL;
	int i;
	int result = MIME_TYPE_ERROR_NONE;

	BT_CHECK_PARAMETER(address, return);
	BT_CHECK_PARAMETER(file_name_array, return);

	/* Get the session bus. */
	g_conn = _bt_get_session_gconn();
	retv_if(g_conn == NULL, BLUETOOTH_ERROR_INTERNAL);

	client_proxy =  dbus_g_proxy_new_for_name(g_conn, BT_OBEX_SERVICE_NAME,
					"/", BT_OBEX_CLIENT_INTERFACE);

	retv_if(client_proxy == NULL, BLUETOOTH_ERROR_INTERNAL);

	hash = g_hash_table_new_full(g_str_hash, g_str_equal,
				     NULL, (GDestroyNotify)__bt_value_free);

	value = g_new0(GValue, 1);
	g_value_init(value, G_TYPE_STRING);
	g_value_set_string(value, address);
	g_hash_table_insert(hash, "Destination", value);

	__bt_free_sending_info(sending_info);

	sending_info = g_malloc0(sizeof(bt_sending_info_t));
	sending_info->address = g_strdup(address);
	sending_info->request_id = request_id;

	__bt_opp_client_agent_deinit();
	__bt_opp_client_agent_init();

	agent_path = g_strdup(BT_OBEX_CLIENT_AGENT_PATH);

	ptr_array = g_ptr_array_new_with_free_func(__bluetooth_ptr_array_free);

	for (i = 0; i < file_count; i++) {
		ext = strchr(file_name_array[i], '.');
		if (ext != NULL) {
			result = mime_type_get_mime_type(ext + 1, &mime_type);
			if (result != MIME_TYPE_ERROR_NONE)
				BT_ERR("mime_type_get_mime_type failed %d", result);
		}

		__data_list_ptr_array_add(ptr_array, file_name_array[i],
								mime_type);

		if (mime_type) {
			free(mime_type);
			mime_type = NULL;
		}
	}

	proxy_call = dbus_g_proxy_begin_call(client_proxy, "SendFiles",
			__bt_send_files_cb, NULL, NULL,
			dbus_g_type_get_map("GHashTable", G_TYPE_STRING,
					    G_TYPE_VALUE), hash,
			dbus_g_type_get_collection("GPtrArray",
					DBUS_STRUCT_STRING_STRING), ptr_array,
			DBUS_TYPE_G_OBJECT_PATH, agent_path,
			G_TYPE_INVALID);

	g_free(agent_path);

	if (proxy_call == NULL) {
			BT_ERR("Fail to Send files");
			g_hash_table_destroy(hash);
			g_object_unref(client_proxy);
			__bt_free_sending_info(sending_info);
			__bt_opp_client_agent_deinit();
			sending_info = NULL;
			return BLUETOOTH_ERROR_INTERNAL;
	}

	sending_info->sending_proxy = proxy_call;
	g_hash_table_destroy(hash);

	if (ptr_array)
		g_ptr_array_free(ptr_array, TRUE);

	return BLUETOOTH_ERROR_NONE;
}