net/tcp/handshake: send the SYN immediately.

Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
chao.an 2020-12-15 20:30:29 +08:00 committed by Masayuki Ishikawa
parent 5e9e50991c
commit ae5b727580
2 changed files with 6 additions and 1 deletions

View File

@ -1283,7 +1283,7 @@ int tcp_connect(FAR struct tcp_conn_s *conn, FAR const struct sockaddr *addr)
conn->tx_unacked = 1; /* TCP length of the SYN is one. */ conn->tx_unacked = 1; /* TCP length of the SYN is one. */
conn->nrtx = 0; conn->nrtx = 0;
conn->timer = 1; /* Send the SYN next time around. */ conn->timer = 0; /* Send the SYN immediately. */
conn->rto = TCP_RTO; conn->rto = TCP_RTO;
conn->sa = 0; conn->sa = 0;
conn->sv = 16; /* Initial value of the RTT variance. */ conn->sv = 16; /* Initial value of the RTT variance. */

View File

@ -41,6 +41,7 @@
#include <nuttx/net/tcp.h> #include <nuttx/net/tcp.h>
#include "devif/devif.h" #include "devif/devif.h"
#include "netdev/netdev.h"
#include "socket/socket.h" #include "socket/socket.h"
#include "tcp/tcp.h" #include "tcp/tcp.h"
@ -322,6 +323,10 @@ int psock_tcp_connect(FAR struct socket *psock,
ret = psock_setup_callbacks(psock, &state); ret = psock_setup_callbacks(psock, &state);
if (ret >= 0) if (ret >= 0)
{ {
/* Notify the device driver that new connection is available. */
netdev_txnotify_dev(((FAR struct tcp_conn_s *)psock->s_conn)->dev);
/* Wait for either the connect to complete or for an error/timeout /* Wait for either the connect to complete or for an error/timeout
* to occur. NOTES: net_lockedwait will also terminate if a signal * to occur. NOTES: net_lockedwait will also terminate if a signal
* is received. * is received.