platform/upstream/iotivity.git
9 years agoApply the 'CA_INT' of Connectivity Abstraction for Things Manager.
HyunJun Kim [Mon, 26 Jan 2015 08:22:50 +0000 (17:22 +0900)]
Apply the 'CA_INT' of Connectivity Abstraction for Things Manager.

The Thing Manager does not prepare for the CA.
So we provide different function of CA in the same API.

Change-Id: I8b64608e352a19fddedf42beef647003d18e61f8
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/244
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
9 years agoAdd API description of Things Manager.
HyunJun Kim [Thu, 29 Jan 2015 04:38:08 +0000 (13:38 +0900)]
Add API description of Things Manager.

joinGroup and findGroup function call were ambiguous
when join to a local(or remote) resource.
We provide more detail description of function for the user.

Fix [IOT-265],[IOT-267]

Change-Id: I43de1f6671dc73d0725bdc9c0e85ffca45878d2e
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/245
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
9 years agoexample: link to libraries using -L flag
Philippe Coval [Mon, 26 Jan 2015 10:08:48 +0000 (11:08 +0100)]
example: link to libraries using -L flag

executable will be able to load them
from standard paths (/usr/lib*/)

Change-Id: I0728c196b766ce55e7185dffb69d9790b5b065c5
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
Reviewed-on: https://gerrit.iotivity.org/gerrit/246
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Erich Keane <erich.keane@intel.com>
Reviewed-by: John Light <john.j.light@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoResolved Klocwork warnings for C++ Stack & Samples
Shilpa Sodani [Wed, 14 Jan 2015 23:56:47 +0000 (15:56 -0800)]
Resolved Klocwork warnings for C++ Stack & Samples

Fixed comment, space issue and added default case to switch in
groupclient.cpp

Made code compliance to code guideline

Resolve Infinite loop warning and Memory leak warning.
Also replaced multiple if-else with switch to match code
standards.

Change-Id: I125ab9d20fe4c8352f261afa7a538a7487aa7880
Signed-off-by: Shilpa Sodani <shilpa.a.sodani@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/141
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Erich Keane <erich.keane@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoAdded support in tinyDTLS to support rehandshake
Sachin Agrawal [Wed, 21 Jan 2015 16:55:45 +0000 (08:55 -0800)]
Added support in tinyDTLS to support rehandshake

As per RFC 6347 section 4.2.8, DTLS Server should support requests
from clients who have silently abandoned the existing association
and initiated a new handshake request by sending a ClientHello.
Code is updated to detect this scenario and delete the old
association when client successfully responds to HelloVerifyRequest.

Change-Id: I6e256921215c1a22e9e5013499c4dfd98659f8cc
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/120
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sashi Penta <sashi.kumar.penta@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoFix FindGroup API of Things Manager about group sync feature.
HyunJun Kim [Fri, 23 Jan 2015 05:00:54 +0000 (14:00 +0900)]
Fix FindGroup API of Things Manager about group sync feature.

It is not notify about state of finding to caller.
So we will return 'OC_STACK_ERROR' when It was finding a group.
User should be wait findCallback.
Then user will know the result of finding.

FindCallback has the argument which OCResource.
If it is NULL we could not find a group.

Fix [IOT-286]

Change-Id: I2b95d5102e54e4242394c36d51de81f192b87e13
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/230
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
9 years agoFix GroupSync API of about GroupSync of Group feature.
HyunJun Kim [Fri, 23 Jan 2015 04:15:09 +0000 (13:15 +0900)]
Fix GroupSync API of about GroupSync of Group feature.

Crash is occured when som api of ThingsManager is called multiple times.

Fix [IOT-261], [IOT-264], [IOT-268]

Change-Id: Iec1cb11c570357411351c69450ace91ea6fa3754
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/228
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
9 years ago[SSM] Fix issue about initializing SSM with invalid parameter (IOT-260)
Minji Park [Fri, 23 Jan 2015 02:05:32 +0000 (11:05 +0900)]
[SSM] Fix issue about initializing SSM with invalid parameter (IOT-260)

Modify SoftSensorManager to return error code when initialized with invalid parameter

Change-Id: Ia0a54cd6e71321cbe2b4fd18352a2a609c20fabd
Signed-off-by: Minji Park <minjii.park@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/229
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
9 years agoFixed issue to pass PSK identity hint to application in callback
Sachin Agrawal [Tue, 20 Jan 2015 23:58:45 +0000 (15:58 -0800)]
Fixed issue to pass PSK identity hint to application in callback

In cases (with PSK ciphersuite) where Server is sending
'PSK Identity Hint’ inside ServerKeyExchange message, DTLS library
is not passing the ‘identity hint’ inside ‘desc’ argument in
get_psk_info(DTLS_PSK_KEY, desc) callback. Instead, ‘desc’ contains
the identity of the client itself. The reason for this is that the
code inside dtls_send_client_key_exchange() method
overwrites the ‘identity hint’ received earlier.

Change-Id: Ibf447e3a6b33284118908a52aed4cf636038ab23
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/119
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sakthivel Samidurai <sakthivel.samidurai@intel.com>
Reviewed-by: Sashi Penta <sashi.kumar.penta@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoResolve Bug IOT-273 (rename "OC_STACK_REPEATED_REQUEST")
ywsung [Wed, 21 Jan 2015 03:54:20 +0000 (12:54 +0900)]
Resolve Bug IOT-273 (rename "OC_STACK_REPEATED_REQUEST")

 - OCStackResult "OC_STACK_REPEATED_REQUEST" is renamed to
   "OC_STACK_DUPLICATE_REQUEST"
 - In StringConstants.h, "REPEATE_REQUEST" is rename to
   "DUPLICATE_REQUEST" (Message string also changed)

Change-Id: Ie3bca4642441a59c3c66a98513d0f15d2e923096
Signed-off-by: ywsung <yw.sung@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/177
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sashi Penta <sashi.kumar.penta@intel.com>
Reviewed-by: Joseph Morrow <joseph.l.morrow@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoFixed crash on rec'd invalid data.
Erich Keane [Mon, 12 Jan 2015 17:51:31 +0000 (09:51 -0800)]
Fixed crash on rec'd invalid data.

This issue is a fix for IOT 114.

Previously, a bad series of JSON coming in would cause an exception
to be thrown. this would result in the callback/server crashing, which
is not appropriate behavior. This fix catches and logs any JSON
errors keeping the callback/server from crashing.

NOTE: This changeset is originally from 01.org(changeset 695,
author: Erich Keane).

Change-Id: I1e7d042f243bc1b86771778c308f1187bcda875f
Signed-Off-by:Sudarshan Prasad<sudarshan.prasad@intel.com>
Signed-off-by: Erich Keane <erich.keane@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/103
Reviewed-by: Sashi Penta <sashi.kumar.penta@intel.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
9 years agoEnable Building C++ samples using Scons
omkar [Tue, 20 Jan 2015 17:34:04 +0000 (09:34 -0800)]
Enable Building C++ samples using Scons

Change-Id: I4ebcee826bcd6f1afdea88038cd0ce340b209103
Signed-off-by: omkar <omkar.m.hegde@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/161
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sashi Penta <sashi.kumar.penta@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agotizen: packaging: build on x86_64 arm64 and others too
Philippe Coval [Mon, 19 Jan 2015 18:09:28 +0000 (19:09 +0100)]
tizen: packaging: build on x86_64 arm64 and others too

Without this change only 2 arch were possible to build :
arm and x86 (32bits)

Since some scon's variables are not aligned with Tizen's infra name,
mapping is needed for x86 amd arm64.

While for x86_64 it can use the generic RPM macro %{_arch} value
which is same, it prevents writing an extra "if endif block".

Other unsuported arch were not tested (ie: mips, ppc ...)
and would  probably need more sources or make/scon/files adaptations.

With a couple of other fixes (to come later),
rpmbuild was successful using Tizen:Common's repos
with those archs : x86, x86_64, armv7l, aarch64.

Feel free to me ask support upstream or on tizen trackers

Change-Id: I1034d66ac29bee1667a7e12d6ceb9e08806c3a15
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
Reviewed-on: https://gerrit.iotivity.org/gerrit/157
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Ossama Othman <ossama.othman@intel.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Caiwen Zhang <caiwen.zhang@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoMerge "Add missing enum value of OCStackResult to switch in reason() function of...
Sudarshan Prasad [Tue, 20 Jan 2015 17:32:22 +0000 (17:32 +0000)]
Merge "Add missing enum value of OCStackResult to switch in reason() function of OCException class"

9 years agoMerge "Improve usability of ActionSet for Group Action Feature."
Uze Choi [Tue, 20 Jan 2015 01:53:23 +0000 (01:53 +0000)]
Merge "Improve usability of ActionSet for Group Action Feature."

9 years agoAdded release notes for Jan 17th release
Sudarshan Prasad [Mon, 19 Jan 2015 00:35:30 +0000 (16:35 -0800)]
Added release notes for Jan 17th release

Change-Id: I62b1457e8a35082f7896fb5d64630a173c59f233
Signed-Off-by:Sudarshan Prasad<sudarshan.prasad@intel.com>

9 years agoMerge "Fix zeroing of OCServerResponse payload array"
Sudarshan Prasad [Sat, 17 Jan 2015 00:37:39 +0000 (00:37 +0000)]
Merge "Fix zeroing of OCServerResponse payload array"

9 years agoMerge "Remove OCICUC from build and repo"
Sudarshan Prasad [Fri, 16 Jan 2015 22:59:14 +0000 (22:59 +0000)]
Merge "Remove OCICUC from build and repo"

9 years agoMerge "Enable building C Samples using scons"
Sudarshan Prasad [Fri, 16 Jan 2015 17:02:48 +0000 (17:02 +0000)]
Merge "Enable building C Samples using scons"

9 years agoAdd missing enum value of OCStackResult to switch in reason() function of OCException...
ywsung [Thu, 15 Jan 2015 07:30:54 +0000 (16:30 +0900)]
Add missing enum value of OCStackResult to switch in reason() function of OCException class

- Adding missing case of enum value (OC_STACK_REPEATED_REQUEST, OC_STACK_INVALID_DEVICE_INFO) to switch statement
- Adding constant strings to StringContant.h
- Reorder case statements by OCStackResult definition order

Change-Id: I207a2f9122779c37df48aae260061fce442de798
Signed-off-by: ywsung <yw.sung@samsung.com>
9 years agoEnable building C Samples using scons
Caiwen Zhang [Fri, 16 Jan 2015 07:12:52 +0000 (15:12 +0800)]
Enable building C Samples using scons

Change-Id: I9de4f80a0abe0cd1da14b2abb063e3deda928cba
Signed-off-by: Sashi Penta <sashi.kumar.penta@intel.com>
Signed-off-by: Caiwen Zhang <caiwen.zhang@intel.com>
9 years agoImprove usability of ActionSet for Group Action Feature.
HyunJun Kim [Fri, 16 Jan 2015 02:22:12 +0000 (11:22 +0900)]
Improve usability of ActionSet for Group Action Feature.

ActionSet structure is not show directly to developer.
Because there is the definition of ActionSet in GroupManager.h.
So we separate the definition of ActionSet from Groupmanager to ActionSet.h
And it is exposed to developer by one type of header file.

Change-Id: I2ccb93cf70ec42b122aaead4943aed56df161641
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
9 years agoRemove OCICUC from build and repo
Erich Keane [Thu, 15 Jan 2015 19:41:05 +0000 (11:41 -0800)]
Remove OCICUC from build and repo

The OCICUC library isn't properly being maintained and isn't really being
used, so it is being removed.

Signed-off-by: Erich Keane <erich.keane@intel.com>
Change-Id: I613072d5256fd53c6d7ef179cd971356caf18d41

9 years agoMerge "Remove high frequency log to avoid the log full with useless information"
Patrick Lankswert [Thu, 15 Jan 2015 03:35:25 +0000 (03:35 +0000)]
Merge "Remove high frequency log to avoid the log full with useless information"

9 years agoMerge "Adding tinyDTLS into iotivity repo"
Patrick Lankswert [Thu, 15 Jan 2015 03:22:55 +0000 (03:22 +0000)]
Merge "Adding tinyDTLS into iotivity repo"

9 years agoMerge "Reduce footprint by using string literals."
Sudarshan Prasad [Thu, 15 Jan 2015 01:21:13 +0000 (01:21 +0000)]
Merge "Reduce footprint by using string literals."

9 years agoMerge "Changed OCStackResult to be consistent across compile flags."
Sudarshan Prasad [Thu, 15 Jan 2015 01:02:29 +0000 (01:02 +0000)]
Merge "Changed OCStackResult to be consistent across compile flags."

9 years agoFix zeroing of OCServerResponse payload array
Maks Naumov [Wed, 14 Jan 2015 22:26:52 +0000 (14:26 -0800)]
Fix zeroing of OCServerResponse payload array

Change-Id: I93ba1720a3de0c54937d5d8d48d72574b2dbb65d
Signed-off-by: Maks Naumov <maksqwe1@ukr.net>
9 years agoChanged OCStackResult to be consistent across compile flags.
Erich Keane [Tue, 13 Jan 2015 21:39:57 +0000 (13:39 -0800)]
Changed OCStackResult to be consistent across compile flags.

Issue 245 was reported that pointed out that the presence flag in
the compiler makes OCStackResult incompatible across differently
compiled versions of the CStack.  Additionally, this spaces out the
error codes from success codes, permitting additional room for more
success codes.

Change-Id: Ia93f34e23756e7663ea80f6667699d59e358058e
Signed-off-by: Erich Keane <erich.keane@intel.com>
9 years agoMerge "Update gitignore."
Sudarshan Prasad [Wed, 14 Jan 2015 17:21:55 +0000 (17:21 +0000)]
Merge "Update gitignore."

9 years agoAdd method of Things-Manager.
HyunJun Kim [Wed, 14 Jan 2015 08:52:28 +0000 (17:52 +0900)]
Add method of Things-Manager.

It was not included implementation.
So We implement about bindResourceToGroup for Group Formation feature.

Change-Id: Iade53004d8b3d974846a3b9056c6c3b6649104fa
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
9 years agoMerge "Fix Memory leak of getResourceType() in ocstack.c"
Sudarshan Prasad [Wed, 14 Jan 2015 03:52:24 +0000 (03:52 +0000)]
Merge "Fix Memory leak of getResourceType() in ocstack.c"

9 years agoRemove high frequency log to avoid the log full with useless information
Caiwen Zhang [Tue, 13 Jan 2015 06:58:06 +0000 (14:58 +0800)]
Remove high frequency log to avoid the log full with useless information

The OCProcess function is invoked in while loop. The functions that are
invoked by OCProcess will be invoked very frequently. If add log in these
functions, it may make the log full of useless information.

This patch removes frequent log from OCProcess/OCProcessPresence/
OCProcessCoAP/coap_read/OCRecvFrom function.

Signed-off-by: Caiwen Zhang<caiwen.zhang@intel.com>
Change-Id: Iabe182aca8430438085296cd16d69f5bde0626a8

9 years agoReduce footprint by using string literals.
Ossama Othman [Tue, 13 Jan 2015 18:24:49 +0000 (10:24 -0800)]
Reduce footprint by using string literals.

This change replaces the std::string based exception description
string constants in resource/include/StringConstants.h with
string literals instead.  Switching to string literals has a number of
advantages in this case:

- reduced start-up time for binaries that link against liboc
  since the static std::string constants no longer have to
  be initialized at run-time.
- the compiler is free to place the strings in read-only
  memory.
- reduced static and run-time footprint.

Footprint reductions in text, data and bss are as follows:

filename                        text
                        std::   const
                        string  char[]  Diff    Change
InProcClientWrapper.o   81458   77684   -3774   -4.63%
InProcServerWrapper.o   43292   40122   -3170   -7.32%
OCException.o           5399    1956    -3443   -63.77%
OCPlatform_impl.o       25054   21803   -3251   -12.98%
OCPlatform.o            9574    5535    -4039   -42.19%
OCRepresentation.o      97156   93782   -3374   -3.47%
OCResource.o            28565   25048   -3517   -12.31%
OCUtilities.o           19844   15805   -4039   -20.35%
liboc.so                453688  434400  -19288  -4.25%

filename                        data
                        std::   const
                        string  char[]  Diff    Change
InProcClientWrapper.o   1916    1916    0       0.00%
InProcServerWrapper.o   1368    1368    0       0.00%
OCException.o           4       4       0       0.00%
OCPlatform_impl.o       552     552     0       0.00%
OCPlatform.o            8       8       0       0.00%
OCRepresentation.o      388     388     0       0.00%
OCResource.o            100     100     0       0.00%
OCUtilities.o           344     344     0       0.00%
liboc.so                6636    6652    16      0.24%

filename                        bss
                        std::   const
                        string  char[]  Diff    Change
InProcClientWrapper.o   577     309     -268    -46.45%
InProcServerWrapper.o   657     389     -268    -40.79%
OCException.o           320     52      -268    -83.75%
OCPlatform_impl.o       420     152     -268    -63.81%
OCPlatform.o            340     72      -268    -78.82%
OCRepresentation.o      328     60      -268    -81.71%
OCResource.o            340     72      -268    -78.82%
OCUtilities.o           340     72      -268    -78.82%
liboc.so                3340    1192    -2148   -64.31%

filename                        dec
                        std::   const
                        string  char[]  Diff    Change
InProcClientWrapper.o   83951   79909   -4042   -4.81%
InProcServerWrapper.o   45317   41879   -3438   -7.59%
OCException.o           5723    2012    -3711   -64.84%
OCPlatform_impl.o       26026   22507   -3519   -13.52%
OCPlatform.o            9922    5615    -4307   -43.41%
OCRepresentation.o      97872   94230   -3642   -3.72%
OCResource.o            29005   25220   -3785   -13.05%
OCUtilities.o           20528   16221   -4307   -20.98%
liboc.so                463664  442244  -21420  -4.62%

Overall liboc.so drops in size by 20 kilobytes, a 4.62%
reduction in size with these changes in place.

Change-Id: I3e24f56bf702a0ea134b113d542f61e45f8af613
Signed-off-by: Ossama Othman <ossama.othman@intel.com>
9 years agoMerge "Fixed seg fault in simpleclient sample app (Bug IOT-130)"
Sudarshan Prasad [Tue, 13 Jan 2015 22:43:57 +0000 (22:43 +0000)]
Merge "Fixed seg fault in simpleclient sample app (Bug IOT-130)"

9 years agoMerge "Added style formatting config files for iotivity coding standards"
Sudarshan Prasad [Tue, 13 Jan 2015 02:48:25 +0000 (02:48 +0000)]
Merge "Added style formatting config files for iotivity coding standards"

9 years agoMerge "Fixed InProcServerWrapper to be thread safe"
Sudarshan Prasad [Tue, 13 Jan 2015 02:01:50 +0000 (02:01 +0000)]
Merge "Fixed InProcServerWrapper to be thread safe"

9 years agoMerge "Fixed simpleclient crash caused by curResource being altered"
Sudarshan Prasad [Mon, 12 Jan 2015 23:17:48 +0000 (23:17 +0000)]
Merge "Fixed simpleclient crash caused by curResource being altered"

9 years agoFixed InProcServerWrapper to be thread safe
Erich Keane [Sat, 10 Jan 2015 00:53:28 +0000 (16:53 -0800)]
Fixed InProcServerWrapper to be thread safe

A few of the variables/collections in the server wrapper were not
properly protected against multi-threading.  This fix adds a mutex
to the class to ensure that all accessed items are protected.
Additionally, they are moved out of the root namespace to prevent
polution.

Change-Id: I2eedb9bf9b1960ff7a018a2ca1e15183e42bd9cd
Signed-off-by: Erich Keane <erich.keane@intel.com>
9 years agoMerge "Fix failed unit tests for CSDK stack."
Sudarshan Prasad [Mon, 12 Jan 2015 20:03:15 +0000 (20:03 +0000)]
Merge "Fix failed unit tests for CSDK stack."

9 years agoMerge "C++ Avoid crash in case of Invalid/Empty Payload"
Sudarshan Prasad [Mon, 12 Jan 2015 18:47:13 +0000 (18:47 +0000)]
Merge "C++ Avoid crash in case of Invalid/Empty Payload"

9 years agoFix failed unit tests for CSDK stack.
Doug Hudson [Mon, 12 Jan 2015 16:28:32 +0000 (11:28 -0500)]
Fix failed unit tests for CSDK stack.

The existing unit tests in stacktests.cpp had not kept up with
ongoing modifications to the C API.  Modified failing tests to
align with latest C API functionality.

Also modified to remove limitation that required the eth0 network
interface to be available on the test machine.  If eth0 was not
available, some tests would fail.

Also added a local function to handle C stack initialization and
modified tests to call this function.  Added local functions to
intialize the number of expected resources and resource index
depending on whether presence is defined.

Re-grouped related test cases and created common group test names.

Change-Id: Ief59854d762ef9837f8b1d5b95bebc6514bd545a
Signed-off-by: Doug Hudson <douglas.hudson@intel.com>
9 years agoFix Memory leak of getResourceType() in ocstack.c
ywsung [Fri, 9 Jan 2015 06:15:06 +0000 (15:15 +0900)]
Fix Memory leak of getResourceType() in ocstack.c

When memory allocation is failed, add free memory for already allocated memory.

Change-Id: I601367e7bfe3ff6a616d870636d5b535a32047fd
Signed-off-by: YW Sung <yw.sung@samsung.com>
9 years agoChange the definition of GROUP_INTERFACE.
HyunJun Kim [Mon, 12 Jan 2015 05:30:24 +0000 (14:30 +0900)]
Change the definition of GROUP_INTERFACE.

The definition of GROUP_INTERFACE as "oc.mi.c"
does not get big meaning.
So, we change the definition to "oc.mi.grp".
Regarding opinion of Caiwen.

Issue : [IOT-253]

Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
Change-Id: Ia196e8a2a0856ed0651874eec419f77468e8329e

9 years agoMerge "Fixed invalid memory read, removed dead code"
Sudarshan Prasad [Sat, 10 Jan 2015 01:43:38 +0000 (01:43 +0000)]
Merge "Fixed invalid memory read, removed dead code"

9 years agoMerge "Adding OK Response Code for POST"
Sudarshan Prasad [Sat, 10 Jan 2015 01:25:24 +0000 (01:25 +0000)]
Merge "Adding OK Response Code for POST"

9 years agoMerge "Fixing repeated EH calls when client retransmits requests"
Sudarshan Prasad [Fri, 9 Jan 2015 21:10:25 +0000 (21:10 +0000)]
Merge "Fixing repeated EH calls when client retransmits requests"

9 years agoC++ Avoid crash in case of Invalid/Empty Payload
omkar [Fri, 9 Jan 2015 19:34:18 +0000 (11:34 -0800)]
C++ Avoid crash in case of Invalid/Empty Payload

This change is based on a bug reported by SHP wherein
they want to be able to send response with empty payload.
Instead of throwing an error, we now send an empty
OCRepresentation() object to the client callback.

Change-Id: I16f298bf8a0bdbb545e1133d751582f418991352
Signed-off-by: omkar <omkar.m.hegde@intel.com>
9 years agoAdded style formatting config files for iotivity coding standards
Ossama Othman [Fri, 9 Jan 2015 19:10:59 +0000 (11:10 -0800)]
Added style formatting config files for iotivity coding standards

The style config files are used to apply IoTivity coding style, as
described on the wiki https://wiki.iotivity.org/iotivity_coding_standards.

Change-Id: Ifd3937bebde658a76aa7c9918b4c699c1384f341
Signed-off-by: William Dieter <william.r.dieter@intel.com>
Signed-off-by: Ossama Othman <ossama.othman@intel.com>
9 years agoAdding tinyDTLS into iotivity repo
Sachin Agrawal [Fri, 9 Jan 2015 18:38:48 +0000 (10:38 -0800)]
Adding tinyDTLS into iotivity repo

Picked GIT commit id 7d039c from
http://sourceforge.net/projects/tinydtls/ .

iotivity build system can compile tinydtls using autotools
with below steps:
1)autoconf
2)./configure --without-debug --without-ecc 'CFLAGS=-fPIC'
3)make

Change-Id: I97a917955ca13a06914ecee178c0cee0701eda12
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
9 years agoRemoved executable bit from non-executable files.
Ossama Othman [Fri, 9 Jan 2015 18:17:58 +0000 (10:17 -0800)]
Removed executable bit from non-executable files.

Change-Id: Ifa125423fb435575e391471cc7dafe3f1bd84972
Signed-off-by: Ossama Othman <ossama.othman@intel.com>
9 years agoMerge "Add quick guide into the readme"
Patrick Lankswert [Fri, 9 Jan 2015 15:30:18 +0000 (15:30 +0000)]
Merge "Add quick guide into the readme"

9 years ago[SSM] Fix issues about initializing SSM
Minji Park [Fri, 9 Jan 2015 08:01:50 +0000 (17:01 +0900)]
[SSM] Fix issues about initializing SSM

1. modify to return error code when xml parsing error occurs
2. apply new SSM Interface
3. modify sample apps according to the new interface design
4. modify ResourceFinder to stop checking presence when SSM terminates

Change-Id: Id5cd6aade44fe531cb547400d15bb343ba28655a
Signed-off-by: Minji Park <minjii.park@samsung.com>
9 years agoMerge changes I5acd9c57,I90e7a69e
Uze Choi [Fri, 9 Jan 2015 08:16:20 +0000 (08:16 +0000)]
Merge changes I5acd9c57,I90e7a69e

* changes:
  [SSM] Fix context query parser issues
  [SSM] Add omitted arduino sample and soft sensor sample

9 years ago[PPM] fix Plugin Manager Destructor segment fault.
junho13.lee [Fri, 9 Jan 2015 01:34:11 +0000 (10:34 +0900)]
[PPM] fix Plugin Manager Destructor segment fault.

1. Modify PluginManager Destructor.
2. Remove "free(handle)" and add "dlclose(handle)".

Change-Id: Ib2fc492631914664eac76d0db0d78126e1cefd95
Signed-off-by: junho13.lee <junho13.lee@samsung.com>
9 years ago[SSM] Fix context query parser issues
jk13 [Tue, 6 Jan 2015 00:33:35 +0000 (09:33 +0900)]
[SSM] Fix context query parser issues

This patch resolves issues that related to context query

which occures infinite loop and crash

Change-Id: I5acd9c57ee82a7ba1d3a5a416680a23676acfabb
Signed-off-by: jk13 <jihyeok13.kim@samsung.com>
9 years ago[SSM] Add omitted arduino sample and soft sensor sample
jk13 [Mon, 5 Jan 2015 02:09:42 +0000 (11:09 +0900)]
[SSM] Add omitted arduino sample and soft sensor sample

1. Add omitted arduino sample app
2. Modify previous arduino sample to use proper resource name
3. Add IndoorTrajectory Soft Sensor

Change-Id: I90e7a69ef203d3f57e8350f73ffa47039f883878
Signed-off-by: jk13 <jihyeok13.kim@samsung.com>
9 years agoAdding OK Response Code for POST
omkar [Wed, 7 Jan 2015 22:38:14 +0000 (14:38 -0800)]
Adding OK Response Code for POST

Earlier, we were setting response code for POST only if a new resource
is created assuming that the value is by default OK.
TE tests showed error on using different version of Ubuntu.
Modified simpleserver to explicitly add OK status.
Added constructors to OCResourceRequest and
OCResourceResponse classes to avoid undefined behavior.
This Fixes IOT-128.

Change-Id: I13faff2fb254c777ccc8c8979824d53f5111ab3e
Signed-off-by: omkar <omkar.m.hegde@intel.com>
9 years agoFixed simpleclient crash caused by curResource being altered
Sudarshan Prasad [Thu, 8 Jan 2015 17:28:09 +0000 (09:28 -0800)]
Fixed simpleclient crash caused by curResource being altered

The foundResource function is called asynchronously, and was written
in a way that was not thread safe. This fix adds a lock and exit logic
so that it works prooperly and only uses the first found curResource
that matches its requirements.

NOTE: This change (author: Erich Keane) is from 01.org.

Change-Id: I984ce1623ff491713ecf5d621f1283ebad33bfef
Signed-Off-by:Sudarshan Prasad<sudarshan.prasad@intel.com>

9 years agoUpdate gitignore.
Sanjeev BA [Thu, 8 Jan 2015 07:23:32 +0000 (16:23 +0900)]
Update gitignore.

Change-Id: Ie3f1c5a6b6d2c1e8b7d9df6336eea9083597b697
Signed-off-by: Sanjeev BA <as2902.b@samsung.com>
9 years agoMerge "Add C++ Unit tests"
Sudarshan Prasad [Thu, 8 Jan 2015 03:10:34 +0000 (03:10 +0000)]
Merge "Add C++ Unit tests"

9 years agoFixing repeated EH calls when client retransmits requests
Yamin Al-Mousa [Thu, 8 Jan 2015 02:36:55 +0000 (18:36 -0800)]
Fixing repeated EH calls when client retransmits requests

(Bug IOT-239) When a client makes a request to a slow resource
and it does not receive an ACK for that request, it retransmits
the requests which resulted in calling the server's entity handler
several times and multilpe slow responses. When a server
detects a repeated request it should not process it. Also, when
the client receives a slow response it should stop retransmitting
requests.

Change-Id: I101ad3de9b8e0e4990fb096d4a8fe5b9dcebf4b0
Signed-off-by: Yamin Al-Mousa <yamin.s.al-mousa@intel.com>
9 years agoFixed invalid memory read, removed dead code
Erich Keane [Wed, 7 Jan 2015 21:23:25 +0000 (13:23 -0800)]
Fixed invalid memory read, removed dead code

Debug.c's coap_print_addr had its functionality completely removed
in the past.  However, this resulted in returning SOMETHING (not zero!)
despite not actually correctly writing to the addr parameter.

Since this parameter is uninitialized when sent to this function,
and the return value is used to determine whether it correctly added
info to the addr, the debug print following this (net.c:972) attempted
to read the uninitialized data, potentially causing memory corruption.

This fix removes the 'dead' code, then returns a zero (failure, nothing
written).

Change-Id: If4f2c131d9b2f585299363f21c3686c25de29104
Signed-off-by: Erich Keane <erich.keane@intel.com>
9 years agoMerge "Fixing OCCancel with High_QOS in observe isn't deleting CB."
Sudarshan Prasad [Wed, 7 Jan 2015 21:22:00 +0000 (21:22 +0000)]
Merge "Fixing OCCancel with High_QOS in observe isn't deleting CB."

9 years agoFixing OCCancel with High_QOS in observe isn't deleting CB.
Yamin Al-Mousa [Wed, 7 Jan 2015 18:14:10 +0000 (10:14 -0800)]
Fixing OCCancel with High_QOS in observe isn't deleting CB.

(Bug IOT-126) Calling OCCancel should result in deleting all
associated structures including callbacks. This also should
happen when we deregister observation.

Change-Id: I34dd67288873ce27919a12a1d5fe244ef80751b7
Signed-off-by: Yamin Al-Mousa <yamin.s.al-mousa@intel.com>
9 years agoAdd C++ Unit tests
Yuliya Kamatkova [Mon, 22 Dec 2014 23:12:40 +0000 (18:12 -0500)]
Add C++ Unit tests

Added unit tests for OCPlatform and OCResource C++ APIs.
All tests are passing

Change-Id: Ib31295db92ad3934dec1ea32e59315cea8fff2a8
Signed-off-by: Yuliya Kamatkova <yuliya.kamatkova@intel.com>
9 years agoMerge "Removing getting started and how to guides from API references."
Patrick Lankswert [Wed, 7 Jan 2015 16:38:46 +0000 (16:38 +0000)]
Merge "Removing getting started and how to guides from API references."

9 years agoRemoving getting started and how to guides from API references.
mshaver [Wed, 7 Jan 2015 00:09:18 +0000 (16:09 -0800)]
Removing getting started and how to guides from API references.

Developer content will be available on iotivity.org going forward, so
there is no need for these files in the API docs code. Direct links were
added to the Home.txt for the iotivity.org/documentation and
wiki.iotivity.org sites.

IOT-218 - Removed the "M1 release" text in title from Doxygen output
IOT-219 - Remove "About OIC" , "Programmer's guide" and "how to"

Change-Id: I28e26328a82cb6ff037ce451a5ed6fee368ad635
Signed-off-by: mshaver <michael.r.shaver@intel.com>
9 years agoMerge "Fix some issues of GroupSynchronization - findGroup() with null callback...
Uze Choi [Wed, 7 Jan 2015 08:18:42 +0000 (08:18 +0000)]
Merge "Fix some issues of GroupSynchronization  - findGroup() with null callback parameter issue is fixed.    : return OC_STACK_ERROR, when callback parameter is passed with a null value.  - joinGroup() failure when there is no group match with group type parameter is fixed.  - deleteGroup() failure when delete group with no child is fixed."

9 years agoAdd quick guide into the readme
Caiwen Zhang [Wed, 7 Jan 2015 06:01:21 +0000 (14:01 +0800)]
Add quick guide into the readme

Change-Id: I502acfebf6a4752bf2ffa57d05dc31e8eac65959
Signed-off-by: Caiwen Zhang<caiwen.zhang@intel.com>
9 years agoFix some issues of GroupSynchronization
Soyoung Youn [Wed, 7 Jan 2015 05:02:53 +0000 (14:02 +0900)]
Fix some issues of GroupSynchronization
- findGroup() with null callback parameter issue is fixed.
  : return OC_STACK_ERROR, when callback parameter is passed with a null value.
- joinGroup() failure when there is no group match with group type parameter is fixed.
- deleteGroup() failure when delete group with no child is fixed.

Erase "else" statement for guard condition in findCallback NULL checking.

Change-Id: Id00160e3b2e85e03c4e4dd5bd5fb401f6a8bbd42
Signed-off-by: Soyoung Youn <sy01.youn@samsung.com>
9 years agoAdd missing dependency to readme.
Sanjeev BA [Tue, 6 Jan 2015 05:16:16 +0000 (14:16 +0900)]
Add missing dependency to readme.

Change-Id: I86cf5280edbe70dfa5c8f0076c9475ee18e5ab0b
Signed-off-by: Sanjeev BA <as2902.b@samsung.com>
9 years agoFixed seg fault in simpleclient sample app (Bug IOT-130)
Sachin Agrawal [Mon, 5 Jan 2015 23:33:29 +0000 (15:33 -0800)]
Fixed seg fault in simpleclient sample app (Bug IOT-130)

Arduino server sample uses light representation which is different
from what simpleclient expects. Updated simpleclient to catch
exception in this scenario.

Change-Id: I3d5d2e2f7785a9345655bc347662efb7fd0927a2
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
9 years agoMerge "Fix some issues of GroupManager"
Uze Choi [Mon, 5 Jan 2015 01:55:46 +0000 (01:55 +0000)]
Merge "Fix some issues of GroupManager"

9 years agofix "Coding convention followed in this commit"
Heewon Park [Tue, 30 Dec 2014 07:39:45 +0000 (16:39 +0900)]
fix "Coding convention followed in this commit"

Change-Id: Icf3085cc5767330c908ab02c855759ad004509a2
Signed-off-by: Heewon Park <h_w.park@samsung.com>
9 years agoFix some issues of GroupManager
jjack.lee [Tue, 30 Dec 2014 05:22:58 +0000 (14:22 +0900)]
Fix some issues of GroupManager

    - subscribeCollectionPresence()
        - IOT-197 : Handle null parameter
        - IOT-198 : Check that resource has child resource.
    - findCandidateResources()
        - IOT-210 : Handle null parameter

Change-Id: I6961aa776e5883890da226f07d3cfcf64571279c
Signed-off-by: Jack Lee <jjack.lee@samsung.com>
9 years agoMerge "This a complete version of OICMiddle. The ReST capability has limited function...
Patrick Lankswert [Tue, 30 Dec 2014 03:39:47 +0000 (03:39 +0000)]
Merge "This a complete version of OICMiddle. The ReST capability has limited functionality, which we hope to expand shortly after release.  We believe the other parts of OICMiddle are sufficiently robust that the application will be useful as both demo and example in the OIC 0.9.0 release."

9 years agoThis a complete version of OICMiddle.
Sudarshan Prasad [Tue, 30 Dec 2014 01:20:39 +0000 (17:20 -0800)]
This a complete version of OICMiddle.
The ReST capability has limited functionality, which we hope to expand
shortly after release.  We believe the other parts of OICMiddle are
sufficiently robust that the application will be useful as both demo
and example in the OIC 0.9.0 release.

In a partial review prior to moving from 01.org to IoTivity, one
reviewer provided 50 comments.  All of the comments were addressed,
though not all were agreed with.  In some cases, comments were added
to the code to address the concern.  Others may require further
discussion.

Change-Id: I3e52de09a0737dd8dd0323fa2a20e4c94224f9c7
Signed-off-by: John.Light <john.j.light@intel.com>
Signed-off-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
9 years agoMerge "Updated the README files to reference the master build in root"
Patrick C Lankswert [Tue, 30 Dec 2014 02:33:23 +0000 (02:33 +0000)]
Merge "Updated the README files to reference the master build in root"

9 years agoUpdated the README files to reference the master build in root
Patrick C Lankswert [Tue, 30 Dec 2014 02:24:59 +0000 (21:24 -0500)]
Updated the README files to reference the master build in root

Change-Id: Ibeb95e7a872ca51e29656a825c37247e48d89fe5
Signed-off-by: Patrick Lankswert <patrick.lankswert@intel.com>
9 years agoMerge "Android SDK - Initial commit and build system updates"
Patrick C Lankswert [Tue, 30 Dec 2014 02:10:23 +0000 (02:10 +0000)]
Merge "Android SDK - Initial commit and build system updates"

9 years agoAndroid SDK - Initial commit and build system updates
Patrick C Lankswert [Sun, 28 Dec 2014 05:15:52 +0000 (00:15 -0500)]
Android SDK - Initial commit and build system updates

This commit add makes the auto_build process more complete by
adding the following:

1) Auto build now always performs the dependency check
2) Auto build now always attempts to build the Android stack artifacts.
3) Transitioned the Android build process to the v4.9 tool chain
4) Android build now depends on the internal boost dependencies
5) Add an Android compatibility layer for the code that is using
   the C++ 11 basic string functions with is not supported in the
   Android toolchain yet.
6) Added static libraries to many of the shared libraries for the
   Android SDK

NOTE:
a) This commit conflicts with the work that Caiwen was making in the
   C++11 basic_string function compatibility. I will close with him.
b) Expat is needed by the protocol plug in manager for Android.
   This still needs to be closed by release. The PPM build for
   Android under SCONS is currently disabled.

This is the Android SDK client API.
Validation has not been completed. However, this is all new
functionality and does not have any negative impact on any
existing features. Until validation is completed this
functionality should be considered experimental.

This code based currently uses gradle to build the SDK.
It does require that the Android libraries for IoTivity
be built previously using the appropriate SCONS scripts.

This additional patch attempts to transition the boost
build to using git instead of a download in hopes that
the build machine will be happier about it.

Final patch makes Android build optional in auto_build

Another patch to add support for 64-bit hosts

Another patch set to reduce parallel builds to 4

Another patch to add licensing header to two files that we missing
in gerrit review #72

Change-Id: I9695ebf3ea271ec28b69a4fcec509a6c2b7c46a4
Signed-off-by: Patrick Lankswert <patrick.lankswert@intel.com>
9 years agoMerge "Added build dependencies script"
Patrick C Lankswert [Tue, 30 Dec 2014 00:48:37 +0000 (00:48 +0000)]
Merge "Added build dependencies script"

9 years agoMerge "OICSensorBoard: App for Intel Edison Platform."
Patrick Lankswert [Mon, 29 Dec 2014 20:26:55 +0000 (20:26 +0000)]
Merge "OICSensorBoard: App for Intel Edison Platform."

9 years agoAdded build dependencies script
Patrick C Lankswert [Sun, 28 Dec 2014 03:42:20 +0000 (22:42 -0500)]
Added build dependencies script

Created build script that prepares two dependencies (cereal and
boost) for use by the build environment. This also adds the
dependency builder in the auto build script used by the continuous
integation servers.

Change-Id: I776a3b3f208b1ea0c253cc693d639c19b603fbca
Signed-off-by: Patrick Lankswert <patrick.lankswert@intel.com>
9 years agoMerge "Add spec file for Tizen build"
Patrick Lankswert [Sat, 27 Dec 2014 22:56:28 +0000 (22:56 +0000)]
Merge "Add spec file for Tizen build"

9 years agoMerge "Fix soft-sensor-manager service build errors"
Patrick Lankswert [Sat, 27 Dec 2014 22:39:49 +0000 (22:39 +0000)]
Merge "Fix soft-sensor-manager service build errors"

9 years agoMerge "Fix android build compatibility problems"
Patrick Lankswert [Sat, 27 Dec 2014 22:38:05 +0000 (22:38 +0000)]
Merge "Fix android build compatibility problems"

9 years agoMerge "Added services programmer's guides without DRM for June Young"
Patrick Lankswert [Sat, 27 Dec 2014 22:34:38 +0000 (22:34 +0000)]
Merge "Added services programmer's guides without DRM for June Young"

9 years agoAdded services programmer's guides without DRM for June Young
George Bowden [Fri, 26 Dec 2014 21:56:46 +0000 (13:56 -0800)]
Added services programmer's guides without DRM for June Young

Change-Id: Ifa7b359cabae84d3dcd1b48feac3fe7b4423af69
Signed-off-by: George Bowden <george.bowden@intel.com>
9 years agoMerge "Update scons build relative documents"
Patrick Lankswert [Fri, 26 Dec 2014 19:51:54 +0000 (19:51 +0000)]
Merge "Update scons build relative documents"

9 years agoMerge "remove DMR doc"
Uze Choi [Fri, 26 Dec 2014 06:24:19 +0000 (06:24 +0000)]
Merge "remove DMR doc"

9 years agoremove DMR doc
Uze Choi [Fri, 26 Dec 2014 06:22:20 +0000 (15:22 +0900)]
remove DMR doc

Change-Id: Icc34f18a66d87ae74748e496c3f01ff94ae84aa9

9 years agoMerge "remove DRM doc"
Uze Choi [Fri, 26 Dec 2014 05:33:31 +0000 (05:33 +0000)]
Merge "remove DRM doc"

9 years agoremove DRM doc
Uze Choi [Fri, 26 Dec 2014 05:31:20 +0000 (14:31 +0900)]
remove DRM doc

Change-Id: Idd96a81cd79d1b6c54776c6b39cb080743107f8f

9 years agoOICSensorBoard: App for Intel Edison Platform.
Kishen Maloor [Mon, 22 Dec 2014 20:09:51 +0000 (12:09 -0800)]
OICSensorBoard: App for Intel Edison Platform.

(Please refer to https://oic-review.01.org/gerrit/#/c/668/8/
for prior review status)

Build for OICSensorBoard is NOT included in the
standard Iotivity build.

It requires the Yocto cross-toolchain for
a chosen target, and would therefore be
built separately.

It demonstrates Iotivity Server capabilities through
the integration of an add-on breadboard that hosts
temperature, ambient light and LED sensors.
In addition, there is a command-line Iotivity Client
application to test server functionality from a
separate machine.

The included scons build script expects to build
the client for Linux (tested on Ubuntu 12.04)
and the server to be built via the Yocto
cross-toolchain for Edison.

Brief instructions for constructing this
toolchain are provided in the included README.

Change-Id: I26d12c2334d84a6e0245e0f3689e09a51152fea5
Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
9 years agoUpdate scons build relative documents
Caiwen Zhang [Fri, 26 Dec 2014 03:21:16 +0000 (11:21 +0800)]
Update scons build relative documents

Change-Id: I5296365d941d876ec20252282f8bae1cb5d8b7ff
Signed-off-by: Caiwen Zhang<caiwen.zhang@intel.com>
9 years agoMerge "Fix GroupAction API of Things Manager."
Uze Choi [Fri, 26 Dec 2014 02:55:04 +0000 (02:55 +0000)]
Merge "Fix GroupAction API of Things Manager."

9 years agoMerge "Fix an exception handling issue in doBootStrap() function of ThingsConfigurati...
Uze Choi [Fri, 26 Dec 2014 02:54:07 +0000 (02:54 +0000)]
Merge "Fix an exception handling issue in doBootStrap() function of ThingsConfiguration class."

9 years agoFix android build compatibility problems
Caiwen Zhang [Thu, 25 Dec 2014 10:37:00 +0000 (18:37 +0800)]
Fix android build compatibility problems

1. Some C++11 features are used in IoTivity. Old Android NDK may doesn't
support a part of these features directly. Implement and include it if
it is required.

2. Fix libc function missing problem. Some functions, e.g. rand, srand.
strtof ... are static inline prior to android-L(it is defined and
implemented in the header file). So before android-L libc.so doesn't
include them. If build on android-L and run on an old platform(earlier
than android-L), there will be 'can't locate xxx' problem.

e.g.:
rand, it is defined in stdlib.h as "static __inline__ int rand() { ....} in
the ndk < 10. it's defined as 'extern int rand();' from ndk-10x. With old
ndk, if a file (x.c) used 'rand' function, when build x.c, 'rand' is compiled
into x.o. 'rand' won't exit in neither libc.so nor libc.a. If build an
application with ndk-10x and run it on emulator or device(developed with
NDK < 10), it requires implement 'rand' function by owerself or there
will be be 'can't locate rand' problem.

For convenience, add these functions in a file, if necessary, build it as
library and auto link into binary.

Change-Id: If47da94db7d06fde9887eba335bc0c67762514a9
Signed-off-by: Caiwen Zhang<caiwen.zhang@intel.com>