mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-18 20:10:53 +00:00
fixed bug #38853 "connect() use a wrong errno": return ERR_ALREADY/EALRADY during connect, ERR_ISCONN/EISCONN when already connected
This commit is contained in:
parent
b146ae96a7
commit
604a92dc3d
@ -186,6 +186,11 @@ HISTORY
|
|||||||
|
|
||||||
++ Bugfixes:
|
++ Bugfixes:
|
||||||
|
|
||||||
|
2015-02-17: Simon Goldschmidt
|
||||||
|
* err.h, sockets.c, api_msg.c: fixed bug #38853 "connect() use a wrong errno":
|
||||||
|
return ERR_ALREADY/EALRADY during connect, ERR_ISCONN/EISCONN when already
|
||||||
|
connected
|
||||||
|
|
||||||
2015-02-17: Simon Goldschmidt
|
2015-02-17: Simon Goldschmidt
|
||||||
* tcp_impl.h, tcp_out.c, tcp.c, api_msg.c: fixed bug #37614 "Errors from
|
* tcp_impl.h, tcp_out.c, tcp.c, api_msg.c: fixed bug #37614 "Errors from
|
||||||
ipX_output are not processed". Now tcp_output(_segment) checks for the return
|
ipX_output are not processed". Now tcp_output(_segment) checks for the return
|
||||||
|
@ -1173,7 +1173,9 @@ lwip_netconn_do_connect(struct api_msg_msg *msg)
|
|||||||
#if LWIP_TCP
|
#if LWIP_TCP
|
||||||
case NETCONN_TCP:
|
case NETCONN_TCP:
|
||||||
/* Prevent connect while doing any other action. */
|
/* Prevent connect while doing any other action. */
|
||||||
if (msg->conn->state != NETCONN_NONE) {
|
if (msg->conn->state == NETCONN_CONNECT) {
|
||||||
|
msg->err = ERR_ALREADY;
|
||||||
|
} else if (msg->conn->state != NETCONN_NONE) {
|
||||||
msg->err = ERR_ISCONN;
|
msg->err = ERR_ISCONN;
|
||||||
} else {
|
} else {
|
||||||
setup_tcp(msg->conn);
|
setup_tcp(msg->conn);
|
||||||
|
@ -258,13 +258,14 @@ static const int err_to_errno_table[] = {
|
|||||||
EINVAL, /* ERR_VAL -6 Illegal value. */
|
EINVAL, /* ERR_VAL -6 Illegal value. */
|
||||||
EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */
|
EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */
|
||||||
EADDRINUSE, /* ERR_USE -8 Address in use. */
|
EADDRINUSE, /* ERR_USE -8 Address in use. */
|
||||||
EALREADY, /* ERR_ISCONN -9 Already connected. */
|
EALREADY, /* ERR_ALREADY -9 Already connecting. */
|
||||||
ENOTCONN, /* ERR_CONN -10 Not connected. */
|
EISCONN, /* ERR_ISCONN -10 Conn already established.*/
|
||||||
ECONNABORTED, /* ERR_ABRT -11 Connection aborted. */
|
ENOTCONN, /* ERR_CONN -11 Not connected. */
|
||||||
ECONNRESET, /* ERR_RST -12 Connection reset. */
|
ECONNABORTED, /* ERR_ABRT -12 Connection aborted. */
|
||||||
ENOTCONN, /* ERR_CLSD -13 Connection closed. */
|
ECONNRESET, /* ERR_RST -13 Connection reset. */
|
||||||
EIO, /* ERR_ARG -14 Illegal argument. */
|
ENOTCONN, /* ERR_CLSD -14 Connection closed. */
|
||||||
-1, /* ERR_IF -15 Low-level netif error */
|
EIO, /* ERR_ARG -15 Illegal argument. */
|
||||||
|
-1, /* ERR_IF -16 Low-level netif error */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ERR_TO_ERRNO_TABLE_SIZE \
|
#define ERR_TO_ERRNO_TABLE_SIZE \
|
||||||
|
@ -58,20 +58,21 @@ typedef s8_t err_t;
|
|||||||
#define ERR_VAL -6 /* Illegal value. */
|
#define ERR_VAL -6 /* Illegal value. */
|
||||||
#define ERR_WOULDBLOCK -7 /* Operation would block. */
|
#define ERR_WOULDBLOCK -7 /* Operation would block. */
|
||||||
#define ERR_USE -8 /* Address in use. */
|
#define ERR_USE -8 /* Address in use. */
|
||||||
#define ERR_ISCONN -9 /* Already connected. */
|
#define ERR_ALREADY -9 /* Already connecting. */
|
||||||
|
#define ERR_ISCONN -10 /* Conn already established.*/
|
||||||
|
|
||||||
#define ERR_IS_FATAL(e) ((e) < ERR_ISCONN)
|
#define ERR_IS_FATAL(e) ((e) < ERR_ISCONN)
|
||||||
|
|
||||||
#define ERR_CONN -10 /* Not connected. */
|
#define ERR_CONN -11 /* Not connected. */
|
||||||
#define ERR_IS_FATAL_LISTENCONNECT(e) ((e) < ERR_CONN)
|
#define ERR_IS_FATAL_LISTENCONNECT(e) ((e) < ERR_CONN)
|
||||||
|
|
||||||
#define ERR_ABRT -11 /* Connection aborted. */
|
#define ERR_ABRT -12 /* Connection aborted. */
|
||||||
#define ERR_RST -12 /* Connection reset. */
|
#define ERR_RST -13 /* Connection reset. */
|
||||||
#define ERR_CLSD -13 /* Connection closed. */
|
#define ERR_CLSD -14 /* Connection closed. */
|
||||||
|
|
||||||
#define ERR_ARG -14 /* Illegal argument. */
|
#define ERR_ARG -15 /* Illegal argument. */
|
||||||
|
|
||||||
#define ERR_IF -15 /* Low-level netif error */
|
#define ERR_IF -16 /* Low-level netif error */
|
||||||
|
|
||||||
|
|
||||||
#ifdef LWIP_DEBUG
|
#ifdef LWIP_DEBUG
|
||||||
|
Loading…
Reference in New Issue
Block a user