Add thread_network_destroy API with unittest
[platform/core/api/thread.git] / src / thread-network.c
index 1f62717..f222179 100644 (file)
@@ -84,6 +84,29 @@ int thread_network_create(thread_network_h *network)
        return THREAD_ERROR_NONE;
 }
 
+int thread_network_destroy(thread_network_h network)
+{
+       FUNC_ENTRY;
+       THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON);
+       THREAD_CHECK_INIT_STATUS();
+       THREAD_VALIDATE_INPUT_PARAMETER(network);
+
+       thread_network_s *current_network = network;
+
+       if (current_network->is_network_active) {
+               THREAD_DBG("Thread network active, can't be destroyed:: \
+                                               First Reset the Network");
+               FUNC_EXIT;
+               return THREAD_ERROR_OPERATION_FAILED;
+       }
+
+       _thread_network_free(current_network);
+       current_network = NULL;
+
+       FUNC_EXIT;
+       return THREAD_ERROR_NONE;
+}
+
 /* Network leader/Creator */
 int thread_network_create_operational_network(thread_instance_h instance,
        const char *name, const char *key, const char *pskc, uint32_t channel,