socket: divide errno & s_error
Reference: https: //man7.org/linux/man-pages/man2/connect.2.html Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
parent
8b078d261f
commit
c4ed55c6df
@ -313,6 +313,6 @@ errout_with_alloc:
|
||||
errout:
|
||||
leave_cancellation_point();
|
||||
|
||||
_SO_SETERRNO(psock, errcode);
|
||||
set_errno(errcode);
|
||||
return ERROR;
|
||||
}
|
||||
|
@ -152,11 +152,11 @@ int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
return ERROR;
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_NET */
|
||||
|
@ -237,7 +237,7 @@ int connect(int sockfd, FAR const struct sockaddr *addr, socklen_t addrlen)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -161,11 +161,11 @@ int getpeername(int sockfd, FAR struct sockaddr *addr,
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
return ERROR;
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_NET */
|
||||
|
@ -155,11 +155,11 @@ int getsockname(int sockfd, FAR struct sockaddr *addr,
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
return ERROR;
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_NET */
|
||||
|
@ -362,10 +362,10 @@ int getsockopt(int sockfd, int level, int option,
|
||||
if (ret < 0)
|
||||
{
|
||||
set_errno(-ret);
|
||||
return ERROR;
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_NET && CONFIG_NET_SOCKOPTS */
|
||||
|
@ -150,9 +150,9 @@ int listen(int sockfd, int backlog)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
return ERROR;
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
@ -131,11 +131,6 @@ ssize_t psock_sendfile(FAR struct socket *psock, FAR struct file *infile,
|
||||
ret = psock->s_sockif->si_sendfile(psock, infile, offset, count);
|
||||
}
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ ssize_t recvfrom(int sockfd, FAR void *buf, size_t len, int flags,
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -168,7 +168,7 @@ ssize_t recvmsg(int sockfd, FAR struct msghdr *msg, int flags)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -176,7 +176,7 @@ ssize_t send(int sockfd, FAR const void *buf, size_t len, int flags)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@ ssize_t sendmsg(int sockfd, FAR struct msghdr *msg, int flags)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -216,7 +216,7 @@ ssize_t sendto(int sockfd, FAR const void *buf, size_t len, int flags,
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -141,7 +141,7 @@ int shutdown(int sockfd, int how)
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
_SO_SETERRNO(psock, -ret);
|
||||
set_errno(-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,6 @@
|
||||
(FAR struct socket_conn_s *)(c); \
|
||||
_conn->s_error = (int16_t)e; \
|
||||
} \
|
||||
set_errno(e); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
@ -114,15 +113,11 @@
|
||||
{ \
|
||||
_SO_CONN_SETERRNO((s)->s_conn, e); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
set_errno(e); \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
#else
|
||||
# define _SO_CONN_SETERRNO(c,e) set_errno(e)
|
||||
# define _SO_SETERRNO(s,e) set_errno(e)
|
||||
# define _SO_CONN_SETERRNO(c,e)
|
||||
# define _SO_SETERRNO(s,e)
|
||||
#endif /* CONFIG_NET_SOCKOPTS */
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -67,7 +67,6 @@ static uint16_t tcp_poll_eventhandler(FAR struct net_driver_s *dev,
|
||||
FAR void *pvpriv, uint16_t flags)
|
||||
{
|
||||
FAR struct tcp_poll_s *info = pvpriv;
|
||||
int reason;
|
||||
|
||||
ninfo("flags: %04x\n", flags);
|
||||
|
||||
@ -97,6 +96,9 @@ static uint16_t tcp_poll_eventhandler(FAR struct net_driver_s *dev,
|
||||
|
||||
if ((flags & TCP_DISCONN_EVENTS) != 0)
|
||||
{
|
||||
#ifdef CONFIG_NET_SOCKOPTS
|
||||
int reason;
|
||||
|
||||
/* TCP_TIMEDOUT: Connection aborted due to too many
|
||||
* retransmissions.
|
||||
*/
|
||||
@ -129,6 +131,7 @@ static uint16_t tcp_poll_eventhandler(FAR struct net_driver_s *dev,
|
||||
}
|
||||
|
||||
_SO_CONN_SETERRNO(info->conn, reason);
|
||||
#endif
|
||||
|
||||
/* Mark that the connection has been lost */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user