aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2014-01-30 02:11:24 +0000
committerBart Polot <bart@net.in.tum.de>2014-01-30 02:11:24 +0000
commita0d89dff8cb4fb57ffd26be1b4dad069523d7be3 (patch)
tree918af905dbee5b80708bed0c389de67dc5bf09bd /src
parent2e64c3f634ccfd05cbecc27a8bc4eea87354f156 (diff)
downloadgnunet-a0d89dff8cb4fb57ffd26be1b4dad069523d7be3.tar.gz
gnunet-a0d89dff8cb4fb57ffd26be1b4dad069523d7be3.zip
- client-side implementation of peer queries
Diffstat (limited to 'src')
-rw-r--r--src/mesh/mesh_api.c46
1 files changed, 43 insertions, 3 deletions
diff --git a/src/mesh/mesh_api.c b/src/mesh/mesh_api.c
index 62b792c4b..79eedb347 100644
--- a/src/mesh/mesh_api.c
+++ b/src/mesh/mesh_api.c
@@ -1033,8 +1033,43 @@ process_ack (struct GNUNET_MESH_Handle *h,
1033 1033
1034 1034
1035 1035
1036/**
1037 * Process a local reply about info on all tunnels, pass info to the user.
1038 *
1039 * @param h Mesh handle.
1040 * @param message Message itself.
1041 */
1042static void
1043process_get_peers (struct GNUNET_MESH_Handle *h,
1044 const struct GNUNET_MessageHeader *message)
1045{
1046 struct GNUNET_MESH_LocalInfoPeer *msg;
1047 uint16_t size;
1036 1048
1037/* 1049 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Get Peer messasge received\n");
1050
1051 if (NULL == h->peers_cb)
1052 {
1053 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, " ignored\n");
1054 return;
1055 }
1056
1057 size = ntohs (message->size);
1058 if (sizeof (struct GNUNET_MESH_LocalInfoPeer) > size)
1059 {
1060 h->peers_cb (h->peers_cls, NULL, -1, 0, 0);
1061 h->peers_cb = NULL;
1062 h->peers_cls = NULL;
1063 return;
1064 }
1065
1066 msg = (struct GNUNET_MESH_LocalInfoPeer *) message;
1067 h->peers_cb (h->peers_cls, &msg->destination,
1068 (int) ntohs (msg->tunnel), ntohs (msg->paths), 0);
1069}
1070
1071
1072/**
1038 * Process a local reply about info on all tunnels, pass info to the user. 1073 * Process a local reply about info on all tunnels, pass info to the user.
1039 * 1074 *
1040 * @param h Mesh handle. 1075 * @param h Mesh handle.
@@ -1076,8 +1111,8 @@ process_get_tunnels (struct GNUNET_MESH_Handle *h,
1076 1111
1077 1112
1078 1113
1079/* 1114/**
1080 * Process a local monitor_channel reply, pass info to the user. 1115 * Process a local tunnel info reply, pass info to the user.
1081 * 1116 *
1082 * @param h Mesh handle. 1117 * @param h Mesh handle.
1083 * @param message Message itself. 1118 * @param message Message itself.
@@ -1185,6 +1220,9 @@ msg_received (void *cls, const struct GNUNET_MessageHeader *msg)
1185// case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL: 1220// case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL:
1186// process_show_channel (h, msg); 1221// process_show_channel (h, msg);
1187// break; 1222// break;
1223 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEERS:
1224 process_get_peers (h, msg);
1225 break;
1188 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS: 1226 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS:
1189 process_get_tunnels (h, msg); 1227 process_get_tunnels (h, msg);
1190 break; 1228 break;
@@ -1473,6 +1511,8 @@ GNUNET_MESH_disconnect (struct GNUNET_MESH_Handle *handle)
1473 case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_DESTROY: 1511 case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_DESTROY:
1474 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNELS: 1512 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNELS:
1475 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL: 1513 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL:
1514 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEER:
1515 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEERS:
1476 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNEL: 1516 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNEL:
1477 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS: 1517 case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS:
1478 break; 1518 break;