[SYSSETUP] Set registry hostname in WriteComputerSettings (#1589)
authorKatayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Wed, 29 May 2019 10:59:40 +0000 (19:59 +0900)
committerGitHub <noreply@github.com>
Wed, 29 May 2019 10:59:40 +0000 (19:59 +0900)
Based on @Doug-Lyons's patch. CORE-16067

dll/win32/syssetup/wizard.c

index 1e541da..8422a9c 100644 (file)
@@ -534,6 +534,8 @@ WriteComputerSettings(WCHAR * ComputerName, HWND hwndDlg)
 {
     WCHAR Title[64];
     WCHAR ErrorComputerName[256];
+    LONG lError;
+    HKEY hKey = NULL;
 
     if (!SetComputerNameW(ComputerName))
     {
@@ -560,6 +562,31 @@ WriteComputerSettings(WCHAR * ComputerName, HWND hwndDlg)
     /* Set the accounts domain name */
     SetAccountsDomainSid(NULL, ComputerName);
 
+    /* Now we need to set the Hostname */
+    lError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                           L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters",
+                           0,
+                           KEY_SET_VALUE,
+                           &hKey);
+    if (lError != ERROR_SUCCESS)
+    {
+        DPRINT1("RegOpenKeyExW for Tcpip\\Parameters failed (%08lX)\n", lError);
+        return TRUE;
+    }
+
+    lError = RegSetValueEx(hKey,
+                           L"Hostname",
+                           0,
+                           REG_SZ,
+                           (LPBYTE)ComputerName,
+                           (wcslen(ComputerName) + 1) * sizeof(WCHAR));
+    if (lError != ERROR_SUCCESS)
+    {
+        DPRINT1("RegSetValueEx(\"Hostname\") failed (%08lX)\n", lError);
+    }
+
+    RegCloseKey(hKey);
+
     return TRUE;
 }