+ if (service->request_table) {
+ GSList *interface_objs = NULL;
+ ZigBeeServiceInterface *service_interface = NULL;
+
+ interface_objs = service->interface_objs;
+ if (NULL == interface_objs) {
+ Z_LOGE("interface_objs is NULL");
+ } else {
+ while (interface_objs) {
+ service_interface = (ZigBeeServiceInterface *)interface_objs->data;
+
+ /* Remove left request */
+ g_hash_table_foreach(service->request_table,
+ __zblib_service_remove_request_table_iter,
+ service_interface);
+
+ /* Move to next service interface */
+ interface_objs = g_slist_next(interface_objs);
+ }
+ g_hash_table_remove_all(service->request_table);
+ g_hash_table_destroy(service->request_table);
+ service->request_table = NULL;
+ }
+ }
+