diff options
author | Nathan S. Evans <evans@in.tum.de> | 2011-02-22 15:19:49 +0000 |
---|---|---|
committer | Nathan S. Evans <evans@in.tum.de> | 2011-02-22 15:19:49 +0000 |
commit | 7c0698d2296e00d9544f48819f24ed4319e3fad8 (patch) | |
tree | 343507da792d950d8d24ed11648e433bcad304a9 /src/core/gnunet-service-core.c | |
parent | ac5cf07b590f788946d4b05f8e11b2414493f4eb (diff) | |
download | gnunet-7c0698d2296e00d9544f48819f24ed4319e3fad8.tar.gz gnunet-7c0698d2296e00d9544f48819f24ed4319e3fad8.zip |
Testing and core related changes.
Diffstat (limited to 'src/core/gnunet-service-core.c')
-rw-r--r-- | src/core/gnunet-service-core.c | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index 44052709b..6be71242f 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c | |||
@@ -1498,7 +1498,6 @@ handle_client_iterate_peers (void *cls, | |||
1498 | { | 1498 | { |
1499 | struct GNUNET_MessageHeader done_msg; | 1499 | struct GNUNET_MessageHeader done_msg; |
1500 | struct GNUNET_SERVER_TransmitContext *tc; | 1500 | struct GNUNET_SERVER_TransmitContext *tc; |
1501 | struct GNUNET_PeerIdentity *peer; | ||
1502 | int msize; | 1501 | int msize; |
1503 | /* notify new client about existing neighbours */ | 1502 | /* notify new client about existing neighbours */ |
1504 | 1503 | ||
@@ -1506,11 +1505,6 @@ handle_client_iterate_peers (void *cls, | |||
1506 | tc = GNUNET_SERVER_transmit_context_create (client); | 1505 | tc = GNUNET_SERVER_transmit_context_create (client); |
1507 | if (msize == sizeof(struct GNUNET_MessageHeader)) | 1506 | if (msize == sizeof(struct GNUNET_MessageHeader)) |
1508 | GNUNET_CONTAINER_multihashmap_iterate (neighbours, &queue_connect_message, tc); | 1507 | GNUNET_CONTAINER_multihashmap_iterate (neighbours, &queue_connect_message, tc); |
1509 | else if (msize == sizeof(struct GNUNET_MessageHeader) + sizeof(struct GNUNET_PeerIdentity)) | ||
1510 | { | ||
1511 | peer = (struct GNUNET_PeerIdentity *)&message[1]; | ||
1512 | GNUNET_CONTAINER_multihashmap_get_multiple(neighbours, &peer->hashPubKey, &queue_connect_message, tc); | ||
1513 | } | ||
1514 | else | 1508 | else |
1515 | GNUNET_break(0); | 1509 | GNUNET_break(0); |
1516 | 1510 | ||
@@ -1521,6 +1515,38 @@ handle_client_iterate_peers (void *cls, | |||
1521 | GNUNET_TIME_UNIT_FOREVER_REL); | 1515 | GNUNET_TIME_UNIT_FOREVER_REL); |
1522 | } | 1516 | } |
1523 | 1517 | ||
1518 | /** | ||
1519 | * Handle CORE_ITERATE_PEERS request. | ||
1520 | * | ||
1521 | * @param cls unused | ||
1522 | * @param client client sending the iteration request | ||
1523 | * @param message iteration request message | ||
1524 | */ | ||
1525 | static void | ||
1526 | handle_client_have_peer (void *cls, | ||
1527 | struct GNUNET_SERVER_Client *client, | ||
1528 | const struct GNUNET_MessageHeader *message) | ||
1529 | |||
1530 | { | ||
1531 | struct GNUNET_MessageHeader done_msg; | ||
1532 | struct GNUNET_SERVER_TransmitContext *tc; | ||
1533 | struct GNUNET_PeerIdentity *peer; | ||
1534 | int msize; | ||
1535 | /* notify new client about existing neighbours */ | ||
1536 | |||
1537 | msize = ntohs(message->size); | ||
1538 | tc = GNUNET_SERVER_transmit_context_create (client); | ||
1539 | |||
1540 | peer = (struct GNUNET_PeerIdentity *)&message[1]; | ||
1541 | GNUNET_CONTAINER_multihashmap_get_multiple(neighbours, &peer->hashPubKey, &queue_connect_message, tc); | ||
1542 | |||
1543 | done_msg.size = htons (sizeof (struct GNUNET_MessageHeader)); | ||
1544 | done_msg.type = htons (GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS_END); | ||
1545 | GNUNET_SERVER_transmit_context_append_message (tc, &done_msg); | ||
1546 | GNUNET_SERVER_transmit_context_run (tc, | ||
1547 | GNUNET_TIME_UNIT_FOREVER_REL); | ||
1548 | } | ||
1549 | |||
1524 | 1550 | ||
1525 | /** | 1551 | /** |
1526 | * Handle REQUEST_INFO request. | 1552 | * Handle REQUEST_INFO request. |
@@ -2973,10 +2999,6 @@ handle_client_request_connect (void *cls, | |||
2973 | if ( (GNUNET_YES == n->is_connected) || | 2999 | if ( (GNUNET_YES == n->is_connected) || |
2974 | (n->th != NULL) ) | 3000 | (n->th != NULL) ) |
2975 | { | 3001 | { |
2976 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
2977 | "Core received `%s' request for `%4s', already connected!\n", | ||
2978 | "REQUEST_CONNECT", | ||
2979 | GNUNET_i2s (&cm->peer)); | ||
2980 | if (GNUNET_YES == n->is_connected) | 3002 | if (GNUNET_YES == n->is_connected) |
2981 | GNUNET_STATISTICS_update (stats, | 3003 | GNUNET_STATISTICS_update (stats, |
2982 | gettext_noop ("# connection requests ignored (already connected)"), | 3004 | gettext_noop ("# connection requests ignored (already connected)"), |
@@ -3004,10 +3026,12 @@ handle_client_request_connect (void *cls, | |||
3004 | 1, | 3026 | 1, |
3005 | GNUNET_NO); | 3027 | GNUNET_NO); |
3006 | 3028 | ||
3029 | #if DEBUG_CORE | ||
3007 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 3030 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
3008 | "Core received `%s' request for `%4s', will try to establish connection\n", | 3031 | "Core received `%s' request for `%4s', will try to establish connection\n", |
3009 | "REQUEST_CONNECT", | 3032 | "REQUEST_CONNECT", |
3010 | GNUNET_i2s (&cm->peer)); | 3033 | GNUNET_i2s (&cm->peer)); |
3034 | #endif | ||
3011 | 3035 | ||
3012 | /* ask transport to connect to the peer */ | 3036 | /* ask transport to connect to the peer */ |
3013 | n->th = GNUNET_TRANSPORT_notify_transmit_ready (transport, | 3037 | n->th = GNUNET_TRANSPORT_notify_transmit_ready (transport, |
@@ -4662,6 +4686,9 @@ run (void *cls, | |||
4662 | {&handle_client_iterate_peers, NULL, | 4686 | {&handle_client_iterate_peers, NULL, |
4663 | GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS, | 4687 | GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS, |
4664 | sizeof (struct GNUNET_MessageHeader)}, | 4688 | sizeof (struct GNUNET_MessageHeader)}, |
4689 | {&handle_client_have_peer, NULL, | ||
4690 | GNUNET_MESSAGE_TYPE_CORE_PEER_CONNECTED, | ||
4691 | sizeof (struct GNUNET_MessageHeader) + sizeof(struct GNUNET_PeerIdentity)}, | ||
4665 | {&handle_client_request_info, NULL, | 4692 | {&handle_client_request_info, NULL, |
4666 | GNUNET_MESSAGE_TYPE_CORE_REQUEST_INFO, | 4693 | GNUNET_MESSAGE_TYPE_CORE_REQUEST_INFO, |
4667 | sizeof (struct RequestInfoMessage)}, | 4694 | sizeof (struct RequestInfoMessage)}, |