os: use GetComputerNameW to retrieve hostname on Windows (#9861)

pull/9875/head
Marcos Diaz 2021-04-24 12:22:04 +02:00 committed by GitHub
parent dee4904bee
commit 187895c93c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

View File

@ -215,6 +215,8 @@ fn C.SetHandleInformation(hObject voidptr, dwMask u32, dw_flags u32) bool
fn C.ExpandEnvironmentStringsW(lpSrc &u16, lpDst &u16, nSize u32) u32
fn C.GetComputerNameW(&u16, &u32) bool
[trusted]
fn C.SendMessageTimeout() u32

View File

@ -390,8 +390,13 @@ pub fn uname() Uname {
}
pub fn hostname() string {
// TODO: use C.GetComputerName(&u16, u32) int instead
return execute('cmd /c hostname').output
hostname := [255]u16{}
size := u32(255)
res := C.GetComputerNameW(&hostname[0], &size)
if !res {
return error(get_error_msg(int(C.GetLastError())))
}
return unsafe { string_from_wide(&hostname[0]) }
}
pub fn loginname() string {