mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-31 01:32:28 +00:00
Fix bugs with DNS library on Windows
This commit is contained in:
parent
1bb52c223b
commit
34ed1fcbea
6 changed files with 12 additions and 4 deletions
|
@ -23,6 +23,6 @@ const char *GetHostsTxtPath(char *path, size_t size) {
|
||||||
if (!IsWindows()) {
|
if (!IsWindows()) {
|
||||||
return "/etc/hosts";
|
return "/etc/hosts";
|
||||||
} else {
|
} else {
|
||||||
return GetSystemDirectoryPath(path, "drivers\\etc\\hosts", size);
|
return GetSystemDirectoryPath(path, "\\drivers\\etc\\hosts", size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,6 @@ const char *GetProtocolsTxtPath(char *buf, size_t size) {
|
||||||
if (!IsWindows()) {
|
if (!IsWindows()) {
|
||||||
return "/etc/protocols";
|
return "/etc/protocols";
|
||||||
} else {
|
} else {
|
||||||
return GetSystemDirectoryPath(buf, "drivers\\etc\\protocol", size);
|
return GetSystemDirectoryPath(buf, "\\drivers\\etc\\protocol", size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,6 @@ const char *GetServicesTxtPath(char *path, size_t size) {
|
||||||
if (!IsWindows()) {
|
if (!IsWindows()) {
|
||||||
return "/etc/services";
|
return "/etc/services";
|
||||||
} else {
|
} else {
|
||||||
return GetSystemDirectoryPath(path, "drivers\\etc\\services", size);
|
return GetSystemDirectoryPath(path, "\\drivers\\etc\\services", size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include "libc/intrin/describebacktrace.internal.h"
|
#include "libc/intrin/describebacktrace.internal.h"
|
||||||
#include "libc/intrin/dll.h"
|
#include "libc/intrin/dll.h"
|
||||||
#include "libc/intrin/strace.internal.h"
|
#include "libc/intrin/strace.internal.h"
|
||||||
|
#include "libc/intrin/weaken.h"
|
||||||
#include "libc/nt/console.h"
|
#include "libc/nt/console.h"
|
||||||
#include "libc/nt/enum/context.h"
|
#include "libc/nt/enum/context.h"
|
||||||
#include "libc/nt/enum/exceptionhandleractions.h"
|
#include "libc/nt/enum/exceptionhandleractions.h"
|
||||||
|
@ -43,6 +44,7 @@
|
||||||
#include "libc/nt/struct/ntexceptionpointers.h"
|
#include "libc/nt/struct/ntexceptionpointers.h"
|
||||||
#include "libc/nt/synchronization.h"
|
#include "libc/nt/synchronization.h"
|
||||||
#include "libc/nt/thread.h"
|
#include "libc/nt/thread.h"
|
||||||
|
#include "libc/runtime/symbols.internal.h"
|
||||||
#include "libc/str/str.h"
|
#include "libc/str/str.h"
|
||||||
#include "libc/sysv/consts/sa.h"
|
#include "libc/sysv/consts/sa.h"
|
||||||
#include "libc/sysv/consts/sicode.h"
|
#include "libc/sysv/consts/sicode.h"
|
||||||
|
@ -525,7 +527,9 @@ static void __sig_unmaskable(struct NtExceptionPointers *ep, int code, int sig,
|
||||||
// otherwise it'll print a warning message about the lack of stack mem
|
// otherwise it'll print a warning message about the lack of stack mem
|
||||||
STRACE("win32 vectored exception 0x%08Xu raising %G "
|
STRACE("win32 vectored exception 0x%08Xu raising %G "
|
||||||
"cosmoaddr2line %s %lx %s",
|
"cosmoaddr2line %s %lx %s",
|
||||||
ep->ExceptionRecord->ExceptionCode, sig, program_invocation_name,
|
ep->ExceptionRecord->ExceptionCode, sig,
|
||||||
|
_weaken(FindDebugBinary) ? _weaken(FindDebugBinary)()
|
||||||
|
: program_invocation_name,
|
||||||
ep->ContextRecord->Rip,
|
ep->ContextRecord->Rip,
|
||||||
DescribeBacktrace((struct StackFrame *)ep->ContextRecord->Rbp));
|
DescribeBacktrace((struct StackFrame *)ep->ContextRecord->Rbp));
|
||||||
|
|
||||||
|
|
|
@ -445,6 +445,9 @@ textstartup void __printargs(const char *prologue) {
|
||||||
PRINT(" ☼ %s = %#s", "kNtWindowsDirectory", kNtWindowsDirectory);
|
PRINT(" ☼ %s = %#s", "kNtWindowsDirectory", kNtWindowsDirectory);
|
||||||
#endif
|
#endif
|
||||||
PRINT(" ☼ %s = %#s", "__argv[0]", __argv[0]);
|
PRINT(" ☼ %s = %#s", "__argv[0]", __argv[0]);
|
||||||
|
PRINT(" ☼ %s = %#s", "program_invocation_name", program_invocation_name);
|
||||||
|
PRINT(" ☼ %s = %#s", "program_invocation_short_name",
|
||||||
|
program_invocation_short_name);
|
||||||
PRINT(" ☼ %s = %#s", "getenv(\"_\")", getenv("_"));
|
PRINT(" ☼ %s = %#s", "getenv(\"_\")", getenv("_"));
|
||||||
PRINT(" ☼ %s = %#s", "getauxval(AT_EXECFN)", getauxval(AT_EXECFN));
|
PRINT(" ☼ %s = %#s", "getauxval(AT_EXECFN)", getauxval(AT_EXECFN));
|
||||||
PRINT(" ☼ %s = %#s", "GetProgramExecutableName", GetProgramExecutableName());
|
PRINT(" ☼ %s = %#s", "GetProgramExecutableName", GetProgramExecutableName());
|
||||||
|
|
1
third_party/musl/resolvconf.c
vendored
1
third_party/musl/resolvconf.c
vendored
|
@ -63,6 +63,7 @@ static dontinline textwindows int __get_resolv_conf_nt(struct resolvconf *conf)
|
||||||
return __winerr();
|
return __winerr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conf->nns = 0;
|
||||||
for (i = 0; i < keycount; ++i) {
|
for (i = 0; i < keycount; ++i) {
|
||||||
char value8[128];
|
char value8[128];
|
||||||
uint32_t valuebytes, uuidlen;
|
uint32_t valuebytes, uuidlen;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue