diff options
author | Bart Polot <bart@net.in.tum.de> | 2014-01-30 02:11:24 +0000 |
---|---|---|
committer | Bart Polot <bart@net.in.tum.de> | 2014-01-30 02:11:24 +0000 |
commit | a0d89dff8cb4fb57ffd26be1b4dad069523d7be3 (patch) | |
tree | 918af905dbee5b80708bed0c389de67dc5bf09bd /src | |
parent | 2e64c3f634ccfd05cbecc27a8bc4eea87354f156 (diff) | |
download | gnunet-a0d89dff8cb4fb57ffd26be1b4dad069523d7be3.tar.gz gnunet-a0d89dff8cb4fb57ffd26be1b4dad069523d7be3.zip |
- client-side implementation of peer queries
Diffstat (limited to 'src')
-rw-r--r-- | src/mesh/mesh_api.c | 46 |
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 | */ | ||
1042 | static void | ||
1043 | process_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; |