mirror of
https://github.com/getnamingo/registry.git
synced 2025-07-01 16:43:26 +02:00
Added secDNS:add for EPP domain update
This commit is contained in:
parent
e1da850c7f
commit
161e462dbf
2 changed files with 54 additions and 12 deletions
|
@ -1046,7 +1046,6 @@ function processDomainCreate($conn, $db, $xml, $clid, $database_type, $trans) {
|
||||||
$digest = (string) $secDNSData->xpath('secDNS:digest')[0] ?? null;
|
$digest = (string) $secDNSData->xpath('secDNS:digest')[0] ?? null;
|
||||||
$maxSigLife = $secDNSData->xpath('secDNS:maxSigLife') ? (int) $secDNSData->xpath('secDNS:maxSigLife')[0] : null;
|
$maxSigLife = $secDNSData->xpath('secDNS:maxSigLife') ? (int) $secDNSData->xpath('secDNS:maxSigLife')[0] : null;
|
||||||
|
|
||||||
|
|
||||||
// Data sanity checks
|
// Data sanity checks
|
||||||
if (!$keyTag || !$alg || !$digestType || !$digest) {
|
if (!$keyTag || !$alg || !$digestType || !$digest) {
|
||||||
sendEppError($conn, 2005, 'Incomplete or invalid dsData provided', $clTRID);
|
sendEppError($conn, 2005, 'Incomplete or invalid dsData provided', $clTRID);
|
||||||
|
|
|
@ -1758,16 +1758,59 @@ function processDomainUpdate($conn, $db, $xml, $clid, $database_type, $trans) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($secdnsAdds as $secdnsAdd) {
|
if (isset($secdnsAdds)) {
|
||||||
$dsDataToAdd = $secdnsAdd->xpath('./secDNS:dsData');
|
$secDNSDataSet = $xml->xpath('//secDNS:dsData');
|
||||||
foreach ($dsDataToAdd as $ds) {
|
|
||||||
// Example: add DS record to your database
|
|
||||||
$keyTag = (int)$ds->keyTag;
|
|
||||||
$algorithm = (int)$ds->alg;
|
|
||||||
$digestType = (int)$ds->digestType;
|
|
||||||
$digest = (string)$ds->digest;
|
|
||||||
|
|
||||||
// Insert this DS record into your secdns table
|
if ($secDNSDataSet) {
|
||||||
|
foreach ($secDNSDataSet as $secDNSData) {
|
||||||
|
// Extract dsData elements
|
||||||
|
$keyTag = (int) $secDNSData->xpath('secDNS:keyTag')[0] ?? null;
|
||||||
|
$alg = (int) $secDNSData->xpath('secDNS:alg')[0] ?? null;
|
||||||
|
$digestType = (int) $secDNSData->xpath('secDNS:digestType')[0] ?? null;
|
||||||
|
$digest = (string) $secDNSData->xpath('secDNS:digest')[0] ?? null;
|
||||||
|
$maxSigLife = $secDNSData->xpath('secDNS:maxSigLife') ? (int) $secDNSData->xpath('secDNS:maxSigLife')[0] : null;
|
||||||
|
|
||||||
|
// Data sanity checks
|
||||||
|
if (!$keyTag || !$alg || !$digestType || !$digest) {
|
||||||
|
sendEppError($conn, 2005, 'Incomplete or invalid dsData provided', $clTRID);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract keyData elements if available
|
||||||
|
$flags = null;
|
||||||
|
$protocol = null;
|
||||||
|
$algKeyData = null;
|
||||||
|
$pubKey = null;
|
||||||
|
|
||||||
|
if ($secDNSData->xpath('secDNS:keyData')) {
|
||||||
|
$flags = (int) $secDNSData->xpath('secDNS:keyData/secDNS:flags')[0];
|
||||||
|
$protocol = (int) $secDNSData->xpath('secDNS:keyData/secDNS:protocol')[0];
|
||||||
|
$algKeyData = (int) $secDNSData->xpath('secDNS:keyData/secDNS:alg')[0];
|
||||||
|
$pubKey = (string) $secDNSData->xpath('secDNS:keyData/secDNS:pubKey')[0];
|
||||||
|
|
||||||
|
// Data sanity checks for keyData
|
||||||
|
if (!$flags || !$protocol || !$algKeyData || !$pubKey) {
|
||||||
|
sendEppError($conn, 2005, 'Incomplete or invalid keyData provided', $clTRID);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$stmt = $db->prepare("INSERT INTO `secdns` (`domain_id`, `maxsiglife`, `interface`, `keytag`, `alg`, `digesttype`, `digest`, `flags`, `protocol`, `keydata_alg`, `pubkey`) VALUES (:domain_id, :maxsiglife, :interface, :keytag, :alg, :digesttype, :digest, :flags, :protocol, :keydata_alg, :pubkey)");
|
||||||
|
|
||||||
|
$stmt->execute([
|
||||||
|
':domain_id' => $domain_id,
|
||||||
|
':maxsiglife' => $maxSigLife,
|
||||||
|
':interface' => 'dsData',
|
||||||
|
':keytag' => $keyTag,
|
||||||
|
':alg' => $alg,
|
||||||
|
':digesttype' => $digestType,
|
||||||
|
':digest' => $digest,
|
||||||
|
':flags' => $flags ?? null,
|
||||||
|
':protocol' => $protocol ?? null,
|
||||||
|
':keydata_alg' => $algKeyData ?? null,
|
||||||
|
':pubkey' => $pubKey ?? null
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue