[ros-diffs] [amunger] 22171: Merge ncpa and networking fixes from trunk. Revisions: 21899-21900, 21912-21913, 21915, 21990, 21996, 22106, 22123

amunger at svn.reactos.org amunger at svn.reactos.org
Fri Jun 2 01:37:45 CEST 2006


Author: amunger
Date: Fri Jun  2 03:37:44 2006
New Revision: 22171

URL: http://svn.reactos.ru/svn/reactos?rev=22171&view=rev
Log:
Merge ncpa and networking fixes from trunk.
Revisions: 21899-21900, 21912-21913, 21915, 21990, 21996, 22106, 22123

Added:
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/fr.rc
      - copied unchanged from r21915, trunk/reactos/dll/cpl/ncpa/fr.rc
Modified:
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/Ja.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/cz.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/de.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/dk.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/en.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/es.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/hu.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ncpa.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/nl.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ru.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/sv.rc
    branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/tcpip_properties.c
    branches/ros-branch-0_3_0/reactos/drivers/network/tcpip/tcpip/dispatch.c
    branches/ros-branch-0_3_0/reactos/drivers/network/wshtcpip/wshtcpip.c
    branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/ip.c
    branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/router.c
    branches/ros-branch-0_3_0/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/Ja.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/Ja.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/Ja.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/Ja.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "Ý’è(&C)", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "‚±‚̐ڑ±‚̓`ƒFƒbƒN ƒ}[ƒN‚ªƒIƒ“‚ɂȂÁ‚Ä‚¢‚éƒRƒ“ƒ|[ƒlƒ“ƒg‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "ƒCƒ“ƒXƒg[ƒ‹(&I)", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "íœ(&U)", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "ƒvƒƒpƒeƒB(&P)", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/cz.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/cz.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/cz.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/cz.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Nastavit", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Vybrané komponenty jsou používány tímto pøipojením:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Instalovat", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Odstranit", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Vlastnosti", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/de.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/de.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/de.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/de.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Konfigurieren", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Diese &Verbindung verwendet folgende Elemente:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Installieren", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Deinstallieren", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Eigenschaften", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/dk.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/dk.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/dk.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/dk.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Konfigure", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Komponeter mærkeret med et flueben er brugt af den forbindelse:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Installere", IDC_INSTALL, 9, 133, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Afinstallere", IDC_UNINSTALL, 90, 133, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Egenskaber", IDC_PROPERTIES, 174, 133, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/en.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/en.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/en.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/en.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Configure", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Components checked are used by this connection:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Install", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Uninstall", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Properties", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/es.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/es.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/es.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/es.rc Fri Jun  2 03:37:44 2006
@@ -27,7 +27,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Configurar", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Los componentes marcados son utilizados por esta conección:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Instalar", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Desinstalar", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Propiedades", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/hu.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/hu.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/hu.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/hu.rc Fri Jun  2 03:37:44 2006
@@ -22,7 +22,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Beállítás", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "A megjelölt alkotóelemek vannak használatban ennél a kapcsolatnál:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Telepítés", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Eltávolítás", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Tulajdonságok", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ncpa.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ncpa.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ncpa.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ncpa.rc Fri Jun  2 03:37:44 2006
@@ -18,13 +18,18 @@
 IDI_VERTICAL ICON "resources/VERTIC.ICO"
 IDI_NETSTAT ICON "resources/NETCONN.ICO"
 
-#include "en.rc"
 #include "cz.rc"
 #include "de.rc"
 #include "dk.rc"
+#include "en.rc"
+#include "es.rc"
+#include "fr.rc"
+#include "hu.rc"
+#include "Ja.rc"
 #include "nl.rc"
+#include "ru.rc"
 #include "sv.rc"
-#include "es.rc"
-#include "Ja.rc"
-#include "hu.rc"
-#include "ru.rc"
+
+
+
+

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/nl.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/nl.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/nl.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/nl.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Configureren", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Components checked are used by this connection:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Installeren", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Verwijderen", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Eigenschappen", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ru.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ru.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ru.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/ru.rc Fri Jun  2 03:37:44 2006
@@ -21,7 +21,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Íàñòðîèòü", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Îòìå÷åííûå êîìïîíåíòû èñïîëüçóþòñÿ ýòèì ïîäêëþ÷åíèåì:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Óñòàíîâèòü", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Óäàëèòü", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Ñâîéñòâà", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/sv.rc
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/sv.rc?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/sv.rc (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/sv.rc Fri Jun  2 03:37:44 2006
@@ -23,7 +23,7 @@
  EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
  PUSHBUTTON "&Konfigurera", IDC_CONFIGURE, 189, 38, 50, 14
  LTEXT "Markerade komponenter används av denna anslutning:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
+ LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 55, LBS_STANDARD | LBS_NOINTEGRALHEIGHT
  PUSHBUTTON "&Installera", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Avinstallera", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
  PUSHBUTTON "&Egenskaper", IDC_PROPERTIES, 174, 130, 65, 14

Modified: branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/tcpip_properties.c
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/tcpip_properties.c?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/tcpip_properties.c (original)
+++ branches/ros-branch-0_3_0/reactos/dll/cpl/ncpa/tcpip_properties.c Fri Jun  2 03:37:44 2006
@@ -71,6 +71,7 @@
     if (! Enabled) {
         SendDlgItemMessage(Dlg, IDC_DNS1, IPM_CLEARADDRESS, 0, 0);
         SendDlgItemMessage(Dlg, IDC_DNS2, IPM_CLEARADDRESS, 0, 0);
+	
     }
 }
 
@@ -132,10 +133,13 @@
 ValidateAndStore(HWND Dlg, PTCPIP_PROPERTIES_DATA DlgData)
 {
     DWORD IpAddress;
+    MIB_IPFORWARDROW RowToAdd = { 0 }, RowToRem = { 0 };
 
     DlgData->DhcpEnabled = (BST_CHECKED ==
                             IsDlgButtonChecked(Dlg, IDC_USEDHCP));
     if (! DlgData->DhcpEnabled) {
+	DhcpReleaseIpAddressLease( DlgData->AdapterIndex );
+
         if (4 != SendMessageW(GetDlgItem(Dlg, IDC_IPADDR), IPM_GETADDRESS,
                               0, (LPARAM) &IpAddress)) {
             ShowError(Dlg, IDS_ENTER_VALID_IPADDRESS);
@@ -156,11 +160,26 @@
         } else {
             DlgData->Gateway = htonl(IpAddress);
         }
+	DhcpStaticRefreshParams
+	    ( DlgData->AdapterIndex, DlgData->IpAddress, DlgData->SubnetMask );
+
+	RowToRem.dwForwardMask = 0;
+	RowToRem.dwForwardMetric1 = 1;
+	RowToRem.dwForwardNextHop = DlgData->OldGateway;
+
+	DeleteIpForwardEntry( &RowToRem );
+
+	RowToAdd.dwForwardMask = 0;
+	RowToAdd.dwForwardMetric1 = 1;
+	RowToAdd.dwForwardNextHop = DlgData->Gateway;
+
+	CreateIpForwardEntry( &RowToAdd );
         ASSERT(BST_CHECKED == IsDlgButtonChecked(Dlg, IDC_FIXEDDNS));
     } else {
         DlgData->IpAddress = INADDR_NONE;
         DlgData->SubnetMask = INADDR_NONE;
         DlgData->Gateway = INADDR_NONE;
+	DhcpLeaseIpAddress( DlgData->AdapterIndex );
     }
 
     if (BST_CHECKED == IsDlgButtonChecked(Dlg, IDC_FIXEDDNS)) {
@@ -251,7 +270,8 @@
             goto cleanup;
     }
 
-    MessageBox(NULL, TEXT("You need to reboot before the new parameters take effect."), TEXT("Reboot required"), MB_OK | MB_ICONWARNING);
+    // arty ... Not needed anymore ... We update the address live now
+    //MessageBox(NULL, TEXT("You need to reboot before the new parameters take effect."), TEXT("Reboot required"), MB_OK | MB_ICONWARNING);
     ret = TRUE;
 
 cleanup:

Modified: branches/ros-branch-0_3_0/reactos/drivers/network/tcpip/tcpip/dispatch.c
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/drivers/network/tcpip/tcpip/dispatch.c?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/drivers/network/tcpip/tcpip/dispatch.c (original)
+++ branches/ros-branch-0_3_0/reactos/drivers/network/tcpip/tcpip/dispatch.c Fri Jun  2 03:37:44 2006
@@ -1522,6 +1522,9 @@
             IF->Unicast.Address.IPv4Address = IpAddrChange->Address;
             IF->Netmask.Type = IP_ADDRESS_V4;
             IF->Netmask.Address.IPv4Address = IpAddrChange->Netmask;
+	    IF->Broadcast.Address.IPv4Address =
+		IF->Unicast.Address.IPv4Address |
+		~IF->Netmask.Address.IPv4Address;
 
             TI_DbgPrint(MID_TRACE,("New Unicast Address: %x\n",
                                    IF->Unicast.Address.IPv4Address));
@@ -1548,6 +1551,7 @@
 
     ForEachInterface(IF) {
         if( IF->Index == *NteIndex ) {
+            IPRemoveInterfaceRoute( IF );
             IF->Unicast.Type = IP_ADDRESS_V4;
             IF->Unicast.Address.IPv4Address = 0;
             IF->Netmask.Type = IP_ADDRESS_V4;

Modified: branches/ros-branch-0_3_0/reactos/drivers/network/wshtcpip/wshtcpip.c
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/drivers/network/wshtcpip/wshtcpip.c?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/drivers/network/wshtcpip/wshtcpip.c (original)
+++ branches/ros-branch-0_3_0/reactos/drivers/network/wshtcpip/wshtcpip.c Fri Jun  2 03:37:44 2006
@@ -93,6 +93,11 @@
 }
 
 
+/* 
+Document from OSR how WSHGetSockaddrType works
+http://www.osronline.com/ddkx/network/37wshfun_5lyq.htm
+*/
+
 INT
 EXPORT
 WSHGetSockaddrType(
@@ -100,10 +105,57 @@
     IN  DWORD SockaddrLength,
     OUT PSOCKADDR_INFO SockaddrInfo)
 {
-    UNIMPLEMENTED
-
-    return 0;
-}
+    PSOCKADDR_IN ipv4 = (PSOCKADDR_IN)Sockaddr;
+       
+    if ((ipv4 != NULL)
+	&& (SockaddrLength == sizeof(SOCKADDR_IN))
+	&& (ipv4->sin_family == AF_INET)
+	&& (SockaddrInfo != NULL)) 
+    { 
+                                 
+      switch (ntohl(ipv4->sin_addr.s_addr))
+      {
+        case INADDR_ANY:
+             SockaddrInfo->AddressInfo = SockaddrAddressInfoWildcard;
+             break;
+              
+        case INADDR_BROADCAST:
+             SockaddrInfo->AddressInfo = SockaddrAddressInfoBroadcast; 
+             break;
+              
+        case INADDR_LOOPBACK:
+             SockaddrInfo->AddressInfo = SockaddrAddressInfoLoopback; 
+             break;       
+
+        default:            
+             SockaddrInfo->AddressInfo = SockaddrAddressInfoNormal;
+	     break; 
+      }
+
+      SockaddrInfo->EndpointInfo = SockaddrEndpointInfoNormal;
+      if (ntohs(ipv4->sin_port) == 0)
+	  SockaddrInfo->EndpointInfo = SockaddrEndpointInfoWildcard;
+      if (ntohs(ipv4->sin_port) < IPPORT_RESERVED)
+	  SockaddrInfo->EndpointInfo = SockaddrEndpointInfoReserved;             
+
+      return 0;
+    }
+
+    DPRINT1("FIXME WSHGetSockaddrType Unsupported Address Family or bad parameters\n");
+    if (SockaddrInfo != NULL)
+    {
+      SockaddrInfo->AddressInfo = SockaddrAddressInfoNormal;
+      SockaddrInfo->EndpointInfo = SockaddrEndpointInfoNormal;
+    }
+    
+    DPRINT1("Size of Address Family %d \n",SockaddrLength);
+
+    DPRINT1("FIXME WSHGetSockaddrType return Winsock error, but we do not return any error\n");
+    return 0;
+}
+
+
+
 
 
 INT

Modified: branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/ip.c
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/ip.c?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/ip.c (original)
+++ branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/ip.c Fri Jun  2 03:37:44 2006
@@ -305,14 +305,19 @@
     TCPDisposeInterfaceData( IF->TCPContext );
     IF->TCPContext = NULL;
 
+    TI_DbgPrint(DEBUG_IP,("Removing interface Addr %s\n", A2S(&IF->Unicast)));
+    TI_DbgPrint(DEBUG_IP,("                   Mask %s\n", A2S(&IF->Netmask)));
+
     AddrWidenAddress(&GeneralRoute,&IF->Unicast,&IF->Netmask);
+
     RouterRemoveRoute(&GeneralRoute, &IF->Unicast);
 
     /* Remove permanent NCE, but first we have to find it */
     NCE = NBLocateNeighbor(&IF->Unicast);
     if (NCE)
 	NBRemoveNeighbor(NCE);
-
+    else
+	TI_DbgPrint(DEBUG_IP, ("Could not delete IF route (0x%X)\n", IF));
 }
 
 VOID IPUnregisterInterface(

Modified: branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/router.c
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/router.c?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/router.c (original)
+++ branches/ros-branch-0_3_0/reactos/lib/drivers/ip/network/router.c Fri Jun  2 03:37:44 2006
@@ -18,6 +18,30 @@
 LIST_ENTRY FIBListHead;
 KSPIN_LOCK FIBLock;
 
+void RouterDumpRoutes() {
+    PLIST_ENTRY CurrentEntry;
+    PLIST_ENTRY NextEntry;
+    PFIB_ENTRY Current;
+    PNEIGHBOR_CACHE_ENTRY NCE;
+
+    TI_DbgPrint(DEBUG_ROUTER,("Dumping Routes\n"));
+
+    CurrentEntry = FIBListHead.Flink;
+    while (CurrentEntry != &FIBListHead) {
+        NextEntry = CurrentEntry->Flink;
+	Current = CONTAINING_RECORD(CurrentEntry, FIB_ENTRY, ListEntry);
+
+        NCE   = Current->Router;
+
+	TI_DbgPrint(DEBUG_ROUTER,("Examining FIBE %x\n", Current));
+	TI_DbgPrint(DEBUG_ROUTER,("... NetworkAddress %s\n", A2S(&Current->NetworkAddress)));
+	TI_DbgPrint(DEBUG_ROUTER,("... NCE->Address . %s\n", A2S(&NCE->Address)));
+
+	CurrentEntry = NextEntry;
+    }
+
+    TI_DbgPrint(DEBUG_ROUTER,("Dumping Routes ... Done\n"));
+}
 
 VOID FreeFIB(
     PVOID Object)
@@ -195,7 +219,7 @@
         return NULL;
     }
 
-   INIT_TAG(Router, TAG('R','O','U','T'));
+    INIT_TAG(Router, TAG('R','O','U','T'));
 
     RtlCopyMemory( &FIBE->NetworkAddress, NetworkAddress,
 		   sizeof(FIBE->NetworkAddress) );
@@ -331,13 +355,17 @@
     PNEIGHBOR_CACHE_ENTRY NCE;
 
     TI_DbgPrint(DEBUG_ROUTER, ("Called\n"));
+    TI_DbgPrint(DEBUG_ROUTER, ("Deleting Route From: %s\n", A2S(Router)));
+    TI_DbgPrint(DEBUG_ROUTER, ("                 To: %s\n", A2S(Target)));
 
     TcpipAcquireSpinLock(&FIBLock, &OldIrql);
 
-    CurrentEntry = FIBListHead.Flink;
-    while (CurrentEntry != &FIBListHead) {
-        NextEntry = CurrentEntry->Flink;
-	    Current = CONTAINING_RECORD(CurrentEntry, FIB_ENTRY, ListEntry);
+    RouterDumpRoutes();
+
+    CurrentEntry = FIBListHead.Flink;
+    while (CurrentEntry != &FIBListHead) {
+        NextEntry = CurrentEntry->Flink;
+	Current = CONTAINING_RECORD(CurrentEntry, FIB_ENTRY, ListEntry);
 
         NCE   = Current->Router;
 
@@ -355,6 +383,8 @@
 	TI_DbgPrint(DEBUG_ROUTER, ("Deleting route\n"));
 	DestroyFIBE( Current );
     }
+
+    RouterDumpRoutes();
 
     TcpipReleaseSpinLock(&FIBLock, OldIrql);
 
@@ -384,8 +414,33 @@
  *     for providing this reference
  */
 {
+    KIRQL OldIrql;
+    PFIB_ENTRY FIBE;
+    PLIST_ENTRY CurrentEntry;
+    PLIST_ENTRY NextEntry;
+    PFIB_ENTRY Current;
     PNEIGHBOR_CACHE_ENTRY NCE;
-    PFIB_ENTRY FIBE;
+
+    TcpipAcquireSpinLock(&FIBLock, &OldIrql);
+
+    CurrentEntry = FIBListHead.Flink;
+    while (CurrentEntry != &FIBListHead) {
+        NextEntry = CurrentEntry->Flink;
+	Current = CONTAINING_RECORD(CurrentEntry, FIB_ENTRY, ListEntry);
+
+        NCE   = Current->Router;
+
+	if( AddrIsEqual(NetworkAddress, &Current->NetworkAddress) &&
+	    AddrIsEqual(Netmask, &Current->Netmask) ) {
+	    TI_DbgPrint(DEBUG_ROUTER,("Attempting to add duplicate route to %s\n", A2S(NetworkAddress)));
+	    TcpipReleaseSpinLock(&FIBLock, OldIrql);
+	    return NULL;
+	}
+
+	CurrentEntry = NextEntry;
+    }
+
+    TcpipReleaseSpinLock(&FIBLock, OldIrql);
 
     /* The NCE references RouterAddress. The NCE is referenced for us */
     NCE = NBFindOrCreateNeighbor(Interface, RouterAddress);

Modified: branches/ros-branch-0_3_0/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c
URL: http://svn.reactos.ru/svn/reactos/branches/ros-branch-0_3_0/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c?rev=22171&r1=22170&r2=22171&view=diff
==============================================================================
--- branches/ros-branch-0_3_0/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c (original)
+++ branches/ros-branch-0_3_0/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c Fri Jun  2 03:37:44 2006
@@ -827,6 +827,19 @@
 	register struct socket *so;
 	register int how;
 {
+    if (so == NULL)
+    {
+     	register struct protosw *pr = NULL;
+
+	how++;
+	if (how & FREAD)
+		sorflush(so);
+	if (how & FWRITE)
+		return ((*pr->pr_usrreq)(so, PRU_SHUTDOWN,
+		    (struct mbuf *)0, (struct mbuf *)0, (struct mbuf *)0));
+	return (0);
+    }
+    
 	register struct protosw *pr = so->so_proto;
 
 	how++;




More information about the Ros-diffs mailing list