diff options
author | xrs <xrs@mail36.net> | 2018-06-26 12:31:04 +0200 |
---|---|---|
committer | xrs <xrs@mail36.net> | 2018-06-26 12:31:04 +0200 |
commit | 0759e1e79accb055a4d175729b631d42486b08dc (patch) | |
tree | 64ca521f4c7327ccb0eab6e38c48eaa50bf183df /src | |
parent | fb3a42054245e0ae84a73a7e71b4973beb229108 (diff) | |
parent | 2bdcb4fa971e582b516286c983469234bedeabde (diff) | |
download | gnunet-0759e1e79accb055a4d175729b631d42486b08dc.tar.gz gnunet-0759e1e79accb055a4d175729b631d42486b08dc.zip |
Merge branch 'master' of ssh://gnunet.org/gnunet
Diffstat (limited to 'src')
-rw-r--r-- | src/cadet/cadet.h | 10 | ||||
-rw-r--r-- | src/cadet/cadet_api.c | 22 | ||||
-rw-r--r-- | src/cadet/gnunet-cadet.c | 52 | ||||
-rw-r--r-- | src/cadet/gnunet-service-cadet.c | 64 | ||||
-rw-r--r-- | src/cadet/gnunet-service-cadet_paths.c | 2 | ||||
-rw-r--r-- | src/cadet/gnunet-service-cadet_peer.c | 35 | ||||
-rw-r--r-- | src/cadet/gnunet-service-cadet_peer.h | 13 | ||||
-rw-r--r-- | src/include/gnunet_cadet_service.h | 4 | ||||
-rw-r--r-- | src/topology/Makefile.am | 1 | ||||
-rw-r--r-- | src/topology/test_gnunet_daemon_topology.c | 32 | ||||
-rw-r--r-- | src/util/tun.c | 4 |
11 files changed, 179 insertions, 60 deletions
diff --git a/src/cadet/cadet.h b/src/cadet/cadet.h index 69be4e537..bac4bc49d 100644 --- a/src/cadet/cadet.h +++ b/src/cadet/cadet.h | |||
@@ -258,6 +258,11 @@ struct GNUNET_CADET_LocalInfoPeer | |||
258 | * #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS | 258 | * #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS |
259 | */ | 259 | */ |
260 | struct GNUNET_MessageHeader header; | 260 | struct GNUNET_MessageHeader header; |
261 | |||
262 | /** | ||
263 | * Offset the peer has in the path this message is about. | ||
264 | */ | ||
265 | uint16_t offset GNUNET_PACKED; | ||
261 | 266 | ||
262 | /** | 267 | /** |
263 | * Number of paths. | 268 | * Number of paths. |
@@ -268,6 +273,11 @@ struct GNUNET_CADET_LocalInfoPeer | |||
268 | * Do we have a tunnel toward this peer? | 273 | * Do we have a tunnel toward this peer? |
269 | */ | 274 | */ |
270 | int16_t tunnel GNUNET_PACKED; | 275 | int16_t tunnel GNUNET_PACKED; |
276 | |||
277 | /** | ||
278 | * We are finished with the paths. | ||
279 | */ | ||
280 | uint16_t finished_with_paths; | ||
271 | 281 | ||
272 | /** | 282 | /** |
273 | * ID of the peer (can be local peer). | 283 | * ID of the peer (can be local peer). |
diff --git a/src/cadet/cadet_api.c b/src/cadet/cadet_api.c index 91054cd4f..b019424f9 100644 --- a/src/cadet/cadet_api.c +++ b/src/cadet/cadet_api.c | |||
@@ -898,7 +898,6 @@ check_get_peer (void *cls, | |||
898 | const struct GNUNET_PeerIdentity *paths_array; | 898 | const struct GNUNET_PeerIdentity *paths_array; |
899 | size_t esize; | 899 | size_t esize; |
900 | unsigned int epaths; | 900 | unsigned int epaths; |
901 | unsigned int paths; | ||
902 | unsigned int peers; | 901 | unsigned int peers; |
903 | 902 | ||
904 | esize = ntohs (message->header.size); | 903 | esize = ntohs (message->header.size); |
@@ -915,17 +914,7 @@ check_get_peer (void *cls, | |||
915 | peers = (esize - msize) / sizeof (struct GNUNET_PeerIdentity); | 914 | peers = (esize - msize) / sizeof (struct GNUNET_PeerIdentity); |
916 | epaths = ntohs (message->paths); | 915 | epaths = ntohs (message->paths); |
917 | paths_array = (const struct GNUNET_PeerIdentity *) &message[1]; | 916 | paths_array = (const struct GNUNET_PeerIdentity *) &message[1]; |
918 | paths = 0; | 917 | |
919 | for (unsigned int i = 0; i < peers; i++) | ||
920 | if (0 == memcmp (&paths_array[i], | ||
921 | &message->destination, | ||
922 | sizeof (struct GNUNET_PeerIdentity))) | ||
923 | paths++; | ||
924 | if (paths != epaths) | ||
925 | { | ||
926 | GNUNET_break (0); | ||
927 | return GNUNET_SYSERR; | ||
928 | } | ||
929 | return GNUNET_OK; | 918 | return GNUNET_OK; |
930 | } | 919 | } |
931 | 920 | ||
@@ -949,6 +938,11 @@ handle_get_peer (void *cls, | |||
949 | 938 | ||
950 | if (NULL == h->info_cb.peer_cb) | 939 | if (NULL == h->info_cb.peer_cb) |
951 | return; | 940 | return; |
941 | |||
942 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
943 | "number of paths %u\n", | ||
944 | ntohs (message->paths)); | ||
945 | |||
952 | paths = ntohs (message->paths); | 946 | paths = ntohs (message->paths); |
953 | paths_array = (const struct GNUNET_PeerIdentity *) &message[1]; | 947 | paths_array = (const struct GNUNET_PeerIdentity *) &message[1]; |
954 | peers = (ntohs (message->header.size) - sizeof (*message)) | 948 | peers = (ntohs (message->header.size) - sizeof (*message)) |
@@ -978,7 +972,9 @@ handle_get_peer (void *cls, | |||
978 | (int) ntohs (message->tunnel), | 972 | (int) ntohs (message->tunnel), |
979 | neighbor, | 973 | neighbor, |
980 | paths, | 974 | paths, |
981 | paths_array); | 975 | paths_array, |
976 | (int) ntohs (message->offset), | ||
977 | (int) ntohs (message->finished_with_paths)); | ||
982 | } | 978 | } |
983 | 979 | ||
984 | 980 | ||
diff --git a/src/cadet/gnunet-cadet.c b/src/cadet/gnunet-cadet.c index ed297196e..67cebf02b 100644 --- a/src/cadet/gnunet-cadet.c +++ b/src/cadet/gnunet-cadet.c | |||
@@ -530,34 +530,48 @@ peer_callback (void *cls, | |||
530 | int tunnel, | 530 | int tunnel, |
531 | int neighbor, | 531 | int neighbor, |
532 | unsigned int n_paths, | 532 | unsigned int n_paths, |
533 | const struct GNUNET_PeerIdentity *paths) | 533 | const struct GNUNET_PeerIdentity *paths, |
534 | int offset, | ||
535 | int finished_with_paths) | ||
534 | { | 536 | { |
535 | unsigned int i; | 537 | unsigned int i; |
536 | const struct GNUNET_PeerIdentity *p; | 538 | const struct GNUNET_PeerIdentity *p; |
537 | 539 | ||
538 | FPRINTF (stdout, | 540 | |
539 | "%s [TUNNEL: %s, NEIGHBOR: %s, PATHS: %u]\n", | 541 | if (GNUNET_YES == finished_with_paths) |
540 | GNUNET_i2s_full (peer), | ||
541 | tunnel ? "Y" : "N", | ||
542 | neighbor ? "Y" : "N", | ||
543 | n_paths); | ||
544 | p = paths; | ||
545 | for (i = 0; i < n_paths && NULL != p;) | ||
546 | { | 542 | { |
543 | GNUNET_SCHEDULER_shutdown(); | ||
544 | return; | ||
545 | } | ||
546 | |||
547 | if (offset == 0){ | ||
548 | FPRINTF (stdout, | ||
549 | "%s [TUNNEL: %s, NEIGHBOR: %s, PATHS: %u]\n", | ||
550 | GNUNET_i2s_full (peer), | ||
551 | tunnel ? "Y" : "N", | ||
552 | neighbor ? "Y" : "N", | ||
553 | n_paths); | ||
554 | }else{ | ||
555 | p = paths; | ||
547 | FPRINTF (stdout, | 556 | FPRINTF (stdout, |
548 | "%s ", | 557 | "Path with offset %u: ", |
549 | GNUNET_i2s (p)); | 558 | offset); |
550 | if (0 == memcmp (p, | 559 | for (i = 0; i < offset && NULL != p;) |
551 | peer, | ||
552 | sizeof (*p))) | ||
553 | { | 560 | { |
554 | FPRINTF (stdout, "\n"); | 561 | FPRINTF (stdout, |
555 | i++; | 562 | "%s ", |
563 | GNUNET_i2s (p)); | ||
564 | i++; | ||
565 | p++; | ||
556 | } | 566 | } |
557 | p++; | 567 | |
568 | FPRINTF (stdout, | ||
569 | "\n"); | ||
570 | |||
558 | } | 571 | } |
572 | |||
559 | 573 | ||
560 | GNUNET_SCHEDULER_shutdown(); | 574 | |
561 | } | 575 | } |
562 | 576 | ||
563 | 577 | ||
diff --git a/src/cadet/gnunet-service-cadet.c b/src/cadet/gnunet-service-cadet.c index 38037e92f..dd693731f 100644 --- a/src/cadet/gnunet-service-cadet.c +++ b/src/cadet/gnunet-service-cadet.c | |||
@@ -822,7 +822,7 @@ get_all_peers_iterator (void *cls, | |||
822 | struct GNUNET_CADET_LocalInfoPeer *msg; | 822 | struct GNUNET_CADET_LocalInfoPeer *msg; |
823 | 823 | ||
824 | env = GNUNET_MQ_msg (msg, | 824 | env = GNUNET_MQ_msg (msg, |
825 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS); | 825 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS); |
826 | msg->destination = *peer; | 826 | msg->destination = *peer; |
827 | msg->paths = htons (GCP_count_paths (p)); | 827 | msg->paths = htons (GCP_count_paths (p)); |
828 | msg->tunnel = htons (NULL != GCP_get_tunnel (p, | 828 | msg->tunnel = htons (NULL != GCP_get_tunnel (p, |
@@ -892,6 +892,11 @@ path_info_iterator (void *cls, | |||
892 | env = GNUNET_MQ_msg_extra (resp, | 892 | env = GNUNET_MQ_msg_extra (resp, |
893 | path_size, | 893 | path_size, |
894 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER); | 894 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER); |
895 | |||
896 | |||
897 | resp->offset = htons(off); | ||
898 | resp->finished_with_paths = htons(0); | ||
899 | |||
895 | id = (struct GNUNET_PeerIdentity *) &resp[1]; | 900 | id = (struct GNUNET_PeerIdentity *) &resp[1]; |
896 | 901 | ||
897 | /* Don't copy first peer. First peer is always the local one. Last | 902 | /* Don't copy first peer. First peer is always the local one. Last |
@@ -905,6 +910,45 @@ path_info_iterator (void *cls, | |||
905 | return GNUNET_YES; | 910 | return GNUNET_YES; |
906 | } | 911 | } |
907 | 912 | ||
913 | /** | ||
914 | * Getting summary information about the number of paths and if a tunnel exists, | ||
915 | * and the indirect paths to a peer, if there are ones. | ||
916 | * | ||
917 | * @param cls Closure (). | ||
918 | * @param peer Peer ID (tunnel remote peer). | ||
919 | * @param value Peer info. | ||
920 | * @return #GNUNET_YES, to keep iterating. | ||
921 | */ | ||
922 | static void | ||
923 | get_peer_info (void *cls, | ||
924 | const struct GNUNET_PeerIdentity *peer, | ||
925 | struct CadetPeer *p) | ||
926 | { | ||
927 | struct CadetClient *c = cls; | ||
928 | struct GNUNET_MQ_Envelope *env; | ||
929 | struct GNUNET_CADET_LocalInfoPeer *msg; | ||
930 | |||
931 | |||
932 | env = GNUNET_MQ_msg (msg, | ||
933 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER); | ||
934 | |||
935 | msg->offset = htons(0); | ||
936 | msg->destination = *peer; | ||
937 | msg->paths = htons (GCP_count_paths (p)); | ||
938 | msg->tunnel = htons (NULL != GCP_get_tunnel (p, | ||
939 | GNUNET_NO)); | ||
940 | msg->finished_with_paths = htons(0); | ||
941 | |||
942 | GNUNET_MQ_send (c->mq, | ||
943 | env); | ||
944 | |||
945 | GCP_iterate_indirect_paths(p, | ||
946 | &path_info_iterator, | ||
947 | c->mq); | ||
948 | |||
949 | } | ||
950 | |||
951 | |||
908 | 952 | ||
909 | /** | 953 | /** |
910 | * Handler for client's SHOW_PEER request. | 954 | * Handler for client's SHOW_PEER request. |
@@ -919,19 +963,23 @@ handle_show_peer (void *cls, | |||
919 | struct CadetClient *c = cls; | 963 | struct CadetClient *c = cls; |
920 | struct CadetPeer *p; | 964 | struct CadetPeer *p; |
921 | struct GNUNET_MQ_Envelope *env; | 965 | struct GNUNET_MQ_Envelope *env; |
922 | struct GNUNET_MessageHeader *resp; | 966 | struct GNUNET_CADET_LocalInfoPeer *resp; |
923 | 967 | ||
924 | p = GCP_get (&msg->peer, | 968 | p = GCP_get (&msg->peer, |
925 | GNUNET_NO); | 969 | GNUNET_NO); |
926 | if (NULL != p) | 970 | if (NULL != p){ |
927 | GCP_iterate_paths (p, | 971 | get_peer_info(c, &(msg->peer), p); |
928 | &path_info_iterator, | 972 | } |
929 | c->mq); | 973 | |
930 | /* Send message with 0/0 to indicate the end */ | 974 | |
931 | env = GNUNET_MQ_msg (resp, | 975 | env = GNUNET_MQ_msg (resp, |
932 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER_END); | 976 | GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER); |
977 | resp->finished_with_paths = htons(1); | ||
978 | resp->destination = msg->peer; | ||
979 | |||
933 | GNUNET_MQ_send (c->mq, | 980 | GNUNET_MQ_send (c->mq, |
934 | env); | 981 | env); |
982 | |||
935 | GNUNET_SERVICE_client_continue (c->client); | 983 | GNUNET_SERVICE_client_continue (c->client); |
936 | } | 984 | } |
937 | 985 | ||
diff --git a/src/cadet/gnunet-service-cadet_paths.c b/src/cadet/gnunet-service-cadet_paths.c index e77d54e55..593617ff6 100644 --- a/src/cadet/gnunet-service-cadet_paths.c +++ b/src/cadet/gnunet-service-cadet_paths.c | |||
@@ -17,7 +17,7 @@ | |||
17 | */ | 17 | */ |
18 | /** | 18 | /** |
19 | * @file cadet/gnunet-service-cadet_paths.c | 19 | * @file cadet/gnunet-service-cadet_paths.c |
20 | * @brief Information we track per path. | 20 | * @brief Information we track per path. |
21 | * @author Bartlomiej Polot | 21 | * @author Bartlomiej Polot |
22 | * @author Christian Grothoff | 22 | * @author Christian Grothoff |
23 | */ | 23 | */ |
diff --git a/src/cadet/gnunet-service-cadet_peer.c b/src/cadet/gnunet-service-cadet_peer.c index 9cd1f5229..8e536e376 100644 --- a/src/cadet/gnunet-service-cadet_peer.c +++ b/src/cadet/gnunet-service-cadet_peer.c | |||
@@ -1235,6 +1235,41 @@ GCP_iterate_paths (struct CadetPeer *cp, | |||
1235 | return ret; | 1235 | return ret; |
1236 | } | 1236 | } |
1237 | 1237 | ||
1238 | /** | ||
1239 | * Iterate over the paths to a peer without direct link. | ||
1240 | * | ||
1241 | * @param cp Peer to get path info. | ||
1242 | * @param callback Function to call for every path. | ||
1243 | * @param callback_cls Closure for @a callback. | ||
1244 | * @return Number of iterated paths. | ||
1245 | */ | ||
1246 | unsigned int | ||
1247 | GCP_iterate_indirect_paths (struct CadetPeer *cp, | ||
1248 | GCP_PathIterator callback, | ||
1249 | void *callback_cls) | ||
1250 | { | ||
1251 | unsigned int ret = 0; | ||
1252 | |||
1253 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
1254 | "Iterating over paths to peer %s without direct link\n", | ||
1255 | GCP_2s (cp)); | ||
1256 | for (unsigned int i=1;i<cp->path_dll_length;i++) | ||
1257 | { | ||
1258 | for (struct CadetPeerPathEntry *pe = cp->path_heads[i]; | ||
1259 | NULL != pe; | ||
1260 | pe = pe->next) | ||
1261 | { | ||
1262 | ret++; | ||
1263 | if (GNUNET_NO == | ||
1264 | callback (callback_cls, | ||
1265 | pe->path, | ||
1266 | i)) | ||
1267 | return ret; | ||
1268 | } | ||
1269 | } | ||
1270 | return ret; | ||
1271 | } | ||
1272 | |||
1238 | 1273 | ||
1239 | /** | 1274 | /** |
1240 | * Iterate over the paths to @a cp where | 1275 | * Iterate over the paths to @a cp where |
diff --git a/src/cadet/gnunet-service-cadet_peer.h b/src/cadet/gnunet-service-cadet_peer.h index 2357a293d..3b8b31b9a 100644 --- a/src/cadet/gnunet-service-cadet_peer.h +++ b/src/cadet/gnunet-service-cadet_peer.h | |||
@@ -139,6 +139,19 @@ GCP_iterate_paths (struct CadetPeer *cp, | |||
139 | GCP_PathIterator callback, | 139 | GCP_PathIterator callback, |
140 | void *callback_cls); | 140 | void *callback_cls); |
141 | 141 | ||
142 | /** | ||
143 | * Iterate over the paths to a peer without direct link. | ||
144 | * | ||
145 | * @param cp Peer to get path info. | ||
146 | * @param callback Function to call for every path. | ||
147 | * @param callback_cls Closure for @a callback. | ||
148 | * @return Number of iterated paths. | ||
149 | */ | ||
150 | unsigned int | ||
151 | GCP_iterate_indirect_paths (struct CadetPeer *cp, | ||
152 | GCP_PathIterator callback, | ||
153 | void *callback_cls); | ||
154 | |||
142 | 155 | ||
143 | /** | 156 | /** |
144 | * Iterate over the paths to @a peer where | 157 | * Iterate over the paths to @a peer where |
diff --git a/src/include/gnunet_cadet_service.h b/src/include/gnunet_cadet_service.h index 4f35a3f1f..552763055 100644 --- a/src/include/gnunet_cadet_service.h +++ b/src/include/gnunet_cadet_service.h | |||
@@ -425,7 +425,9 @@ typedef void | |||
425 | int tunnel, | 425 | int tunnel, |
426 | int neighbor, | 426 | int neighbor, |
427 | unsigned int n_paths, | 427 | unsigned int n_paths, |
428 | const struct GNUNET_PeerIdentity *paths); | 428 | const struct GNUNET_PeerIdentity *paths, |
429 | int offset, | ||
430 | int finished_with_paths); | ||
429 | 431 | ||
430 | 432 | ||
431 | /** | 433 | /** |
diff --git a/src/topology/Makefile.am b/src/topology/Makefile.am index 97e4652d0..ae69ee8bc 100644 --- a/src/topology/Makefile.am +++ b/src/topology/Makefile.am | |||
@@ -56,6 +56,7 @@ test_gnunet_daemon_topology_SOURCES = \ | |||
56 | test_gnunet_daemon_topology.c | 56 | test_gnunet_daemon_topology.c |
57 | test_gnunet_daemon_topology_LDADD = \ | 57 | test_gnunet_daemon_topology_LDADD = \ |
58 | $(top_builddir)/src/testbed/libgnunettestbed.la \ | 58 | $(top_builddir)/src/testbed/libgnunettestbed.la \ |
59 | $(top_builddir)/src/statistics/libgnunetstatistics.la \ | ||
59 | $(top_builddir)/src/util/libgnunetutil.la | 60 | $(top_builddir)/src/util/libgnunetutil.la |
60 | 61 | ||
61 | EXTRA_DIST = \ | 62 | EXTRA_DIST = \ |
diff --git a/src/topology/test_gnunet_daemon_topology.c b/src/topology/test_gnunet_daemon_topology.c index bf9121eb0..5359c280e 100644 --- a/src/topology/test_gnunet_daemon_topology.c +++ b/src/topology/test_gnunet_daemon_topology.c | |||
@@ -11,7 +11,7 @@ | |||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 15 | You should have received a copy of the GNU Affero General Public License |
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | */ | 17 | */ |
@@ -28,7 +28,7 @@ | |||
28 | 28 | ||
29 | #define NUM_PEERS 8 | 29 | #define NUM_PEERS 8 |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * The threshold defines the number of connection that are needed | 32 | * The threshold defines the number of connection that are needed |
33 | * for one peer to pass the test. Be aware that setting NUM_PEERS | 33 | * for one peer to pass the test. Be aware that setting NUM_PEERS |
34 | * too high can cause bandwidth problems for the testing peers. | 34 | * too high can cause bandwidth problems for the testing peers. |
@@ -69,7 +69,7 @@ static struct GNUNET_SCHEDULER_Task *timeout_tid; | |||
69 | /* | 69 | /* |
70 | * Peer context for every testbed peer. | 70 | * Peer context for every testbed peer. |
71 | */ | 71 | */ |
72 | struct peerctx | 72 | struct peerctx |
73 | { | 73 | { |
74 | int index; | 74 | int index; |
75 | struct GNUNET_STATISTICS_Handle *statistics; | 75 | struct GNUNET_STATISTICS_Handle *statistics; |
@@ -108,7 +108,7 @@ timeout_task (void *cls) | |||
108 | 108 | ||
109 | /* | 109 | /* |
110 | * The function is called every time the topology of connected | 110 | * The function is called every time the topology of connected |
111 | * peers to a peer changes. | 111 | * peers to a peer changes. |
112 | */ | 112 | */ |
113 | int | 113 | int |
114 | statistics_iterator (void *cls, | 114 | statistics_iterator (void *cls, |
@@ -120,10 +120,10 @@ statistics_iterator (void *cls, | |||
120 | struct peerctx *p_ctx = (struct peerctx*) cls; | 120 | struct peerctx *p_ctx = (struct peerctx*) cls; |
121 | 121 | ||
122 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 122 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
123 | "Peer %d: %s = %d\n", | 123 | "Peer %d: %s = %llu\n", |
124 | p_ctx->index, | 124 | p_ctx->index, |
125 | name, | 125 | name, |
126 | value); | 126 | (unsigned long long) value); |
127 | 127 | ||
128 | if (p_ctx->connections < value) | 128 | if (p_ctx->connections < value) |
129 | p_ctx->connections = value; | 129 | p_ctx->connections = value; |
@@ -152,7 +152,7 @@ static void * | |||
152 | ca_statistics (void *cls, | 152 | ca_statistics (void *cls, |
153 | const struct GNUNET_CONFIGURATION_Handle *cfg) | 153 | const struct GNUNET_CONFIGURATION_Handle *cfg) |
154 | { | 154 | { |
155 | return GNUNET_STATISTICS_create ("topology", cfg); | 155 | return GNUNET_STATISTICS_create ("topology", cfg); |
156 | } | 156 | } |
157 | 157 | ||
158 | 158 | ||
@@ -161,7 +161,7 @@ da_statistics (void *cls, | |||
161 | void *op_result) | 161 | void *op_result) |
162 | { | 162 | { |
163 | struct peerctx *p_ctx = (struct peerctx *) cls; | 163 | struct peerctx *p_ctx = (struct peerctx *) cls; |
164 | 164 | ||
165 | GNUNET_break (GNUNET_OK == GNUNET_STATISTICS_watch_cancel | 165 | GNUNET_break (GNUNET_OK == GNUNET_STATISTICS_watch_cancel |
166 | (p_ctx->statistics, "topology", "# peers connected", | 166 | (p_ctx->statistics, "topology", "# peers connected", |
167 | statistics_iterator, p_ctx)); | 167 | statistics_iterator, p_ctx)); |
@@ -172,8 +172,8 @@ da_statistics (void *cls, | |||
172 | GNUNET_free (p_ctx); | 172 | GNUNET_free (p_ctx); |
173 | } | 173 | } |
174 | 174 | ||
175 | 175 | ||
176 | static void | 176 | static void |
177 | service_connect_complete (void *cls, | 177 | service_connect_complete (void *cls, |
178 | struct GNUNET_TESTBED_Operation *op, | 178 | struct GNUNET_TESTBED_Operation *op, |
179 | void *ca_result, | 179 | void *ca_result, |
@@ -182,7 +182,7 @@ service_connect_complete (void *cls, | |||
182 | int ret; | 182 | int ret; |
183 | struct peerctx *p_ctx = (struct peerctx*) cls; | 183 | struct peerctx *p_ctx = (struct peerctx*) cls; |
184 | 184 | ||
185 | if (NULL == ca_result) | 185 | if (NULL == ca_result) |
186 | GNUNET_SCHEDULER_shutdown(); | 186 | GNUNET_SCHEDULER_shutdown(); |
187 | 187 | ||
188 | p_ctx->statistics = ca_result; | 188 | p_ctx->statistics = ca_result; |
@@ -245,20 +245,20 @@ do_connect (void *cls, | |||
245 | peers[i], peers[i+1]); | 245 | peers[i], peers[i+1]); |
246 | } | 246 | } |
247 | 247 | ||
248 | op[i] = | 248 | op[i] = |
249 | GNUNET_TESTBED_service_connect (cls, | 249 | GNUNET_TESTBED_service_connect (cls, |
250 | peers[i], | 250 | peers[i], |
251 | "statistics", | 251 | "statistics", |
252 | service_connect_complete, | 252 | service_connect_complete, |
253 | p_ctx, /* cls of completion cb */ | 253 | p_ctx, /* cls of completion cb */ |
254 | ca_statistics, /* connect adapter */ | 254 | ca_statistics, /* connect adapter */ |
255 | da_statistics, /* disconnect adapter */ | 255 | da_statistics, /* disconnect adapter */ |
256 | p_ctx); | 256 | p_ctx); |
257 | 257 | ||
258 | } | 258 | } |
259 | 259 | ||
260 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); | 260 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); |
261 | timeout_tid = | 261 | timeout_tid = |
262 | GNUNET_SCHEDULER_add_delayed (TIMEOUT, | 262 | GNUNET_SCHEDULER_add_delayed (TIMEOUT, |
263 | &timeout_task, | 263 | &timeout_task, |
264 | NULL); | 264 | NULL); |
diff --git a/src/util/tun.c b/src/util/tun.c index f85f72209..25e729e58 100644 --- a/src/util/tun.c +++ b/src/util/tun.c | |||
@@ -11,7 +11,7 @@ | |||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 15 | You should have received a copy of the GNU Affero General Public License |
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | */ | 17 | */ |
@@ -23,7 +23,7 @@ | |||
23 | * @author Christian Grothoff | 23 | * @author Christian Grothoff |
24 | */ | 24 | */ |
25 | #include "platform.h" | 25 | #include "platform.h" |
26 | #include "gnunet_tun_lib.h" | 26 | #include "gnunet_util_lib.h" |
27 | 27 | ||
28 | /** | 28 | /** |
29 | * IP TTL we use for packets that we assemble (8 bit unsigned integer) | 29 | * IP TTL we use for packets that we assemble (8 bit unsigned integer) |