aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_tcp.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2012-05-02 13:30:58 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2012-05-02 13:30:58 +0000
commit04211f65378f99067dd648630393ca7f3723be87 (patch)
tree963e5ba919ec032e8ab73f09d0eb9c79f8163a6d /src/transport/plugin_transport_tcp.c
parent002641dca1067843c94349c3bd7cf4ee0afcae37 (diff)
downloadgnunet-04211f65378f99067dd648630393ca7f3723be87.tar.gz
gnunet-04211f65378f99067dd648630393ca7f3723be87.zip
- fixed tcp_string_to_address
Diffstat (limited to 'src/transport/plugin_transport_tcp.c')
-rw-r--r--src/transport/plugin_transport_tcp.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c
index 1ab6bac7e..ec4bbfc5e 100644
--- a/src/transport/plugin_transport_tcp.c
+++ b/src/transport/plugin_transport_tcp.c
@@ -589,11 +589,33 @@ tcp_string_to_address (void *cls, const char *addr, uint16_t addrlen,
589 void **buf, size_t *added) 589 void **buf, size_t *added)
590{ 590{
591 struct sockaddr_storage socket_address; 591 struct sockaddr_storage socket_address;
592 int ret = GNUNET_STRINGS_to_address_ip (addr, addrlen, 592
593 if ((NULL == addr) || (addrlen == 0))
594 {
595 GNUNET_break (0);
596 return GNUNET_SYSERR;
597 }
598
599 if ('\0' != addr[addrlen - 1])
600 {
601 GNUNET_break (0);
602 return GNUNET_SYSERR;
603 }
604
605 if (strlen (addr) != addrlen - 1)
606 {
607 GNUNET_break (0);
608 return GNUNET_SYSERR;
609 }
610
611 int ret = GNUNET_STRINGS_to_address_ip (addr, strlen (addr),
593 &socket_address); 612 &socket_address);
594 613
595 if (ret != GNUNET_OK) 614 if (ret != GNUNET_OK)
615 {
616 GNUNET_break (0);
596 return GNUNET_SYSERR; 617 return GNUNET_SYSERR;
618 }
597 619
598 if (socket_address.ss_family == AF_INET) 620 if (socket_address.ss_family == AF_INET)
599 { 621 {
@@ -604,6 +626,7 @@ tcp_string_to_address (void *cls, const char *addr, uint16_t addrlen,
604 t4->t4_port = in4->sin_port; 626 t4->t4_port = in4->sin_port;
605 *buf = t4; 627 *buf = t4;
606 *added = sizeof (struct IPv4TcpAddress); 628 *added = sizeof (struct IPv4TcpAddress);
629 return GNUNET_OK;
607 } 630 }
608 else if (socket_address.ss_family == AF_INET6) 631 else if (socket_address.ss_family == AF_INET6)
609 { 632 {
@@ -614,6 +637,7 @@ tcp_string_to_address (void *cls, const char *addr, uint16_t addrlen,
614 t6->t6_port = in6->sin6_port; 637 t6->t6_port = in6->sin6_port;
615 *buf = t6; 638 *buf = t6;
616 *added = sizeof (struct IPv6TcpAddress); 639 *added = sizeof (struct IPv6TcpAddress);
640 return GNUNET_OK;
617 } 641 }
618 return GNUNET_SYSERR; 642 return GNUNET_SYSERR;
619} 643}