From da5ae3c45205f04ead8f29e6b61addd482c14ff3 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Sat, 16 Sep 2017 18:02:51 +0200 Subject: [PATCH] ditch xml2array in phpDynDNS.inc, for https://github.com/opnsense/plugins/issues/269 --- .../src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc b/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc index 7877fde6c..c494bfb38 100644 --- a/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc +++ b/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc @@ -939,16 +939,19 @@ class updatedns { break; case 'namecheap': $tmp = str_replace("^M", "", $data); - $ncresponse = @xml2array($tmp); + $ncresponse = simplexml_load_string($tmp); if (preg_match("/internal server error/i", $data)) { $status = "Dynamic DNS: (Error) Server side error."; - } else if (preg_match("/request is badly formed/i", $data)) { + } elseif (preg_match("/request is badly formed/i", $data)) { $status = "Dynamic DNS: (Error) Badly Formed Request (check your settings)."; - } else if ($ncresponse['interface-response']['ErrCount'] === "0") { + } elseif ((string)$ncresponse->ErrCount === "0") { $status = "Dynamic DNS: (Success) IP Address Updated Successfully!"; $successful_update = true; - } else if (is_numeric($ncresponse['interface-response']['ErrCount']) && ($ncresponse['interface-response']['ErrCount'] > 0)) { - $status = "Dynamic DNS: (Error) " . implode(", ", $ncresponse["interface-response"]["errors"]); + } elseif (is_numeric((string)$ncresponse->ErrCount) && (string)$ncresponse->ErrCount > 0) { + $status = "Dynamic DNS: (Error) "; + foreach ($xml->errors->children() as $err) { + $status .= (string)$err . " "; + } $successful_update = true; } else { $status = "Dynamic DNS: (Unknown Response)";