nuttx/net
YAMAMOTO Takashi 19eb4d7d77 Revert "net/tcp: discard connect reference before free"
This reverts commit b88a1fd7fd. [1]

Because:

* It casues assertion failures like [2].

* I don't understand what it attempted to fix.

[1]
```
commit b88a1fd7fd
Author: chao.an <anchao@xiaomi.com>
Date:   Sat Jul 2 13:17:41 2022 +0800

    net/tcp: discard connect reference before free

    connect reference should be set to 0 before free

    Signed-off-by: chao.an <anchao@xiaomi.com>
```

[2]
```
    #0  up_assert (filename=0x5516d0 "tcp/tcp_conn.c", lineno=771) at sim/up_assert.c:75
    #1  0x000000000040a4bb in _assert (filename=0x5516d0 "tcp/tcp_conn.c", linenum=771) at assert/lib_assert.c:36
    #2  0x000000000042a2ad in tcp_free (conn=0x597fe0 <g_tcp_connections+384>) at tcp/tcp_conn.c:771
    #3  0x000000000053bdc2 in tcp_close_disconnect (psock=0x7f58d1abbd80) at tcp/tcp_close.c:331
    #4  0x000000000053bc69 in tcp_close (psock=0x7f58d1abbd80) at tcp/tcp_close.c:366
    #5  0x000000000052eefe in inet_close (psock=0x7f58d1abbd80) at inet/inet_sockif.c:1689
    #6  0x000000000052eb9b in psock_close (psock=0x7f58d1abbd80) at socket/net_close.c:102
    #7  0x0000000000440495 in sock_file_close (filep=0x7f58d1b35f40) at socket/socket.c:115
    #8  0x000000000043b8b6 in file_close (filep=0x7f58d1b35f40) at vfs/fs_close.c:74
    #9  0x000000000043ab22 in nx_close (fd=9) at inode/fs_files.c:544
    #10 0x000000000043ab7f in close (fd=9) at inode/fs_files.c:578
```
2022-07-08 16:11:24 +08:00
..
arp net: Remove devif_timer from comment 2022-06-07 20:15:41 +03:00
bluetooth net: Remove the unnecessary initialization code 2022-03-12 19:24:17 +02:00
can net: Fix typos, update comments in Kconfigs 2022-05-06 08:54:58 +02:00
devif Packet dropped in IPv4/v6 input is now an info, not a warning 2022-06-09 16:07:34 +02:00
icmp net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout 2022-06-28 06:19:13 +03:00
icmpv6 net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout 2022-06-28 06:19:13 +03:00
ieee802154 net: Remove the unnecessary initialization code 2022-03-12 19:24:17 +02:00
igmp net/igmp: Remove igmp_initialize 2022-03-12 19:24:17 +02:00
inet tcp: added debug asserts and logging to investigate the rare (conn->dev == NULL) bug in callback handlers 2022-02-26 11:48:07 -03:00
ipforward net: Remove devif_timer from comment 2022-06-07 20:15:41 +03:00
local fs/poll: change format for type pollevent_t 2022-04-07 12:14:06 +08:00
mld net/tcp/netdev/mld: correct the netlock handling 2022-02-03 11:09:18 -03:00
neighbor net: use HTONS, NTOHS, HTONL, NTOHL macro in kernel code 2022-01-18 10:59:47 +01:00
netdev net_if: add IFF_LOOPBACK/POINTOPOINT/MULTICAST/BROADCAST 2022-07-03 09:57:10 -04:00
netlink Fix ENOENT errors when polling on Netlink socket 2022-05-14 00:35:29 +03:00
pkt net: Remove the unnecessary initialization code 2022-03-12 19:24:17 +02:00
procfs libc: Rename match to fnmatch 2021-08-02 08:23:35 -03:00
route use rmutex inside of all repeated implementation 2022-05-30 19:43:48 +08:00
rpmsg openamp: Change the dependence from OPENAMP to RPTUN 2022-04-05 10:05:41 +03:00
sixlowpan net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout 2022-06-28 06:19:13 +03:00
socket net:fix coverity warning 2022-04-03 14:37:53 +03:00
tcp Revert "net/tcp: discard connect reference before free" 2022-07-08 16:11:24 +08:00
udp sched/wqueue: Change the return type of work_notifier_teardown to void 2022-05-14 00:35:29 +03:00
usrsock fix: usrsock iovec_do skip empty iov 2022-04-14 02:47:31 +08:00
utils Replace nxsem_timedwait_uninterruptible with nxsem_tickwait_uninterruptible 2022-05-15 13:55:58 +03:00
Kconfig net: Fix typos, update comments in Kconfigs 2022-05-06 08:54:58 +02:00
Makefile net/socket_rpmsg: add net socket rpmsg support 2021-03-07 01:45:51 -08:00
net_initialize.c net: Reoder the initialize sequence(mac->ip->tcp/udp) 2022-03-12 19:24:17 +02:00
README.txt net/loopback: Move g_lo_* global variable to libc/net/ 2020-03-30 09:47:28 -06:00

README
======

Directory Structure
===================

  nuttx/
   |
   `- net/
       |
       +- arp        - Address resolution protocol (IPv4)
       +- bluetooth  - PF_BLUETOOTH socket interface
       +- devif      - Stack/device interface layer
       +- icmp       - Internet Control Message Protocol (IPv4)
       +- icmpv6     - Internet Control Message Protocol (IPv6)
       +- ieee802154 - PF_IEEE802154 socket interface
       +- inet       - PF_INET/PF_INET6 socket interface
       +- ipforward  - IP forwarding logic
       +- local      - Unix domain (local) sockets
       +- mld        - Multicast Listener Discovery (MLD)
       +- neighbor   - Neighbor Discovery Protocol (IPv6)
       +- netdev     - Socket network device interface
       +- netlink    - Netlink IPC socket interface
       +- pkt        - "Raw" packet socket support
       +- sixlowpan  - 6LoWPAN implementation
       +- socket     - BSD socket interface
       +- route      - Routing table support
       +- tcp        - Transmission Control Protocol
       +- udp        - User Datagram Protocol
       +- usrsock    - User socket API for user-space networking stack
       `- utils      - Miscellaneous utility functions

    +-------------------------------------------------------------------++------------------------+
    |                     Application layer                             || usrsock daemon         |
    +-------------------------------------------------------------------++------------------------+
    +-------------------------------------------------------------------++----------------+ +-----+
    |                   Socket layer (socket/)                          || /dev/usrsock   | |     |
    +-------------------------------------------------------------------++----------------+ |     |
    +------------++--------------------------------------------------++-------------------+ |     |
    |  Network   || Protocol stacks (arp, ipv6, icmp, pkt, tcp, udp) || usrsock/          | |     |
    |   Device   |+--------------------------------------------------++-------------------+ |     |
    | Interface  |+------------------------------------++---------------------------------+ |     |
    | (netdev/)  ||  Network Device Interface (devif/) || Utilities                       | |     |
    +------------++------------------------------------++---------------------------------+ |     |
    +----------------------------------------------------------------+                      |     |
    |                    Network Device Drivers                      |                      | HAL |
    +----------------------------------------------------------------+                      +-----+
    +----------------------------------------------------------------+ +--------------------------+
    |                    Networking Hardware                         | |  Hardware TCP/IP Stack   |
    +----------------------------------------------------------------+ +--------------------------+