| 2664 | } |
| 2665 | |
| 2666 | static void freeClusterManagerNode(clusterManagerNode *node) { |
| 2667 | if (node->context != NULL) redisFree(node->context); |
| 2668 | if (node->friends != NULL) { |
| 2669 | listIter li; |
| 2670 | listNode *ln; |
| 2671 | listRewind(node->friends,&li); |
| 2672 | while ((ln = listNext(&li)) != NULL) { |
| 2673 | clusterManagerNode *fn = ln->value; |
| 2674 | freeClusterManagerNode(fn); |
| 2675 | } |
| 2676 | listRelease(node->friends); |
| 2677 | node->friends = NULL; |
| 2678 | } |
| 2679 | if (node->name != NULL) sdsfree(node->name); |
| 2680 | if (node->replicate != NULL) sdsfree(node->replicate); |
| 2681 | if ((node->flags & CLUSTER_MANAGER_FLAG_FRIEND) && node->ip) |
| 2682 | sdsfree(node->ip); |
| 2683 | int i; |
| 2684 | if (node->migrating != NULL) { |
| 2685 | for (i = 0; i < node->migrating_count; i++) sdsfree(node->migrating[i]); |
| 2686 | zfree(node->migrating); |
| 2687 | } |
| 2688 | if (node->importing != NULL) { |
| 2689 | for (i = 0; i < node->importing_count; i++) sdsfree(node->importing[i]); |
| 2690 | zfree(node->importing); |
| 2691 | } |
| 2692 | if (node->flags_str != NULL) { |
| 2693 | freeClusterManagerNodeFlags(node->flags_str); |
| 2694 | node->flags_str = NULL; |
| 2695 | } |
| 2696 | zfree(node); |
| 2697 | } |
| 2698 | |
| 2699 | static void freeClusterManager(void) { |
| 2700 | listIter li; |
no test coverage detected