Alexandre Julliard : kernel32: Remove the setting of the computer name keys.
Alexandre Julliard
julliard at winehq.org
Mon Sep 28 14:49:26 CDT 2020
Module: wine
Branch: master
Commit: 48e88074cdd09513164f8669b270d13425f4584c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=48e88074cdd09513164f8669b270d13425f4584c
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Sep 28 16:20:43 2020 +0200
kernel32: Remove the setting of the computer name keys.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/computername.c | 153 -----------------------------------------
dlls/kernel32/kernel_main.c | 3 -
dlls/kernel32/kernel_private.h | 3 -
3 files changed, 159 deletions(-)
diff --git a/dlls/kernel32/computername.c b/dlls/kernel32/computername.c
index f4b56335dd..949db04985 100644
--- a/dlls/kernel32/computername.c
+++ b/dlls/kernel32/computername.c
@@ -25,14 +25,7 @@
#include <stdarg.h>
#include <string.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
#include <stdlib.h>
-#include <errno.h>
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
#include "ntstatus.h"
#define WIN32_NO_STATUS
@@ -43,155 +36,9 @@
#include "winternl.h"
#include "wine/unicode.h"
#include "wine/exception.h"
-#include "wine/debug.h"
#include "kernel_private.h"
-WINE_DEFAULT_DEBUG_CHANNEL(computername);
-
-/* Registry key and value names */
-static const WCHAR ComputerW[] = {'\\','R','e','g','i','s','t','r','y','\\',
- 'M','a','c','h','i','n','e','\\',
- 'S','y','s','t','e','m','\\',
- 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
- 'C','o','n','t','r','o','l','\\',
- 'C','o','m','p','u','t','e','r','N','a','m','e',0};
-static const WCHAR ActiveComputerNameW[] = {'A','c','t','i','v','e','C','o','m','p','u','t','e','r','N','a','m','e',0};
-static const WCHAR ComputerNameW[] = {'C','o','m','p','u','t','e','r','N','a','m','e',0};
-
-static const WCHAR default_ComputerName[] = {'W','I','N','E',0};
-
-/***********************************************************************
- * dns_gethostbyname (INTERNAL)
- *
- * From hostname(1):
- * "The FQDN is the name gethostbyname(2) returns for the host name returned by gethostname(2)."
- *
- * Wine can use this technique only if the thread-safe gethostbyname_r is available.
- */
-static void dns_gethostbyname ( char *name, int size )
-{
-#ifdef HAVE_LINUX_GETHOSTBYNAME_R_6
- struct hostent* host = NULL;
- char *extrabuf;
- int ebufsize = 1024;
- struct hostent hostentry;
- int locerr = ENOBUFS, res;
-
- for (;;)
- {
- if (!(extrabuf = HeapAlloc( GetProcessHeap(), 0, ebufsize ))) return;
- res = gethostbyname_r ( name, &hostentry, extrabuf, ebufsize, &host, &locerr );
- if( res != ERANGE ) break;
- ebufsize *= 2;
- HeapFree( GetProcessHeap(), 0, extrabuf );
- }
-
- if ( res )
- WARN ("Error in gethostbyname_r %d (%d)\n", res, locerr);
- else if ( !host )
- WARN ("gethostbyname_r returned NULL host, locerr = %d\n", locerr);
- else
- if (strlen( host->h_name ) < size) strcpy( name, host->h_name );
-
- HeapFree( GetProcessHeap(), 0, extrabuf );
-#endif
-}
-
-/***********************************************************************
- * dns_fqdn (INTERNAL)
- */
-static BOOL dns_fqdn ( char *name, int size )
-{
- if (gethostname( name, size ))
- {
- switch( errno )
- {
- case ENAMETOOLONG:
- SetLastError ( ERROR_MORE_DATA );
- break;
- default:
- SetLastError ( ERROR_INVALID_PARAMETER );
- break;
- }
- return FALSE;
- }
- dns_gethostbyname( name, size );
- return TRUE;
-}
-
-/***********************************************************************
- * COMPUTERNAME_Init (INTERNAL)
- */
-void COMPUTERNAME_Init (void)
-{
- HANDLE hkey = INVALID_HANDLE_VALUE, hsubkey = INVALID_HANDLE_VALUE;
- OBJECT_ATTRIBUTES attr;
- UNICODE_STRING nameW;
- char buf[offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data ) + (MAX_COMPUTERNAME_LENGTH + 1) * sizeof( WCHAR )];
- DWORD len = sizeof( buf );
- const WCHAR *computer_name = (WCHAR *)(buf + offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data ));
- NTSTATUS st = STATUS_INTERNAL_ERROR;
- char hbuf[256];
- WCHAR *dot, bufW[256];
-
- if (dns_fqdn( hbuf, sizeof(hbuf) ))
- {
- MultiByteToWideChar( CP_UNIXCP, 0, hbuf, -1, bufW, ARRAY_SIZE(bufW) );
- dot = strchrW( bufW, '.' );
- if (dot) *dot++ = 0;
- else dot = bufW + strlenW(bufW);
- SetComputerNameExW( ComputerNamePhysicalDnsDomain, dot );
- SetComputerNameExW( ComputerNamePhysicalDnsHostname, bufW );
- }
-
- TRACE("(void)\n");
- InitializeObjectAttributes( &attr, &nameW, 0, 0, NULL );
- RtlInitUnicodeString( &nameW, ComputerW );
- if ( ( st = NtCreateKey( &hkey, KEY_ALL_ACCESS, &attr, 0, NULL, 0, NULL ) ) != STATUS_SUCCESS )
- goto out;
-
- attr.RootDirectory = hkey;
- RtlInitUnicodeString( &nameW, ComputerNameW );
- if ( (st = NtCreateKey( &hsubkey, KEY_ALL_ACCESS, &attr, 0, NULL, 0, NULL ) ) != STATUS_SUCCESS )
- goto out;
-
- st = NtQueryValueKey( hsubkey, &nameW, KeyValuePartialInformation, buf, len, &len );
-
- if ( st != STATUS_SUCCESS)
- {
- computer_name = default_ComputerName;
- len = sizeof(default_ComputerName);
- }
- else
- {
- len = (len - offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data ));
- }
-
- NtClose( hsubkey );
- TRACE(" ComputerName: %s (%u)\n", debugstr_w (computer_name), len);
-
- RtlInitUnicodeString( &nameW, ActiveComputerNameW );
- if ( ( st = NtCreateKey( &hsubkey, KEY_ALL_ACCESS, &attr, 0, NULL, REG_OPTION_VOLATILE, NULL ) )
- != STATUS_SUCCESS )
- goto out;
-
- RtlInitUnicodeString( &nameW, ComputerNameW );
- st = NtSetValueKey( hsubkey, &nameW, 0, REG_SZ, computer_name, len );
-
-out:
- NtClose( hsubkey );
- NtClose( hkey );
-
- if ( st == STATUS_SUCCESS )
- TRACE( "success\n" );
- else
- {
- WARN( "status trying to set ComputerName: %x\n", st );
- SetLastError ( RtlNtStatusToDosError ( st ) );
- }
-}
-
/***********************************************************************
* GetComputerNameW (KERNEL32.@)
diff --git a/dlls/kernel32/kernel_main.c b/dlls/kernel32/kernel_main.c
index 6f60768cbd..1823c8e650 100644
--- a/dlls/kernel32/kernel_main.c
+++ b/dlls/kernel32/kernel_main.c
@@ -132,9 +132,6 @@ static BOOL process_attach( HMODULE module )
NtQuerySystemInformation( SystemBasicInformation, &system_info, sizeof(system_info), NULL );
- /* Setup computer name */
- COMPUTERNAME_Init();
-
CONSOLE_Init(params);
copy_startup_info();
diff --git a/dlls/kernel32/kernel_private.h b/dlls/kernel32/kernel_private.h
index 5fb66d34ca..fe19e2ed5c 100644
--- a/dlls/kernel32/kernel_private.h
+++ b/dlls/kernel32/kernel_private.h
@@ -58,7 +58,4 @@ extern const WCHAR DIR_System[] DECLSPEC_HIDDEN;
extern WCHAR *FILE_name_AtoW( LPCSTR name, BOOL alloc ) DECLSPEC_HIDDEN;
extern DWORD FILE_name_WtoA( LPCWSTR src, INT srclen, LPSTR dest, INT destlen ) DECLSPEC_HIDDEN;
-/* computername.c */
-extern void COMPUTERNAME_Init(void) DECLSPEC_HIDDEN;
-
#endif
More information about the wine-cvs
mailing list