diff options
author | Supriti Singh <supritisingh08@gmail.com> | 2014-08-21 22:45:13 +0000 |
---|---|---|
committer | Supriti Singh <supritisingh08@gmail.com> | 2014-08-21 22:45:13 +0000 |
commit | dfdf4604dbc772f414cf0776f247e639f3f132bc (patch) | |
tree | b3c61128741c2452f130e57da327e0aeba0d5300 /src | |
parent | 28a7927307f5919892c4df4cf475f0d06bb60830 (diff) | |
download | gnunet-dfdf4604dbc772f414cf0776f247e639f3f132bc.tar.gz gnunet-dfdf4604dbc772f414cf0776f247e639f3f132bc.zip |
Free successor_hash_map
Diffstat (limited to 'src')
-rw-r--r-- | src/dht/gnunet-service-xdht_neighbours.c | 2 | ||||
-rw-r--r-- | src/dht/gnunet_dht_profiler.c | 30 |
2 files changed, 25 insertions, 7 deletions
diff --git a/src/dht/gnunet-service-xdht_neighbours.c b/src/dht/gnunet-service-xdht_neighbours.c index d4d640a82..51b651670 100644 --- a/src/dht/gnunet-service-xdht_neighbours.c +++ b/src/dht/gnunet-service-xdht_neighbours.c | |||
@@ -3471,7 +3471,7 @@ handle_dht_p2p_put (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
3471 | GNUNET_break_op (0); | 3471 | GNUNET_break_op (0); |
3472 | return GNUNET_OK; | 3472 | return GNUNET_OK; |
3473 | } | 3473 | } |
3474 | DEBUG("GET FOR DATA_SIZE = %lu\n",msize); | 3474 | |
3475 | GNUNET_STATISTICS_update (GDS_stats, | 3475 | GNUNET_STATISTICS_update (GDS_stats, |
3476 | gettext_noop | 3476 | gettext_noop |
3477 | ("# Bytes received from other peers"), (int64_t) msize, | 3477 | ("# Bytes received from other peers"), (int64_t) msize, |
diff --git a/src/dht/gnunet_dht_profiler.c b/src/dht/gnunet_dht_profiler.c index a2bb1fca1..fbf20f028 100644 --- a/src/dht/gnunet_dht_profiler.c +++ b/src/dht/gnunet_dht_profiler.c | |||
@@ -785,6 +785,17 @@ start_profiling() | |||
785 | } | 785 | } |
786 | } | 786 | } |
787 | 787 | ||
788 | static int | ||
789 | hashmap_iterate_remove(void *cls, | ||
790 | const struct GNUNET_HashCode *key, | ||
791 | void *value) | ||
792 | { | ||
793 | struct GNUNET_HashCode *remove_key = key; | ||
794 | GNUNET_assert(GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove(successor_peer_hashmap, key, value)); | ||
795 | return GNUNET_YES; | ||
796 | } | ||
797 | |||
798 | |||
788 | static unsigned int tries; | 799 | static unsigned int tries; |
789 | 800 | ||
790 | /** | 801 | /** |
@@ -814,8 +825,7 @@ successor_stats_cont (void *cls, | |||
814 | start_val = | 825 | start_val = |
815 | (struct GNUNET_HashCode *) GNUNET_CONTAINER_multihashmap_get(successor_peer_hashmap, | 826 | (struct GNUNET_HashCode *) GNUNET_CONTAINER_multihashmap_get(successor_peer_hashmap, |
816 | start_key); | 827 | start_key); |
817 | val = GNUNET_new(struct GNUNET_HashCode); | 828 | |
818 | key = GNUNET_new(struct GNUNET_HashCode); | ||
819 | val = start_val; | 829 | val = start_val; |
820 | for (count = 0; count < num_peers; count++) | 830 | for (count = 0; count < num_peers; count++) |
821 | { | 831 | { |
@@ -835,12 +845,20 @@ successor_stats_cont (void *cls, | |||
835 | break; | 845 | break; |
836 | } | 846 | } |
837 | /* If a peer has its own identity as its successor. */ | 847 | /* If a peer has its own identity as its successor. */ |
838 | if (0 == memcmp(&key, &val, sizeof (struct GNUNET_HashCode))) | 848 | if (0 == memcmp(key, val, sizeof (struct GNUNET_HashCode))) |
839 | { | 849 | { |
840 | break; | 850 | break; |
841 | } | 851 | } |
842 | } | 852 | } |
843 | 853 | ||
854 | GNUNET_assert(GNUNET_SYSERR != | ||
855 | GNUNET_CONTAINER_multihashmap_iterate (successor_peer_hashmap, | ||
856 | hashmap_iterate_remove, | ||
857 | NULL)); | ||
858 | |||
859 | successor_peer_hashmap = GNUNET_CONTAINER_multihashmap_create (num_peers, | ||
860 | GNUNET_NO); | ||
861 | |||
844 | if ((start_val == val) && (count == num_peers)) | 862 | if ((start_val == val) && (count == num_peers)) |
845 | { | 863 | { |
846 | DEBUG("CIRCLE COMPLETED after %u tries", tries); | 864 | DEBUG("CIRCLE COMPLETED after %u tries", tries); |
@@ -849,6 +867,7 @@ successor_stats_cont (void *cls, | |||
849 | //are fill atleast O(log N) and then start with the experiments. | 867 | //are fill atleast O(log N) and then start with the experiments. |
850 | if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) | 868 | if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) |
851 | start_profiling(); | 869 | start_profiling(); |
870 | |||
852 | return; | 871 | return; |
853 | } | 872 | } |
854 | else | 873 | else |
@@ -859,7 +878,6 @@ successor_stats_cont (void *cls, | |||
859 | "Maximum tries %u exceeded while checking successor TOTAL TRIES %u" | 878 | "Maximum tries %u exceeded while checking successor TOTAL TRIES %u" |
860 | " cirle formation. Exiting\n", | 879 | " cirle formation. Exiting\n", |
861 | max_searches,tries); | 880 | max_searches,tries); |
862 | //FIXME: FREE HASHMAP | ||
863 | if (GNUNET_SCHEDULER_NO_TASK != successor_stats_task) | 881 | if (GNUNET_SCHEDULER_NO_TASK != successor_stats_task) |
864 | { | 882 | { |
865 | successor_stats_task = GNUNET_SCHEDULER_NO_TASK; | 883 | successor_stats_task = GNUNET_SCHEDULER_NO_TASK; |
@@ -952,6 +970,8 @@ collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
952 | 970 | ||
953 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n"); | 971 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n"); |
954 | GNUNET_assert(NULL != testbed_handles); | 972 | GNUNET_assert(NULL != testbed_handles); |
973 | successor_peer_hashmap = GNUNET_CONTAINER_multihashmap_create (num_peers, | ||
974 | GNUNET_NO); | ||
955 | successor_stats_op = | 975 | successor_stats_op = |
956 | GNUNET_TESTBED_get_statistics (num_peers, testbed_handles, | 976 | GNUNET_TESTBED_get_statistics (num_peers, testbed_handles, |
957 | "dht", NULL, | 977 | "dht", NULL, |
@@ -1014,8 +1034,6 @@ service_started (void *cls, | |||
1014 | struct Collect_Stat_Context *collect_stat_cls = GNUNET_new(struct Collect_Stat_Context); | 1034 | struct Collect_Stat_Context *collect_stat_cls = GNUNET_new(struct Collect_Stat_Context); |
1015 | collect_stat_cls->service_connect_ctx = cls; | 1035 | collect_stat_cls->service_connect_ctx = cls; |
1016 | collect_stat_cls->op = op; | 1036 | collect_stat_cls->op = op; |
1017 | successor_peer_hashmap = GNUNET_CONTAINER_multihashmap_create (num_peers, | ||
1018 | GNUNET_NO); | ||
1019 | successor_stats_task = GNUNET_SCHEDULER_add_delayed (delay, | 1037 | successor_stats_task = GNUNET_SCHEDULER_add_delayed (delay, |
1020 | &collect_stats, | 1038 | &collect_stats, |
1021 | collect_stat_cls); | 1039 | collect_stat_cls); |