1
0
mirror of https://github.com/danog/dns.git synced 2025-01-22 21:41:11 +01:00

Enable AppVeyor, search in all interfaces for nameservers

This commit is contained in:
Niklas Keller 2017-01-05 01:13:28 +01:00
parent cf08357a86
commit 0b0ef2b82d
3 changed files with 70 additions and 4 deletions

53
appveyor.yml Normal file
View File

@ -0,0 +1,53 @@
build: false
platform:
- x64
clone_folder: c:\projects\php-project-workspace
environment:
matrix:
- dependencies: lowest
php_ver_target: 5.6
- dependencies: lowest
php_ver_target: 7.0
- dependencies: lowest
php_ver_target: 7.1
- dependencies: highest
php_ver_target: 5.6
- dependencies: highest
php_ver_target: 7.0
- dependencies: highest
php_ver_target: 7.1
## Cache composer bits
cache:
- '%LOCALAPPDATA%\Composer\files -> composer.lock'
## Set up environment variables
init:
- SET PATH=C:\Program Files\OpenSSL;c:\tools\php;%PATH%
- SET COMPOSER_NO_INTERACTION=1
- SET PHP=1
- SET ANSICON=121x90 (121x90)
## Install PHP and Composer, and run the appropriate Composer command
install:
- IF EXIST c:\tools\php (SET PHP=0)
- ps: cinst --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $Env:php_ver_target | Select-Object -first 1) -replace '[php|]','')
- cd c:\tools\php
- IF %PHP%==1 copy php.ini-production php.ini /Y
- IF %PHP%==1 echo date.timezone="UTC" >> php.ini
- IF %PHP%==1 echo extension_dir=ext >> php.ini
- IF %PHP%==1 echo extension=php_openssl.dll >> php.ini
- IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini
- IF %PHP%==1 echo extension=php_fileinfo.dll >> php.ini
- IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat
- appveyor DownloadFile https://getcomposer.org/composer.phar
- cd c:\projects\php-project-workspace
- IF %dependencies%==lowest appveyor-retry composer update --prefer-lowest --no-progress --profile -n
- IF %dependencies%==highest appveyor-retry composer update --no-progress --profile -n
- composer show
## Run the actual test
test_script:
- cd c:\projects\php-project-workspace
- vendor/bin/phpunit --colors=always

View File

@ -33,11 +33,11 @@
"amphp/amp": "^1",
"amphp/cache": "^0.1",
"amphp/file": "^0.1",
"amphp/windows-registry": "^0.2",
"amphp/windows-registry": "^0.2.2",
"daverandom/libdns": "^1"
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"phpunit/phpunit": "^4.8|^5.1.3",
"friendsofphp/php-cs-fixer": "^1.9"
},
"autoload": {

View File

@ -351,7 +351,7 @@ REGEX;
}
} else if (\stripos(PHP_OS, "win") === 0) {
$keys = [
"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Nameserver",
"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\NameServer",
"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\DhcpNameServer",
];
@ -364,8 +364,21 @@ REGEX;
} catch (KeyNotFoundException $e) { }
}
if ($nameserver === "") {
$subKeys = (yield $reader->listKeys("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces"));
while ($nameserver === "" && ($key = array_shift($subKeys))) {
try {
$nameserver = (yield $reader->read("{$key}\\NameServer"));
} catch (KeyNotFoundException $e) { }
}
}
if ($nameserver !== "") {
$result["nameservers"] = ["{$nameserver}:53"];
// Microsoft documents space as delimiter, AppVeyor uses comma.
$result["nameservers"] = array_map(function ($ns) {
return trim($ns) . ":53";
}, explode(" ", strtr($nameserver, ",", " ")));
} else {
throw new ResolutionException("Could not find a nameserver in the Windows Registry.");
}