diff --git a/modules/registrars/cozaepp/cozaepp.php b/modules/registrars/cozaepp/cozaepp.php index c64ab5408689a477fc0a6e8e872405c324e717bc..848453c428f0e2d35aedb1a72f2b4658fa3437a6 100644 --- a/modules/registrars/cozaepp/cozaepp.php +++ b/modules/registrars/cozaepp/cozaepp.php @@ -1223,13 +1223,13 @@ function cozaepp_TransferSync($params) { $coderes = $doc->getElementsByTagName('result')->item(0)->getAttribute('code'); $msg = $doc->getElementsByTagName('msg')->item(0)->nodeValue; # Check result - if($coderes != '1000') { + if ($coderes != '1000') { $values['error'] = "TransferSync/domain-info($domain): Code("._cozaepp_message($coderes).") $msg"; return $values; } # Check if we can get a status back - if($doc->getElementsByTagName('status')->item(0)) { + if ($doc->getElementsByTagName('status')->item(0)) { $statusres = $doc->getElementsByTagName('status')->item(0)->getAttribute('s'); $createdate = substr($doc->getElementsByTagName('crDate')->item(0)->nodeValue,0,10); $nextduedate = substr($doc->getElementsByTagName('exDate')->item(0)->nodeValue,0,10); @@ -1295,19 +1295,35 @@ function cozaepp_Sync($params) { $doc->loadXML($request); logModuleCall('Cozaepp', 'Sync', $xml, $request); + # Initialize the owningRegistrar which will contain the owning registrar + # The <domain:clID> element contains the unique identifier of the registrar that owns the domain. + $owningRegistrar = NULL; + $coderes = $doc->getElementsByTagName('result')->item(0)->getAttribute('code'); $msg = $doc->getElementsByTagName('msg')->item(0)->nodeValue; # Check result - if($coderes != '1000') { + if ($coderes == '1000') { + if ( + $doc->getElementsByTagName('infData') && + $doc->getElementsByTagName('infData')->item(0)->getElementsByTagName('ns')->item(0) && + $doc->getElementsByTagName('infData')->item(0)->getElementsByTagName('clID') + ) { + $owningRegistrar = $doc->getElementsByTagName('infData')->item(0)->getElementsByTagName('clID')->item(0)->nodeValue; + } + } else { $values['error'] = "Sync/domain-info($domain): Code("._cozaepp_message($coderes).") $msg"; return $values; } # Check if we can get a status back - if($doc->getElementsByTagName('status')->item(0)) { + if ($doc->getElementsByTagName('status')->item(0)) { $statusres = $doc->getElementsByTagName('status')->item(0)->getAttribute('s'); $createdate = substr($doc->getElementsByTagName('crDate')->item(0)->nodeValue,0,10); $nextduedate = substr($doc->getElementsByTagName('exDate')->item(0)->nodeValue,0,10); + } else if (!empty($owningRegistrar) && $owningRegistrar != $username) { + # If we got an owningRegistrar back and we're not the owning registrar, return error + $values['error'] = "Sync/domain-info($domain): Domain belongs to a different registrar, (owning registrar: $owningRegistrar, your registrar: $username)"; + return $values; } else { $values['error'] = "Sync/domain-info($domain): Domain not found"; return $values;