Compare commits

...

1 Commits

Author SHA1 Message Date
Ramon Caballero ab2dca6c27 Fix #1: handle invalid JSON and missing fields in Porkbun ping response 2026-04-04 13:56:26 +01:00
1 changed files with 27 additions and 7 deletions

View File

@ -75,15 +75,35 @@ $myDomain = $argv[1];
$pbapi = new PorkbunAPI($config_filename);
// Test connection to Porkbun API in order to get the public IP:
$result = json_decode($pbapi->ping());
if ($result->status == "SUCCESS") $myIp = $result->yourIp;
else
$raw = $pbapi->ping();
$result = json_decode($raw);
if ($result === null)
{
echo_to_cli("There was an error trying to ping Porkbun." . PHP_EOL);
var_dump($result);
echo_to_cli("Invalid JSON returned by Porkbun API:\n$raw\n");
exit(3);
}
if (!isset($result->status))
{
echo_to_cli("Porkbun API response missing 'status' field:\n$raw\n");
exit(3);
}
if ($result->status !== "SUCCESS")
{
echo_to_cli("Porkbun API returned an error:\n$raw\n");
exit(3);
}
if (!isset($result->yourIp))
{
echo_to_cli("Porkbun API did not return your public IP.\n");
exit(3);
}
$myIp = $result->yourIp;
echo_to_cli("Your public IP address is $myIp" . PHP_EOL);
// Retrieve all DNS records associated with user's domain: