diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-01-13 16:59:57 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-01-13 16:59:57 +0000 |
commit | 1257490cb630ade315a196a724d0233e662afb2c (patch) | |
tree | 0d9c01593a1aa73d8f6490127b640d67da69b54c /src/transport/plugin_transport_udp_broadcasting.c | |
parent | 35d79cb1941c9f9607195b8760d8a14d836e6397 (diff) | |
download | gnunet-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.c | 40 |
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"), |