mirror of
https://github.com/getnamingo/registry.git
synced 2025-05-17 01:57:00 +02:00
More fixes for RST
This commit is contained in:
parent
9fffa850e5
commit
b150d95b36
2 changed files with 79 additions and 29 deletions
|
@ -58,6 +58,7 @@ try {
|
||||||
$endOfPreviousDay = date('Y-m-d 23:59:59', strtotime('-1 day'));
|
$endOfPreviousDay = date('Y-m-d 23:59:59', strtotime('-1 day'));
|
||||||
|
|
||||||
$domainCount = fetchDomainCount($dbh, $tld['id']);
|
$domainCount = fetchDomainCount($dbh, $tld['id']);
|
||||||
|
$NNDNCount = fetchNNDNCount($dbh);
|
||||||
$hostCount = fetchCount($dbh, 'host');
|
$hostCount = fetchCount($dbh, 'host');
|
||||||
$contactCount = fetchCount($dbh, 'contact');
|
$contactCount = fetchCount($dbh, 'contact');
|
||||||
$registrarCount = fetchCount($dbh, 'registrar');
|
$registrarCount = fetchCount($dbh, 'registrar');
|
||||||
|
@ -66,7 +67,7 @@ try {
|
||||||
if (strpos($tldname, '.') !== false) {
|
if (strpos($tldname, '.') !== false) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Starting the escrow deposit for this TLD
|
// Starting the escrow deposit for this TLD
|
||||||
// Initializing XMLWriter
|
// Initializing XMLWriter
|
||||||
$xml = new XMLWriter();
|
$xml = new XMLWriter();
|
||||||
|
@ -114,12 +115,15 @@ try {
|
||||||
'urn:ietf:params:xml:ns:rdeHost-1.0',
|
'urn:ietf:params:xml:ns:rdeHost-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeDomain-1.0',
|
'urn:ietf:params:xml:ns:rdeDomain-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeRegistrar-1.0',
|
'urn:ietf:params:xml:ns:rdeRegistrar-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeIDN-1.0',
|
|
||||||
'urn:ietf:params:xml:ns:rdeNNDN-1.0',
|
'urn:ietf:params:xml:ns:rdeNNDN-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeEppParams-1.0',
|
'urn:ietf:params:xml:ns:rdeEppParams-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdePolicy-1.0'
|
'urn:ietf:params:xml:ns:rdePolicy-1.0'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
|
$objURIs[] = 'urn:ietf:params:xml:ns:rdeIDN-1.0';
|
||||||
|
}
|
||||||
|
|
||||||
// Write each rde:objURI element
|
// Write each rde:objURI element
|
||||||
foreach ($objURIs as $objURI) {
|
foreach ($objURIs as $objURI) {
|
||||||
$xml->startElementNS('rde', 'objURI', null);
|
$xml->startElementNS('rde', 'objURI', null);
|
||||||
|
@ -154,15 +158,17 @@ try {
|
||||||
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeRegistrar-1.0');
|
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeRegistrar-1.0');
|
||||||
$xml->text($registrarCount);
|
$xml->text($registrarCount);
|
||||||
$xml->endElement();
|
$xml->endElement();
|
||||||
|
|
||||||
$xml->startElement('rdeHeader:count');
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeIDN-1.0');
|
$xml->startElement('rdeHeader:count');
|
||||||
$xml->text('1');
|
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeIDN-1.0');
|
||||||
$xml->endElement();
|
$xml->text('1');
|
||||||
|
$xml->endElement();
|
||||||
|
}
|
||||||
|
|
||||||
$xml->startElement('rdeHeader:count');
|
$xml->startElement('rdeHeader:count');
|
||||||
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeNNDN-1.0');
|
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeNNDN-1.0');
|
||||||
$xml->text('0');
|
$xml->text($NNDNCount);
|
||||||
$xml->endElement();
|
$xml->endElement();
|
||||||
|
|
||||||
$xml->startElement('rdeHeader:count');
|
$xml->startElement('rdeHeader:count');
|
||||||
|
@ -189,7 +195,9 @@ try {
|
||||||
$xml->writeElement('rdeDomain:name', $domain['name']);
|
$xml->writeElement('rdeDomain:name', $domain['name']);
|
||||||
$xml->writeElement('rdeDomain:roid', 'D' . $domain['id'] . '-' . $c['roid']);
|
$xml->writeElement('rdeDomain:roid', 'D' . $domain['id'] . '-' . $c['roid']);
|
||||||
$xml->writeElement('rdeDomain:uName', $domain['name']);
|
$xml->writeElement('rdeDomain:uName', $domain['name']);
|
||||||
$xml->writeElement('rdeDomain:idnTableId', 'Latn');
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
|
$xml->writeElement('rdeDomain:idnTableId', 'Latn');
|
||||||
|
}
|
||||||
|
|
||||||
// Fetch domain status
|
// Fetch domain status
|
||||||
$stmt = $dbh->prepare("SELECT * FROM domain_status WHERE domain_id = :domain_id;");
|
$stmt = $dbh->prepare("SELECT * FROM domain_status WHERE domain_id = :domain_id;");
|
||||||
|
@ -377,13 +385,15 @@ try {
|
||||||
$xml->endElement(); // Closing rdeRegistrar:registrar
|
$xml->endElement(); // Closing rdeRegistrar:registrar
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writing the idnTableRef section
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
$xml->startElement('rdeIDN:idnTableRef');
|
// Writing the idnTableRef section
|
||||||
$xml->writeAttribute('id', 'Latn');
|
$xml->startElement('rdeIDN:idnTableRef');
|
||||||
$xml->writeElement('rdeIDN:url', 'https://namingo.org');
|
$xml->writeAttribute('id', 'Latn');
|
||||||
$xml->writeElement('rdeIDN:urlPolicy', 'https://namingo.org');
|
$xml->writeElement('rdeIDN:url', 'https://namingo.org');
|
||||||
$xml->endElement(); // Closing rdeIDN:idnTableRef
|
$xml->writeElement('rdeIDN:urlPolicy', 'https://namingo.org');
|
||||||
|
$xml->endElement(); // Closing rdeIDN:idnTableRef
|
||||||
|
}
|
||||||
|
|
||||||
// Start of rdeEppParams:eppParams
|
// Start of rdeEppParams:eppParams
|
||||||
$xml->startElementNS('rdeEppParams', 'eppParams', null);
|
$xml->startElementNS('rdeEppParams', 'eppParams', null);
|
||||||
|
|
||||||
|
@ -616,14 +626,16 @@ try {
|
||||||
$reportXML->text($registrarCount);
|
$reportXML->text($registrarCount);
|
||||||
$reportXML->endElement();
|
$reportXML->endElement();
|
||||||
|
|
||||||
$reportXML->startElement('rdeHeader:count');
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
$reportXML->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeIDN-1.0');
|
$reportXML->startElement('rdeHeader:count');
|
||||||
$reportXML->text('0');
|
$reportXML->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeIDN-1.0');
|
||||||
$reportXML->endElement();
|
$reportXML->text('0');
|
||||||
|
$reportXML->endElement();
|
||||||
|
}
|
||||||
|
|
||||||
$reportXML->startElement('rdeHeader:count');
|
$reportXML->startElement('rdeHeader:count');
|
||||||
$reportXML->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeNNDN-1.0');
|
$reportXML->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeNNDN-1.0');
|
||||||
$reportXML->text('0');
|
$reportXML->text($NNDNCount);
|
||||||
$reportXML->endElement();
|
$reportXML->endElement();
|
||||||
|
|
||||||
$reportXML->startElement('rdeHeader:count');
|
$reportXML->startElement('rdeHeader:count');
|
||||||
|
@ -690,12 +702,15 @@ try {
|
||||||
'urn:ietf:params:xml:ns:rdeHost-1.0',
|
'urn:ietf:params:xml:ns:rdeHost-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeDomain-1.0',
|
'urn:ietf:params:xml:ns:rdeDomain-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeRegistrar-1.0',
|
'urn:ietf:params:xml:ns:rdeRegistrar-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeIDN-1.0',
|
|
||||||
'urn:ietf:params:xml:ns:rdeNNDN-1.0',
|
'urn:ietf:params:xml:ns:rdeNNDN-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdeEppParams-1.0',
|
'urn:ietf:params:xml:ns:rdeEppParams-1.0',
|
||||||
'urn:ietf:params:xml:ns:rdePolicy-1.0'
|
'urn:ietf:params:xml:ns:rdePolicy-1.0'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
|
$objURIs[] = 'urn:ietf:params:xml:ns:rdeIDN-1.0';
|
||||||
|
}
|
||||||
|
|
||||||
// Write each rde:objURI element
|
// Write each rde:objURI element
|
||||||
foreach ($objURIs as $objURI) {
|
foreach ($objURIs as $objURI) {
|
||||||
$xml->startElementNS('rde', 'objURI', null);
|
$xml->startElementNS('rde', 'objURI', null);
|
||||||
|
@ -730,15 +745,17 @@ try {
|
||||||
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeRegistrar-1.0');
|
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeRegistrar-1.0');
|
||||||
$xml->text($registrarCount);
|
$xml->text($registrarCount);
|
||||||
$xml->endElement();
|
$xml->endElement();
|
||||||
|
|
||||||
$xml->startElement('rdeHeader:count');
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeIDN-1.0');
|
$xml->startElement('rdeHeader:count');
|
||||||
$xml->text('1');
|
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeIDN-1.0');
|
||||||
$xml->endElement();
|
$xml->text('1');
|
||||||
|
$xml->endElement();
|
||||||
|
}
|
||||||
|
|
||||||
$xml->startElement('rdeHeader:count');
|
$xml->startElement('rdeHeader:count');
|
||||||
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeNNDN-1.0');
|
$xml->writeAttribute('uri', 'urn:ietf:params:xml:ns:rdeNNDN-1.0');
|
||||||
$xml->text('0');
|
$xml->text($NNDNCount);
|
||||||
$xml->endElement();
|
$xml->endElement();
|
||||||
|
|
||||||
$xml->startElement('rdeHeader:count');
|
$xml->startElement('rdeHeader:count');
|
||||||
|
@ -765,7 +782,9 @@ try {
|
||||||
$xml->writeElement('rdeDomain:name', $domain['name']);
|
$xml->writeElement('rdeDomain:name', $domain['name']);
|
||||||
$xml->writeElement('rdeDomain:roid', 'D' . $domain['id'] . '-' . $c['roid']);
|
$xml->writeElement('rdeDomain:roid', 'D' . $domain['id'] . '-' . $c['roid']);
|
||||||
$xml->writeElement('rdeDomain:uName', $domain['name']);
|
$xml->writeElement('rdeDomain:uName', $domain['name']);
|
||||||
$xml->writeElement('rdeDomain:idnTableId', 'Latn');
|
if (!isIDN($dbh, $tld['id'])) {
|
||||||
|
$xml->writeElement('rdeDomain:idnTableId', 'Latn');
|
||||||
|
}
|
||||||
|
|
||||||
// Fetch domain status
|
// Fetch domain status
|
||||||
$stmt = $dbh->prepare("SELECT * FROM domain_status WHERE domain_id = :domain_id;");
|
$stmt = $dbh->prepare("SELECT * FROM domain_status WHERE domain_id = :domain_id;");
|
||||||
|
|
|
@ -154,6 +154,37 @@ function fetchDomainCount($pdo, $tld_id) {
|
||||||
return $result['count'];
|
return $result['count'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fetchNNDNCount($pdo) {
|
||||||
|
// Prepare the SQL query
|
||||||
|
$query = "SELECT COUNT(name) AS count FROM reserved_domain_names";
|
||||||
|
$stmt = $pdo->prepare($query);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
// Fetch and return the count
|
||||||
|
$result = $stmt->fetch();
|
||||||
|
return $result['count'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function isIDN($pdo, $tld_id) {
|
||||||
|
// Fetch the idn_table value for the given TLD ID
|
||||||
|
$query = "SELECT idn_table FROM domain_tld WHERE id = :tldid";
|
||||||
|
$stmt = $pdo->prepare($query);
|
||||||
|
$stmt->bindParam(':tldid', $tld_id, PDO::PARAM_INT);
|
||||||
|
$stmt->execute();
|
||||||
|
$result = $stmt->fetch();
|
||||||
|
|
||||||
|
if (!$result || !isset($result['idn_table'])) {
|
||||||
|
return false; // default to false if not found
|
||||||
|
}
|
||||||
|
|
||||||
|
$idnTable = $result['idn_table'];
|
||||||
|
|
||||||
|
// Check if the value matches the pattern for non-IDN ASCII-only domain labels
|
||||||
|
$asciiPattern = '/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(\.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i';
|
||||||
|
|
||||||
|
return !preg_match($asciiPattern, $idnTable); // true if it's IDN
|
||||||
|
}
|
||||||
|
|
||||||
// Function to check domain against Spamhaus SBL
|
// Function to check domain against Spamhaus SBL
|
||||||
function checkSpamhaus($domain) {
|
function checkSpamhaus($domain) {
|
||||||
// Append '.sbl.spamhaus.org' to the domain
|
// Append '.sbl.spamhaus.org' to the domain
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue