diff options
Diffstat (limited to 'src/cadet/cadet_api.c')
-rw-r--r-- | src/cadet/cadet_api.c | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/src/cadet/cadet_api.c b/src/cadet/cadet_api.c index 12d1ba2da..c65475b10 100644 --- a/src/cadet/cadet_api.c +++ b/src/cadet/cadet_api.c | |||
@@ -1078,13 +1078,9 @@ process_get_peer (struct GNUNET_CADET_Handle *h, | |||
1078 | struct GNUNET_CADET_LocalInfoTunnel *msg; | 1078 | struct GNUNET_CADET_LocalInfoTunnel *msg; |
1079 | size_t esize; | 1079 | size_t esize; |
1080 | size_t msize; | 1080 | size_t msize; |
1081 | unsigned int ch_n; | ||
1082 | unsigned int c_n; | ||
1083 | struct GNUNET_CADET_Hash *conns; | ||
1084 | CADET_ChannelNumber *chns; | ||
1085 | 1081 | ||
1086 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Get Tunnel messasge received\n"); | 1082 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Get Tunnel messasge received\n"); |
1087 | if (NULL == h->info_cb.tunnel_cb) | 1083 | if (NULL == h->info_cb.peer_cb) |
1088 | { | 1084 | { |
1089 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, " ignored\n"); | 1085 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, " ignored\n"); |
1090 | return; | 1086 | return; |
@@ -1093,38 +1089,28 @@ process_get_peer (struct GNUNET_CADET_Handle *h, | |||
1093 | /* Verify message sanity */ | 1089 | /* Verify message sanity */ |
1094 | msg = (struct GNUNET_CADET_LocalInfoTunnel *) message; | 1090 | msg = (struct GNUNET_CADET_LocalInfoTunnel *) message; |
1095 | msize = ntohs (message->size); | 1091 | msize = ntohs (message->size); |
1096 | esize = sizeof (struct GNUNET_CADET_LocalInfoTunnel); | 1092 | esize = sizeof (struct GNUNET_CADET_LocalInfoPeer); |
1097 | if (esize > msize) | 1093 | if (esize > msize) |
1098 | { | 1094 | { |
1099 | GNUNET_break_op (0); | 1095 | GNUNET_break_op (0); |
1100 | h->info_cb.tunnel_cb (h->info_cls, NULL, 0, 0, NULL, NULL, 0, 0); | 1096 | h->info_cb.peer_cb (h->info_cls, NULL, 0, 0, 0, NULL); |
1101 | goto clean_cls; | 1097 | goto clean_cls; |
1102 | } | 1098 | } |
1103 | ch_n = ntohl (msg->channels); | 1099 | // esize += ch_n * sizeof (CADET_ChannelNumber); |
1104 | c_n = ntohl (msg->connections); | 1100 | // esize += c_n * sizeof (struct GNUNET_CADET_Hash); |
1105 | esize += ch_n * sizeof (CADET_ChannelNumber); | ||
1106 | esize += c_n * sizeof (struct GNUNET_CADET_Hash); | ||
1107 | if (msize != esize) | 1101 | if (msize != esize) |
1108 | { | 1102 | { |
1109 | GNUNET_break_op (0); | 1103 | GNUNET_break_op (0); |
1110 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "m:%u, e: %u (%u ch, %u conn)\n", | 1104 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "m:%u, e: %u\n", msize, esize); |
1111 | msize, esize, ch_n, c_n); | 1105 | h->info_cb.peer_cb (h->info_cls, NULL, 0, 0, 0, NULL); |
1112 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u (%u ch, %u conn)\n", | ||
1113 | sizeof (struct GNUNET_CADET_LocalInfoTunnel), | ||
1114 | sizeof (CADET_ChannelNumber), sizeof (struct GNUNET_HashCode)); | ||
1115 | h->info_cb.tunnel_cb (h->info_cls, NULL, 0, 0, NULL, NULL, 0, 0); | ||
1116 | goto clean_cls; | 1106 | goto clean_cls; |
1117 | } | 1107 | } |
1118 | 1108 | ||
1119 | /* Call Callback with tunnel info. */ | 1109 | /* Call Callback with tunnel info. */ |
1120 | conns = (struct GNUNET_CADET_Hash *) &msg[1]; | 1110 | h->info_cb.peer_cb (h->info_cls, &msg->destination, 0, 0, 0, NULL); |
1121 | chns = (CADET_ChannelNumber *) &conns[c_n]; | ||
1122 | h->info_cb.tunnel_cb (h->info_cls, &msg->destination, | ||
1123 | ch_n, c_n, chns, conns, | ||
1124 | ntohs (msg->estate), ntohs (msg->cstate)); | ||
1125 | 1111 | ||
1126 | clean_cls: | 1112 | clean_cls: |
1127 | h->info_cb.tunnel_cb = NULL; | 1113 | h->info_cb.peer_cb = NULL; |
1128 | h->info_cls = NULL; | 1114 | h->info_cls = NULL; |
1129 | } | 1115 | } |
1130 | 1116 | ||