net/inet: move socket error into socket_conn_s
Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
parent
99cde13a11
commit
1659513edb
@ -233,6 +233,12 @@ struct socket_conn_s
|
|||||||
|
|
||||||
uint8_t s_flags; /* See _SF_* definitions */
|
uint8_t s_flags; /* See _SF_* definitions */
|
||||||
|
|
||||||
|
/* Socket options */
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_SOCKOPTS
|
||||||
|
int16_t s_error; /* Last error that occurred on this socket */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Connection-specific content may follow */
|
/* Connection-specific content may follow */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -251,7 +257,6 @@ struct socket
|
|||||||
/* Socket options */
|
/* Socket options */
|
||||||
|
|
||||||
#ifdef CONFIG_NET_SOCKOPTS
|
#ifdef CONFIG_NET_SOCKOPTS
|
||||||
int16_t s_error; /* Last error that occurred on this socket */
|
|
||||||
sockopt_t s_options; /* Selected socket options */
|
sockopt_t s_options; /* Selected socket options */
|
||||||
socktimeo_t s_rcvtimeo; /* Receive timeout value (in deciseconds) */
|
socktimeo_t s_rcvtimeo; /* Receive timeout value (in deciseconds) */
|
||||||
socktimeo_t s_sndtimeo; /* Send timeout value (in deciseconds) */
|
socktimeo_t s_sndtimeo; /* Send timeout value (in deciseconds) */
|
||||||
|
@ -242,8 +242,8 @@ static int psock_socketlevel_option(FAR struct socket *psock, int option,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*(FAR int *)value = (int)psock->s_error;
|
*(FAR int *)value = (int)conn->s_error;
|
||||||
psock->s_error = 0;
|
conn->s_error = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -113,7 +113,6 @@ ssize_t psock_sendfile(FAR struct socket *psock, FAR struct file *infile,
|
|||||||
if (psock == NULL || psock->s_conn == NULL)
|
if (psock == NULL || psock->s_conn == NULL)
|
||||||
{
|
{
|
||||||
nerr("ERROR: Invalid socket\n");
|
nerr("ERROR: Invalid socket\n");
|
||||||
psock->s_error = EBADF;
|
|
||||||
return -EBADF;
|
return -EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +133,8 @@ ssize_t psock_sendfile(FAR struct socket *psock, FAR struct file *infile,
|
|||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
psock->s_error = -ret;
|
FAR struct socket_conn_s *conn = psock->s_conn;
|
||||||
|
conn->s_error = -ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -95,9 +95,10 @@
|
|||||||
# define _SO_SETERRNO(s,e) \
|
# define _SO_SETERRNO(s,e) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
if (s != NULL) \
|
if (s != NULL && (s)->s_conn != NULL) \
|
||||||
{ \
|
{ \
|
||||||
s->s_error = (int16_t)e; \
|
FAR struct socket_conn_s *_conn = (s)->s_conn; \
|
||||||
|
_conn->s_error = (int16_t)e; \
|
||||||
} \
|
} \
|
||||||
set_errno(e); \
|
set_errno(e); \
|
||||||
} \
|
} \
|
||||||
|
Loading…
Reference in New Issue
Block a user