- Read the interface metric from the registry.
- Assign an automatic metric to an interface if a registry value is not available.
- Determine the automatic metric from the link speed. The metric for the loopback interface is always 1.
- Identify 127.x.x.x addresses as on-link addresses.
- Modify the neighbor cache to map all 127.x.x.x addresses to the loopback address (127.0.0.1).
- Create a single entry for all 127.x.x.x addresses instead of one entry per address. This entry belongs to the loopback address.
CORE-7484
Use a KSEMAPHORE instead of a NotificationEvent to signal availability. This is to prevent satisfying the wait for multiple waiters, when only a single entry is on the list.
Fixes crashes on SMP builds.
- Update TCP cached information only after updating adapter information
(so that TCPUpdateInterfaceIPInformation/TCPUpdateInterfaceLinkStatus
gets new status)
- Call netif_set_link_up/netif_set_link_down in TCPUpdateInterfaceLinkStatus
This fixes a lwIP requirement:
2007-07-13 Jared Grubb (integrated by Frédéric Bernon)
* [...] Be carefull for port maintainers to add the NETIF_FLAG_LINK_UP
flag (like in ethernetif.c) if you want to be sure to be compatible with
future changes...
* [TCPIP] Rename lwip library to lwipcore
* [TCPIP] Remove ReactOS-specific code from LWIP library
* [TCPIP] Synchronize LWIP code to 1.4.1
Update to LWIP 1.4.1 should have been done by bd3b0e8ef4
However, I was unable to find the exact revision used in this commit.
So, do the following
- take code from STABLE-1_4_1 commit on https://git.savannah.gnu.org/git/lwip.git
- cherry-pick LWIP 32aa9a41e2013e5ee6eee09317a848647e37badf (CORE-8978)
- cherry-pick LWIP c0b534e5318baf870e2152c70d4d11a3a86181f3
- add a ReactOS-specific change in src/api/tcpip.c (missing include)
- add ReactOS specific file CMakeLists.txt
NOTE: Changes are mostly in unit test files (not used) and CHANGELOG file.
CORE-7140
transport calls to LibTCPConnect that suffer certain early failures
like parameter errors or early route lookup failures return without
initializing the pcb.
In order to avoid later BSOD's this change clears the
ConnectionRequest bucket in those cases.
* Allow 0xFFFF as valid port number
* Note possible reason for failure in TCPAllocatePort
* Return NtStatus error on TCP/IP out-of-ports failure
* Replace unavailable "ERR" with "DbgPrint"