diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-07-26 08:59:44 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-07-26 08:59:44 +0000 |
commit | c400b29ab6098d3c3f4a85466e00d8c3a9d68eb8 (patch) | |
tree | 286abf698c7dacee4f5606557f56be0a7fe83ffb | |
parent | 76de3338bcef82fffc18c2282f9a0cded17b9bd8 (diff) | |
download | gnunet-c400b29ab6098d3c3f4a85466e00d8c3a9d68eb8.tar.gz gnunet-c400b29ab6098d3c3f4a85466e00d8c3a9d68eb8.zip |
fixing 1738
-rw-r--r-- | src/transport/plugin_transport_udp.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c index ba87f206c..e58d4312e 100644 --- a/src/transport/plugin_transport_udp.c +++ b/src/transport/plugin_transport_udp.c | |||
@@ -360,6 +360,8 @@ udp_send (struct Plugin *plugin, | |||
360 | switch (sa->sa_family) | 360 | switch (sa->sa_family) |
361 | { | 361 | { |
362 | case AF_INET: | 362 | case AF_INET: |
363 | if (NULL == plugin->sockv4) | ||
364 | return 0; | ||
363 | sent = | 365 | sent = |
364 | GNUNET_NETWORK_socket_sendto (plugin->sockv4, | 366 | GNUNET_NETWORK_socket_sendto (plugin->sockv4, |
365 | msg, | 367 | msg, |
@@ -368,6 +370,8 @@ udp_send (struct Plugin *plugin, | |||
368 | slen = sizeof (struct sockaddr_in)); | 370 | slen = sizeof (struct sockaddr_in)); |
369 | break; | 371 | break; |
370 | case AF_INET6: | 372 | case AF_INET6: |
373 | if (NULL == plugin->sockv6) | ||
374 | return 0; | ||
371 | sent = | 375 | sent = |
372 | GNUNET_NETWORK_socket_sendto (plugin->sockv6, | 376 | GNUNET_NETWORK_socket_sendto (plugin->sockv6, |
373 | msg, | 377 | msg, |
@@ -474,6 +478,11 @@ udp_plugin_send (void *cls, | |||
474 | switch (addrlen) | 478 | switch (addrlen) |
475 | { | 479 | { |
476 | case sizeof(struct IPv4UdpAddress): | 480 | case sizeof(struct IPv4UdpAddress): |
481 | if (NULL == plugin->sockv4) | ||
482 | { | ||
483 | cont (cont_cls, target, GNUNET_SYSERR); | ||
484 | return 0; | ||
485 | } | ||
477 | t4 = addr; | 486 | t4 = addr; |
478 | peer_session = GNUNET_malloc (sizeof (struct PeerSession) + sizeof (struct sockaddr_in)); | 487 | peer_session = GNUNET_malloc (sizeof (struct PeerSession) + sizeof (struct sockaddr_in)); |
479 | v4 = (struct sockaddr_in*) &peer_session[1]; | 488 | v4 = (struct sockaddr_in*) &peer_session[1]; |
@@ -485,6 +494,11 @@ udp_plugin_send (void *cls, | |||
485 | v4->sin_addr.s_addr = t4->ipv4_addr; | 494 | v4->sin_addr.s_addr = t4->ipv4_addr; |
486 | break; | 495 | break; |
487 | case sizeof(struct IPv6UdpAddress): | 496 | case sizeof(struct IPv6UdpAddress): |
497 | if (NULL == plugin->sockv6) | ||
498 | { | ||
499 | cont (cont_cls, target, GNUNET_SYSERR); | ||
500 | return 0; | ||
501 | } | ||
488 | t6 = addr; | 502 | t6 = addr; |
489 | peer_session = GNUNET_malloc (sizeof (struct PeerSession) + sizeof (struct sockaddr_in6)); | 503 | peer_session = GNUNET_malloc (sizeof (struct PeerSession) + sizeof (struct sockaddr_in6)); |
490 | v6 = (struct sockaddr_in6*) &peer_session[1]; | 504 | v6 = (struct sockaddr_in6*) &peer_session[1]; |