external/wakaama: add context free.
authorJunyeon LEE <junyeon2.lee@samsung.com>
Mon, 29 May 2017 09:48:58 +0000 (18:48 +0900)
committerEunBong Song <eunb.song@samsung.com>
Tue, 11 Jul 2017 01:26:56 +0000 (10:26 +0900)
This commit is to add tls context free routine in examples.

Change-Id: I8f4aad9b130cd0a0ff1171e6d1c76a032ba78829
Signed-off-by: Junyeon LEE <junyeon2.lee@samsung.com>
Signed-off-by: EunBong Song <eunb.song@samsung.com>
18 files changed:
apps/system/init/Kconfig [new file with mode: 0644]
build/configs/artik053/extra/defconfig
build/configs/artik053/minimal/defconfig
build/configs/artik053/nettest/defconfig
build/configs/artik053/tash/defconfig
build/configs/artik053/typical/defconfig
build/configs/artik053/wifi_test/defconfig
build/configs/sidk_s5jt200/hello/defconfig
build/configs/sidk_s5jt200/hello_with_tash/defconfig
build/configs/sidk_s5jt200/kernel_sample/defconfig
build/configs/sidk_s5jt200/sidk_tash_wlan/defconfig
build/configs/sidk_s5jt200/tc/defconfig
external/wakaama/examples/client/lwm2mclient.c
external/wakaama/examples/server/lwm2mserver.c
external/wakaama/examples/shared/Make.defs
external/wakaama/examples/shared/connection.c
os/kernel/Kconfig
os/kernel/init/os_bringup.c

diff --git a/apps/system/init/Kconfig b/apps/system/init/Kconfig
new file mode 100644 (file)
index 0000000..7aea5ba
--- /dev/null
@@ -0,0 +1,22 @@
+#
+# For a description of the syntax of this configuration file,
+# see kconfig-language at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
+#
+
+
+config SYSTEM_PREAPP_INIT
+       bool "Preapp Init"
+       default y
+       ---help---
+               Enable Preapp Init.
+
+if SYSTEM_PREAPP_INIT 
+
+config SYSTEM_PREAPP_STACKSIZE
+       int "pre-app thread stack size"
+       default 2048
+       ---help---
+               The size of the stack to allocate for the pre-application thread
+               that is started as soon as the OS completes its initialization.
+
+endif
index cf886d4..893d778 100644 (file)
@@ -422,7 +422,6 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
 # CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
@@ -1139,6 +1138,9 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_NETDB is not set
 # CONFIG_SYSTEM_POWEROFF is not set
index 187fa2c..a8bc087 100644 (file)
@@ -376,7 +376,6 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
 # CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
@@ -768,6 +767,9 @@ CONFIG_EXAMPLES_HELLO=y
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_NETDB is not set
 # CONFIG_SYSTEM_POWEROFF is not set
index 06c99cd..939cbcb 100644 (file)
@@ -442,8 +442,6 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
-# CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
 
@@ -1139,6 +1137,9 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_NETDB is not set
 # CONFIG_SYSTEM_POWEROFF is not set
index aaf3fed..ebbbdc3 100644 (file)
@@ -402,8 +402,6 @@ CONFIG_SCHED_HPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
-# CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
 
@@ -839,6 +837,9 @@ CONFIG_SYSTEM_CLE_DEBUGLEVEL=0
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_POWEROFF is not set
 CONFIG_SYSTEM_RAMTEST=y
index caa3b8d..45946ee 100644 (file)
@@ -422,7 +422,6 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
 # CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
@@ -1113,6 +1112,9 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_NETDB is not set
 # CONFIG_SYSTEM_POWEROFF is not set
index fd4e5ec..beb263f 100644 (file)
@@ -442,7 +442,6 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
 # CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
@@ -1144,6 +1143,8 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_NETDB is not set
 # CONFIG_SYSTEM_POWEROFF is not set
index dc03c94..9071052 100644 (file)
@@ -331,7 +331,6 @@ CONFIG_BOARD_INITIALIZE=y
 #
 CONFIG_IDLETHREAD_STACKSIZE=512
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=1024
 # CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=1024
index f63677c..fe3f062 100644 (file)
@@ -407,8 +407,6 @@ CONFIG_SCHED_HPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
-# CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
 
@@ -843,6 +841,10 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_POWEROFF is not set
 # CONFIG_SYSTEM_RAMTEST is not set
index 1b91bca..22ad05f 100644 (file)
@@ -408,8 +408,6 @@ CONFIG_SCHED_HPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
-# CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
 
@@ -872,6 +870,10 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_POWEROFF is not set
 # CONFIG_SYSTEM_RAMTEST is not set
index 739b6d2..4f20792 100644 (file)
@@ -421,7 +421,6 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
 # CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
@@ -1118,6 +1117,11 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_NETDB is not set
 # CONFIG_SYSTEM_POWEROFF is not set
index b72b2e3..6cbe842 100644 (file)
@@ -412,8 +412,6 @@ CONFIG_SCHED_HPWORKSTACKSIZE=2048
 #
 CONFIG_IDLETHREAD_STACKSIZE=1024
 CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PREAPP_STACKSIZE=2048
-# CONFIG_MPU_STACKGAURD is not set
 CONFIG_PTHREAD_STACK_MIN=256
 CONFIG_PTHREAD_STACK_DEFAULT=2048
 
@@ -923,6 +921,10 @@ CONFIG_TASH_CMDTASK_PRIORITY=100
 # CONFIG_SYSTEM_FOTA_HAL is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
 # CONFIG_SYSTEM_INIFILE is not set
+
+CONFIG_SYSTEM_PREAPP_INIT=y
+CONFIG_SYSTEM_PREAPP_STACKSIZE=2048
+
 # CONFIG_SYSTEM_INSTALL is not set
 # CONFIG_SYSTEM_POWEROFF is not set
 # CONFIG_SYSTEM_RAMTEST is not set
index 21816aa..8fc52bc 100644 (file)
@@ -337,18 +337,18 @@ void * lwm2m_connect_server(uint16_t secObjInstID,
         memcpy(&dataP->server_addr, &newConnP->addr, newConnP->addrLen);
         dataP->server_addrLen = newConnP->addrLen;
         dataP->connList = newConnP;
-    }
 
 #ifdef WITH_MBEDTLS
-    if (proto == COAP_TCP_TLS || proto == COAP_UDP_DTLS) {
-        newConnP->session = TLSSession(dataP->sock, dataP->tls_context, dataP->tls_opt);
-        if (newConnP->session == NULL) {
-            fprintf(stderr, "Failed to create secure session. \r\n");
-            goto exit;
+        if (proto == COAP_TCP_TLS || proto == COAP_UDP_DTLS) {
+            newConnP->session = TLSSession(dataP->sock, dataP->tls_context, dataP->tls_opt);
+            if (newConnP->session == NULL) {
+                fprintf(stderr, "Failed to create secure session. \r\n");
+                goto exit;
+            }
+            fprintf(stderr, "successfully create secure session. \r\n");
         }
-        fprintf(stderr, "successfully create secure session. \r\n");
-    }
 #endif
+    }
 
 exit:
     lwm2m_free(uri);
index f1f1bb4..007f2bf 100644 (file)
@@ -1115,7 +1115,7 @@ int lwm2m_server_main(int argc, char *argv[])
     if (sock < 0)
     {
         fprintf(stderr, "Error opening socket: %d\r\n", errno);
-        return -1;
+        goto exit;
     }
 
     switch(proto) {
@@ -1124,8 +1124,7 @@ int lwm2m_server_main(int argc, char *argv[])
             newsock = create_tcp_session(sock, &addr, &addrLen);
             if (newsock < 0) {
                 fprintf(stderr, "Error create tcp session\r\n");
-                close(sock);
-                return -1;
+                goto exit;
             } else {
                 fprintf(stderr, "TCP session has been created\r\n");
                 connList = connection_new_incoming(connList, newsock, (struct sockaddr *)&addr, addrLen);
@@ -1144,8 +1143,7 @@ int lwm2m_server_main(int argc, char *argv[])
 
     if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) < 0) {
         fprintf(stderr, "Error : setsockopt failed %d\r\n", errno);
-               close(sock);
-        return -1;
+        goto exit;
     }
 
     /* Use new API to set protocol type */
@@ -1153,8 +1151,7 @@ int lwm2m_server_main(int argc, char *argv[])
     if (NULL == lwm2mH)
     {
         fprintf(stderr, "lwm2m_init2() failed\r\n");
-               close(sock);
-        return -1;
+        goto exit;
     }
 
     //signal(SIGINT, handle_sigint);
@@ -1180,7 +1177,7 @@ int lwm2m_server_main(int argc, char *argv[])
         if (result != 0)
         {
             fprintf(stderr, "lwm2m_step() failed: 0x%X\r\n", result);
-            return -1;
+            goto exit;
         }
 
         result = select(FD_SETSIZE, &readfds, 0, 0, &tv);
@@ -1203,11 +1200,11 @@ int lwm2m_server_main(int argc, char *argv[])
 
                 if (numBytes == -1)
                 {
-                                       fprintf(stderr, "Error in recvfrom(): %d %s\r\n", errno, strerror(errno));
-                                       if (errno == ENOTCONN) {
-                                               fprintf(stderr, "Endpoint connection has been closed\r\n");
-                                               goto lwm2mserver_err_exit;
-                                       }
+                    fprintf(stderr, "Error in recvfrom(): %d %s\r\n", errno, strerror(errno));
+                    if (errno == ENOTCONN) {
+                        fprintf(stderr, "Endpoint connection has been closed\r\n");
+                        goto exit;
+                    }
                 }
                 else
                 {
@@ -1274,11 +1271,27 @@ int lwm2m_server_main(int argc, char *argv[])
         }
     }
 
-lwm2mserver_err_exit:
-       if (lwm2mH != NULL)
-               lwm2m_close(lwm2mH);
-    close(sock);
-    connection_free(connList);
+exit:
+#ifdef WITH_MBEDTLS
+    if (connList && connList->session) {
+        TLSSession_free(connList->session);
+    }
+    if (tls_context) {
+        TLSCtx_free(tls_context);
+    }
+#endif
+
+    if (lwm2mH) {
+        lwm2m_close(lwm2mH);
+    }
+
+    if (sock >= 0) { 
+        close(sock);
+    }
+
+    if (connList) {
+        connection_free(connList);
+    }
 
 #ifdef MEMORY_TRACE
     if (g_quit == 1)
index bf7424d..030a66d 100644 (file)
@@ -38,5 +38,9 @@
 CSRCS += commandline.c connection.c platform.c memtrace.c
 CFLAGS+=-I$(TOPDIR)/../external/wakaama/core
 
+ifeq ($(CONFIG_LWM2M_SECURITY),y)
+CFLAGS+=-DWITH_MBEDTLS
+endif
+
 DEPPATH += --dep-path wakaama/examples/shared
 VPATH += :wakaama/examples/shared
index f03bbaa..59a054f 100644 (file)
@@ -126,6 +126,9 @@ connection_t * connection_new_incoming(connection_t * connList,
         memcpy(&(connP->addr), addr, addrLen);
         connP->addrLen = addrLen;
         connP->next = connList;
+#ifdef WITH_MBEDTLS
+        connP->session = NULL;
+#endif
     }
 
     return connP;
@@ -224,6 +227,15 @@ void connection_free(connection_t * connList)
         connection_t * nextP;
 
         nextP = connList->next;
+#ifdef WITH_MBEDTLS
+        if (connList->session) {
+            if (TLSSession_free(connList->session)) {
+                fprintf(stderr, "Error: fail to free tls session\r\n");
+            }
+            connList->session = NULL;
+        }
+#endif
+
         free(connList);
 
         connList = nextP;
index a088276..3a386b5 100644 (file)
@@ -1077,13 +1077,6 @@ config USERMAIN_STACKSIZE
                The size of the stack to allocate for the user initialization thread
                that is started as soon as the OS completes its initialization.
 
-config PREAPP_STACKSIZE
-       int "pre-app thread stack size"
-       default 2048
-       ---help---
-               The size of the stack to allocate for the pre-application thread
-               that is started as soon as the OS completes its initialization.
-
 config MPU_STACKGAURD
        bool "protect thread stack"
        default n
index 3826ccb..d82d5c2 100644 (file)
@@ -273,11 +273,13 @@ static inline void os_do_appstart(void)
 
        svdbg("Starting application init thread\n");
 
+#ifdef CONFIG_SYSTEM_PREAPP_INIT
 #ifdef CONFIG_BUILD_PROTECTED
        DEBUGASSERT(USERSPACE->preapp_start != NULL);
-       pid = task_create("appinit", SCHED_PRIORITY_DEFAULT, CONFIG_PREAPP_STACKSIZE, USERSPACE->preapp_start, (FAR char *const *)NULL);
+       pid = task_create("appinit", SCHED_PRIORITY_DEFAULT, CONFIG_SYSTEM_PREAPP_STACKSIZE, USERSPACE->preapp_start, (FAR char *const *)NULL);
 #else
-       pid = task_create("appinit", SCHED_PRIORITY_DEFAULT, CONFIG_PREAPP_STACKSIZE, preapp_start, (FAR char *const *)NULL);
+       pid = task_create("appinit", SCHED_PRIORITY_DEFAULT, CONFIG_SYSTEM_PREAPP_STACKSIZE, preapp_start, (FAR char *const *)NULL);
+#endif
 #endif
 
        svdbg("Starting application main thread\n");