You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
GNUNET_NO);
GNUNET_STATISTICS_update (plugin->env->stats,
"# UDP, unfragmented bytes payload queued total",
- udpw->payload_size,
+ msgbuf_size,
GNUNET_NO);
}
else
}
if (NULL == s->frag_ctx)
{
- LOG (GNUNET_ERROR_TYPE_WARNING | GNUNET_ERROR_TYPE_BULK,
+ LOG (GNUNET_ERROR_TYPE_DEBUG | GNUNET_ERROR_TYPE_BULK,
"Fragmentation context of address %s for ACK (%s) not found\n",
udp_address_to_string (plugin,
address->address,
/* Connection failure or something. Not a protocol violation. */
return;
}
+
+ /* Check if this is a STUN packet */
+ if (GNUNET_NAT_is_valid_stun_packet (plugin->nat,
+ (uint8_t *)buf,
+ size))
+ return; /* was STUN, do not process further */
+
if (size < sizeof(struct GNUNET_MessageHeader))
{
LOG (GNUNET_ERROR_TYPE_WARNING,
GNUNET_break_op (0);
return;
}
+
+
+
+
msg = (const struct GNUNET_MessageHeader *) buf;
LOG (GNUNET_ERROR_TYPE_DEBUG,
"UDP received %u-byte message from `%s' type %u\n",
plugin->select_task_v4 = NULL;
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
return;
+ if (NULL == plugin->sockv4)
+ return;
if ((0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) &&
- (NULL != plugin->sockv4) &&
(GNUNET_NETWORK_fdset_isset (tc->read_ready,
plugin->sockv4)))
udp_select_read (plugin,
plugin->select_task_v6 = NULL;
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
return;
+ if (NULL == plugin->sockv6)
+ return;
if ( (0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) &&
- (NULL != plugin->sockv6) &&
(GNUNET_NETWORK_fdset_isset (tc->read_ready,
plugin->sockv6)) )
udp_select_read (plugin,
plugin->sockv6);
+
udp_select_send (plugin,
plugin->sockv6);
schedule_select_v6 (plugin);
addrlens,
&udp_nat_port_map_callback,
NULL,
- plugin);
+ plugin,
+ plugin->sockv4);
return sockets_created;
}