From 9abdebbec99dfb0500e4528f48c3cdd11e9625e9 Mon Sep 17 00:00:00 2001 From: chenyong <1521761801@qq.com> Date: Wed, 15 May 2019 14:45:31 +0800 Subject: [PATCH] [net][sal] Fix fcntl() function not support F_GETFL/F_SETFL operations for socketfd. Signed-off-by: chenyong <1521761801@qq.com> --- components/net/sal_socket/impl/af_inet_lwip.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/components/net/sal_socket/impl/af_inet_lwip.c b/components/net/sal_socket/impl/af_inet_lwip.c index cb271a55e0..95e7633635 100644 --- a/components/net/sal_socket/impl/af_inet_lwip.c +++ b/components/net/sal_socket/impl/af_inet_lwip.c @@ -217,6 +217,19 @@ static int inet_getsockname(int socket, struct sockaddr *name, socklen_t *namele return lwip_getsockname(socket, name, namelen); } +int inet_ioctlsocket(int socket, long cmd, void *arg) +{ + switch (cmd) + { + case F_GETFL: + case F_SETFL: + return lwip_fcntl(socket, cmd, (int) arg); + + default: + return lwip_ioctl(socket, cmd, arg); + } +} + #ifdef SAL_USING_POSIX static int inet_poll(struct dfs_fd *file, struct rt_pollreq *req) { @@ -278,7 +291,7 @@ static const struct sal_socket_ops lwip_socket_ops = lwip_shutdown, lwip_getpeername, inet_getsockname, - lwip_ioctl, + inet_ioctlsocket, #ifdef SAL_USING_POSIX inet_poll, #endif -- GitLab