https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ed80df29e0c135e2179ccfe0e40da2731bc7b27c

commit ed80df29e0c135e2179ccfe0e40da2731bc7b27c
Author:     Eric Kohl <[email protected]>
AuthorDate: Sun Jul 2 14:48:03 2023 +0200
Commit:     Eric Kohl <[email protected]>
CommitDate: Sun Jul 2 14:48:03 2023 +0200

    [IPCONFIG] Improvements to Release and Renew functions
    
    - Reimplement the Release and Renew functions using GetAdaptersInfo().
    - Check for enabled DHCP and connected medium
    - Check for already released Lease in the Release function
    - Add required messages
---
 base/applications/network/ipconfig/ipconfig.c    | 195 +++++++++++++++++------
 base/applications/network/ipconfig/lang/bg-BG.rc |  22 +--
 base/applications/network/ipconfig/lang/de-DE.rc |  22 +--
 base/applications/network/ipconfig/lang/el-GR.rc |  22 +--
 base/applications/network/ipconfig/lang/en-US.rc |  22 +--
 base/applications/network/ipconfig/lang/es-ES.rc |  22 +--
 base/applications/network/ipconfig/lang/fr-FR.rc |  22 +--
 base/applications/network/ipconfig/lang/id-ID.rc |  22 +--
 base/applications/network/ipconfig/lang/it-IT.rc |  22 +--
 base/applications/network/ipconfig/lang/no-NO.rc |  22 +--
 base/applications/network/ipconfig/lang/pl-PL.rc |  22 +--
 base/applications/network/ipconfig/lang/ro-RO.rc |  22 +--
 base/applications/network/ipconfig/lang/ru-RU.rc |  22 +--
 base/applications/network/ipconfig/lang/sk-SK.rc |  22 +--
 base/applications/network/ipconfig/lang/sq-AL.rc |  22 +--
 base/applications/network/ipconfig/lang/sv-SE.rc |  22 +--
 base/applications/network/ipconfig/lang/tr-TR.rc |  22 +--
 base/applications/network/ipconfig/lang/uk-UA.rc |  22 +--
 base/applications/network/ipconfig/lang/zh-CN.rc |  22 +--
 base/applications/network/ipconfig/lang/zh-TW.rc |  22 +--
 base/applications/network/ipconfig/resource.h    |   4 +
 21 files changed, 398 insertions(+), 219 deletions(-)

diff --git a/base/applications/network/ipconfig/ipconfig.c 
b/base/applications/network/ipconfig/ipconfig.c
index 43c7b89a531..014a87d120c 100644
--- a/base/applications/network/ipconfig/ipconfig.c
+++ b/base/applications/network/ipconfig/ipconfig.c
@@ -528,7 +528,10 @@ PrintAdapterTypeAndName(
     }
 }
 
-VOID ShowInfo(BOOL bAll)
+VOID
+ShowInfo(
+    BOOL bShowHeader,
+    BOOL bAll)
 {
     MIB_IFROW mibEntry;
     PIP_ADAPTER_INFO pAdapterInfo = NULL;
@@ -602,7 +605,8 @@ VOID ShowInfo(BOOL bAll)
 
     pAdapter = pAdapterInfo;
 
-    ConResPrintf(StdOut, IDS_HEADER);
+    if (bShowHeader)
+        ConResPrintf(StdOut, IDS_HEADER);
 
     if (bAll)
     {
@@ -805,120 +809,215 @@ MatchWildcard(
     return TRUE;
 }
 
+static
+VOID
+BuildAdapterMap(
+    PIP_ADAPTER_INDEX_MAP pAdapterMap,
+    PIP_ADAPTER_INFO pAdapterInfo)
+{
+    int i, l1, l2;
+
+    pAdapterMap->Index = pAdapterInfo->Index;
+
+    wcscpy(pAdapterMap->Name, L"\\DEVICE\\TCPIP_");
+    l1 = wcslen(pAdapterMap->Name);
+    l2 = strlen(pAdapterInfo->AdapterName);
+    for (i = 0; i < l2; i++)
+        pAdapterMap->Name[i + l1] = (WCHAR)pAdapterInfo->AdapterName[i];
+    pAdapterMap->Name[i + l1] = UNICODE_NULL;
+}
+
 VOID
 Release(
     LPWSTR pszAdapterName)
 {
-    IP_ADAPTER_INDEX_MAP AdapterInfo;
-    DWORD i, ret;
-    PIP_INTERFACE_INFO pInfo = NULL;
-    ULONG ulOutBufLen = 0;
+    PIP_ADAPTER_INFO pAdapterInfo = NULL;
+    PIP_ADAPTER_INFO pAdapter = NULL;
+    ULONG adaptOutBufLen = 0;
+    ULONG ret = 0;
     WCHAR szFriendlyName[MAX_PATH];
+    MIB_IFROW mibEntry;
+    IP_ADAPTER_INDEX_MAP AdapterMap;
+    BOOL bFoundAdapter = FALSE;
 
     ConResPrintf(StdOut, IDS_HEADER);
 
-    if (GetInterfaceInfo(pInfo, &ulOutBufLen) != ERROR_INSUFFICIENT_BUFFER)
+    /* call GetAdaptersInfo to obtain the adapter info */
+    ret = GetAdaptersInfo(pAdapterInfo, &adaptOutBufLen);
+    if (ret != ERROR_BUFFER_OVERFLOW)
     {
-        _tprintf(_T("\nGetInterfaceInfo failed : "));
-        DoFormatMessage(0);
+        DoFormatMessage(ret);
         return;
     }
 
-    pInfo = (IP_INTERFACE_INFO *)HeapAlloc(ProcessHeap, 0, ulOutBufLen);
-    if (pInfo == NULL)
+    pAdapterInfo = (IP_ADAPTER_INFO *)HeapAlloc(ProcessHeap, 0, 
adaptOutBufLen);
+    if (pAdapterInfo == NULL)
     {
         _tprintf(_T("memory allocation error"));
         return;
     }
 
-    if (GetInterfaceInfo(pInfo, &ulOutBufLen) != NO_ERROR)
+    ret = GetAdaptersInfo(pAdapterInfo, &adaptOutBufLen);
+    if (ret != NO_ERROR)
     {
-        _tprintf(_T("\nGetInterfaceInfo failed : "));
         DoFormatMessage(0);
         goto done;
     }
 
-    for (i = 0; i < pInfo->NumAdapters; i++)
+    pAdapter = pAdapterInfo;
+
+    while (pAdapter)
     {
-        GetInterfaceFriendlyName(pInfo->Adapter[i].Name, MAX_PATH, 
szFriendlyName);
+        GetAdapterFriendlyName(pAdapterInfo->AdapterName, MAX_PATH, 
szFriendlyName);
 
         if ((pszAdapterName == NULL) || MatchWildcard(pszAdapterName, 
szFriendlyName))
         {
-            /* TODO: Check for enabled DHCP and connected medium */
+            bFoundAdapter = TRUE;
 
-            CopyMemory(&AdapterInfo, &pInfo->Adapter[i], 
sizeof(IP_ADAPTER_INDEX_MAP));
-            _tprintf(_T("name - %ls\n"), pInfo->Adapter[i].Name);
+            mibEntry.dwIndex = pAdapter->Index;
+            GetIfEntry(&mibEntry);
 
-            /* Call IpReleaseAddress to release the IP address on the 
specified adapter. */
-            ret = IpReleaseAddress(&AdapterInfo);
-            if (ret != NO_ERROR)
+            if (mibEntry.dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED ||
+                mibEntry.dwOperStatus == MIB_IF_OPER_STATUS_OPERATIONAL)
+            {
+                if (pAdapter->DhcpEnabled)
+                {
+                    if (strcmp(pAdapter->IpAddressList.IpAddress.String, 
"0.0.0.0"))
+                    {
+                        BuildAdapterMap(&AdapterMap, pAdapter);
+
+                        /* Call IpReleaseAddress to release the IP address on 
the specified adapter. */
+                        ret = IpReleaseAddress(&AdapterMap);
+                        if (ret != NO_ERROR)
+                        {
+                            _tprintf(_T("\nAn error occured while releasing 
interface %ls : \n"), szFriendlyName);
+                            DoFormatMessage(ret);
+                        }
+                    }
+                    else
+                    {
+                        ConResPrintf(StdOut, IDS_DHCPRELEASED);
+                    }
+                }
+                else
+                {
+                    ConResPrintf(StdOut, IDS_DHCPNOTENABLED, szFriendlyName);
+                }
+            }
+            else
             {
-                _tprintf(_T("\nAn error occured while releasing interface %ls 
: \n"), szFriendlyName);
-                DoFormatMessage(ret);
+                ConResPrintf(StdOut, IDS_DHCPNOTCONNECTED, szFriendlyName);
             }
         }
+
+        pAdapter = pAdapter->Next;
+    }
+
+    if (bFoundAdapter == FALSE)
+    {
+        ConResPrintf(StdOut, IDS_DHCPNOADAPTER);
+    }
+    else
+    {
+        ShowInfo(FALSE, FALSE);
     }
 
 done:
-    HeapFree(ProcessHeap, 0, pInfo);
+    if (pAdapterInfo)
+        HeapFree(ProcessHeap, 0, pAdapterInfo);
 }
 
 VOID
 Renew(
     LPWSTR pszAdapterName)
 {
-    IP_ADAPTER_INDEX_MAP AdapterInfo;
-    DWORD i, ret;
-    PIP_INTERFACE_INFO pInfo = NULL;
-    ULONG ulOutBufLen = 0;
+    PIP_ADAPTER_INFO pAdapterInfo = NULL;
+    PIP_ADAPTER_INFO pAdapter = NULL;
+    ULONG adaptOutBufLen = 0;
+    ULONG ret = 0;
     WCHAR szFriendlyName[MAX_PATH];
+    MIB_IFROW mibEntry;
+    IP_ADAPTER_INDEX_MAP AdapterMap;
+    BOOL bFoundAdapter = FALSE;
 
     ConResPrintf(StdOut, IDS_HEADER);
 
-    if (GetInterfaceInfo(pInfo, &ulOutBufLen) != ERROR_INSUFFICIENT_BUFFER)
+    /* call GetAdaptersInfo to obtain the adapter info */
+    ret = GetAdaptersInfo(pAdapterInfo, &adaptOutBufLen);
+    if (ret != ERROR_BUFFER_OVERFLOW)
     {
-        _tprintf(_T("\nGetInterfaceInfo failed : "));
-        DoFormatMessage(0);
+        DoFormatMessage(ret);
         return;
     }
 
-    pInfo = (IP_INTERFACE_INFO *)HeapAlloc(ProcessHeap, 0, ulOutBufLen);
-    if (pInfo == NULL)
+    pAdapterInfo = (IP_ADAPTER_INFO *)HeapAlloc(ProcessHeap, 0, 
adaptOutBufLen);
+    if (pAdapterInfo == NULL)
     {
         _tprintf(_T("memory allocation error"));
         return;
     }
 
-    /* Make a second call to GetInterfaceInfo to get the actual data we want */
-    if (GetInterfaceInfo(pInfo, &ulOutBufLen) != NO_ERROR)
+    ret = GetAdaptersInfo(pAdapterInfo, &adaptOutBufLen);
+    if (ret != NO_ERROR)
     {
-        _tprintf(_T("\nGetInterfaceInfo failed : "));
         DoFormatMessage(0);
         goto done;
     }
 
-    for (i = 0; i < pInfo->NumAdapters; i++)
+    pAdapter = pAdapterInfo;
+
+    while (pAdapter)
     {
-        GetInterfaceFriendlyName(pInfo->Adapter[i].Name, MAX_PATH, 
szFriendlyName);
+        GetAdapterFriendlyName(pAdapterInfo->AdapterName, MAX_PATH, 
szFriendlyName);
 
         if ((pszAdapterName == NULL) || MatchWildcard(pszAdapterName, 
szFriendlyName))
         {
-            /* TODO: Check for enabled DHCP and connected medium */
+            bFoundAdapter = TRUE;
 
-            CopyMemory(&AdapterInfo, &pInfo->Adapter[i], 
sizeof(IP_ADAPTER_INDEX_MAP));
+            mibEntry.dwIndex = pAdapter->Index;
+            GetIfEntry(&mibEntry);
 
-            /* Call IpRenewAddress to renew the IP address on the specified 
adapter. */
-            ret = IpRenewAddress(&AdapterInfo);
-            if (ret != NO_ERROR)
+            if (mibEntry.dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED ||
+                mibEntry.dwOperStatus == MIB_IF_OPER_STATUS_OPERATIONAL)
             {
-                _tprintf(_T("\nAn error occured while renew interface %ls : 
"), szFriendlyName);
-                DoFormatMessage(ret);
+                if (pAdapter->DhcpEnabled)
+                {
+                    BuildAdapterMap(&AdapterMap, pAdapter);
+
+                    /* Call IpRenewAddress to renew the IP address on the 
specified adapter. */
+                    ret = IpRenewAddress(&AdapterMap);
+                    if (ret != NO_ERROR)
+                    {
+                        _tprintf(_T("\nAn error occured while renew interface 
%ls : "), szFriendlyName);
+                        DoFormatMessage(ret);
+                    }
+                }
+                else
+                {
+                    ConResPrintf(StdOut, IDS_DHCPNOTENABLED, szFriendlyName);
+                }
+            }
+            else
+            {
+                ConResPrintf(StdOut, IDS_DHCPNOTCONNECTED, szFriendlyName);
             }
         }
+
+        pAdapter = pAdapter->Next;
+    }
+
+    if (bFoundAdapter == FALSE)
+    {
+        ConResPrintf(StdOut, IDS_DHCPNOADAPTER);
+    }
+    else
+    {
+        ShowInfo(FALSE, FALSE);
     }
 
 done:
-    HeapFree(ProcessHeap, 0, pInfo);
+    if (pAdapterInfo)
+        HeapFree(ProcessHeap, 0, pAdapterInfo);
 }
 
 VOID
@@ -1175,13 +1274,13 @@ int wmain(int argc, wchar_t *argv[])
     switch (argc)
     {
         case 1:  /* Default behaviour if no options are given*/
-            ShowInfo(FALSE);
+            ShowInfo(TRUE, FALSE);
             break;
         case 2:  /* Process all the options that take no parameters */
             if (DoUsage)
                 Usage();
             else if (DoAll)
-                ShowInfo(TRUE);
+                ShowInfo(TRUE, TRUE);
             else if (DoRelease)
                 Release(NULL);
             else if (DoRenew)
diff --git a/base/applications/network/ipconfig/lang/bg-BG.rc 
b/base/applications/network/ipconfig/lang/bg-BG.rc
index a91a4b04c10..505d454725f 100644
--- a/base/applications/network/ipconfig/lang/bg-BG.rc
+++ b/base/applications/network/ipconfig/lang/bg-BG.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nДруг вид карта: %ls\n"
-    IDS_ETH "\nКарта Ethernet: %ls\n"
-    IDS_TOKEN "\nКарта Token Ring: %ls\n"
-    IDS_FDDI "\nКарта FDDI: %ls\n"
-    IDS_PPP "\nКарта PPP: %ls\n"
-    IDS_LOOP "\nКарта Loopback: %ls\n"
-    IDS_SLIP "\nКарта SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nДруг вид карта: %ls\n\n"
+    IDS_ETH "\nКарта Ethernet: %ls\n\n"
+    IDS_TOKEN "\nКарта Token Ring: %ls\n\n"
+    IDS_FDDI "\nКарта FDDI: %ls\n\n"
+    IDS_PPP "\nКарта PPP: %ls\n\n"
+    IDS_LOOP "\nКарта Loopback: %ls\n\n"
+    IDS_SLIP "\nКарта SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/de-DE.rc 
b/base/applications/network/ipconfig/lang/de-DE.rc
index 3ac1118752e..76313151a15 100644
--- a/base/applications/network/ipconfig/lang/de-DE.rc
+++ b/base/applications/network/ipconfig/lang/de-DE.rc
@@ -46,15 +46,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnbekannter Adapter: %ls\n"
-    IDS_OTHER "\nAnderer Adapter: %ls\n"
-    IDS_ETH "\nEthernet-Adapter: %ls\n"
-    IDS_TOKEN "\nToken-Ring-Adapter: %ls\n"
-    IDS_FDDI "\nFDDI-Adapter: %ls\n"
-    IDS_PPP "\nPPP-Adapter: %ls\n"
-    IDS_LOOP "\nLoopback-Adapter: %ls\n"
-    IDS_SLIP "\nSLIP-Adapter: %ls\n"
-    IDS_WIFI "\nDrahtlos-LAN-Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnbekannter Adapter: %ls\n\n"
+    IDS_OTHER "\nAnderer Adapter: %ls\n\n"
+    IDS_ETH "\nEthernet-Adapter: %ls\n\n"
+    IDS_TOKEN "\nToken-Ring-Adapter: %ls\n\n"
+    IDS_FDDI "\nFDDI-Adapter: %ls\n\n"
+    IDS_PPP "\nPPP-Adapter: %ls\n\n"
+    IDS_LOOP "\nLoopback-Adapter: %ls\n\n"
+    IDS_SLIP "\nSLIP-Adapter: %ls\n\n"
+    IDS_WIFI "\nDrahtlos-LAN-Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -87,6 +87,10 @@ BEGIN
     IDS_DNSNONAME           "\tName existiert nicht.\n\n"
     IDS_DNSFLUSHERROR       "Der DNS-Auflösungscache konnte nicht geleert 
werden: "
     IDS_DNSFLUSHSUCCESS     "Der DNS-Auflösungscache wurde geleert.\n"
+    IDS_DHCPNOTCONNECTED    "Es kann kein Vorgang auf %ls ausgeführt werden, 
solange dessen Medium nicht verbunden ist.\n"
+    IDS_DHCPNOTENABLED      "Der Adapter %ls ist nicht für DHCP aktiviert.\n"
+    IDS_DHCPNOADAPTER       "Der Vorgang ist fehlgeschlagen, weil kein Adapter 
sich in einem für diesen\nVorgang zulässigen Zustand befindet.\n"
+    IDS_DHCPRELEASED        "Die IP-Adresse für den Adapter %ls wurde bereits 
freigegeben.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/el-GR.rc 
b/base/applications/network/ipconfig/lang/el-GR.rc
index 2278736e48d..77d3ab06a5d 100644
--- a/base/applications/network/ipconfig/lang/el-GR.rc
+++ b/base/applications/network/ipconfig/lang/el-GR.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nΆλλος τύπος προσαρμογέα: %ls\n"
-    IDS_ETH "\nΠροσαρμογέας Ethernet: %ls\n"
-    IDS_TOKEN "\nΠροσαρμογέας Token Ring: %ls\n"
-    IDS_FDDI "\nΠροσαρμογέας FDDI: %ls\n"
-    IDS_PPP "\nΠροσαρμογέας PPP: %ls\n"
-    IDS_LOOP "\nΠροσαρμογέας Loopback: %ls\n"
-    IDS_SLIP "\nΠροσαρμογέας SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nΆλλος τύπος προσαρμογέα: %ls\n\n"
+    IDS_ETH "\nΠροσαρμογέας Ethernet: %ls\n\n"
+    IDS_TOKEN "\nΠροσαρμογέας Token Ring: %ls\n\n"
+    IDS_FDDI "\nΠροσαρμογέας FDDI: %ls\n\n"
+    IDS_PPP "\nΠροσαρμογέας PPP: %ls\n\n"
+    IDS_LOOP "\nΠροσαρμογέας Loopback: %ls\n\n"
+    IDS_SLIP "\nΠροσαρμογέας SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/en-US.rc 
b/base/applications/network/ipconfig/lang/en-US.rc
index 454e0ff118c..d7d5b2ee05e 100644
--- a/base/applications/network/ipconfig/lang/en-US.rc
+++ b/base/applications/network/ipconfig/lang/en-US.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nOther Type Of Adapter: %ls\n"
-    IDS_ETH "\nEthernet Adapter: %ls\n"
-    IDS_TOKEN "\nToken Ring Adapter: %ls\n"
-    IDS_FDDI "\nFDDI Adapter: %ls\n"
-    IDS_PPP "\nPPP Adapter: %ls\n"
-    IDS_LOOP "\nLoopback Adapter: %ls\n"
-    IDS_SLIP "\nSLIP Adapter: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nOther Type Of Adapter: %ls\n\n"
+    IDS_ETH "\nEthernet Adapter: %ls\n\n"
+    IDS_TOKEN "\nToken Ring Adapter: %ls\n\n"
+    IDS_FDDI "\nFDDI Adapter: %ls\n\n"
+    IDS_PPP "\nPPP Adapter: %ls\n\n"
+    IDS_LOOP "\nLoopback Adapter: %ls\n\n"
+    IDS_SLIP "\nSLIP Adapter: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/es-ES.rc 
b/base/applications/network/ipconfig/lang/es-ES.rc
index a1ee73c5a51..6049a922906 100644
--- a/base/applications/network/ipconfig/lang/es-ES.rc
+++ b/base/applications/network/ipconfig/lang/es-ES.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nOtro tipo de adaptador: %ls\n"
-    IDS_ETH   "\nAdaptador Ethernet: %ls\n"
-    IDS_TOKEN "\nAdaptador de red en anillo: %ls\n"
-    IDS_FDDI  "\nAdaptador FDDI: %ls\n"
-    IDS_PPP   "\nAdaptador PPP: %ls\n"
-    IDS_LOOP  "\nAdaptador de bucle invertido: %ls\n"
-    IDS_SLIP  "\nAdaptador SLIP: %ls\n"
-    IDS_WIFI  "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nOtro tipo de adaptador: %ls\n\n"
+    IDS_ETH   "\nAdaptador Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdaptador de red en anillo: %ls\n\n"
+    IDS_FDDI  "\nAdaptador FDDI: %ls\n\n"
+    IDS_PPP   "\nAdaptador PPP: %ls\n\n"
+    IDS_LOOP  "\nAdaptador de bucle invertido: %ls\n\n"
+    IDS_SLIP  "\nAdaptador SLIP: %ls\n\n"
+    IDS_WIFI  "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/fr-FR.rc 
b/base/applications/network/ipconfig/lang/fr-FR.rc
index fdc4dbc2969..d0f212dcdb1 100644
--- a/base/applications/network/ipconfig/lang/fr-FR.rc
+++ b/base/applications/network/ipconfig/lang/fr-FR.rc
@@ -46,15 +46,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nAutre Type d'adapteur: %ls\n"
-    IDS_ETH "\nAdapteur Ethernet: %ls\n"
-    IDS_TOKEN "\nAdapteur Token Ring: %ls\n"
-    IDS_FDDI "\nAdapteur FDDI: %ls\n"
-    IDS_PPP "\nAdapteur PPP: %ls\n"
-    IDS_LOOP "\nAdapteur Loopback: %ls\n"
-    IDS_SLIP "\nAdapteur SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nAutre Type d'adapteur: %ls\n\n"
+    IDS_ETH "\nAdapteur Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdapteur Token Ring: %ls\n\n"
+    IDS_FDDI "\nAdapteur FDDI: %ls\n\n"
+    IDS_PPP "\nAdapteur PPP: %ls\n\n"
+    IDS_LOOP "\nAdapteur Loopback: %ls\n\n"
+    IDS_SLIP "\nAdapteur SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -87,6 +87,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/id-ID.rc 
b/base/applications/network/ipconfig/lang/id-ID.rc
index 728c47ade57..f1230c23632 100644
--- a/base/applications/network/ipconfig/lang/id-ID.rc
+++ b/base/applications/network/ipconfig/lang/id-ID.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nAdapter Tipe Lainnya: %ls\n"
-    IDS_ETH "\nAdapter Ethernet: %ls\n"
-    IDS_TOKEN "\nAdapter Token Ring: %ls\n"
-    IDS_FDDI "\nAdapter FDDI: %ls\n"
-    IDS_PPP "\nAdapter PPP: %ls\n"
-    IDS_LOOP "\nAdapter Loopback: %ls\n"
-    IDS_SLIP "\nAdapter SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nAdapter Tipe Lainnya: %ls\n\n"
+    IDS_ETH "\nAdapter Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdapter Token Ring: %ls\n\n"
+    IDS_FDDI "\nAdapter FDDI: %ls\n\n"
+    IDS_PPP "\nAdapter PPP: %ls\n\n"
+    IDS_LOOP "\nAdapter Loopback: %ls\n\n"
+    IDS_SLIP "\nAdapter SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/it-IT.rc 
b/base/applications/network/ipconfig/lang/it-IT.rc
index 0e4e9e1c0e9..c0dfa9e3913 100644
--- a/base/applications/network/ipconfig/lang/it-IT.rc
+++ b/base/applications/network/ipconfig/lang/it-IT.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nAltro tipo di adattatore: %ls\n"
-    IDS_ETH "\nAdattatore Ethernet: %ls\n"
-    IDS_TOKEN "\nAdattatore Token Ring: %ls\n"
-    IDS_FDDI "\nAdattatore FDDI: %ls\n"
-    IDS_PPP "\nAdattatore PPP: %ls\n"
-    IDS_LOOP "\nAdattatore Loopback: %ls\n"
-    IDS_SLIP "\nAdattatore SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nAltro tipo di adattatore: %ls\n\n"
+    IDS_ETH "\nAdattatore Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdattatore Token Ring: %ls\n\n"
+    IDS_FDDI "\nAdattatore FDDI: %ls\n\n"
+    IDS_PPP "\nAdattatore PPP: %ls\n\n"
+    IDS_LOOP "\nAdattatore Loopback: %ls\n\n"
+    IDS_SLIP "\nAdattatore SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/no-NO.rc 
b/base/applications/network/ipconfig/lang/no-NO.rc
index c117bc3407b..e710a25f57f 100644
--- a/base/applications/network/ipconfig/lang/no-NO.rc
+++ b/base/applications/network/ipconfig/lang/no-NO.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nOther Type Of Adapter: %ls\n"
-    IDS_ETH "\nEthernet Adapter: %ls\n"
-    IDS_TOKEN "\nToken Ring Adapter: %ls\n"
-    IDS_FDDI "\nFDDI Adapter: %ls\n"
-    IDS_PPP "\nPPP Adapter: %ls\n"
-    IDS_LOOP "\nLoopback Adapter: %ls\n"
-    IDS_SLIP "\nSLIP Adapter: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nOther Type Of Adapter: %ls\n\n"
+    IDS_ETH "\nEthernet Adapter: %ls\n\n"
+    IDS_TOKEN "\nToken Ring Adapter: %ls\n\n"
+    IDS_FDDI "\nFDDI Adapter: %ls\n\n"
+    IDS_PPP "\nPPP Adapter: %ls\n\n"
+    IDS_LOOP "\nLoopback Adapter: %ls\n\n"
+    IDS_SLIP "\nSLIP Adapter: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/pl-PL.rc 
b/base/applications/network/ipconfig/lang/pl-PL.rc
index 920683fa194..5860ea06fa8 100644
--- a/base/applications/network/ipconfig/lang/pl-PL.rc
+++ b/base/applications/network/ipconfig/lang/pl-PL.rc
@@ -47,15 +47,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nNieznana karta: %ls\n"
-    IDS_OTHER "\nInna karta: %ls\n"
-    IDS_ETH "\nKarta Ethernet: %ls\n"
-    IDS_TOKEN "\nKarta Token Ring: %ls\n"
-    IDS_FDDI "\nKarta FDDI: %ls\n"
-    IDS_PPP "\nKarta PPP: %ls\n"
-    IDS_LOOP "\nKarta sprzężenia zwrotnego: %ls\n"
-    IDS_SLIP "\nKarta SLIP: %ls\n"
-    IDS_WIFI "\nKarta bezprzewodowej sieci LAN: %ls\n"
+    IDS_UNKNOWNADAPTER "\nNieznana karta: %ls\n\n"
+    IDS_OTHER "\nInna karta: %ls\n\n"
+    IDS_ETH "\nKarta Ethernet: %ls\n\n"
+    IDS_TOKEN "\nKarta Token Ring: %ls\n\n"
+    IDS_FDDI "\nKarta FDDI: %ls\n\n"
+    IDS_PPP "\nKarta PPP: %ls\n\n"
+    IDS_LOOP "\nKarta sprzężenia zwrotnego: %ls\n\n"
+    IDS_SLIP "\nKarta SLIP: %ls\n\n"
+    IDS_WIFI "\nKarta bezprzewodowej sieci LAN: %ls\n\n"
 END
 
 STRINGTABLE
@@ -64,6 +64,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/ro-RO.rc 
b/base/applications/network/ipconfig/lang/ro-RO.rc
index 75f99443de1..bc24294c3d3 100644
--- a/base/applications/network/ipconfig/lang/ro-RO.rc
+++ b/base/applications/network/ipconfig/lang/ro-RO.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nAdaptor necunoscut: %ls\n"
-    IDS_OTHER "\nAlt tip de adaptor: %ls\n"
-    IDS_ETH "\nAdaptor Ethernet: %ls\n"
-    IDS_TOKEN "\nAdaptor Token Ring: %ls\n"
-    IDS_FDDI "\nAdaptor FDDI: %ls\n"
-    IDS_PPP "\nAdaptor PPP: %ls\n"
-    IDS_LOOP "\nAdaptor Loopback: %ls\n"
-    IDS_SLIP "\nAdaptor SLIP: %ls\n"
-    IDS_WIFI "\nAdaptor de rețea fără fir: %ls\n"
+    IDS_UNKNOWNADAPTER "\nAdaptor necunoscut: %ls\n\n"
+    IDS_OTHER "\nAlt tip de adaptor: %ls\n\n"
+    IDS_ETH "\nAdaptor Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdaptor Token Ring: %ls\n\n"
+    IDS_FDDI "\nAdaptor FDDI: %ls\n\n"
+    IDS_PPP "\nAdaptor PPP: %ls\n\n"
+    IDS_LOOP "\nAdaptor Loopback: %ls\n\n"
+    IDS_SLIP "\nAdaptor SLIP: %ls\n\n"
+    IDS_WIFI "\nAdaptor de rețea fără fir: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/ru-RU.rc 
b/base/applications/network/ipconfig/lang/ru-RU.rc
index 893c982a400..340b40921d6 100644
--- a/base/applications/network/ipconfig/lang/ru-RU.rc
+++ b/base/applications/network/ipconfig/lang/ru-RU.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nНеизвестный адаптер: %ls\n"
-    IDS_OTHER "\nДругой тип адаптера: %ls\n"
-    IDS_ETH "\nEthernet адаптер: %ls\n"
-    IDS_TOKEN "\nАдаптер Token Ring: %ls\n"
-    IDS_FDDI "\nАдаптер FDDI: %ls\n"
-    IDS_PPP "\nАдаптер PPP: %ls\n"
-    IDS_LOOP "\nАдаптер замыкания на себя: %ls\n"
-    IDS_SLIP "\nАдаптер SLIP: %ls\n"
-    IDS_WIFI "\nАдаптер беспроводной сети: %ls\n"
+    IDS_UNKNOWNADAPTER "\nНеизвестный адаптер: %ls\n\n"
+    IDS_OTHER "\nДругой тип адаптера: %ls\n\n"
+    IDS_ETH "\nEthernet адаптер: %ls\n\n"
+    IDS_TOKEN "\nАдаптер Token Ring: %ls\n\n"
+    IDS_FDDI "\nАдаптер FDDI: %ls\n\n"
+    IDS_PPP "\nАдаптер PPP: %ls\n\n"
+    IDS_LOOP "\nАдаптер замыкания на себя: %ls\n\n"
+    IDS_SLIP "\nАдаптер SLIP: %ls\n\n"
+    IDS_WIFI "\nАдаптер беспроводной сети: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tИмя не существует.\n\n"
     IDS_DNSFLUSHERROR       "Не удается очистить кэш распознавателя DNS: "
     IDS_DNSFLUSHSUCCESS     "Успешно сброшен кэш распознавателя DNS.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/sk-SK.rc 
b/base/applications/network/ipconfig/lang/sk-SK.rc
index 3c50220c492..71bd81648c6 100644
--- a/base/applications/network/ipconfig/lang/sk-SK.rc
+++ b/base/applications/network/ipconfig/lang/sk-SK.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nIný adaptér: %ls\n"
-    IDS_ETH "\nAdaptér siete Ethernet: %ls\n"
-    IDS_TOKEN "\nAdaptér siete Token Ring: %ls\n"
-    IDS_FDDI "\nAdaptér FDDI: %ls\n"
-    IDS_PPP "\nAdaptér PPP: %ls\n"
-    IDS_LOOP "\nAdaptér pre spätnú slučku: %ls\n"
-    IDS_SLIP "\nAdaptér SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nIný adaptér: %ls\n\n"
+    IDS_ETH "\nAdaptér siete Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdaptér siete Token Ring: %ls\n\n"
+    IDS_FDDI "\nAdaptér FDDI: %ls\n\n"
+    IDS_PPP "\nAdaptér PPP: %ls\n\n"
+    IDS_LOOP "\nAdaptér pre spätnú slučku: %ls\n\n"
+    IDS_SLIP "\nAdaptér SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/sq-AL.rc 
b/base/applications/network/ipconfig/lang/sq-AL.rc
index 9c2f193c1d0..8dc5e361839 100644
--- a/base/applications/network/ipconfig/lang/sq-AL.rc
+++ b/base/applications/network/ipconfig/lang/sq-AL.rc
@@ -44,15 +44,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nTipe te tjera adaptuesi: %ls\n"
-    IDS_ETH "\nAdapter Ethernet: %ls\n"
-    IDS_TOKEN "\nAdapter Token Ring: %ls\n"
-    IDS_FDDI "\nAdapter FDDI: %ls\n"
-    IDS_PPP "\nAdapter PPP: %ls\n"
-    IDS_LOOP "\nAdapter Loopback: %ls\n"
-    IDS_SLIP "\nAdapter SLIP: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nTipe te tjera adaptuesi: %ls\n\n"
+    IDS_ETH "\nAdapter Ethernet: %ls\n\n"
+    IDS_TOKEN "\nAdapter Token Ring: %ls\n\n"
+    IDS_FDDI "\nAdapter FDDI: %ls\n\n"
+    IDS_PPP "\nAdapter PPP: %ls\n\n"
+    IDS_LOOP "\nAdapter Loopback: %ls\n\n"
+    IDS_SLIP "\nAdapter SLIP: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -85,6 +85,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/sv-SE.rc 
b/base/applications/network/ipconfig/lang/sv-SE.rc
index 379b5b7e01e..24eea34eb75 100644
--- a/base/applications/network/ipconfig/lang/sv-SE.rc
+++ b/base/applications/network/ipconfig/lang/sv-SE.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nAnnan typ av adapter: %ls\n"
-    IDS_ETH "\nEthernet-adapter: %ls\n"
-    IDS_TOKEN "\nTokenring-adapter: %ls\n"
-    IDS_FDDI "\nFDDI-adapter: %ls\n"
-    IDS_PPP "\nPPP-adapter: %ls\n"
-    IDS_LOOP "\nLoopback-adapter: %ls\n"
-    IDS_SLIP "\nSLIP-adapter: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nAnnan typ av adapter: %ls\n\n"
+    IDS_ETH "\nEthernet-adapter: %ls\n\n"
+    IDS_TOKEN "\nTokenring-adapter: %ls\n\n"
+    IDS_FDDI "\nFDDI-adapter: %ls\n\n"
+    IDS_PPP "\nPPP-adapter: %ls\n\n"
+    IDS_LOOP "\nLoopback-adapter: %ls\n\n"
+    IDS_SLIP "\nSLIP-adapter: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/tr-TR.rc 
b/base/applications/network/ipconfig/lang/tr-TR.rc
index bddb634ab9e..dfc2a5fec83 100644
--- a/base/applications/network/ipconfig/lang/tr-TR.rc
+++ b/base/applications/network/ipconfig/lang/tr-TR.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nDiğer Bağdaştırıcı: %ls\n"
-    IDS_ETH "\nEthernet Bağdaştırıcısı: %ls\n"
-    IDS_TOKEN "\nSimgeli Halka Bağdaştırıcısı: %ls\n"
-    IDS_FDDI "\nFDDI Bağdaştırıcısı: %ls\n"
-    IDS_PPP "\nPPP Bağdaştırıcısı: %ls\n"
-    IDS_LOOP "\nGeri Döngü Bağdaştırıcısı: %ls\n"
-    IDS_SLIP "\nSLIP Bağdaştırıcısı: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nDiğer Bağdaştırıcı: %ls\n\n"
+    IDS_ETH "\nEthernet Bağdaştırıcısı: %ls\n\n"
+    IDS_TOKEN "\nSimgeli Halka Bağdaştırıcısı: %ls\n\n"
+    IDS_FDDI "\nFDDI Bağdaştırıcısı: %ls\n\n"
+    IDS_PPP "\nPPP Bağdaştırıcısı: %ls\n\n"
+    IDS_LOOP "\nGeri Döngü Bağdaştırıcısı: %ls\n\n"
+    IDS_SLIP "\nSLIP Bağdaştırıcısı: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/uk-UA.rc 
b/base/applications/network/ipconfig/lang/uk-UA.rc
index d75d697cef3..63b33b1fe34 100644
--- a/base/applications/network/ipconfig/lang/uk-UA.rc
+++ b/base/applications/network/ipconfig/lang/uk-UA.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\nІнший тип адаптера: %ls\n"
-    IDS_ETH "\nEthernet адаптер: %ls\n"
-    IDS_TOKEN "\nToken Ring адаптер: %ls\n"
-    IDS_FDDI "\nFDDI адаптер: %ls\n"
-    IDS_PPP "\nPPP адаптер: %ls\n"
-    IDS_LOOP "\nLoopback адаптер: %ls\n"
-    IDS_SLIP "\nSLIP адаптер: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\nІнший тип адаптера: %ls\n\n"
+    IDS_ETH "\nEthernet адаптер: %ls\n\n"
+    IDS_TOKEN "\nToken Ring адаптер: %ls\n\n"
+    IDS_FDDI "\nFDDI адаптер: %ls\n\n"
+    IDS_PPP "\nPPP адаптер: %ls\n\n"
+    IDS_LOOP "\nLoopback адаптер: %ls\n\n"
+    IDS_SLIP "\nSLIP адаптер: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/zh-CN.rc 
b/base/applications/network/ipconfig/lang/zh-CN.rc
index a976f0e6af3..588851408bc 100644
--- a/base/applications/network/ipconfig/lang/zh-CN.rc
+++ b/base/applications/network/ipconfig/lang/zh-CN.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\n其他类型的适配器: %ls\n"
-    IDS_ETH "\n以太网适配器: %ls\n"
-    IDS_TOKEN "\n令牌环适配器: %ls\n"
-    IDS_FDDI "\nFDDI 适配器: %ls\n"
-    IDS_PPP "\nPPP 适配器: %ls\n"
-    IDS_LOOP "\n本地环回适配器: %ls\n"
-    IDS_SLIP "\nSLIP 适配器: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\n其他类型的适配器: %ls\n\n"
+    IDS_ETH "\n以太网适配器: %ls\n\n"
+    IDS_TOKEN "\n令牌环适配器: %ls\n\n"
+    IDS_FDDI "\nFDDI 适配器: %ls\n\n"
+    IDS_PPP "\nPPP 适配器: %ls\n\n"
+    IDS_LOOP "\n本地环回适配器: %ls\n\n"
+    IDS_SLIP "\nSLIP 适配器: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/lang/zh-TW.rc 
b/base/applications/network/ipconfig/lang/zh-TW.rc
index 53825808d57..17272ed578f 100644
--- a/base/applications/network/ipconfig/lang/zh-TW.rc
+++ b/base/applications/network/ipconfig/lang/zh-TW.rc
@@ -45,15 +45,15 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n"
-    IDS_OTHER "\n其他類型的配接器: %ls\n"
-    IDS_ETH "\n乙太網配接器: %ls\n"
-    IDS_TOKEN "\n權杖環配接器: %ls\n"
-    IDS_FDDI "\nFDDI 配接器: %ls\n"
-    IDS_PPP "\nPPP 配接器: %ls\n"
-    IDS_LOOP "\n本地環回配接器: %ls\n"
-    IDS_SLIP "\nSLIP 配接器: %ls\n"
-    IDS_WIFI "\nWireless Network Adapter: %ls\n"
+    IDS_UNKNOWNADAPTER "\nUnknown Adapter: %ls\n\n"
+    IDS_OTHER "\n其他類型的配接器: %ls\n\n"
+    IDS_ETH "\n乙太網配接器: %ls\n\n"
+    IDS_TOKEN "\n權杖環配接器: %ls\n\n"
+    IDS_FDDI "\nFDDI 配接器: %ls\n\n"
+    IDS_PPP "\nPPP 配接器: %ls\n\n"
+    IDS_LOOP "\n本地環回配接器: %ls\n\n"
+    IDS_SLIP "\nSLIP 配接器: %ls\n\n"
+    IDS_WIFI "\nWireless Network Adapter: %ls\n\n"
 END
 
 STRINGTABLE
@@ -86,6 +86,10 @@ BEGIN
     IDS_DNSNONAME           "\tName does not exist.\n\n"
     IDS_DNSFLUSHERROR       "Could not flush the DNS Resolver Cache: "
     IDS_DNSFLUSHSUCCESS     "Successfully flushed the DNS Resolver Cache.\n"
+    IDS_DHCPNOTCONNECTED    "No operation can be performed on %ls while it has 
its media disconnected.\n"
+    IDS_DHCPNOTENABLED      "Adapter %ls is not enabled for DHCP.\n"
+    IDS_DHCPNOADAPTER       "The operation failed as no adapter is in the 
state permissible for \nthis operation.\n"
+    IDS_DHCPRELEASED        "IP Address for adapter %ls has already been 
released.\n"
 END
 
 STRINGTABLE
diff --git a/base/applications/network/ipconfig/resource.h 
b/base/applications/network/ipconfig/resource.h
index 5b356fa5f3c..0395027b423 100644
--- a/base/applications/network/ipconfig/resource.h
+++ b/base/applications/network/ipconfig/resource.h
@@ -71,3 +71,7 @@
 #define IDS_DNSNONAME            201
 #define IDS_DNSFLUSHERROR        202
 #define IDS_DNSFLUSHSUCCESS      203
+#define IDS_DHCPNOTCONNECTED     204
+#define IDS_DHCPNOTENABLED       205
+#define IDS_DHCPNOADAPTER        206
+#define IDS_DHCPRELEASED         207

Reply via email to