[IOT-1430] bug fix for seg fault on start consumer.
authorKIM JungYong <jyong2.kim@samsung.com>
Mon, 10 Oct 2016 07:11:46 +0000 (16:11 +0900)
committerUze Choi <uzchoi@samsung.com>
Wed, 12 Oct 2016 12:06:56 +0000 (12:06 +0000)
With this patch, segmentation fault is resolved on the starting consumer service.

Change-Id: I929ec45d34a401ea7e6e503d6c686471656f39cf
Signed-off-by: KIM JungYong <jyong2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/13007
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp

index f567b4a..e005bcf 100755 (executable)
@@ -35,6 +35,12 @@ bool isExit = false;
 std::string REMOTE_SERVER_ADDRESS;\r
 std::string mainProvider;\r
 \r
+FILE* server_fopen(const char *path, const char *mode)\r
+{\r
+    (void)path;\r
+    return fopen("oic_ns_provider_db.dat", mode);\r
+}\r
+\r
 void onNotificationPostedCb(OIC::Service::NSMessage *notification)\r
 {\r
     std::cout << "id : " << notification->getMessageId() << std::endl;\r
@@ -128,7 +134,12 @@ int main(void)
     pthread_t OCThread = NULL;\r
 \r
     std::cout << "start Iotivity" << std::endl;\r
-    if (OCInit1(OC_CLIENT, OC_DEFAULT_FLAGS, OC_DEFAULT_FLAGS) != OC_STACK_OK)\r
+\r
+    // open oic_db\r
+    static OCPersistentStorage ps = {server_fopen, fread, fwrite, fclose, unlink};\r
+    OCRegisterPersistentStorageHandler(&ps);\r
+\r
+    if (OCInit1(OC_CLIENT_SERVER, OC_DEFAULT_FLAGS, OC_DEFAULT_FLAGS) != OC_STACK_OK)\r
     {\r
         std::cout << "OCInit fail" << std::endl;\r
         return 0;\r