From e68f07c1597e448ec08a2dd20c6b9aa30b7c0e39 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Mon, 4 May 2020 16:35:19 +0200 Subject: [PATCH 1/2] Fix #79561: dns_get_record() fails with DNS_ALL Since Windows has its own definitions of the `PHP_DNS_*` macros, we have to use these when registering the PHP constants. --- ext/standard/dns.c | 2 +- ext/standard/dns_win32.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ext/standard/dns.c b/ext/standard/dns.c index c06fa04f8976e..1558cd5b47e41 100644 --- a/ext/standard/dns.c +++ b/ext/standard/dns.c @@ -1124,7 +1124,7 @@ PHP_FUNCTION(dns_get_mx) #endif /* HAVE_FULL_DNS_FUNCS */ #endif /* !defined(PHP_WIN32) && HAVE_DNS_SEARCH_FUNC */ -#if HAVE_FULL_DNS_FUNCS || defined(PHP_WIN32) +#if HAVE_FULL_DNS_FUNCS || !defined(PHP_WIN32) PHP_MINIT_FUNCTION(dns) { REGISTER_LONG_CONSTANT("DNS_A", PHP_DNS_A, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("DNS_NS", PHP_DNS_NS, CONST_CS | CONST_PERSISTENT); diff --git a/ext/standard/dns_win32.c b/ext/standard/dns_win32.c index aa11a01f478c5..f12c80c6bcb5c 100644 --- a/ext/standard/dns_win32.c +++ b/ext/standard/dns_win32.c @@ -501,3 +501,21 @@ PHP_FUNCTION(dns_get_record) } } /* }}} */ + +PHP_MINIT_FUNCTION(dns) { + REGISTER_LONG_CONSTANT("DNS_A", PHP_DNS_A, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_NS", PHP_DNS_NS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_CNAME", PHP_DNS_CNAME, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_SOA", PHP_DNS_SOA, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_PTR", PHP_DNS_PTR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_HINFO", PHP_DNS_HINFO, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_MX", PHP_DNS_MX, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_TXT", PHP_DNS_TXT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_SRV", PHP_DNS_SRV, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_NAPTR", PHP_DNS_NAPTR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_AAAA", PHP_DNS_AAAA, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_A6", PHP_DNS_A6, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_ANY", PHP_DNS_ANY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DNS_ALL", PHP_DNS_ALL, CONST_CS | CONST_PERSISTENT); + return SUCCESS; +} From b19034c4a5905d20536d75afc709b25bdbfaef42 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Mon, 4 May 2020 16:51:51 +0200 Subject: [PATCH 2/2] Fix #if condition --- ext/standard/dns.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/dns.c b/ext/standard/dns.c index 1558cd5b47e41..4ee40aa5ec4df 100644 --- a/ext/standard/dns.c +++ b/ext/standard/dns.c @@ -1124,7 +1124,7 @@ PHP_FUNCTION(dns_get_mx) #endif /* HAVE_FULL_DNS_FUNCS */ #endif /* !defined(PHP_WIN32) && HAVE_DNS_SEARCH_FUNC */ -#if HAVE_FULL_DNS_FUNCS || !defined(PHP_WIN32) +#if HAVE_FULL_DNS_FUNCS && !defined(PHP_WIN32) PHP_MINIT_FUNCTION(dns) { REGISTER_LONG_CONSTANT("DNS_A", PHP_DNS_A, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("DNS_NS", PHP_DNS_NS, CONST_CS | CONST_PERSISTENT);