From 8d81b35c4449c9abde4b0b98bec9d9eaf36e7809 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 7 Jul 2017 08:50:01 -0600 Subject: [PATCH] network: Correct some issues that prevent TCP from working correctly when both IPv4 and IPv6 are enabled. --- net/socket/send.c | 1 + net/tcp/tcp_input.c | 2 +- net/tcp/tcp_send_buffered.c | 2 +- net/tcp/tcp_send_unbuffered.c | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/net/socket/send.c b/net/socket/send.c index 33060b5a32..c47158aca2 100644 --- a/net/socket/send.c +++ b/net/socket/send.c @@ -255,6 +255,7 @@ ssize_t psock_send(FAR struct socket *psock, FAR const void *buf, size_t len, set_errno(-ret); ret = ERROR; } + return ret; } diff --git a/net/tcp/tcp_input.c b/net/tcp/tcp_input.c index 8b34988401..aefde83fd2 100644 --- a/net/tcp/tcp_input.c +++ b/net/tcp/tcp_input.c @@ -285,7 +285,7 @@ static void tcp_input(FAR struct net_driver_s *dev, uint8_t domain, } } - nwarn("WARNING: Old packet .. reset\n"); + nwarn("WARNING: SYN with no listener (or old packet) .. reset\n"); /* This is (1) an old duplicate packet or (2) a SYN packet but with * no matching listener found. Send RST packet in either case. diff --git a/net/tcp/tcp_send_buffered.c b/net/tcp/tcp_send_buffered.c index 7ecf990326..afb8355a34 100644 --- a/net/tcp/tcp_send_buffered.c +++ b/net/tcp/tcp_send_buffered.c @@ -243,7 +243,7 @@ static inline void send_ipselect(FAR struct net_driver_s *dev, /* Select the IPv6 domain */ DEBUGASSERT(conn->domain == PF_INET6); - tcp_ipv4_select(dev); + tcp_ipv6_select(dev); } } #endif diff --git a/net/tcp/tcp_send_unbuffered.c b/net/tcp/tcp_send_unbuffered.c index e4d4a50d4f..e9f2a92627 100644 --- a/net/tcp/tcp_send_unbuffered.c +++ b/net/tcp/tcp_send_unbuffered.c @@ -194,7 +194,7 @@ static inline void tcpsend_ipselect(FAR struct net_driver_s *dev, /* Select the IPv6 domain */ DEBUGASSERT(conn->domain == PF_INET6); - tcp_ipv4_select(dev); + tcp_ipv6_select(dev); } } #endif