aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_udp_broadcasting.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-01-13 16:59:57 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-01-13 16:59:57 +0000
commit1257490cb630ade315a196a724d0233e662afb2c (patch)
tree0d9c01593a1aa73d8f6490127b640d67da69b54c /src/transport/plugin_transport_udp_broadcasting.c
parent35d79cb1941c9f9607195b8760d8a14d836e6397 (diff)
downloadgnunet-1257490cb630ade315a196a724d0233e662afb2c.tar.gz
gnunet-1257490cb630ade315a196a724d0233e662afb2c.zip
implementing 0003268 to inbound information in HELLO addresses
All transport plugin functions are modified to use HELLO addresses instead of peer,address,address_length All plugins are modified to use HELLO addresses internally This commit can break transport functionality: core tests on my system still pass, but transport tests may still fail, errors messages may occurs or crashs Will be fixed asap
Diffstat (limited to 'src/transport/plugin_transport_udp_broadcasting.c')
-rw-r--r--src/transport/plugin_transport_udp_broadcasting.c40
1 files changed, 14 insertions, 26 deletions
diff --git a/src/transport/plugin_transport_udp_broadcasting.c b/src/transport/plugin_transport_udp_broadcasting.c
index c17a3ccff..669ebdb01 100644
--- a/src/transport/plugin_transport_udp_broadcasting.c
+++ b/src/transport/plugin_transport_udp_broadcasting.c
@@ -135,6 +135,7 @@ broadcast_ipv6_mst_cb (void *cls, void *client,
135{ 135{
136 struct Plugin *plugin = cls; 136 struct Plugin *plugin = cls;
137 struct Mstv6Context *mc = client; 137 struct Mstv6Context *mc = client;
138 struct GNUNET_HELLO_Address *address;
138 const struct GNUNET_MessageHeader *hello; 139 const struct GNUNET_MessageHeader *hello;
139 const struct UDP_Beacon_Message *msg; 140 const struct UDP_Beacon_Message *msg;
140 struct GNUNET_ATS_Information atsi; 141 struct GNUNET_ATS_Information atsi;
@@ -155,19 +156,12 @@ broadcast_ipv6_mst_cb (void *cls, void *client,
155 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED); 156 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED);
156 157
157 hello = (struct GNUNET_MessageHeader *) &msg[1]; 158 hello = (struct GNUNET_MessageHeader *) &msg[1];
158 plugin->env->receive (plugin->env->cls, 159 address = GNUNET_HELLO_address_allocate (&msg->sender, PLUGIN_NAME,
159 &msg->sender, 160 (const char *) &mc->addr, sizeof (mc->addr), GNUNET_HELLO_ADDRESS_INFO_INBOUND);
160 hello, 161 plugin->env->receive (plugin->env->cls, address, NULL, hello);
161 NULL, 162 plugin->env->update_address_metrics (plugin->env->cls, address,
162 (const char *) &mc->addr, 163 NULL, &atsi, 1);
163 sizeof (mc->addr)); 164 GNUNET_HELLO_address_free (address);
164 plugin->env->update_address_metrics (plugin->env->cls,
165 &msg->sender,
166 (const char *) &mc->addr,
167 sizeof (mc->addr),
168 NULL,
169 &atsi, 1);
170
171 GNUNET_STATISTICS_update (plugin->env->stats, 165 GNUNET_STATISTICS_update (plugin->env->stats,
172 _ 166 _
173 ("# IPv6 multicast HELLO beacons received via udp"), 167 ("# IPv6 multicast HELLO beacons received via udp"),
@@ -183,6 +177,7 @@ broadcast_ipv4_mst_cb (void *cls, void *client,
183{ 177{
184 struct Plugin *plugin = cls; 178 struct Plugin *plugin = cls;
185 struct Mstv4Context *mc = client; 179 struct Mstv4Context *mc = client;
180 struct GNUNET_HELLO_Address *address;
186 const struct GNUNET_MessageHeader *hello; 181 const struct GNUNET_MessageHeader *hello;
187 const struct UDP_Beacon_Message *msg; 182 const struct UDP_Beacon_Message *msg;
188 struct GNUNET_ATS_Information atsi; 183 struct GNUNET_ATS_Information atsi;
@@ -204,19 +199,12 @@ broadcast_ipv4_mst_cb (void *cls, void *client,
204 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED); 199 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED);
205 200
206 hello = (struct GNUNET_MessageHeader *) &msg[1]; 201 hello = (struct GNUNET_MessageHeader *) &msg[1];
207 plugin->env->receive (plugin->env->cls, 202 address = GNUNET_HELLO_address_allocate (&msg->sender, PLUGIN_NAME,
208 &msg->sender, 203 (const char *) &mc->addr, sizeof (mc->addr), GNUNET_HELLO_ADDRESS_INFO_INBOUND);
209 hello, 204 plugin->env->receive (plugin->env->cls, address, NULL, hello);
210 NULL, 205 plugin->env->update_address_metrics (plugin->env->cls, address,
211 (const char *) &mc->addr, 206 NULL, &atsi, 1);
212 sizeof (mc->addr)); 207 GNUNET_HELLO_address_free (address);
213
214 plugin->env->update_address_metrics (plugin->env->cls,
215 &msg->sender,
216 (const char *) &mc->addr,
217 sizeof (mc->addr),
218 NULL,
219 &atsi, 1);
220 208
221 GNUNET_STATISTICS_update (plugin->env->stats, 209 GNUNET_STATISTICS_update (plugin->env->stats,
222 _("# IPv4 broadcast HELLO beacons received via udp"), 210 _("# IPv4 broadcast HELLO beacons received via udp"),