When running a dual stack (usrsock daemon and kernel stack),
ioctl requests that should be handled by the kernel stack are being
processed by the usrsock daemon. This causes ifconfig and ifup to fail.
The usrsock daemon that receives an ioctl request that should be
handled by the kernel stack should reply with ENOTTY.
Replying with ENOTTY means that the ioctl request can fall back to the
kernel stack.
Support SIOCDENYINETSOCK ioctl command to set usrsock status.
If usock_enable is false, its means application wants to create
a socket with other network stack.
Summary:
- I noticed that the latest ifconfig command shows nothing
- Finally, I found that gs2200m_main.c needs to handle SIOCGIFFLAGS
- This commit fixes this issue
Impact:
- gs2200m only
Testing:
- Tested with spresense:wifi
- NOTE: gs2200m driver needs to be updated as well
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- I noticed that wget causes ASSERT in gs2200m_main.c recently.
- Finally, I found that it sends a wrong ack message in
recvfrom_request() when the socket is closed passively
- This commit fixes this issue.
Impact:
- gs2200m only
Testing:
- Tested with spresense:wifi_smp
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit returns -errno to the caller
Impact:
- gs2200m only
Testing:
- Tested with spresense:wifi_smp
- NOTE: need to update the gs2200m driver in NuttX
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit enables gs2200m application to get IWNWID/IWFREQ/IWSENS information
Impact:
- Affects gs2200m only
Testing:
- Tested with spresense:wifi
Summary:
- This commit adds support for ioctl(fd, SIOCGIFADDR, ...) to gs2200m_main.c
Impact:
- Only affects ioctl(fd, SIOCGIFADDR, ...) with gs2200m
- Need to update nuttx as well
Testing:
- Tested with spresense:wifi
- Tested with dhcpc
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adds getperrname_request() to gs2200m_main.c
Impact:
- Affects gs2200m only
- Need to update nuttx as well
Testing:
- Tested with spresense:wifi
- Modify telnetd and add getpeername() to show a client address
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit fixes to handle address info in accept()
Impact:
- All use cases which use accept() with gs2200m
- Need to update nuttx as well
Testing:
- Tested with spresene:wifi
- Tested with telnet daemon
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit fixes to handle UDP connect() with bind() to local port
- NOTE: GS2200M does not support TCP connect() with bind to local port
Impact:
- All UDP cases which use connect() with gs2200m
- Need to update nuttx as well
Testing:
- Tested with spresense:wifi
- Create a UDP socket and bind() to local port.
- Then connect() to remote address with port and send()
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- During Wi-Fi stress test, I noticed ASSERT happens in gs2200m_main.c
- Actually, req->max_buflen was 0 but the case was not handled correctly
- This commit fixes this issue
Impact:
- Affects read/recvfrom with len=0 cases
Testing:
- Tested with spresense:wifi_smp
- Run nxplayer for audio streaming
- Run ps/free/ifconfig commands via telnet
- Run smp command via telnet
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
The ASSERT is too strong, as it cannot be disabled, so changing to
DEBUGASSERT, as calling these functions should not be a problem as
long as the application logic handle the error correctly.
The error code is changed to ENOSYS, as it seems to better reflect
the fact that the call itself would be valid, but the functionality
is not implemented (see [1] or `man errno`).
[1] https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html
Author: Alan Carvalho de Assis <engenharia03@siam.ind.br>
Run nxstyle again gs2200m_main.c file and fix issues
Author: YAMAMOTO Takashi <yamamoto@midokura.com>
gs2200m: Retry indefinately on GS2200M_IOC_ASSOC failure
The ioctl doesn't return why it failed.
It might or might not be a transient failure.
In my environment, gs2200m often returns the following for AT+WA.
It usually works after a few retries.
[ 12.110000] _parse_pkt_in_s1: +++++ 0:(msize=19, msg=WLAN CONNECT ERROR|)
[ 12.110000] _parse_pkt_in_s1: +++++ 1:(msize=6, msg=ERROR|)
1.Remove void cast for function because many place ignore the returned value witout cast
2.Replace void cast for variable with UNUSED macro
Change-Id: Ie644129a563244a6397036789c4c3ea83c4e9b09
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>