diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-05-02 13:30:58 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-05-02 13:30:58 +0000 |
commit | 04211f65378f99067dd648630393ca7f3723be87 (patch) | |
tree | 963e5ba919ec032e8ab73f09d0eb9c79f8163a6d /src/transport/plugin_transport_tcp.c | |
parent | 002641dca1067843c94349c3bd7cf4ee0afcae37 (diff) | |
download | gnunet-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.c | 26 |
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 | } |