Browse Source

Merge pull request #11587 from neheb/io

iotivity: remove
lilik-openwrt-22.03
Rosen Penev 5 years ago
committed by GitHub
parent
commit
dd37d47bdd
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 0 additions and 1771 deletions
  1. +0
    -313
      net/iotivity/Makefile
  2. +0
    -2
      net/iotivity/files/etc/iotivity/ReadMe.txt
  3. BIN
      net/iotivity/files/etc/iotivity/oic_svr_db.cbor
  4. +0
    -101
      net/iotivity/files/etc/iotivity/oic_svr_db.json
  5. +0
    -141
      net/iotivity/patches/001-no_unit_test.patch
  6. +0
    -29
      net/iotivity/patches/002-do-not-chck-for-boost.patch
  7. +0
    -44
      net/iotivity/patches/020-linux-Add-more-architectures.patch
  8. +0
    -39
      net/iotivity/patches/021-build-do-not-set-TARGET_ARCH-to-default.patch
  9. +0
    -57
      net/iotivity/patches/022-build-restrict-compiler-options-to-supported-archite.patch
  10. +0
    -126
      net/iotivity/patches/023-build-take-compiler-options-from-environment.patch
  11. +0
    -55
      net/iotivity/patches/030-remove-check-for-curl.patch
  12. +0
    -27
      net/iotivity/patches/040-linux-Use-system-sqlite3.patch
  13. +0
    -54
      net/iotivity/patches/050-csdk-move-OCEntityHandlerResponse-from-stack-to-heap.patch
  14. +0
    -357
      net/iotivity/patches/051-csdk-move-OCClientResponse-from-stack-to-heap.patch
  15. +0
    -103
      net/iotivity/patches/053-src-move-OCClientResponse-from-stack-to-heap.patch
  16. +0
    -27
      net/iotivity/patches/070-ssl-fix-compilation-against-non-debug-mbedtls.patch
  17. +0
    -35
      net/iotivity/patches/071-ssl-call-mbedtls_version_get_string-only-if-availabl.patch
  18. +0
    -30
      net/iotivity/patches/072-ssl-call-mbedtls_ssl_conf_renegotiation-only-if-avai.patch
  19. +0
    -44
      net/iotivity/patches/075-ssl-enable-usage-of-patched-mbed-functions-condition.patch
  20. +0
    -22
      net/iotivity/patches/078-use-system-mbedtls.patch
  21. +0
    -31
      net/iotivity/patches/080-zigbee_wrapper-do-not-check-for-floating-point.patch
  22. +0
    -32
      net/iotivity/patches/140-remove-glib2.patch
  23. +0
    -44
      net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch
  24. +0
    -58
      net/iotivity/patches/300-resource-Include-functional-header-for-g-7.1.0.patch

+ 0
- 313
net/iotivity/Makefile View File

@ -1,313 +0,0 @@
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=iotivity
PKG_VERSION:=1.2.1
PKG_RELEASE:=2
PKG_SOURCE:=${PKG_NAME}-${PKG_VERSION}.tar.gz
PKG_SOURCE_URL:=http://mirrors.kernel.org/${PKG_NAME}/${PKG_VERSION}/
PKG_HASH:=7dcd9f0f48263c6b27a2c3d085dd7278b5c0feed1dfec8872a04899707fa23d8
PKG_USE_MIPS16:=0
PKG_BUILD_DEPENDS:=boost python/host scons/host
PKG_MAINTAINER:=Hauke Mehrtens <hauke.mehrtens@intel.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE.md
PKG_CONFIG_DEPENDS := \
CONFIG_PACKAGE_iotivity \
CONFIG_PACKAGE_iotivity-cpp \
CONFIG_PACKAGE_iotivity-resource-directory-lib \
CONFIG_PACKAGE_iotivity-oic-middle \
CONFIG_PACKAGE_iotivity-resource-container-lib \
CONFIG_PACKAGE_iotivity-resource-container-sample \
CONFIG_PACKAGE_iotivity-resource-container-hue \
CONFIG_PACKAGE_iotivity-example-garage \
CONFIG_PACKAGE_iotivity-example-simple \
CONFIG_PACKAGE_iotivity_DEBUG \
CONFIG_PACKAGE_iotivity_SECURE
include $(INCLUDE_DIR)/package.mk
include ../../devel/scons/scons.mk
define Package/iotivity
SECTION:=net
CATEGORY:=Network
DEPENDS:=@!USE_UCLIBC +libpthread +librt +libuuid +libsqlite3 +PACKAGE_iotivity_SECURE:libmbedtls
TITLE:=IoTivity C Library
URL:=https://www.iotivity.org
MENU:=1
endef
define Package/iotivity/description
IoTivity is a framework for the Internet of Things based on the
Open Interconnect Consortium Specification.
endef
define Package/iotivity/config
if PACKAGE_iotivity
config PACKAGE_iotivity_DEBUG
bool "IoTivity with debug support"
help
Build IoTivity with debuging support.
config PACKAGE_iotivity_SECURE
bool "IoTivity with security support"
help
Activate security support.
config PACKAGE_iotivity_LOGGING
bool "IoTivity with logging support"
default y
help
Activate logging support.
This will make IoTivity write a lot of log messages to stdout.
endif
endef
define Package/iotivity-cpp
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +libpthread +libstdcpp
TITLE:=IoTivity C++ Library
URL:=https://www.iotivity.org
endef
define Package/iotivity-cpp/description
IoTivity is a framework for the Internet of Things based on the
Open Interconnect Consortium Specification.
endef
define Package/iotivity-resource-directory-lib
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-cpp
TITLE:=IoTivity Resource Directory library
URL:=https://www.iotivity.org
endef
define Package/iotivity-oic-middle
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-cpp +iotivity-resource-directory-lib
TITLE:=IoTivity OIC Middle
URL:=https://www.iotivity.org
endef
define Package/iotivity-oic-middle/description
IoTivity OIC Middle
endef
define Package/iotivity-resource-container-lib
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-cpp +boost +boost-system +boost-thread +boost-date_time
TITLE:=IoTivity Resource Container library
URL:=https://www.iotivity.org
endef
define Package/iotivity-resource-container-sample
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-resource-container-lib
TITLE:=IoTivity Resource Container sample Application
URL:=https://www.iotivity.org
endef
define Package/iotivity-resource-container-hue
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-resource-container-lib +libcurl
TITLE:=IoTivity Resource Container Hue Bundle
URL:=https://www.iotivity.org
endef
define Package/iotivity-example-garage
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-cpp +iotivity-resource-directory-lib
TITLE:=IoTivity Garage example
URL:=https://www.iotivity.org
endef
define Package/iotivity-example-garage/description
An IoTivity example application
endef
define Package/iotivity-example-simple
SECTION:=net
CATEGORY:=Network
DEPENDS:=+iotivity +iotivity-cpp +iotivity-resource-directory-lib
TITLE:=IoTivity simple client + server
URL:=https://www.iotivity.org
endef
define Package/iotivity-example-simple/description
The IoTivity simple client and simple server exmaple
endef
PKG_TINYCBOR_NAME:=tinycbor
PKG_TINYCBOR_PROTO:=git
PKG_TINYCBOR_VERSION:=0.4
PKG_TINYCBOR_SOURCE_VERSION:=a088996aa5f59b4f27f20fadad053d88bee357d4
PKG_TINYCBOR_MIRROR_HASH:=77c600bd7362df8291148fa3d94ca780815ea2b74b817dca7565310ea0abff96
PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
define Download/iotivity-tinycbor
FILE:=$(PKG_TINYCBOR_SOURCE)
URL:=$(PKG_TINYCBOR_SOURCE_URL)
MIRROR_HASH:=$(PKG_TINYCBOR_MIRROR_HASH)
PROTO:=$(PKG_TINYCBOR_PROTO)
VERSION:=$(PKG_TINYCBOR_SOURCE_VERSION)
SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
endef
$(eval $(call Download,iotivity-tinycbor))
EXTRA_CXXFLAGS += -std=gnu++11
SCONS_OPTIONS += \
TARGET_OS=linux \
TARGET_TRANSPORT=IP \
TARGET_ARCH=$(ARCH) \
STAGING_DIR=$(STAGING_DIR) \
WITH_ENV=true \
octbstack oc \
$(if $(CONFIG_PACKAGE_iotivity-oic-middle),examples) \
$(if $(CONFIG_PACKAGE_iotivity-resource-container-lib),libResContainer) \
$(if $(CONFIG_PACKAGE_iotivity-resource-container-sample),containersample) \
$(if $(CONFIG_PACKAGE_iotivity-resource-container-hue),libHueBundle) \
$(if $(CONFIG_PACKAGE_iotivity-example-garage),examples) \
$(if $(CONFIG_PACKAGE_iotivity-example-simple),examples) \
install
ifeq ($(CONFIG_PACKAGE_iotivity_DEBUG),y)
SCONS_OPTIONS += RELEASE=false
APP_OPTIM:=debug
else
SCONS_OPTIONS += RELEASE=true
APP_OPTIM:=release
endif
ifeq ($(CONFIG_PACKAGE_iotivity_SECURE),y)
SCONS_OPTIONS += SECURED=1
else
SCONS_OPTIONS += SECURED=0
endif
ifeq ($(CONFIG_PACKAGE_iotivity_LOGGING),y)
SCONS_OPTIONS += LOGGING=true
endif
ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
SCONS_OPTIONS += VERBOSE=true
endif
define Build/Prepare
$(call Build/Prepare/Default)
$(TAR) -C $(PKG_BUILD_DIR)/extlibs/tinycbor/ -xjf $(DL_DIR)/$(PKG_TINYCBOR_SOURCE)
endef
define Build/Configure
(cd $(PKG_BUILD_DIR); \
$(SCONS_VARS) \
python2.7 $(STAGING_DIR_HOSTPKG)/bin/scons \
$(SCONS_OPTIONS) \
)
endef
define Package/iotivity/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/libconnectivity_abstraction.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/liboctbstack.so $(1)/usr/lib/
ifeq ($(CONFIG_PACKAGE_iotivity_SECURE),y)
$(INSTALL_DIR) $(1)/etc/iotivity/
$(INSTALL_DATA) ./files/etc/iotivity/oic_svr_db.cbor $(1)/etc/iotivity/
endif
endef
define Package/iotivity-cpp/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/liboc.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/liboc_logger.so $(1)/usr/lib/
endef
define Package/iotivity-resource-directory-lib/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/libresource_directory.so $(1)/usr/lib/
endef
define Package/iotivity-oic-middle/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/examples/OICMiddle/OICMiddle $(1)/usr/bin/
endef
define Package/iotivity-resource-container-lib/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/librcs_common.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/librcs_client.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/librcs_server.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/librcs_container.so $(1)/usr/lib/
endef
define Package/iotivity-resource-container-sample/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/service/resource-container/ContainerSample $(1)/usr/bin/
endef
define Package/iotivity-resource-container-hue/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/libHueBundle.so $(1)/usr/lib/
endef
define Package/iotivity-example-garage/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/resource/examples/garageclient $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/resource/examples/garageserver $(1)/usr/bin/
endef
define Package/iotivity-example-simple/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/resource/examples/simpleclient $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/resource/examples/simpleserver $(1)/usr/bin/
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/include $(1)/usr/include/iotivity
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/libconnectivity_abstraction.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/liboctbstack.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/liboc.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/liboc_logger.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/$(APP_OPTIM)/libresource_directory.so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,iotivity))
$(eval $(call BuildPackage,iotivity-cpp))
$(eval $(call BuildPackage,iotivity-resource-directory-lib))
$(eval $(call BuildPackage,iotivity-oic-middle))
$(eval $(call BuildPackage,iotivity-resource-container-lib))
$(eval $(call BuildPackage,iotivity-resource-container-sample))
$(eval $(call BuildPackage,iotivity-resource-container-hue))
$(eval $(call BuildPackage,iotivity-example-garage))
$(eval $(call BuildPackage,iotivity-example-simple))

+ 0
- 2
net/iotivity/files/etc/iotivity/ReadMe.txt View File

@ -1,2 +0,0 @@
The file oic_svr_db.cbor in generated from the oic_svr_db.json with the
resource/csdk/security/tool/json2cbor.c tool.

BIN
net/iotivity/files/etc/iotivity/oic_svr_db.cbor View File


+ 0
- 101
net/iotivity/files/etc/iotivity/oic_svr_db.json View File

@ -1,101 +0,0 @@
{
"acl": {
"aclist": {
"aces": [
{
"subjectuuid": "*",
"resources": [
{
"href": "/oic/res",
"rel": "",
"rt": ["oic.wk.res"],
"if": ["oic.if.ll"]
},
{
"href": "/oic/d",
"rel": "",
"rt": ["oic.wk.d"],
"if": ["oic.if.baseline", "oic.if.r"]
},
{
"href": "/oic/p",
"rel": "",
"rt": ["oic.wk.p"],
"if": ["oic.if.baseline", "oic.if.r"]
},
{
"href": "/oic/sec/acl",
"rel": "",
"rt": ["oic.r.acl"],
"if": ["oic.if.baseline"]
}
],
"permission": 2
},
{
"subjectuuid": "*",
"resources": [
{
"href": "/oic/sec/doxm",
"rel": "",
"rt": ["oic.r.doxm"],
"if": ["oic.if.baseline"]
},
{
"href": "/oic/sec/pstat",
"rel": "",
"rt": ["oic.r.pstat"],
"if": ["oic.if.baseline"]
}
],
"permission": 2
},
{
"subjectuuid": "*",
"resources": [
{
"href": "*",
"rel": "",
"rt": ["oic.core"],
"if": ["oic.if.baseline"]
}
],
"permission": 7
}
]
},
"rowneruuid" : "31313131-3131-3131-3131-313131313131"
},
"pstat": {
"isop": true,
"deviceuuid": "31313131-3131-3131-3131-313131313131",
"rowneruuid": "31313131-3131-3131-3131-313131313131",
"cm": 0,
"tm": 0,
"om": 4,
"sm": 4
},
"doxm": {
"oxms": [0],
"oxmsel": 0,
"sct": 1,
"owned": true,
"deviceuuid": "31313131-3131-3131-3131-313131313131",
"devowneruuid": "32323232-3232-3232-3232-323232323232",
"rowneruuid": "31313131-3131-3131-3131-313131313131"
},
"cred": {
"creds": [
{
"credid": 1,
"subjectuuid": "32323232-3232-3232-3232-323232323232",
"credtype": 1,
"privatedata": {
"data": "AAAAAAAAAAAAAAAA",
"encoding": "oic.sec.encoding.raw"
}
}
],
"rowneruuid": "31313131-3131-3131-3131-313131313131"
}
}

+ 0
- 141
net/iotivity/patches/001-no_unit_test.patch View File

@ -1,141 +0,0 @@
--- a/plugins/SConscript
+++ b/plugins/SConscript
@@ -35,7 +35,7 @@ if target_os not in ['android', 'arduino
SConscript(os.path.join('src', 'SConscript'))
- SConscript(os.path.join('unittests', 'SConscript'))
+# SConscript(os.path.join('unittests', 'SConscript'))
if build_sample == 'ON':
if target_os in ['linux']:
--- a/resource/SConscript
+++ b/resource/SConscript
@@ -78,7 +78,7 @@ if target_os in ['linux', 'windows']:
SConscript('csdk/stack/samples/linux/secure/SConscript')
# Build C/C++ unit tests
- SConscript('unit_tests.scons')
+ # SConscript('unit_tests.scons')
elif target_os == 'darwin':
env.Command('../../out/darwin/iotivity-csdk.framework',None,src_dir + '/tools/darwin/mkfwk_osx.sh')
--- a/resource/csdk/resource-directory/SConscript
+++ b/resource/csdk/resource-directory/SConscript
@@ -114,8 +114,3 @@ if 'SERVER' in rd_mode:
if target_os in ['linux']:
SConscript('samples/SConscript')
-######################################################################
-# Build UnitTests of the Resource Directory
-################################################ ######################
-if target_os in ['linux']:
- SConscript('unittests/SConscript')
--- a/service/coap-http-proxy/SConscript
+++ b/service/coap-http-proxy/SConscript
@@ -84,6 +84,3 @@ local_env.UserInstallTargetHeader('inclu
######################################################################
if target_os in ['linux', 'tizen']:
SConscript('samples/SConscript')
-
-if target_os in ['linux']:
- SConscript('unittests/SConscript')
--- a/service/easy-setup/enrollee/SConscript
+++ b/service/easy-setup/enrollee/SConscript
@@ -123,7 +123,3 @@ if target_os == 'arduino':
if target_os in ['linux']:
SConscript('../sampleapp/enrollee/linux/SConscript')
- #Build UnitTestcases for Enrollee
- if enrollee_env.get('SECURED') == '0':
- SConscript('../enrollee/unittests/SConscript')
-
--- a/service/easy-setup/mediator/richsdk/SConscript
+++ b/service/easy-setup/mediator/richsdk/SConscript
@@ -163,11 +163,3 @@ if target_os in ['linux']:
if target_os in ['android']:
SConscript('../../sampleapp/mediator/android/SConscript')
-
-######################################################################
-#Build UnitTestcases for Mediator[RichSDK]
-################################################ ######################
-if env.get('SECURED') == '0':
- if target_os == 'linux':
- SConscript('unittests/SConscript')
-
--- a/service/resource-container/SConscript
+++ b/service/resource-container/SConscript
@@ -223,12 +223,6 @@ else:
lib_env = conf2.Finish()
######################################################################
-# build resource container unit tests
-######################################################################
-if target_os in ['linux']:
- SConscript('unittests/SConscript')
-
-######################################################################
# Build Container Sample
######################################################################
if target_os not in ['ios']:
--- a/service/resource-encapsulation/SConscript
+++ b/service/resource-encapsulation/SConscript
@@ -121,14 +121,5 @@ resourceClient_env.UserInstallTargetHead
######################################################################
SConscript('examples/SConscript')
-######################################################################
-# Build UnitTests Resource Client , resourceCache and resourceBroker and
-# DiscoveryManager
-################################################ ######################
-if target_os in ['linux']:
- SConscript('unittests/SConscript')
- SConscript('src/resourceCache/unittests/SConscript')
- SConscript('src/resourceBroker/unittest/SConscript')
-
if target_os == 'android':
SConscript('android/SConscript')
--- a/service/resource-encapsulation/src/common/SConscript
+++ b/service/resource-encapsulation/src/common/SConscript
@@ -22,10 +22,10 @@
# rcs_common (primitiveResource and expiryTimer) build script
##
import os
+Import('env')
# SConscript file for Local PKI google tests
-gtest_env = SConscript('#extlibs/gtest/SConscript')
-lib_env = gtest_env.Clone()
+lib_env = env.Clone()
# Add third party libraries
SConscript('#service/third_party_libs.scons', exports = 'lib_env')
--- a/service/resource-encapsulation/src/serverBuilder/SConscript
+++ b/service/resource-encapsulation/src/serverBuilder/SConscript
@@ -21,9 +21,11 @@
##
# rcs_server (Server Builder) project build script
##
+import os
+Import('env')
+
# SConscript file for Local PKI google tests
-gtest_env = SConscript('#extlibs/gtest/SConscript')
-lib_env = gtest_env.Clone()
+lib_env = env.Clone()
# Add third party libraries
SConscript('#service/third_party_libs.scons', exports = 'lib_env')
--- a/service/scene-manager/SConscript
+++ b/service/scene-manager/SConscript
@@ -100,9 +100,5 @@ scenemanager_env.UserInstallTargetHeader
scenemanager_env.UserInstallTargetHeader('include/RemoteScene.h', 'service/scene-manager', 'RemoteScene.h')
scenemanager_env.UserInstallTargetHeader('include/RemoteSceneAction.h', 'service/scene-manager', 'RemoteSceneAction.h')
-# Go to build Unit test
-if target_os in ['linux']:
- SConscript('unittests/SConscript')
-
# Go to build sample apps
SConscript('sampleapp/SConscript')

+ 0
- 29
net/iotivity/patches/002-do-not-chck-for-boost.patch View File

@ -1,29 +0,0 @@
From 51e26e002aa043435f94ac0f071066090d5c2de8 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Mon, 22 Jun 2015 20:23:36 +0200
Subject: [PATCH 5/5] do not chck for boost
Boost is not needed for every package just for some.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
service/third_party_libs.scons | 8 --------
1 file changed, 8 deletions(-)
--- a/service/third_party_libs.scons
+++ b/service/third_party_libs.scons
@@ -49,14 +49,6 @@ if target_os in ['linux']:
conf = Configure(lib_env)
- if target_os not in ['tizen'] and not conf.CheckLib('boost_thread', language='C++'):
- print 'Did not find boost_thread, exiting!'
- Exit(1)
-
- if target_os not in ['tizen'] and not conf.CheckLib('boost_system', language='C++'):
- print 'Did not find boost_system, exiting!'
- Exit(1)
-
lib_env = conf.Finish()
######################################################################

+ 0
- 44
net/iotivity/patches/020-linux-Add-more-architectures.patch View File

@ -1,44 +0,0 @@
From dabd6597013e1df72b08621b466d136b8d25d110 Mon Sep 17 00:00:00 2001
From: Philippe Coval <philippe.coval@osg.samsung.com>
Date: Thu, 29 Sep 2016 10:57:59 +0200
Subject: [PATCH 20/23] linux: Add more architectures
This does not scale and this check should be removed.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Author: Hauke Mehrtens <hauke@hauke-m.de>
Change-Id: Ibb271701904745ee4f5dd689c197228239c37262
Origin: https://github.com/openwrt/packages/blob/master/net/iotivity/patches/021-add-some-more-architectures.patch
Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/14575
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Nivedita Singhvi <niveditasinghvi@gmail.com>
Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
Reviewed-by: Hauke Mehrtens <hauke.mehrtens@intel.com>
---
build_common/SConscript | 2 +-
resource/csdk/connectivity/build/SConscript | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/build_common/SConscript
+++ b/build_common/SConscript
@@ -18,7 +18,7 @@ host_target_map = {
# Map of os and allowed archs (os: allowed archs)
os_arch_map = {
- 'linux': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'],
+ 'linux': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64', 'mips', 'mipsel', 'mips64', 'mips64el', 'i386', 'powerpc', 'sparc', 'aarch64'],
'tizen': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'],
'android': ['x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a'],
'windows': ['x86', 'amd64', 'arm'],
--- a/resource/csdk/connectivity/build/SConscript
+++ b/resource/csdk/connectivity/build/SConscript
@@ -14,7 +14,7 @@ host_target_map = {
# Map of os and allowed archs (os: allowed archs)
os_arch_map = {
- 'linux': ['x86', 'x86_64', 'arm', 'arm64'],
+ 'linux': ['x86', 'x86_64', 'arm', 'arm64', 'mips', 'mipsel', 'mips64', 'mips64el', 'i386', 'powerpc', 'sparc', 'aarch64'],
'tizen': ['x86', 'x86_64', 'arm', 'arm64'],
'android': ['x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a'],
'windows': ['x86', 'amd64', 'arm'],

+ 0
- 39
net/iotivity/patches/021-build-do-not-set-TARGET_ARCH-to-default.patch View File

@ -1,39 +0,0 @@
From 792f68219b3ab4ff5238e3abc7aa1c68bfa4a22b Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 10 Dec 2016 18:15:32 +0100
Subject: [PATCH 21/23] build: do not set TARGET_ARCH to default
This check is useless, scons already checks this and returns such an
error message:
Invalid value for option TARGET_ARCH: mips. Valid values are: ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64']
Change-Id: I3f7dd3b9fcae875ab20349203fb77537f24be763
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
build_common/SConscript | 3 ---
resource/csdk/connectivity/build/SConscript | 2 --
2 files changed, 5 deletions(-)
--- a/build_common/SConscript
+++ b/build_common/SConscript
@@ -54,9 +54,6 @@ if target_os == 'android':
else:
default_arch = platform.machine()
-if default_arch not in os_arch_map[target_os]:
- default_arch = os_arch_map[target_os][0].lower()
-
target_arch = ARGUMENTS.get('TARGET_ARCH', default_arch) # target arch
# True if binary needs to be installed on board. (Might need root permissions)
--- a/resource/csdk/connectivity/build/SConscript
+++ b/resource/csdk/connectivity/build/SConscript
@@ -40,8 +40,6 @@ if target_os not in host_target_map[host
Exit(1)
default_arch = platform.machine()
-if default_arch not in os_arch_map[target_os]:
- default_arch = os_arch_map[target_os][0].lower()
target_arch = ARGUMENTS.get('TARGET_ARCH', default_arch) # target arch

+ 0
- 57
net/iotivity/patches/022-build-restrict-compiler-options-to-supported-archite.patch View File

@ -1,57 +0,0 @@
From 39b0c436c77555849da1e68cc8733c67183c291f Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 10 Dec 2016 18:35:04 +0100
Subject: [PATCH 22/23] build: restrict compiler options to supported
architectures
For Linux we currently only support the following architectures:
'x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'
explicitly check for those architectures and also remove ARM hard float.
Change-Id: I7078530bc2a89b88c7049cc53e8bb3fbe5d75ca8
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
build_common/linux/SConscript | 11 +++--------
resource/csdk/connectivity/build/linux/SConscript | 11 +++--------
2 files changed, 6 insertions(+), 16 deletions(-)
--- a/build_common/linux/SConscript
+++ b/build_common/linux/SConscript
@@ -30,14 +30,9 @@ if target_arch in ['x86']:
elif target_arch in ['x86_64']:
env.AppendUnique(CCFLAGS = ['-m64'])
env.AppendUnique(LINKFLAGS = ['-m64'])
-elif target_arch in ['arm'] or target_arch.find('v5') > 0:
+elif target_arch in ['arm']:
env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
-elif target_arch.find('v7a-hard') > 0:
+elif target_arch in ['arm-v7a', 'armeabi-v7a']:
env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
- env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
- env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
- env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
-elif target_arch.find('v7a') > 0:
- env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
-elif target_arch.find('arm64') >= 0:
+elif target_arch.find('arm64') > 0:
env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
--- a/resource/csdk/connectivity/build/linux/SConscript
+++ b/resource/csdk/connectivity/build/linux/SConscript
@@ -29,14 +29,9 @@ if target_arch in ['x86']:
elif target_arch in ['x86_64']:
env.AppendUnique(CCFLAGS = ['-m64'])
env.AppendUnique(LINKFLAGS = ['-m64'])
-elif target_arch.find('v7a-hard') > 0:
- env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
- env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
- env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
- env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
-elif target_arch.find('v7a') > 0:
+elif target_arch in ['arm']:
+ env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+elif target_arch in ['arm-v7a', 'armeabi-v7a']:
env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
elif target_arch.find('arm64') > 0:
env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
-else:
- env.AppendUnique(CPPFLAGS = ['-march=armv5te'])

+ 0
- 126
net/iotivity/patches/023-build-take-compiler-options-from-environment.patch View File

@ -1,126 +0,0 @@
From 5f9513eb341d520d10c48f8ba2bd145063405fdd Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 10 Dec 2016 18:08:05 +0100
Subject: [PATCH 23/23] build: take compiler options from environment
This makes it possible to compile IoTivity with custom compiler
options. This way someone can use optimized compiler settings for the
target CPU. I want to use this in OpenWrt / LEDE to build specific
IoTivity binaries for each CPU architecture, there the build system
provides the matching compiler options.
Change-Id: I86772f73b81c41d7e96e51b434fd9e3b4992753a
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
build_common/SConscript | 25 +++++++++++++++++++++
build_common/linux/SConscript | 27 ++++++++++++-----------
resource/csdk/connectivity/build/linux/SConscript | 27 ++++++++++++-----------
3 files changed, 53 insertions(+), 26 deletions(-)
--- a/build_common/SConscript
+++ b/build_common/SConscript
@@ -120,6 +120,7 @@ help_vars.Add(PathVariable('ANDROID_NDK'
help_vars.Add(PathVariable('ANDROID_HOME', 'Android SDK path', None, PathVariable.PathAccept))
help_vars.Add(PathVariable('ANDROID_GRADLE', 'Gradle binary file', None, PathVariable.PathIsFile))
help_vars.Add(EnumVariable('WITH_UPSTREAM_LIBCOAP', 'Use latest stable version of LibCoAP downloaded from github', default_with_upstream_libcoap, allowed_values=('0','1')))
+help_vars.Add(BoolVariable('WITH_ENV', 'Use compiler options from environment', False))
AddOption('--prefix',
dest='prefix',
@@ -153,6 +154,30 @@ else:
)
Help(help_vars.GenerateHelpText(env))
+if env.get('WITH_ENV'):
+ env['ENV'] = os.environ
+ if 'CC' in os.environ:
+ env['CC'] = Split(os.environ['CC'])
+ print "using CC from environment: %s" % env['CC']
+ if 'CXX' in os.environ:
+ env['CXX'] = Split(os.environ['CXX'])
+ print "using CXX from environment: %s" % env['CXX']
+ if 'CFLAGS' in os.environ:
+ env['CFLAGS'] = Split(os.environ['CFLAGS'])
+ print "using CFLAGS from environment: %s" % env['CFLAGS']
+ if 'CXXFLAGS' in os.environ:
+ env['CXXFLAGS'] = Split(os.environ['CXXFLAGS'])
+ print "using CXXFLAGS from environment: %s" % env['CXXFLAGS']
+ if 'CCFLAGS' in os.environ:
+ env['CCFLAGS'] = Split(os.environ['CCFLAGS'])
+ print "using CCFLAGS from environment: %s" % env['CCFLAGS']
+ if 'CPPFLAGS' in os.environ:
+ env['CPPFLAGS'] = Split(os.environ['CPPFLAGS'])
+ print "using CPPFLAGS from environment: %s" % env['CPPFLAGS']
+ if 'LDFLAGS' in os.environ:
+ env['LINKFLAGS'] = Split(os.environ['LDFLAGS'])
+ print "using LDFLAGS/LINKFLAGS from environment: %s" % env['LINKFLAGS']
+
tc_set_msg = '''
************************************ Warning **********************************
* Enviornment variable TC_PREFIX/TC_PATH is set. It will change the default *
--- a/build_common/linux/SConscript
+++ b/build_common/linux/SConscript
@@ -23,16 +23,17 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-W
env.AppendUnique(LIBS = ['dl', 'pthread', 'uuid'])
# Set arch flags that match best TARGET_ARCH variable
-target_arch = env.get('TARGET_ARCH')
-if target_arch in ['x86']:
- env.AppendUnique(CCFLAGS = ['-m32'])
- env.AppendUnique(LINKFLAGS = ['-m32'])
-elif target_arch in ['x86_64']:
- env.AppendUnique(CCFLAGS = ['-m64'])
- env.AppendUnique(LINKFLAGS = ['-m64'])
-elif target_arch in ['arm']:
- env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
-elif target_arch in ['arm-v7a', 'armeabi-v7a']:
- env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
-elif target_arch.find('arm64') > 0:
- env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+if not env.get('WITH_ENV'):
+ target_arch = env.get('TARGET_ARCH')
+ if target_arch in ['x86']:
+ env.AppendUnique(CCFLAGS = ['-m32'])
+ env.AppendUnique(LINKFLAGS = ['-m32'])
+ elif target_arch in ['x86_64']:
+ env.AppendUnique(CCFLAGS = ['-m64'])
+ env.AppendUnique(LINKFLAGS = ['-m64'])
+ elif target_arch in ['arm']:
+ env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+ elif target_arch in ['arm-v7a', 'armeabi-v7a']:
+ env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+ elif target_arch.find('arm64') > 0:
+ env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
--- a/resource/csdk/connectivity/build/linux/SConscript
+++ b/resource/csdk/connectivity/build/linux/SConscript
@@ -22,16 +22,17 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-f
env.AppendUnique(LIBS = ['dl', 'pthread'])
# Set arch flags
-target_arch = env.get('TARGET_ARCH')
-if target_arch in ['x86']:
- env.AppendUnique(CCFLAGS = ['-m32'])
- env.AppendUnique(LINKFLAGS = ['-m32'])
-elif target_arch in ['x86_64']:
- env.AppendUnique(CCFLAGS = ['-m64'])
- env.AppendUnique(LINKFLAGS = ['-m64'])
-elif target_arch in ['arm']:
- env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
-elif target_arch in ['arm-v7a', 'armeabi-v7a']:
- env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
-elif target_arch.find('arm64') > 0:
- env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+if not env.get('WITH_ENV'):
+ target_arch = env.get('TARGET_ARCH')
+ if target_arch in ['x86']:
+ env.AppendUnique(CCFLAGS = ['-m32'])
+ env.AppendUnique(LINKFLAGS = ['-m32'])
+ elif target_arch in ['x86_64']:
+ env.AppendUnique(CCFLAGS = ['-m64'])
+ env.AppendUnique(LINKFLAGS = ['-m64'])
+ elif target_arch in ['arm']:
+ env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+ elif target_arch in ['arm-v7a', 'armeabi-v7a']:
+ env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+ elif target_arch.find('arm64') > 0:
+ env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])

+ 0
- 55
net/iotivity/patches/030-remove-check-for-curl.patch View File

@ -1,55 +0,0 @@
--- a/service/resource-container/SConscript
+++ b/service/resource-container/SConscript
@@ -191,36 +191,22 @@ if target_os in ['linux', 'tizen', 'andr
# build hue sample bundle
######################################################################
-conf2 = Configure(lib_env)
-if not conf2.CheckLib('curl'):
- print '''X
-*********************************** Error *************************************
-* Cannot build hue sample. Please install libcurl.
-* Example (Ubuntu):
-* sudo apt-get install libcurl4-openssl-dev
-* sudo ldconfig
-* Hint: check with pkg-config --libs libcurl and clear scons cache.
-* Skipping hue sample build.
-*******************************************************************************
- '''
-else:
- hue_resource_bundle_env = resource_container_env.Clone()
- hue_resource_bundle_env.AppendUnique(CCFLAGS = ['-fPIC'])
-
- HUE_RESOURCE_BUNDLE_DIR = 'examples/HueSampleBundle/'
- hue_resource_bundle_env.AppendUnique(CPPPATH = [
- HUE_RESOURCE_BUNDLE_DIR + 'include',
- 'include/'
- ])
-
- hue_resource_bundle_env.PrependUnique(LIBS = ['curl', 'rcs_container'])
-
- hue_resource_bundle_src = [ Glob(HUE_RESOURCE_BUNDLE_DIR + 'src/*.cpp')]
-
- HueBundle = hue_resource_bundle_env.SharedLibrary('HueBundle', hue_resource_bundle_src)
- hue_resource_bundle_env.InstallTarget(HueBundle, 'libHueBundle')
- hue_resource_bundle_env.UserInstallTargetLib(HueBundle, 'libHueBundle')
-lib_env = conf2.Finish()
+hue_resource_bundle_env = resource_container_env.Clone()
+hue_resource_bundle_env.AppendUnique(CCFLAGS = ['-fPIC'])
+
+HUE_RESOURCE_BUNDLE_DIR = 'examples/HueSampleBundle/'
+hue_resource_bundle_env.AppendUnique(CPPPATH = [
+ HUE_RESOURCE_BUNDLE_DIR + 'include',
+ 'include/'
+ ])
+
+hue_resource_bundle_env.PrependUnique(LIBS = ['curl', 'rcs_container'])
+
+hue_resource_bundle_src = [ Glob(HUE_RESOURCE_BUNDLE_DIR + 'src/*.cpp')]
+
+HueBundle = hue_resource_bundle_env.SharedLibrary('HueBundle', hue_resource_bundle_src)
+hue_resource_bundle_env.InstallTarget(HueBundle, 'libHueBundle')
+hue_resource_bundle_env.UserInstallTargetLib(HueBundle, 'libHueBundle')
######################################################################
# Build Container Sample

+ 0
- 27
net/iotivity/patches/040-linux-Use-system-sqlite3.patch View File

@ -1,27 +0,0 @@
From 08b403572985a70fe5d652378e1cfa2b72ac6a3d Mon Sep 17 00:00:00 2001
From: Philippe Coval <philippe.coval@osg.samsung.com>
Date: Fri, 9 Dec 2016 02:12:04 +0100
Subject: [PATCH] linux: Use system sqlite3
Problem was discovered on yocto
Change-Id: I5274bed9e4b7ddcdc1b17a265a1886cd78cb631f
Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/15305
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Ziran Sun <ziran.sun@samsung.com>
---
resource/csdk/SConscript | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/resource/csdk/SConscript
+++ b/resource/csdk/SConscript
@@ -191,7 +191,7 @@ if with_tcp == True:
if 'SERVER' in rd_mode:
liboctbstack_src.append(OCTBSTACK_SRC + 'oicresourcedirectory.c')
- if target_os not in ['tizen']:
+ if target_os not in ['linux', 'tizen']:
liboctbstack_src.append('#extlibs/sqlite3/sqlite3.c')
if target_os in ['linux']:

+ 0
- 54
net/iotivity/patches/050-csdk-move-OCEntityHandlerResponse-from-stack-to-heap.patch View File

@ -1,54 +0,0 @@
From d8cf30cb0abd5fa8f6282b490618204d683b625c Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Mon, 3 Oct 2016 21:00:28 +0200
Subject: [PATCH 1/3] csdk: move OCEntityHandlerResponse from stack to heap
OCEntityHandlerResponse is over 50KByte and I got a stack overflow on MIPS
running on LEDE without this patch. Instead of storing
OCEntityHandlerResponse on the program stack, allocate some memory on
the heap and free it afterwards again.
This fixes one part of this issue for me:
https://jira.iotivity.org/browse/IOT-1374
Change-Id: I365a5c7a34dce2dfb0897a20b57a13ba566748ec
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/csdk/stack/src/ocresource.c | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
--- a/resource/csdk/stack/src/ocresource.c
+++ b/resource/csdk/stack/src/ocresource.c
@@ -774,15 +774,25 @@ static bool includeThisResourceInRespons
OCStackResult SendNonPersistantDiscoveryResponse(OCServerRequest *request, OCResource *resource,
OCPayload *discoveryPayload, OCEntityHandlerResult ehResult)
{
- OCEntityHandlerResponse response = {0};
+ OCEntityHandlerResponse *response = NULL;
+ OCStackResult result = OC_STACK_ERROR;
- response.ehResult = ehResult;
- response.payload = discoveryPayload;
- response.persistentBufferFlag = 0;
- response.requestHandle = (OCRequestHandle) request->requestId;
- response.resourceHandle = (OCResourceHandle) resource;
+ response = (OCEntityHandlerResponse *)OICCalloc(1, sizeof(*response));
+ VERIFY_PARAM_NON_NULL(TAG, response, "Failed allocating OCEntityHandlerResponse");
- return OCDoResponse(&response);
+ response->ehResult = ehResult;
+ response->payload = discoveryPayload;
+ response->persistentBufferFlag = 0;
+ response->requestHandle = (OCRequestHandle) request->requestId;
+ response->resourceHandle = (OCResourceHandle) resource;
+
+ result = OCDoResponse(response);
+
+ OICFree(response);
+ return result;
+
+exit:
+ return OC_STACK_NO_MEMORY;
}
static OCStackResult EHRequest(OCEntityHandlerRequest *ehRequest, OCPayloadType type,

+ 0
- 357
net/iotivity/patches/051-csdk-move-OCClientResponse-from-stack-to-heap.patch View File

@ -1,357 +0,0 @@
From e8971dd4914c9d42938c4c885b4ac6d784d7e0ff Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Mon, 3 Oct 2016 23:22:36 +0200
Subject: [PATCH 2/3] csdk: move OCClientResponse from stack to heap
OCClientResponse is about 50KByte and should not be stored on the
stack. On LEDE with MIPS, musl libc this causes a segmentation fault.
Moving this structure to the heap is the simple solution for this
problem, but this structure should be shrined.
There are probably more places were this is stored on the stack and
will cause problems. This fixes the other issue I saw in
https://jira.iotivity.org/browse/IOT-1374
Change-Id: I45d8aee4a8151fea51d3318acb1eea61ce579060
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/csdk/stack/src/ocstack.c | 163 ++++++++++++++++++++++++--------------
1 file changed, 102 insertions(+), 61 deletions(-)
--- a/resource/csdk/stack/src/ocstack.c
+++ b/resource/csdk/stack/src/ocstack.c
@@ -1042,7 +1042,7 @@ OCStackResult HandlePresenceResponse(con
OCStackApplicationResult cbResult = OC_STACK_DELETE_TRANSACTION;
ClientCB * cbNode = NULL;
char *resourceTypeName = NULL;
- OCClientResponse response = {.devAddr = {.adapter = OC_DEFAULT_ADAPTER}};
+ OCClientResponse *response = NULL;
OCStackResult result = OC_STACK_ERROR;
uint32_t maxAge = 0;
int uriLen;
@@ -1057,15 +1057,23 @@ OCStackResult HandlePresenceResponse(con
return OC_STACK_ERROR;
}
- response.payload = NULL;
- response.result = OC_STACK_OK;
+ response = (OCClientResponse *)OICCalloc(1, sizeof(*response));
+ if (!response)
+ {
+ OIC_LOG(ERROR, TAG, "Allocating memory for response failed");
+ return OC_STACK_ERROR;
+ }
+ response->devAddr.adapter = OC_DEFAULT_ADAPTER;
- CopyEndpointToDevAddr(endpoint, &response.devAddr);
- FixUpClientResponse(&response);
+ response->payload = NULL;
+ response->result = OC_STACK_OK;
+
+ CopyEndpointToDevAddr(endpoint, &response->devAddr);
+ FixUpClientResponse(response);
if (responseInfo->info.payload)
{
- result = OCParsePayload(&response.payload,
+ result = OCParsePayload(&response->payload,
PAYLOAD_TYPE_PRESENCE,
responseInfo->info.payload,
responseInfo->info.payloadSize);
@@ -1075,15 +1083,15 @@ OCStackResult HandlePresenceResponse(con
OIC_LOG(ERROR, TAG, "Presence parse failed");
goto exit;
}
- if(!response.payload || response.payload->type != PAYLOAD_TYPE_PRESENCE)
+ if(!response->payload || response->payload->type != PAYLOAD_TYPE_PRESENCE)
{
OIC_LOG(ERROR, TAG, "Presence payload was wrong type");
result = OC_STACK_ERROR;
goto exit;
}
- response.sequenceNumber = ((OCPresencePayload*)response.payload)->sequenceNumber;
- resourceTypeName = ((OCPresencePayload*)response.payload)->resourceType;
- maxAge = ((OCPresencePayload*)response.payload)->maxAge;
+ response->sequenceNumber = ((OCPresencePayload*)response->payload)->sequenceNumber;
+ resourceTypeName = ((OCPresencePayload*)response->payload)->resourceType;
+ maxAge = ((OCPresencePayload*)response->payload)->maxAge;
}
// check for unicast presence
@@ -1091,6 +1099,7 @@ OCStackResult HandlePresenceResponse(con
responseInfo->isMulticast);
if (uriLen < 0 || (size_t)uriLen >= sizeof (presenceUri))
{
+ OICFree(response);
return OC_STACK_INVALID_URI;
}
OIC_LOG(ERROR, TAG, "check for unicast presence");
@@ -1118,7 +1127,7 @@ OCStackResult HandlePresenceResponse(con
if (presenceSubscribe)
{
- if(cbNode->sequenceNumber == response.sequenceNumber)
+ if(cbNode->sequenceNumber == response->sequenceNumber)
{
OIC_LOG(INFO, TAG, "No presence change");
ResetPresenceTTL(cbNode, maxAge);
@@ -1129,7 +1138,7 @@ OCStackResult HandlePresenceResponse(con
if(maxAge == 0)
{
OIC_LOG(INFO, TAG, "Stopping presence");
- response.result = OC_STACK_PRESENCE_STOPPED;
+ response->result = OC_STACK_PRESENCE_STOPPED;
if(cbNode->presence)
{
OICFree(cbNode->presence->timeOut);
@@ -1165,7 +1174,7 @@ OCStackResult HandlePresenceResponse(con
ResetPresenceTTL(cbNode, maxAge);
- cbNode->sequenceNumber = response.sequenceNumber;
+ cbNode->sequenceNumber = response->sequenceNumber;
}
}
else
@@ -1175,7 +1184,7 @@ OCStackResult HandlePresenceResponse(con
if (0 == maxAge)
{
OIC_LOG(INFO, TAG, "Stopping presence");
- response.result = OC_STACK_PRESENCE_STOPPED;
+ response->result = OC_STACK_PRESENCE_STOPPED;
}
}
@@ -1191,7 +1200,7 @@ OCStackResult HandlePresenceResponse(con
OIC_LOG(INFO, TAG, "Callback for presence");
- cbResult = cbNode->callBack(cbNode->context, cbNode->handle, &response);
+ cbResult = cbNode->callBack(cbNode->context, cbNode->handle, response);
if (cbResult == OC_STACK_DELETE_TRANSACTION)
{
@@ -1199,7 +1208,8 @@ OCStackResult HandlePresenceResponse(con
}
exit:
- OCPayloadDestroy(response.payload);
+ OCPayloadDestroy(response->payload);
+ OICFree(response);
return result;
}
@@ -1240,36 +1250,53 @@ void OCHandleResponse(const CAEndpoint_t
OIC_LOG(INFO, TAG, "Receiving A Timeout for this token");
OIC_LOG(INFO, TAG, "Calling into application address space");
- OCClientResponse response =
- {.devAddr = {.adapter = OC_DEFAULT_ADAPTER}};
- CopyEndpointToDevAddr(endPoint, &response.devAddr);
- FixUpClientResponse(&response);
- response.resourceUri = responseInfo->info.resourceUri;
- memcpy(response.identity.id, responseInfo->info.identity.id,
- sizeof (response.identity.id));
- response.identity.id_length = responseInfo->info.identity.id_length;
+ OCClientResponse *response = NULL;
+
+ response = (OCClientResponse *)OICCalloc(1, sizeof(*response));
+ if (!response)
+ {
+ OIC_LOG(ERROR, TAG, "Allocating memory for response failed");
+ return;
+ }
+
+ response->devAddr.adapter = OC_DEFAULT_ADAPTER;
+ CopyEndpointToDevAddr(endPoint, &response->devAddr);
+ FixUpClientResponse(response);
+ response->resourceUri = responseInfo->info.resourceUri;
+ memcpy(response->identity.id, responseInfo->info.identity.id,
+ sizeof (response->identity.id));
+ response->identity.id_length = responseInfo->info.identity.id_length;
- response.result = CAResponseToOCStackResult(responseInfo->result);
+ response->result = CAResponseToOCStackResult(responseInfo->result);
cbNode->callBack(cbNode->context,
- cbNode->handle, &response);
+ cbNode->handle, response);
FindAndDeleteClientCB(cbNode);
+ OICFree(response);
}
else
{
OIC_LOG(INFO, TAG, "This is a regular response, A client call back is found");
OIC_LOG(INFO, TAG, "Calling into application address space");
- OCClientResponse response =
- {.devAddr = {.adapter = OC_DEFAULT_ADAPTER}};
- response.sequenceNumber = MAX_SEQUENCE_NUMBER + 1;
- CopyEndpointToDevAddr(endPoint, &response.devAddr);
- FixUpClientResponse(&response);
- response.resourceUri = responseInfo->info.resourceUri;
- memcpy(response.identity.id, responseInfo->info.identity.id,
- sizeof (response.identity.id));
- response.identity.id_length = responseInfo->info.identity.id_length;
+ OCClientResponse *response = NULL;
- response.result = CAResponseToOCStackResult(responseInfo->result);
+ response = (OCClientResponse *)OICCalloc(1, sizeof(*response));
+ if (!response)
+ {
+ OIC_LOG(ERROR, TAG, "Allocating memory for response failed");
+ return;
+ }
+
+ response->devAddr.adapter = OC_DEFAULT_ADAPTER;
+ response->sequenceNumber = MAX_SEQUENCE_NUMBER + 1;
+ CopyEndpointToDevAddr(endPoint, &response->devAddr);
+ FixUpClientResponse(response);
+ response->resourceUri = responseInfo->info.resourceUri;
+ memcpy(response->identity.id, responseInfo->info.identity.id,
+ sizeof (response->identity.id));
+ response->identity.id_length = responseInfo->info.identity.id_length;
+
+ response->result = CAResponseToOCStackResult(responseInfo->result);
if(responseInfo->info.payload &&
responseInfo->info.payloadSize)
@@ -1359,21 +1386,23 @@ void OCHandleResponse(const CAEndpoint_t
{
OIC_LOG_V(ERROR, TAG, "Unknown Payload type: %d %s",
cbNode->method, cbNode->requestUri);
+ OICFree(response);
return;
}
- if(OC_STACK_OK != OCParsePayload(&response.payload,
+ if(OC_STACK_OK != OCParsePayload(&response->payload,
type,
responseInfo->info.payload,
responseInfo->info.payloadSize))
{
OIC_LOG(ERROR, TAG, "Error converting payload");
- OCPayloadDestroy(response.payload);
+ OCPayloadDestroy(response->payload);
+ OICFree(response);
return;
}
}
- response.numRcvdVendorSpecificHeaderOptions = 0;
+ response->numRcvdVendorSpecificHeaderOptions = 0;
if(responseInfo->info.numOptions > 0)
{
int start = 0;
@@ -1391,19 +1420,20 @@ void OCHandleResponse(const CAEndpoint_t
observationOption =
(observationOption << 8) | optionData[i];
}
- response.sequenceNumber = observationOption;
- response.numRcvdVendorSpecificHeaderOptions = responseInfo->info.numOptions - 1;
+ response->sequenceNumber = observationOption;
+ response->numRcvdVendorSpecificHeaderOptions = responseInfo->info.numOptions - 1;
start = 1;
}
else
{
- response.numRcvdVendorSpecificHeaderOptions = responseInfo->info.numOptions;
+ response->numRcvdVendorSpecificHeaderOptions = responseInfo->info.numOptions;
}
- if(response.numRcvdVendorSpecificHeaderOptions > MAX_HEADER_OPTIONS)
+ if(response->numRcvdVendorSpecificHeaderOptions > MAX_HEADER_OPTIONS)
{
OIC_LOG(ERROR, TAG, "#header options are more than MAX_HEADER_OPTIONS");
- OCPayloadDestroy(response.payload);
+ OCPayloadDestroy(response->payload);
+ OICFree(response);
return;
}
@@ -1411,19 +1441,19 @@ void OCHandleResponse(const CAEndpoint_t
{
if(&(responseInfo->info.options[i]))
{
- memcpy (&(response.rcvdVendorSpecificHeaderOptions[i-start]),
+ memcpy (&(response->rcvdVendorSpecificHeaderOptions[i-start]),
&(responseInfo->info.options[i]), sizeof(OCHeaderOption));
}
}
}
if (cbNode->method == OC_REST_OBSERVE &&
- response.sequenceNumber > OC_OFFSET_SEQUENCE_NUMBER &&
+ response->sequenceNumber > OC_OFFSET_SEQUENCE_NUMBER &&
cbNode->sequenceNumber <= MAX_SEQUENCE_NUMBER &&
- response.sequenceNumber <= cbNode->sequenceNumber)
+ response->sequenceNumber <= cbNode->sequenceNumber)
{
OIC_LOG_V(INFO, TAG, "Received stale notification. Number :%d",
- response.sequenceNumber);
+ response->sequenceNumber);
}
else
{
@@ -1432,13 +1462,13 @@ void OCHandleResponse(const CAEndpoint_t
char *targetUri = strstr(cbNode->requestUri, OC_RSRVD_RD_URI);
if (targetUri)
{
- OCUpdateResourceInsWithResponse(cbNode->requestUri, &response);
+ OCUpdateResourceInsWithResponse(cbNode->requestUri, response);
}
#endif
OCStackApplicationResult appFeedback = cbNode->callBack(cbNode->context,
cbNode->handle,
- &response);
- cbNode->sequenceNumber = response.sequenceNumber;
+ response);
+ cbNode->sequenceNumber = response->sequenceNumber;
if (appFeedback == OC_STACK_DELETE_TRANSACTION)
{
@@ -1459,7 +1489,8 @@ void OCHandleResponse(const CAEndpoint_t
CA_MSG_ACKNOWLEDGE, 0, NULL, NULL, 0, NULL, CA_RESPONSE_FOR_RES);
}
- OCPayloadDestroy(response.payload);
+ OCPayloadDestroy(response->payload);
+ OICFree(response);
}
return;
}
@@ -1585,16 +1616,26 @@ void HandleCAErrorResponse(const CAEndpo
errorInfo->info.tokenLength, NULL, NULL);
if (cbNode)
{
- OCClientResponse response = { .devAddr = { .adapter = OC_DEFAULT_ADAPTER } };
- CopyEndpointToDevAddr(endPoint, &response.devAddr);
- FixUpClientResponse(&response);
- response.resourceUri = errorInfo->info.resourceUri;
- memcpy(response.identity.id, errorInfo->info.identity.id,
- sizeof (response.identity.id));
- response.identity.id_length = errorInfo->info.identity.id_length;
- response.result = CAResultToOCResult(errorInfo->result);
+ OCClientResponse *response = NULL;
+
+ response = (OCClientResponse *)OICCalloc(1, sizeof(*response));
+ if (!response)
+ {
+ OIC_LOG(ERROR, TAG, "Allocating memory for response failed");
+ return;
+ }
+
+ response->devAddr.adapter = OC_DEFAULT_ADAPTER;
+ CopyEndpointToDevAddr(endPoint, &response->devAddr);
+ FixUpClientResponse(response);
+ response->resourceUri = errorInfo->info.resourceUri;
+ memcpy(response->identity.id, errorInfo->info.identity.id,
+ sizeof (response->identity.id));
+ response->identity.id_length = errorInfo->info.identity.id_length;
+ response->result = CAResultToOCResult(errorInfo->result);
- cbNode->callBack(cbNode->context, cbNode->handle, &response);
+ cbNode->callBack(cbNode->context, cbNode->handle, response);
+ OICFree(response);
}
ResourceObserver *observer = GetObserverUsingToken(errorInfo->info.token,

+ 0
- 103
net/iotivity/patches/053-src-move-OCClientResponse-from-stack-to-heap.patch View File

@ -1,103 +0,0 @@
From 7fb5b6a19b06dc5b0a7f32261551b206b1e6a563 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 8 Jan 2017 19:24:26 +0100
Subject: [PATCH 3/3] src: move OCClientResponse from stack to heap
OCClientResponse is about 50KByte and should not be stored on the
stack. On LEDE with MIPS, musl libc this causes a segmentation fault.
Moving this structure to the heap is the simple solution for this
problem, but this structure should be shrinked.
Change-Id: I7887f93450f45b8031fcdfffb9ee2214fc3d5dd2
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/src/InProcServerWrapper.cpp | 44 +++++++++++++++++++++---------------
1 file changed, 26 insertions(+), 18 deletions(-)
--- a/resource/src/InProcServerWrapper.cpp
+++ b/resource/src/InProcServerWrapper.cpp
@@ -568,51 +568,58 @@ namespace OC
}
else
{
- OCEntityHandlerResponse response;
+ OCEntityHandlerResponse *response = NULL;
+
+ response = (OCEntityHandlerResponse *)OICCalloc(1, sizeof(*response));
+ if (!response) {
+ result = OC_STACK_MALFORMED_RESPONSE;
+ throw OCException(OC::Exception::STR_NULL_RESPONSE, OC_STACK_MALFORMED_RESPONSE);
+ }
+
// OCRepPayload* payLoad = pResponse->getPayload();
HeaderOptions serverHeaderOptions = pResponse->getHeaderOptions();
- response.requestHandle = pResponse->getRequestHandle();
- response.resourceHandle = pResponse->getResourceHandle();
- response.ehResult = pResponse->getResponseResult();
+ response->requestHandle = pResponse->getRequestHandle();
+ response->resourceHandle = pResponse->getResourceHandle();
+ response->ehResult = pResponse->getResponseResult();
- response.payload = reinterpret_cast<OCPayload*>(pResponse->getPayload());
+ response->payload = reinterpret_cast<OCPayload*>(pResponse->getPayload());
- response.persistentBufferFlag = 0;
+ response->persistentBufferFlag = 0;
- response.numSendVendorSpecificHeaderOptions = serverHeaderOptions.size();
+ response->numSendVendorSpecificHeaderOptions = serverHeaderOptions.size();
int i = 0;
for (auto it=serverHeaderOptions.begin(); it != serverHeaderOptions.end(); ++it)
{
- response.sendVendorSpecificHeaderOptions[i].protocolID = OC_COAP_ID;
- response.sendVendorSpecificHeaderOptions[i].optionID =
+ response->sendVendorSpecificHeaderOptions[i].protocolID = OC_COAP_ID;
+ response->sendVendorSpecificHeaderOptions[i].optionID =
static_cast<uint16_t>(it->getOptionID());
- response.sendVendorSpecificHeaderOptions[i].optionLength =
+ response->sendVendorSpecificHeaderOptions[i].optionLength =
(it->getOptionData()).length() + 1;
std::string optionData = it->getOptionData();
std::copy(optionData.begin(),
optionData.end(),
- response.sendVendorSpecificHeaderOptions[i].optionData);
- response.sendVendorSpecificHeaderOptions[i].optionData[it->getOptionData().length()]
+ response->sendVendorSpecificHeaderOptions[i].optionData);
+ response->sendVendorSpecificHeaderOptions[i].optionData[it->getOptionData().length()]
= '\0';
i++;
}
- if(OC_EH_RESOURCE_CREATED == response.ehResult)
+ if(OC_EH_RESOURCE_CREATED == response->ehResult)
{
- pResponse->getNewResourceUri().copy(response.resourceUri,
- sizeof (response.resourceUri) - 1);
- response.resourceUri[pResponse->getNewResourceUri().length()] = '\0';
+ pResponse->getNewResourceUri().copy(response->resourceUri,
+ sizeof (response->resourceUri) - 1);
+ response->resourceUri[pResponse->getNewResourceUri().length()] = '\0';
}
if(cLock)
{
std::lock_guard<std::recursive_mutex> lock(*cLock);
- result = OCDoResponse(&response);
+ result = OCDoResponse(response);
}
else
{
- OICFree(response.payload);
+ OICFree(response->payload);
result = OC_STACK_ERROR;
}
@@ -620,6 +627,7 @@ namespace OC
{
oclog() << "Error sending response\n";
}
+ OICFree(response);
return result;
}
}

+ 0
- 27
net/iotivity/patches/070-ssl-fix-compilation-against-non-debug-mbedtls.patch View File

@ -1,27 +0,0 @@
From 261cf19bfa3dea10ed0f2ebbb2d945c19c9a2804 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 4 Dec 2016 00:18:37 +0100
Subject: [PATCH 5/7] ssl: fix compilation against non debug mbedtls
The function mbedtls_debug_set_threshold() is only available when
MBEDTLS_DEBUG_C is set. make the call depend on this condition.
Change-Id: I8158bc4c55b428167e36084e7a46359c269c5fc7
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c | 2 ++
1 file changed, 2 insertions(+)
--- a/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
+++ b/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
@@ -1278,8 +1278,10 @@ static int InitConfig(mbedtls_ssl_config
#if !defined(NDEBUG) || defined(TB_LOG)
mbedtls_ssl_conf_dbg(conf, DebugSsl, NULL);
+#if defined(MBEDTLS_DEBUG_C)
mbedtls_debug_set_threshold(MBED_TLS_DEBUG_LEVEL);
#endif
+#endif
OIC_LOG_V(DEBUG, NET_SSL_TAG, "Out %s", __func__);
return 0;
}

+ 0
- 35
net/iotivity/patches/071-ssl-call-mbedtls_version_get_string-only-if-availabl.patch View File

@ -1,35 +0,0 @@
From cee085e0e62214603b9ae035d63fabca23c491bd Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 8 Jan 2017 01:39:35 +0100
Subject: [PATCH 6/7] ssl: call mbedtls_version_get_string() only if available
The function mbedtls_version_get_string() is only available if
MBEDTLS_VERSION_C is set in the mbedtls configuration. Check this
before calling this function and print the mbedtls version this was
compiled against instead if mbedtls_version_get_string() is not
available.
This fixes a compile problem when MBEDTLS_VERSION_C is not set.
Change-Id: I54c2c2a3fc1f9d35afa475500e3db68420a1b54a
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
+++ b/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
@@ -1376,9 +1376,13 @@ CAResult_t CAinitSslAdapter()
/* Initialize TLS library
*/
#if !defined(NDEBUG) || defined(TB_LOG)
+#ifdef MBEDTLS_VERSION_C
char version[MBED_TLS_VERSION_LEN];
mbedtls_version_get_string(version);
OIC_LOG_V(INFO, NET_SSL_TAG, "mbed TLS version: %s", version);
+#else
+ OIC_LOG_V(INFO, NET_SSL_TAG, "mbed TLS version: %s", MBEDTLS_VERSION_STRING);
+#endif
#endif
/* Entropy settings

+ 0
- 30
net/iotivity/patches/072-ssl-call-mbedtls_ssl_conf_renegotiation-only-if-avai.patch View File

@ -1,30 +0,0 @@
From 3684ac3720f91dc131c1c61689395a69ae1865f9 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 8 Jan 2017 20:31:18 +0100
Subject: [PATCH 7/7] ssl: call mbedtls_ssl_conf_renegotiation() only if
available
The function mbedtls_ssl_conf_renegotiation() is only available if
MBEDTLS_SSL_RENEGOTIATION is set in the mbedtls configuration. Check this
before calling this function.
This fixes a compile problem when MBEDTLS_SSL_RENEGOTIATION is not set.
Change-Id: I69f15359d2dcaed1e4fe56fc7799737e38d6c2e7
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c | 2 ++
1 file changed, 2 insertions(+)
--- a/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
+++ b/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
@@ -1273,7 +1273,9 @@ static int InitConfig(mbedtls_ssl_config
mbedtls_ssl_conf_rng(conf, mbedtls_ctr_drbg_random, &g_caSslContext->rnd);
mbedtls_ssl_conf_curves(conf, curve[ADAPTER_CURVE_SECP256R1]);
mbedtls_ssl_conf_min_version(conf, MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3);
+#ifdef MBEDTLS_SSL_RENEGOTIATION
mbedtls_ssl_conf_renegotiation(conf, MBEDTLS_SSL_RENEGOTIATION_DISABLED);
+#endif
mbedtls_ssl_conf_authmode(conf, MBEDTLS_SSL_VERIFY_REQUIRED);
#if !defined(NDEBUG) || defined(TB_LOG)

+ 0
- 44
net/iotivity/patches/075-ssl-enable-usage-of-patched-mbed-functions-condition.patch View File

@ -1,44 +0,0 @@
From 01796db0b166e720860eff200acabff410ba6979 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 4 Dec 2016 00:15:21 +0100
Subject: [PATCH 4/7] ssl: enable usage of patched mbed functions conditionally
Only activate support for the MBEDTLS_KEY_EXCHANGE_ECDH_ANON_ENABLED
cipher suite when this is actually available in mbedtls.
This makes it possible to compile IoTivity against a unpatched mbedtls
version.
Change-Id: Ic56d7faf7597cc5dc08f9d55be29dde898949609
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
+++ b/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
@@ -237,7 +237,9 @@ int tlsCipher[ADAPTER_CIPHER_MAX][2] =
{
{MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, 0},
{MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, 0},
+#ifdef MBEDTLS_TLS_ECDH_ANON_WITH_AES_128_CBC_SHA256
{MBEDTLS_TLS_ECDH_ANON_WITH_AES_128_CBC_SHA256, 0},
+#endif
{MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, 0},
{MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, 0},
{MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, 0}
@@ -1943,6 +1945,7 @@ CAResult_t CAsetTlsCipherSuite(const uin
g_caSslContext->cipher = ADAPTER_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8;
break;
}
+#ifdef MBEDTLS_TLS_ECDH_ANON_WITH_AES_128_CBC_SHA256
case MBEDTLS_TLS_ECDH_ANON_WITH_AES_128_CBC_SHA256:
{
#ifdef __WITH_TLS__
@@ -1960,6 +1963,7 @@ CAResult_t CAsetTlsCipherSuite(const uin
g_caSslContext->cipher = ADAPTER_TLS_ECDH_ANON_WITH_AES_128_CBC_SHA_256;
break;
}
+#endif
case MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256:
{
#if 0 // PIN OTM

+ 0
- 22
net/iotivity/patches/078-use-system-mbedtls.patch View File

@ -1,22 +0,0 @@
Make it possible to use system mbedtls version
--- a/resource/csdk/connectivity/src/SConscript
+++ b/resource/csdk/connectivity/src/SConscript
@@ -73,16 +73,7 @@ if env.get('SECURED') == '1':
env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/security/include'])
env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'external/inc')])
- tls_path = 'extlibs/mbedtls';
- tls_headers_path = 'mbedtls/include';
- if ca_os == 'tizen' and os.path.exists(root_dir + '/' + tls_path):
- env.SConscript(os.path.join(root_dir, tls_path + '/SConscript'))
- env.AppendUnique(CPPPATH = [os.path.join(root_dir, tls_path + '/' + tls_headers_path)])
- else:
- if ca_os != 'android':
- env.SConscript('#' + tls_path + '/SConscript')
- env.AppendUnique(CPPPATH = ['#' + tls_path + '/' + tls_headers_path])
- env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_ssl.c')])
+ env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_ssl.c')])
if ((secured == '1') and (with_tcp == True)):
env.AppendUnique(CPPDEFINES = ['__WITH_TLS__'])

+ 0
- 31
net/iotivity/patches/080-zigbee_wrapper-do-not-check-for-floating-point.patch View File

@ -1,31 +0,0 @@
From df8360447163762c63994dcb07f9e69a5a365a1c Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 8 Jan 2017 22:01:57 +0100
Subject: [PATCH 8/8] zigbee_wrapper: do not check for floating point
This makes the compile fail for soft float builds. In such builds the
double is still 64 bit long.
Change-Id: I45d3f19b49f5d23d2b65307738a362765c5ea1c2
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
plugins/zigbee_wrapper/src/zigbee_wrapper.c | 8 --------
1 file changed, 8 deletions(-)
--- a/plugins/zigbee_wrapper/src/zigbee_wrapper.c
+++ b/plugins/zigbee_wrapper/src/zigbee_wrapper.c
@@ -37,14 +37,6 @@
#include <math.h>
#include <errno.h>
-// The following #define must be here under "math.h".
-// This ifdef ensures that "__STDC_IEC_559__" is defined. If it is defined,
-// then we are guaranteed that the 'double' type is 64-bit. Otherwise, the
-// compilation of this file should fail because we are no longer guaranteed.
-#ifndef __STDC_IEC_559__
-#error "Requires IEEE 754 floating point!"
-#endif
-
#include "zigbee_wrapper.h"
#include "telegesis_wrapper.h"
#include "pluginlist.h"

+ 0
- 32
net/iotivity/patches/140-remove-glib2.patch View File

@ -1,32 +0,0 @@
--- a/resource/csdk/connectivity/src/bt_le_adapter/linux/SConscript
+++ b/resource/csdk/connectivity/src/bt_le_adapter/linux/SConscript
@@ -73,7 +73,6 @@ env.AppendUnique(
# The Linux BLE adapter implementation uses GDBus to make D-Bus based
# method calls to BlueZ. Pull in the necessary dependencies.
-env.ParseConfig("pkg-config gio-unix-2.0 --cflags --libs")
# Set up commands to generate GDBus code from the D-Bus introspection
# XML.
--- a/resource/csdk/security/provisioning/sample/SConscript
+++ b/resource/csdk/security/provisioning/sample/SConscript
@@ -70,7 +70,6 @@ if target_os not in ['windows']:
if target_os not in ['msys_nt', 'windows']:
provisioning_env.AppendUnique(LIBS = ['dl', 'm'])
- provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
provisioning_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
else:
provisioning_env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk')])
--- a/resource/csdk/security/provisioning/SConscript
+++ b/resource/csdk/security/provisioning/SConscript
@@ -73,9 +73,6 @@ provisioning_env.PrependUnique(LIBS = ['
provisioning_env.AppendUnique(LIBS = ['mbedtls', 'mbedx509','mbedcrypto'])
-if target_os not in ['msys_nt', 'windows', 'android', 'ios']:
- provisioning_env.ParseConfig('pkg-config --libs glib-2.0')
-
if target_os in ['windows', 'msys_nt']:
provisioning_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi'])

+ 0
- 44
net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch View File

@ -1,44 +0,0 @@
From ce27d50b9c11386242487852f14b025ed6c67701 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
Date: Wed, 19 Aug 2015 16:47:21 +0200
Subject: [PATCH 14/14] examples: OICMiddle: try to load security
configuration by default
Load the security configuration from the default location by default.
When it is not found security will just not work.
Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
---
examples/OICMiddle/OICMiddle.cpp | 9 ++++++++-
examples/OICMiddle/OICMiddle.h | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
--- a/examples/OICMiddle/OICMiddle.cpp
+++ b/examples/OICMiddle/OICMiddle.cpp
@@ -99,8 +99,15 @@ void Middle::startPlatform()
//std::string ipaddr = INADDR_ANY;
std::string ipaddr = "0.0.0.0";
+ // Initialize Persistent Storage for SVR database
+ middle.ps.open = fopen;
+ middle.ps.read = fread;
+ middle.ps.write = fwrite;
+ middle.ps.close = fclose;
+ middle.ps.unlink = unlink;
+
PlatformConfig cfg { ServiceType::InProc, ModeType::Both,
- ipaddr, port, QualityOfService::LowQos};
+ ipaddr, port, QualityOfService::LowQos, &middle.ps};
OC::OCPlatform::Configure(cfg);
}
--- a/examples/OICMiddle/OICMiddle.h
+++ b/examples/OICMiddle/OICMiddle.h
@@ -83,6 +83,7 @@ protected:
MiddleServer *m_server;
LineInput *m_lineInput;
RestInput *m_restInput;
+ OCPersistentStorage ps;
protected:
void startPlatform();

+ 0
- 58
net/iotivity/patches/300-resource-Include-functional-header-for-g-7.1.0.patch View File

@ -1,58 +0,0 @@
From 26c2798188497da22e0a70efebc47991dd755db2 Mon Sep 17 00:00:00 2001
From: Philippe Coval <philippe.coval@osg.samsung.com>
Date: Wed, 28 Jun 2017 04:54:05 +0200
Subject: [PATCH] resource: Include functional header for g++-7.1.0
It was tested on yocto poky master on iotivity-1.2.1 (and later):
resource/include/OCUtilities.h: \
In function 'OCStackResult OC::nil_guard(PtrT&&, FnT&&, ParamTs&& ...)':
resource/include/OCUtilities.h:85:21: \
error: 'bind' is not a member of 'std'
return std::bind(fn, p, std::ref(params)...)();
resource/include/OCApi.h: At global scope:
resource/include/OCApi.h:362:18: \
error: 'function' in namespace 'std' does not name a template type
typedef std::function<void(std::shared_ptr<OCResource>)> FindCallback;
Change-Id: Ie1cab497c33fde394f77490a1d636eb36a563396
Origin: https://gerrit.iotivity.org/gerrit/#/c/21069/
Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/21067
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
---
resource/include/OCApi.h | 2 --
resource/include/OCUtilities.h | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/resource/include/OCApi.h b/resource/include/OCApi.h
index 4e14f29cc..af9721554 100644
--- a/resource/include/OCApi.h
+++ b/resource/include/OCApi.h
@@ -27,9 +27,7 @@
#include <map>
#include <memory>
#include <iterator>
-#if defined(_MSC_VER)
#include <functional>
-#endif
#include "octypes.h"
#include "OCHeaderOption.h"
diff --git a/resource/include/OCUtilities.h b/resource/include/OCUtilities.h
index 85039d0c1..f1c93045f 100644
--- a/resource/include/OCUtilities.h
+++ b/resource/include/OCUtilities.h
@@ -26,6 +26,7 @@
#include <memory>
#include <utility>
#include <exception>
+#include <functional>
#include <OCException.h>
#include <StringConstants.h>
--
2.17.1

Loading…
Cancel
Save