Milliseconds are now fully supported

This commit is contained in:
Pinga 2023-11-09 00:33:02 +02:00
parent ea754362f8
commit 63aa36ff0a
13 changed files with 425 additions and 321 deletions

View file

@ -59,7 +59,8 @@ if ($auto_renew) {
$dbh->exec("INSERT INTO `domain_status` (`domain_id`, `status`) VALUES('$domain_id', 'pendingDelete')"); $dbh->exec("INSERT INTO `domain_status` (`domain_id`, `status`) VALUES('$domain_id', 'pendingDelete')");
} }
} }
echo date("Y-m-d H:i:s") . " - $domain_id\t|\t$name\t|\trgpStatus:autoRenewPeriod exdate:$exdate\n"; $currentDateTime = new DateTime();
echo $currentDateTime->format("Y-m-d H:i:s.v") . " - $domain_id\t|\t$name\t|\trgpStatus:autoRenewPeriod exdate:$exdate\n";
} }
} else { } else {
$grace_period = 30; $grace_period = 30;
@ -87,8 +88,8 @@ if ($auto_renew) {
$dbh->exec("UPDATE `domain` SET `rgpstatus` = 'redemptionPeriod', `delTime` = DATE_ADD(`exdate`, INTERVAL $grace_period DAY) WHERE `id` = '$domain_id'"); $dbh->exec("UPDATE `domain` SET `rgpstatus` = 'redemptionPeriod', `delTime` = DATE_ADD(`exdate`, INTERVAL $grace_period DAY) WHERE `id` = '$domain_id'");
$dbh->exec("INSERT INTO `domain_status` (`domain_id`, `status`) VALUES('$domain_id', 'pendingDelete')"); $dbh->exec("INSERT INTO `domain_status` (`domain_id`, `status`) VALUES('$domain_id', 'pendingDelete')");
} }
$currentDateTime = new DateTime();
echo date("Y-m-d H:i:s") . " - $domain_id\t|\t$name\t|\trgpStatus:redemptionPeriod exdate:$exdate\n"; echo $currentDateTime->format("Y-m-d H:i:s.v") . " - $domain_id\t|\t$name\t|\trgpStatus:redemptionPeriod exdate:$exdate\n";
} }
} }
@ -138,8 +139,8 @@ while ($row = $sth_pendingdelete->fetch(PDO::FETCH_ASSOC)) {
if ($set_pendingDelete) { if ($set_pendingDelete) {
$dbh->exec("UPDATE `domain` SET `rgpstatus` = 'pendingDelete' WHERE `id` = '$domain_id'"); $dbh->exec("UPDATE `domain` SET `rgpstatus` = 'pendingDelete' WHERE `id` = '$domain_id'");
} }
$currentDateTime = new DateTime();
echo date("Y-m-d H:i:s") . " - $domain_id\t|\t$name\t|\trgpStatus:pendingDelete exdate:$exdate\n"; echo $currentDateTime->format("Y-m-d H:i:s.v") . " - $domain_id\t|\t$name\t|\trgpStatus:pendingDelete exdate:$exdate\n";
} }
// Pending Restore // Pending Restore
@ -153,7 +154,8 @@ while ($row = $sth_pendingRestore->fetch(PDO::FETCH_ASSOC)) {
$dbh->exec("UPDATE `domain` SET `rgpstatus` = 'redemptionPeriod' WHERE `id` = '$domain_id'"); $dbh->exec("UPDATE `domain` SET `rgpstatus` = 'redemptionPeriod' WHERE `id` = '$domain_id'");
echo date("Y-m-d H:i:s") . " - $domain_id\t|\t$name\t|\tback to redemptionPeriod from pendingRestore exdate:$exdate\n"; $currentDateTime = new DateTime();
echo $currentDateTime->format("Y-m-d H:i:s.v") . " - $domain_id\t|\t$name\t|\tback to redemptionPeriod from pendingRestore exdate:$exdate\n";
} }
// Domain Deletion // Domain Deletion
@ -209,6 +211,6 @@ while ($row = $sth_delete->fetch(PDO::FETCH_ASSOC)) {
$dbh->exec("UPDATE `statistics` SET `deleted_domains` = `deleted_domains` + 1 WHERE `date` = CURDATE()"); $dbh->exec("UPDATE `statistics` SET `deleted_domains` = `deleted_domains` + 1 WHERE `date` = CURDATE()");
} }
} }
$currentDateTime = new DateTime();
echo date("Y-m-d H:i:s") . " - $domain_id\t|\t$name\t|\tdomain:Deleted exdate:$exdate\n"; echo $currentDateTime->format("Y-m-d H:i:s.v") . " - $domain_id\t|\t$name\t|\tdomain:Deleted exdate:$exdate\n";
} }

View file

@ -107,8 +107,10 @@ foreach ($tlds as $tld) {
$xml->writeElement('rdeDom:clID', $domain['clid']); $xml->writeElement('rdeDom:clID', $domain['clid']);
$xml->writeElement('rdeDom:crRr', $domain['crid']); $xml->writeElement('rdeDom:crRr', $domain['crid']);
$xml->writeElement('rdeDom:crDate', date("Y-m-d\\TH:i:s.0\\Z", strtotime($domain['crdate']))); $crDate = DateTime::createFromFormat('Y-m-d H:i:s.v', $domain['crdate']);
$xml->writeElement('rdeDom:exDate', date("Y-m-d\\TH:i:s.0\\Z", strtotime($domain['exdate']))); $xml->writeElement('rdeDom:crDate', $crDate->format("Y-m-d\\TH:i:s.v\\Z"));
$exDate = DateTime::createFromFormat('Y-m-d H:i:s.v', $domain['exdate']);
$xml->writeElement('rdeDom:exDate', $exDate->format("Y-m-d\\TH:i:s.v\\Z"));
$xml->endElement(); // Closing rdeDom:domain $xml->endElement(); // Closing rdeDom:domain
} }
@ -153,7 +155,8 @@ foreach ($tlds as $tld) {
$xml->writeElement('rdeRegistrar:url', $registrar['whois_server']); $xml->writeElement('rdeRegistrar:url', $registrar['whois_server']);
$xml->endElement(); // Closing rdeRegistrar:whoisInfo $xml->endElement(); // Closing rdeRegistrar:whoisInfo
$xml->writeElement('rdeRegistrar:crDate', date("Y-m-d\\TH:i:s.0\\Z", strtotime($registrar['crdate']))); $crDate = DateTime::createFromFormat('Y-m-d H:i:s.v', $registrar['crdate']);
$xml->writeElement('rdeRegistrar:crDate', $crDate->format("Y-m-d\\TH:i:s.v\\Z"));
} }
$xml->endElement(); // Closing rdeRegistrar:registrar $xml->endElement(); // Closing rdeRegistrar:registrar
@ -174,7 +177,8 @@ foreach ($tlds as $tld) {
$xml->writeElement('rdeHost:clID', $host['clid']); $xml->writeElement('rdeHost:clID', $host['clid']);
$xml->writeElement('rdeHost:crRr', $host['crid']); $xml->writeElement('rdeHost:crRr', $host['crid']);
$xml->writeElement('rdeHost:crDate', date("Y-m-d\\TH:i:s.0\\Z", strtotime($host['crdate']))); $crDate = DateTime::createFromFormat('Y-m-d H:i:s.v', $host['crdate']);
$xml->writeElement('rdeHost:crDate', $crDate->format("Y-m-d\\TH:i:s.v\\Z"));
$xml->endElement(); // Closing rdeHost:host $xml->endElement(); // Closing rdeHost:host
} }
@ -217,10 +221,12 @@ foreach ($tlds as $tld) {
$xml->writeElement('rdeContact:email', $contact['email']); $xml->writeElement('rdeContact:email', $contact['email']);
$xml->writeElement('rdeContact:clID', $contact['clid']); $xml->writeElement('rdeContact:clID', $contact['clid']);
$xml->writeElement('rdeContact:crRr', $contact['crid']); $xml->writeElement('rdeContact:crRr', $contact['crid']);
$xml->writeElement('rdeContact:crDate', date("Y-m-d\\TH:i:s.0\\Z", strtotime($contact['crdate']))); $crDate = DateTime::createFromFormat('Y-m-d H:i:s.v', $contact['crdate']);
$xml->writeElement('rdeContact:crDate', $crDate->format("Y-m-d\\TH:i:s.v\\Z"));
if (!empty($contact['upid'])) { if (!empty($contact['upid'])) {
$xml->writeElement('rdeContact:upRr', $contact['upid']); $xml->writeElement('rdeContact:upRr', $contact['upid']);
$xml->writeElement('rdeContact:upDate', date("Y-m-d\\TH:i:s.0\\Z", strtotime($contact['update']))); $upDate = DateTime::createFromFormat('Y-m-d H:i:s.v', $contact['update']);
$xml->writeElement('rdeContact:upDate', $upDate->format("Y-m-d\\TH:i:s.v\\Z"));
} }
$xml->endElement(); // Closing rdeContact:contact $xml->endElement(); // Closing rdeContact:contact
} }
@ -372,9 +378,11 @@ foreach ($tlds as $tld) {
$reportXML->writeElement('rdeReport:rydeSpecEscrow', 'RFC8909'); $reportXML->writeElement('rdeReport:rydeSpecEscrow', 'RFC8909');
$reportXML->writeElement('rdeReport:rydeSpecMapping', 'RFC9022'); $reportXML->writeElement('rdeReport:rydeSpecMapping', 'RFC9022');
$reportXML->writeElement('rdeReport:resend', '0'); $reportXML->writeElement('rdeReport:resend', '0');
$reportXML->writeElement('rdeReport:crDate', date("Y-m-d\\TH:i:s.0\\Z")); $currentDateTime = new DateTime();
$crDateWithMilliseconds = $currentDateTime->format("Y-m-d\TH:i:s.v\Z");
$reportXML->writeElement('rdeReport:crDate', $crDateWithMilliseconds);
$reportXML->writeElement('rdeReport:kind', 'FULL'); $reportXML->writeElement('rdeReport:kind', 'FULL');
$reportXML->writeElement('rdeReport:watermark', date('Y-m-d\\T00:00:00\\Z')); $reportXML->writeElement('rdeReport:watermark', date('Y-m-d\\T00:00:00.000\\Z'));
$reportXML->startElement('rdeHeader:header'); $reportXML->startElement('rdeHeader:header');
$reportXML->writeElement('rdeHeader:tld', $tld['tld']); $reportXML->writeElement('rdeHeader:tld', $tld['tld']);

View file

@ -31,7 +31,7 @@ foreach ($allEmails as $emailId) {
$header = imap_headerinfo($inbox, $emailId); $header = imap_headerinfo($inbox, $emailId);
$from = $header->from[0]->mailbox . "@" . $header->from[0]->host; $from = $header->from[0]->mailbox . "@" . $header->from[0]->host;
$subject = $header->subject; $subject = $header->subject;
$date = date('Y-m-d H:i:s', strtotime($header->date)); $date = date('Y-m-d H:i:s', strtotime($header->date)) . '.000';
// Determine the URS provider based on the email sender // Determine the URS provider based on the email sender
$ursProvider = ($from == 'providerA@example.com') ? 'URSPA' : 'URSPB'; $ursProvider = ($from == 'providerA@example.com') ? 'URSPA' : 'URSPB';

View file

@ -338,15 +338,15 @@ class ContactsController extends Controller
]); ]);
} }
$disclose_voice = isset($data['disclose_voice']) ? 1 : 0; $disclose_voice = isset($data['disclose_voice']) ? 1 : 0;
$disclose_fax = isset($data['disclose_fax']) ? 1 : 0; $disclose_fax = isset($data['disclose_fax']) ? 1 : 0;
$disclose_email = isset($data['disclose_email']) ? 1 : 0; $disclose_email = isset($data['disclose_email']) ? 1 : 0;
$disclose_name_int = isset($data['disclose_name_int']) ? 1 : 0; $disclose_name_int = isset($data['disclose_name_int']) ? 1 : 0;
$disclose_name_loc = isset($data['disclose_name_loc']) ? 1 : 0; $disclose_name_loc = isset($data['disclose_name_loc']) ? 1 : 0;
$disclose_org_int = isset($data['disclose_org_int']) ? 1 : 0; $disclose_org_int = isset($data['disclose_org_int']) ? 1 : 0;
$disclose_org_loc = isset($data['disclose_org_loc']) ? 1 : 0; $disclose_org_loc = isset($data['disclose_org_loc']) ? 1 : 0;
$disclose_addr_int = isset($data['disclose_addr_int']) ? 1 : 0; $disclose_addr_int = isset($data['disclose_addr_int']) ? 1 : 0;
$disclose_addr_loc = isset($data['disclose_addr_loc']) ? 1 : 0; $disclose_addr_loc = isset($data['disclose_addr_loc']) ? 1 : 0;
if ($data['nin']) { if ($data['nin']) {
$nin = $data['nin']; $nin = $data['nin'];
@ -365,6 +365,8 @@ class ContactsController extends Controller
$db->beginTransaction(); $db->beginTransaction();
try { try {
$currentDateTime = new DateTime();
$crdate = $currentDateTime->format('Y-m-d H:i:s.v');
$db->insert( $db->insert(
'contact', 'contact',
[ [
@ -378,7 +380,7 @@ class ContactsController extends Controller
'nin_type' => $nin_type ?? null, 'nin_type' => $nin_type ?? null,
'clid' => $clid, 'clid' => $clid,
'crid' => $clid, 'crid' => $clid,
'crdate' => date('Y-m-d H:i:s'), 'crdate' => $crdate,
'disclose_voice' => $disclose_voice, 'disclose_voice' => $disclose_voice,
'disclose_fax' => $disclose_fax, 'disclose_fax' => $disclose_fax,
'disclose_email' => $disclose_email 'disclose_email' => $disclose_email

View file

@ -335,8 +335,12 @@ class DomainsController extends Controller
try { try {
$db->beginTransaction(); $db->beginTransaction();
$crdate = date('Y-m-d H:i:s'); // Current timestamp $currentDateTime = new DateTime();
$exdate = date('Y-m-d H:i:s', strtotime("+$date_add months")); // Expiry timestamp after $date_add months $crdate = $currentDateTime->format('Y-m-d H:i:s.v'); // Current timestamp
$currentDateTime = new DateTime();
$currentDateTime->modify("+$date_add months");
$exdate = $currentDateTime->format('Y-m-d H:i:s.v'); // Expiry timestamp after $date_add months
$db->insert('domain', [ $db->insert('domain', [
'name' => $domainName, 'name' => $domainName,
@ -499,11 +503,13 @@ class DomainsController extends Controller
$from = $row['crdate']; $from = $row['crdate'];
$to = $row['exdate']; $to = $row['exdate'];
$currentDateTime = new DateTime();
$stdate = $currentDateTime->format('Y-m-d H:i:s.v');
$db->insert( $db->insert(
'statement', 'statement',
[ [
'registrar_id' => $clid, 'registrar_id' => $clid,
'date' => date('Y-m-d H:i:s'), 'date' => $stdate,
'command' => 'create', 'command' => 'create',
'domain_name' => $domainName, 'domain_name' => $domainName,
'length_in_months' => $date_add, 'length_in_months' => $date_add,
@ -534,16 +540,20 @@ class DomainsController extends Controller
] ]
); );
} else { } else {
$currentDateTime = new DateTime();
$logdate = $currentDateTime->format('Y-m-d H:i:s.v');
$db->insert( $db->insert(
'error_log', 'error_log',
[ [
'registrar_id' => $clid, 'registrar_id' => $clid,
'log' => "Domain : $domainName ; hostName : $nameserver - is duplicated", 'log' => "Domain : $domainName ; hostName : $nameserver - is duplicated",
'date' => date('Y-m-d H:i:s') 'date' => $logdate
] ]
); );
} }
} else { } else {
$currentDateTime = new DateTime();
$host_date = $currentDateTime->format('Y-m-d H:i:s.v');
$host_id = $db->insert( $host_id = $db->insert(
'host', 'host',
[ [
@ -551,7 +561,7 @@ class DomainsController extends Controller
'domain_id' => $domain_id, 'domain_id' => $domain_id,
'clid' => $clid, 'clid' => $clid,
'crid' => $clid, 'crid' => $clid,
'crdate' => date('Y-m-d H:i:s') 'crdate' => $host_date
] ]
); );

View file

@ -127,6 +127,8 @@ class HostsController extends Controller
$db->beginTransaction(); $db->beginTransaction();
try { try {
$currentDateTime = new DateTime();
$crdate = $currentDateTime->format('Y-m-d H:i:s.v');
$db->insert( $db->insert(
'host', 'host',
[ [
@ -134,7 +136,7 @@ class HostsController extends Controller
'domain_id' => $superordinate_dom, 'domain_id' => $superordinate_dom,
'clid' => $clid, 'clid' => $clid,
'crid' => $clid, 'crid' => $clid,
'crdate' => date('Y-m-d H:i:s') 'crdate' => $crdate
] ]
); );
$host_id = $db->getLastInsertId(); $host_id = $db->getLastInsertId();
@ -201,13 +203,15 @@ class HostsController extends Controller
'registrars' => $registrars, 'registrars' => $registrars,
]); ]);
} else { } else {
$currentDateTime = new DateTime();
$crdate = $currentDateTime->format('Y-m-d H:i:s.v');
$db->insert( $db->insert(
'host', 'host',
[ [
'name' => $hostName, 'name' => $hostName,
'clid' => $clid, 'clid' => $clid,
'crid' => $clid, 'crid' => $clid,
'crdate' => date('Y-m-d H:i:s') 'crdate' => $crdate
] ]
); );
$host_id = $db->getLastInsertId(); $host_id = $db->getLastInsertId();

View file

@ -107,7 +107,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/das/das_request.log",'a')) { if ($fp = @fopen("/var/log/das/das_request.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$domain."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $domain . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);
@ -117,7 +120,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/das/das_not_found.log",'a')) { if ($fp = @fopen("/var/log/das/das_not_found.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$domain."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $domain . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);

View file

@ -44,7 +44,7 @@ CREATE TABLE IF NOT EXISTS `registry`.`error_log` (
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`registrar_id` INT(11) NOT NULL, `registrar_id` INT(11) NOT NULL,
`log` TEXT NOT NULL, `log` TEXT NOT NULL,
`date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP `date` TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='registry error log'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='registry error log';
CREATE TABLE IF NOT EXISTS `registry`.`reserved_domain_names` ( CREATE TABLE IF NOT EXISTS `registry`.`reserved_domain_names` (
@ -73,8 +73,8 @@ CREATE TABLE IF NOT EXISTS `registry`.`registrar` (
`creditThreshold` decimal(8,2) NOT NULL default '0.00', `creditThreshold` decimal(8,2) NOT NULL default '0.00',
`thresholdType` enum('fixed','percent') NOT NULL default 'fixed', `thresholdType` enum('fixed','percent') NOT NULL default 'fixed',
`currency` varchar(5) NOT NULL, `currency` varchar(5) NOT NULL,
`crdate` datetime NOT NULL, `crdate` datetime(3) NOT NULL,
`update` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `update` TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `clid` (`clid`), UNIQUE KEY `clid` (`clid`),
UNIQUE KEY `prefix` (`prefix`), UNIQUE KEY `prefix` (`prefix`),
@ -117,16 +117,16 @@ CREATE TABLE IF NOT EXISTS `registry`.`registrar_contact` (
CREATE TABLE IF NOT EXISTS `registry`.`poll` ( CREATE TABLE IF NOT EXISTS `registry`.`poll` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`registrar_id` int(10) unsigned NOT NULL, `registrar_id` int(10) unsigned NOT NULL,
`qdate` datetime NOT NULL, `qdate` datetime(3) NOT NULL,
`msg` text default NULL, `msg` text default NULL,
`msg_type` enum('lowBalance','domainTransfer','contactTransfer') default NULL, `msg_type` enum('lowBalance','domainTransfer','contactTransfer') default NULL,
`obj_name_or_id` varchar(68), `obj_name_or_id` varchar(68),
`obj_trStatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, `obj_trStatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL,
`obj_reID` varchar(255), `obj_reID` varchar(255),
`obj_reDate` datetime, `obj_reDate` datetime(3),
`obj_acID` varchar(255), `obj_acID` varchar(255),
`obj_acDate` datetime, `obj_acDate` datetime(3),
`obj_exDate` datetime default NULL, `obj_exDate` datetime(3) default NULL,
`registrarName` varchar(255), `registrarName` varchar(255),
`creditLimit` decimal(8,2) default '0.00', `creditLimit` decimal(8,2) default '0.00',
`creditThreshold` decimal(8,2) default '0.00', `creditThreshold` decimal(8,2) default '0.00',
@ -139,7 +139,7 @@ CREATE TABLE IF NOT EXISTS `registry`.`poll` (
CREATE TABLE IF NOT EXISTS `registry`.`payment_history` ( CREATE TABLE IF NOT EXISTS `registry`.`payment_history` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`registrar_id` int(10) unsigned NOT NULL, `registrar_id` int(10) unsigned NOT NULL,
`date` datetime NOT NULL, `date` datetime(3) NOT NULL,
`description` text NOT NULL, `description` text NOT NULL,
`amount` decimal(8,2) NOT NULL, `amount` decimal(8,2) NOT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
@ -149,12 +149,12 @@ CREATE TABLE IF NOT EXISTS `registry`.`payment_history` (
CREATE TABLE IF NOT EXISTS `registry`.`statement` ( CREATE TABLE IF NOT EXISTS `registry`.`statement` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`registrar_id` int(10) unsigned NOT NULL, `registrar_id` int(10) unsigned NOT NULL,
`date` datetime NOT NULL, `date` datetime(3) NOT NULL,
`command` enum('create','renew','transfer','restore','autoRenew') NOT NULL default 'create', `command` enum('create','renew','transfer','restore','autoRenew') NOT NULL default 'create',
`domain_name` varchar(68) NOT NULL, `domain_name` varchar(68) NOT NULL,
`length_in_months` tinyint(3) unsigned NOT NULL, `length_in_months` tinyint(3) unsigned NOT NULL,
`from` datetime NOT NULL, `from` datetime(3) NOT NULL,
`to` datetime NOT NULL, `to` datetime(3) NOT NULL,
`amount` decimal(8,2) NOT NULL, `amount` decimal(8,2) NOT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
CONSTRAINT `statement_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT CONSTRAINT `statement_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT
@ -172,15 +172,15 @@ CREATE TABLE IF NOT EXISTS `registry`.`contact` (
`nin_type` enum('personal','business') default NULL, `nin_type` enum('personal','business') default NULL,
`clid` int(10) unsigned NOT NULL, `clid` int(10) unsigned NOT NULL,
`crid` int(10) unsigned NOT NULL, `crid` int(10) unsigned NOT NULL,
`crdate` datetime NOT NULL, `crdate` datetime(3) NOT NULL,
`upid` int(10) unsigned default NULL, `upid` int(10) unsigned default NULL,
`update` datetime default NULL, `update` datetime(3) default NULL,
`trdate` datetime default NULL, `trdate` datetime(3) default NULL,
`trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL,
`reid` int(10) unsigned default NULL, `reid` int(10) unsigned default NULL,
`redate` datetime default NULL, `redate` datetime(3) default NULL,
`acid` int(10) unsigned default NULL, `acid` int(10) unsigned default NULL,
`acdate` datetime default NULL, `acdate` datetime(3) default NULL,
`disclose_voice` enum('0','1') NOT NULL default '1', `disclose_voice` enum('0','1') NOT NULL default '1',
`disclose_fax` enum('0','1') NOT NULL default '1', `disclose_fax` enum('0','1') NOT NULL default '1',
`disclose_email` enum('0','1') NOT NULL default '1', `disclose_email` enum('0','1') NOT NULL default '1',
@ -239,26 +239,26 @@ CREATE TABLE IF NOT EXISTS `registry`.`domain` (
`name` varchar(68) NOT NULL, `name` varchar(68) NOT NULL,
`tldid` int(10) unsigned NOT NULL, `tldid` int(10) unsigned NOT NULL,
`registrant` int(10) unsigned default NULL, `registrant` int(10) unsigned default NULL,
`crdate` datetime NOT NULL, `crdate` datetime(3) NOT NULL,
`exdate` datetime NOT NULL, `exdate` datetime(3) NOT NULL,
`update` datetime default NULL, `update` datetime(3) default NULL,
`clid` int(10) unsigned NOT NULL, `clid` int(10) unsigned NOT NULL,
`crid` int(10) unsigned NOT NULL, `crid` int(10) unsigned NOT NULL,
`upid` int(10) unsigned default NULL, `upid` int(10) unsigned default NULL,
`trdate` datetime default NULL, `trdate` datetime(3) default NULL,
`trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL,
`reid` int(10) unsigned default NULL, `reid` int(10) unsigned default NULL,
`redate` datetime default NULL, `redate` datetime(3) default NULL,
`acid` int(10) unsigned default NULL, `acid` int(10) unsigned default NULL,
`acdate` datetime default NULL, `acdate` datetime(3) default NULL,
`transfer_exdate` datetime default NULL, `transfer_exdate` datetime(3) default NULL,
`idnlang` varchar(16) default NULL, `idnlang` varchar(16) default NULL,
`delTime` datetime default NULL, `delTime` datetime(3) default NULL,
`resTime` datetime default NULL, `resTime` datetime(3) default NULL,
`rgpstatus` enum('addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod') default NULL, `rgpstatus` enum('addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod') default NULL,
`rgppostData` text default NULL, `rgppostData` text default NULL,
`rgpdelTime` datetime default NULL, `rgpdelTime` datetime(3) default NULL,
`rgpresTime` datetime default NULL, `rgpresTime` datetime(3) default NULL,
`rgpresReason` text default NULL, `rgpresReason` text default NULL,
`rgpstatement1` text default NULL, `rgpstatement1` text default NULL,
`rgpstatement2` text default NULL, `rgpstatement2` text default NULL,
@ -267,7 +267,7 @@ CREATE TABLE IF NOT EXISTS `registry`.`domain` (
`autoRenewPeriod` tinyint(3) unsigned default NULL, `autoRenewPeriod` tinyint(3) unsigned default NULL,
`renewPeriod` tinyint(3) unsigned default NULL, `renewPeriod` tinyint(3) unsigned default NULL,
`transferPeriod` tinyint(3) unsigned default NULL, `transferPeriod` tinyint(3) unsigned default NULL,
`renewedDate` datetime default NULL, `renewedDate` datetime(3) default NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`), UNIQUE KEY `name` (`name`),
CONSTRAINT `domain_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, CONSTRAINT `domain_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT,
@ -333,10 +333,10 @@ CREATE TABLE IF NOT EXISTS `registry`.`host` (
`domain_id` int(10) unsigned default NULL, `domain_id` int(10) unsigned default NULL,
`clid` int(10) unsigned NOT NULL, `clid` int(10) unsigned NOT NULL,
`crid` int(10) unsigned NOT NULL, `crid` int(10) unsigned NOT NULL,
`crdate` datetime NOT NULL, `crdate` datetime(3) NOT NULL,
`upid` int(10) unsigned default NULL, `upid` int(10) unsigned default NULL,
`update` datetime default NULL, `update` datetime(3) default NULL,
`trdate` datetime default NULL, `trdate` datetime(3) default NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`), UNIQUE KEY `name` (`name`),
CONSTRAINT `host_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, CONSTRAINT `host_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT,
@ -378,19 +378,19 @@ CREATE TABLE IF NOT EXISTS `registry`.`domain_auto_approve_transfer` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(68) NOT NULL, `name` varchar(68) NOT NULL,
`registrant` int(10) unsigned default NULL, `registrant` int(10) unsigned default NULL,
`crdate` datetime NOT NULL, `crdate` datetime(3) NOT NULL,
`exdate` datetime NOT NULL, `exdate` datetime(3) NOT NULL,
`update` datetime default NULL, `update` datetime(3) default NULL,
`clid` int(10) unsigned NOT NULL, `clid` int(10) unsigned NOT NULL,
`crid` int(10) unsigned NOT NULL, `crid` int(10) unsigned NOT NULL,
`upid` int(10) unsigned default NULL, `upid` int(10) unsigned default NULL,
`trdate` datetime default NULL, `trdate` datetime(3) default NULL,
`trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL,
`reid` int(10) unsigned default NULL, `reid` int(10) unsigned default NULL,
`redate` datetime default NULL, `redate` datetime(3) default NULL,
`acid` int(10) unsigned default NULL, `acid` int(10) unsigned default NULL,
`acdate` datetime default NULL, `acdate` datetime(3) default NULL,
`transfer_exdate` datetime default NULL, `transfer_exdate` datetime(3) default NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain_auto_approve_transfer'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain_auto_approve_transfer';
@ -406,15 +406,15 @@ CREATE TABLE IF NOT EXISTS `registry`.`contact_auto_approve_transfer` (
`nin_type` enum('personal','business') default NULL, `nin_type` enum('personal','business') default NULL,
`clid` int(10) unsigned NOT NULL, `clid` int(10) unsigned NOT NULL,
`crid` int(10) unsigned NOT NULL, `crid` int(10) unsigned NOT NULL,
`crdate` datetime NOT NULL, `crdate` datetime(3) NOT NULL,
`upid` int(10) unsigned default NULL, `upid` int(10) unsigned default NULL,
`update` datetime default NULL, `update` datetime(3) default NULL,
`trdate` datetime default NULL, `trdate` datetime(3) default NULL,
`trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL,
`reid` int(10) unsigned default NULL, `reid` int(10) unsigned default NULL,
`redate` datetime default NULL, `redate` datetime(3) default NULL,
`acid` int(10) unsigned default NULL, `acid` int(10) unsigned default NULL,
`acdate` datetime default NULL, `acdate` datetime(3) default NULL,
`disclose_voice` enum('0','1') NOT NULL default '1', `disclose_voice` enum('0','1') NOT NULL default '1',
`disclose_fax` enum('0','1') NOT NULL default '1', `disclose_fax` enum('0','1') NOT NULL default '1',
`disclose_email` enum('0','1') NOT NULL default '1', `disclose_email` enum('0','1') NOT NULL default '1',
@ -581,8 +581,8 @@ CREATE TABLE IF NOT EXISTS `registry`.`support_tickets` (
evidence TEXT DEFAULT NULL, evidence TEXT DEFAULT NULL,
relevant_urls TEXT DEFAULT NULL, relevant_urls TEXT DEFAULT NULL,
date_of_incident DATE DEFAULT NULL, date_of_incident DATE DEFAULT NULL,
date_created DATETIME DEFAULT CURRENT_TIMESTAMP, date_created datetime(3) DEFAULT CURRENT_TIMESTAMP,
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, last_updated datetime(3) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (category_id) REFERENCES ticket_categories(id) FOREIGN KEY (category_id) REFERENCES ticket_categories(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Support Tickets'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Support Tickets';
@ -592,7 +592,7 @@ CREATE TABLE IF NOT EXISTS `registry`.`ticket_responses` (
ticket_id INT(11) UNSIGNED NOT NULL, ticket_id INT(11) UNSIGNED NOT NULL,
responder_id INT(11) UNSIGNED NOT NULL, responder_id INT(11) UNSIGNED NOT NULL,
response TEXT NOT NULL, response TEXT NOT NULL,
date_created DATETIME DEFAULT CURRENT_TIMESTAMP, date_created datetime(3) DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_id) REFERENCES support_tickets(id) FOREIGN KEY (ticket_id) REFERENCES support_tickets(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Ticket Responses'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Ticket Responses';
@ -660,7 +660,7 @@ CREATE TABLE IF NOT EXISTS `registryTransaction`.`transaction_identifier` (
`registrar_id` int(10) unsigned NOT NULL, `registrar_id` int(10) unsigned NOT NULL,
`clTRID` varchar(64), `clTRID` varchar(64),
`clTRIDframe` text, `clTRIDframe` text,
`cldate` datetime, `cldate` datetime(3),
`clmicrosecond` int(6), `clmicrosecond` int(6),
`cmd` enum('login','logout','check','info','poll','transfer','create','delete','renew','update') default NULL, `cmd` enum('login','logout','check','info','poll','transfer','create','delete','renew','update') default NULL,
`obj_type` enum('domain','host','contact') default NULL, `obj_type` enum('domain','host','contact') default NULL,
@ -669,7 +669,7 @@ CREATE TABLE IF NOT EXISTS `registryTransaction`.`transaction_identifier` (
`msg` varchar(255) default NULL, `msg` varchar(255) default NULL,
`svTRID` varchar(64), `svTRID` varchar(64),
`svTRIDframe` text, `svTRIDframe` text,
`svdate` datetime, `svdate` datetime(3),
`svmicrosecond` int(6), `svmicrosecond` int(6),
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `clTRID` (`clTRID`), UNIQUE KEY `clTRID` (`clTRID`),

View file

@ -43,7 +43,7 @@ CREATE TABLE registry.error_log (
"id" INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, "id" INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
"registrar_id" INT(11) NOT NULL, "registrar_id" INT(11) NOT NULL,
"log" TEXT NOT NULL, "log" TEXT NOT NULL,
"date" TIMESTAMP DEFAULT CURRENT_TIMESTAMP "date" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP
); );
CREATE TABLE registry.reserved_domain_names ( CREATE TABLE registry.reserved_domain_names (
@ -72,8 +72,8 @@ CREATE TABLE registry.registrar (
"creditthreshold" decimal(8,2) NOT NULL default '0.00', "creditthreshold" decimal(8,2) NOT NULL default '0.00',
"thresholdtype" varchar CHECK ("thresholdtype" IN ( 'fixed','percent' )) NOT NULL default 'fixed', "thresholdtype" varchar CHECK ("thresholdtype" IN ( 'fixed','percent' )) NOT NULL default 'fixed',
"currency" varchar(5) NOT NULL, "currency" varchar(5) NOT NULL,
"crdate" timestamp without time zone NOT NULL, "crdate" timestamp(3) without time zone NOT NULL,
"update" TIMESTAMP , "update" timestamp(3),
primary key ("id"), primary key ("id"),
unique ("clid") , unique ("clid") ,
unique ("prefix") , unique ("prefix") ,
@ -125,16 +125,16 @@ CREATE TABLE registry.registrar_contact (
CREATE TABLE registry.poll ( CREATE TABLE registry.poll (
"id" serial8, "id" serial8,
"registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL,
"qdate" timestamp without time zone NOT NULL, "qdate" timestamp(3) without time zone NOT NULL,
"msg" text default NULL, "msg" text default NULL,
"msg_type" varchar CHECK ("msg_type" IN ( 'lowBalance','domainTransfer','contactTransfer' )) default NULL, "msg_type" varchar CHECK ("msg_type" IN ( 'lowBalance','domainTransfer','contactTransfer' )) default NULL,
"obj_name_or_id" varchar(68), "obj_name_or_id" varchar(68),
"obj_trstatus" varchar CHECK ("obj_trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, "obj_trstatus" varchar CHECK ("obj_trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL,
"obj_reid" varchar(255), "obj_reid" varchar(255),
"obj_redate" timestamp without time zone, "obj_redate" timestamp(3) without time zone,
"obj_acid" varchar(255), "obj_acid" varchar(255),
"obj_acdate" timestamp without time zone, "obj_acdate" timestamp(3) without time zone,
"obj_exdate" timestamp without time zone default NULL, "obj_exdate" timestamp(3) without time zone default NULL,
"registrarname" varchar(255), "registrarname" varchar(255),
"creditlimit" decimal(8,2) default '0.00', "creditlimit" decimal(8,2) default '0.00',
"creditthreshold" decimal(8,2) default '0.00', "creditthreshold" decimal(8,2) default '0.00',
@ -146,7 +146,7 @@ CREATE TABLE registry.poll (
CREATE TABLE registry.payment_history ( CREATE TABLE registry.payment_history (
"id" serial8, "id" serial8,
"registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL,
"date" timestamp without time zone NOT NULL, "date" timestamp(3) without time zone NOT NULL,
"description" text NOT NULL, "description" text NOT NULL,
"amount" decimal(8,2) NOT NULL, "amount" decimal(8,2) NOT NULL,
primary key ("id") primary key ("id")
@ -155,12 +155,12 @@ CREATE TABLE registry.payment_history (
CREATE TABLE registry.statement ( CREATE TABLE registry.statement (
"id" serial8, "id" serial8,
"registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL,
"date" timestamp without time zone NOT NULL, "date" timestamp(3) without time zone NOT NULL,
"command" varchar CHECK ("command" IN ( 'create','renew','transfer','restore','autoRenew' )) NOT NULL default 'create', "command" varchar CHECK ("command" IN ( 'create','renew','transfer','restore','autoRenew' )) NOT NULL default 'create',
"domain_name" varchar(68) NOT NULL, "domain_name" varchar(68) NOT NULL,
"length_in_months" smallint CHECK ("length_in_months" >= 0) NOT NULL, "length_in_months" smallint CHECK ("length_in_months" >= 0) NOT NULL,
"from" timestamp without time zone NOT NULL, "from" timestamp(3) without time zone NOT NULL,
"to" timestamp without time zone NOT NULL, "to" timestamp(3) without time zone NOT NULL,
"amount" decimal(8,2) NOT NULL, "amount" decimal(8,2) NOT NULL,
primary key ("id") primary key ("id")
); );
@ -177,15 +177,15 @@ CREATE TABLE registry.contact (
"nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL, "nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL,
"clid" int CHECK ("clid" >= 0) NOT NULL, "clid" int CHECK ("clid" >= 0) NOT NULL,
"crid" int CHECK ("crid" >= 0) NOT NULL, "crid" int CHECK ("crid" >= 0) NOT NULL,
"crdate" timestamp without time zone NOT NULL, "crdate" timestamp(3) without time zone NOT NULL,
"upid" int CHECK ("upid" >= 0) default NULL, "upid" int CHECK ("upid" >= 0) default NULL,
"update" timestamp without time zone default NULL, "update" timestamp(3) without time zone default NULL,
"trdate" timestamp without time zone default NULL, "trdate" timestamp(3) without time zone default NULL,
"trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL,
"reid" int CHECK ("reid" >= 0) default NULL, "reid" int CHECK ("reid" >= 0) default NULL,
"redate" timestamp without time zone default NULL, "redate" timestamp(3) without time zone default NULL,
"acid" int CHECK ("acid" >= 0) default NULL, "acid" int CHECK ("acid" >= 0) default NULL,
"acdate" timestamp without time zone default NULL, "acdate" timestamp(3) without time zone default NULL,
"disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1', "disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1',
"disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1', "disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1',
"disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1', "disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1',
@ -238,26 +238,26 @@ CREATE TABLE registry.domain (
"name" varchar(68) NOT NULL, "name" varchar(68) NOT NULL,
"tldid" int CHECK ("tldid" >= 0) NOT NULL, "tldid" int CHECK ("tldid" >= 0) NOT NULL,
"registrant" int CHECK ("registrant" >= 0) default NULL, "registrant" int CHECK ("registrant" >= 0) default NULL,
"crdate" timestamp without time zone NOT NULL, "crdate" timestamp(3) without time zone NOT NULL,
"exdate" timestamp without time zone NOT NULL, "exdate" timestamp(3) without time zone NOT NULL,
"update" timestamp without time zone default NULL, "update" timestamp(3) without time zone default NULL,
"clid" int CHECK ("clid" >= 0) NOT NULL, "clid" int CHECK ("clid" >= 0) NOT NULL,
"crid" int CHECK ("crid" >= 0) NOT NULL, "crid" int CHECK ("crid" >= 0) NOT NULL,
"upid" int CHECK ("upid" >= 0) default NULL, "upid" int CHECK ("upid" >= 0) default NULL,
"trdate" timestamp without time zone default NULL, "trdate" timestamp(3) without time zone default NULL,
"trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL,
"reid" int CHECK ("reid" >= 0) default NULL, "reid" int CHECK ("reid" >= 0) default NULL,
"redate" timestamp without time zone default NULL, "redate" timestamp(3) without time zone default NULL,
"acid" int CHECK ("acid" >= 0) default NULL, "acid" int CHECK ("acid" >= 0) default NULL,
"acdate" timestamp without time zone default NULL, "acdate" timestamp(3) without time zone default NULL,
"transfer_exdate" timestamp without time zone default NULL, "transfer_exdate" timestamp(3) without time zone default NULL,
"idnlang" varchar(16) default NULL, "idnlang" varchar(16) default NULL,
"deltime" timestamp without time zone default NULL, "deltime" timestamp(3) without time zone default NULL,
"restime" timestamp without time zone default NULL, "restime" timestamp(3) without time zone default NULL,
"rgpstatus" varchar CHECK ("rgpstatus" IN ( 'addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod' )) default NULL, "rgpstatus" varchar CHECK ("rgpstatus" IN ( 'addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod' )) default NULL,
"rgppostdata" text default NULL, "rgppostdata" text default NULL,
"rgpdeltime" timestamp without time zone default NULL, "rgpdeltime" timestamp(3) without time zone default NULL,
"rgprestime" timestamp without time zone default NULL, "rgprestime" timestamp(3) without time zone default NULL,
"rgpresreason" text default NULL, "rgpresreason" text default NULL,
"rgpstatement1" text default NULL, "rgpstatement1" text default NULL,
"rgpstatement2" text default NULL, "rgpstatement2" text default NULL,
@ -266,7 +266,7 @@ CREATE TABLE registry.domain (
"autorenewperiod" smallint CHECK ("autorenewperiod" >= 0) default NULL, "autorenewperiod" smallint CHECK ("autorenewperiod" >= 0) default NULL,
"renewperiod" smallint CHECK ("renewperiod" >= 0) default NULL, "renewperiod" smallint CHECK ("renewperiod" >= 0) default NULL,
"transferperiod" smallint CHECK ("transferperiod" >= 0) default NULL, "transferperiod" smallint CHECK ("transferperiod" >= 0) default NULL,
"reneweddate" timestamp without time zone default NULL, "reneweddate" timestamp(3) without time zone default NULL,
primary key ("id"), primary key ("id"),
unique ("name") unique ("name")
); );
@ -320,10 +320,10 @@ CREATE TABLE registry.host (
"domain_id" int CHECK ("domain_id" >= 0) default NULL, "domain_id" int CHECK ("domain_id" >= 0) default NULL,
"clid" int CHECK ("clid" >= 0) NOT NULL, "clid" int CHECK ("clid" >= 0) NOT NULL,
"crid" int CHECK ("crid" >= 0) NOT NULL, "crid" int CHECK ("crid" >= 0) NOT NULL,
"crdate" timestamp without time zone NOT NULL, "crdate" timestamp(3) without time zone NOT NULL,
"upid" int CHECK ("upid" >= 0) default NULL, "upid" int CHECK ("upid" >= 0) default NULL,
"update" timestamp without time zone default NULL, "update" timestamp(3) without time zone default NULL,
"trdate" timestamp without time zone default NULL, "trdate" timestamp(3) without time zone default NULL,
primary key ("id"), primary key ("id"),
unique ("name") unique ("name")
); );
@ -357,19 +357,19 @@ CREATE TABLE registry.domain_auto_approve_transfer (
"id" serial8, "id" serial8,
"name" varchar(68) NOT NULL, "name" varchar(68) NOT NULL,
"registrant" int CHECK ("registrant" >= 0) default NULL, "registrant" int CHECK ("registrant" >= 0) default NULL,
"crdate" timestamp without time zone NOT NULL, "crdate" timestamp(3) without time zone NOT NULL,
"exdate" timestamp without time zone NOT NULL, "exdate" timestamp(3) without time zone NOT NULL,
"update" timestamp without time zone default NULL, "update" timestamp(3) without time zone default NULL,
"clid" int CHECK ("clid" >= 0) NOT NULL, "clid" int CHECK ("clid" >= 0) NOT NULL,
"crid" int CHECK ("crid" >= 0) NOT NULL, "crid" int CHECK ("crid" >= 0) NOT NULL,
"upid" int CHECK ("upid" >= 0) default NULL, "upid" int CHECK ("upid" >= 0) default NULL,
"trdate" timestamp without time zone default NULL, "trdate" timestamp(3) without time zone default NULL,
"trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL,
"reid" int CHECK ("reid" >= 0) default NULL, "reid" int CHECK ("reid" >= 0) default NULL,
"redate" timestamp without time zone default NULL, "redate" timestamp(3) without time zone default NULL,
"acid" int CHECK ("acid" >= 0) default NULL, "acid" int CHECK ("acid" >= 0) default NULL,
"acdate" timestamp without time zone default NULL, "acdate" timestamp(3) without time zone default NULL,
"transfer_exdate" timestamp without time zone default NULL, "transfer_exdate" timestamp(3) without time zone default NULL,
primary key ("id") primary key ("id")
); );
@ -385,15 +385,15 @@ CREATE TABLE registry.contact_auto_approve_transfer (
"nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL, "nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL,
"clid" int CHECK ("clid" >= 0) NOT NULL, "clid" int CHECK ("clid" >= 0) NOT NULL,
"crid" int CHECK ("crid" >= 0) NOT NULL, "crid" int CHECK ("crid" >= 0) NOT NULL,
"crdate" timestamp without time zone NOT NULL, "crdate" timestamp(3) without time zone NOT NULL,
"upid" int CHECK ("upid" >= 0) default NULL, "upid" int CHECK ("upid" >= 0) default NULL,
"update" timestamp without time zone default NULL, "update" timestamp(3) without time zone default NULL,
"trdate" timestamp without time zone default NULL, "trdate" timestamp(3) without time zone default NULL,
"trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL,
"reid" int CHECK ("reid" >= 0) default NULL, "reid" int CHECK ("reid" >= 0) default NULL,
"redate" timestamp without time zone default NULL, "redate" timestamp(3) without time zone default NULL,
"acid" int CHECK ("acid" >= 0) default NULL, "acid" int CHECK ("acid" >= 0) default NULL,
"acdate" timestamp without time zone default NULL, "acdate" timestamp(3) without time zone default NULL,
"disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1', "disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1',
"disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1', "disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1',
"disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1', "disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1',
@ -563,8 +563,8 @@ CREATE TABLE registry.support_tickets (
evidence TEXT DEFAULT NULL, evidence TEXT DEFAULT NULL,
relevant_urls TEXT DEFAULT NULL, relevant_urls TEXT DEFAULT NULL,
date_of_incident DATE DEFAULT NULL, date_of_incident DATE DEFAULT NULL,
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, date_created TIMESTAMP(3) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP,
last_updated TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, last_updated TIMESTAMP(3) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES registry.users(id), FOREIGN KEY (user_id) REFERENCES registry.users(id),
FOREIGN KEY (category_id) REFERENCES registry.ticket_categories(id) FOREIGN KEY (category_id) REFERENCES registry.ticket_categories(id)
); );
@ -574,7 +574,7 @@ CREATE TABLE ticket_responses (
ticket_id INTEGER NOT NULL, ticket_id INTEGER NOT NULL,
responder_id INTEGER NOT NULL, responder_id INTEGER NOT NULL,
response TEXT NOT NULL, response TEXT NOT NULL,
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, date_created TIMESTAMP(3) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_id) REFERENCES support_tickets(id) FOREIGN KEY (ticket_id) REFERENCES support_tickets(id)
); );
@ -664,7 +664,7 @@ CREATE TABLE registryTransaction.transaction_identifier (
registrar_id INT NOT NULL, registrar_id INT NOT NULL,
clTRID VARCHAR(64), clTRID VARCHAR(64),
clTRIDframe TEXT, clTRIDframe TEXT,
cldate TIMESTAMP WITHOUT TIME ZONE, cldate TIMESTAMP(3) WITHOUT TIME ZONE,
clmicrosecond INT, clmicrosecond INT,
cmd VARCHAR(10) CHECK (cmd IN ('login','logout','check','info','poll','transfer','create','delete','renew','update')), cmd VARCHAR(10) CHECK (cmd IN ('login','logout','check','info','poll','transfer','create','delete','renew','update')),
obj_type VARCHAR(10) CHECK (obj_type IN ('domain','host','contact')), obj_type VARCHAR(10) CHECK (obj_type IN ('domain','host','contact')),
@ -673,7 +673,7 @@ CREATE TABLE registryTransaction.transaction_identifier (
msg VARCHAR(255), msg VARCHAR(255),
svTRID VARCHAR(64), svTRID VARCHAR(64),
svTRIDframe TEXT, svTRIDframe TEXT,
svdate TIMESTAMP WITHOUT TIME ZONE, svdate TIMESTAMP(3) WITHOUT TIME ZONE,
svmicrosecond INT, svmicrosecond INT,
CONSTRAINT unique_clTRID UNIQUE (clTRID), CONSTRAINT unique_clTRID UNIQUE (clTRID),
CONSTRAINT unique_svTRID UNIQUE (svTRID), CONSTRAINT unique_svTRID UNIQUE (svTRID),

View file

@ -56,178 +56,178 @@ class EppWriter {
return $writer->outputMemory(); return $writer->outputMemory();
} }
private function epp_result_totext($code, $lang = 'en-US') { private function epp_result_totext($code, $lang = 'en-US') {
$resultTexts = [ $resultTexts = [
1000 => [ 1000 => [
'code' => 'EPP_RS_SUCCESS', 'code' => 'EPP_RS_SUCCESS',
'en-US' => 'Command completed successfully', 'en-US' => 'Command completed successfully',
'fr-FR' => "la commande terminée avec succès" 'fr-FR' => "la commande terminée avec succès"
], ],
1001 => [ 1001 => [
'code' => 'EPP_RS_PENDING', 'code' => 'EPP_RS_PENDING',
'en-US' => 'Command completed successfully; action pending', 'en-US' => 'Command completed successfully; action pending',
'fr-FR' => "la commande terminée avec succès ; l;'action est en suspens" 'fr-FR' => "la commande terminée avec succès ; l;'action est en suspens"
], ],
1300 => [ 1300 => [
'code' => 'EPP_RS_NOMSG', 'code' => 'EPP_RS_NOMSG',
'en-US' => 'Command completed successfully; no messages', 'en-US' => 'Command completed successfully; no messages',
'fr-FR' => "la commande terminée avec succès ; il n'ya acun message" 'fr-FR' => "la commande terminée avec succès ; il n'ya acun message"
], ],
1301 => [ 1301 => [
'code' => 'EPP_RS_ACK', 'code' => 'EPP_RS_ACK',
'en-US' => 'Command completed successfully; ack to dequeue', 'en-US' => 'Command completed successfully; ack to dequeue',
'fr-FR' => "la commande terminé avec succès ; ack à retirer de la file d'attente" 'fr-FR' => "la commande terminé avec succès ; ack à retirer de la file d'attente"
], ],
1500 => [ 1500 => [
'code' => 'EPP_RS_END', 'code' => 'EPP_RS_END',
'en-US' => 'Command completed successfully; ending session', 'en-US' => 'Command completed successfully; ending session',
'fr-FR' => "la commande terminé avec succès ; la session termine" 'fr-FR' => "la commande terminé avec succès ; la session termine"
], ],
2000 => [ 2000 => [
'code' => 'EPP_RF_UNKCMD', 'code' => 'EPP_RF_UNKCMD',
'en-US' => 'Unknown command', 'en-US' => 'Unknown command',
'fr-FR' => "la commande est inconnue" 'fr-FR' => "la commande est inconnue"
], ],
2001 => [ 2001 => [
'code' => 'EPP_RF_SYNTAX', 'code' => 'EPP_RF_SYNTAX',
'en-US' => 'Command syntax error', 'en-US' => 'Command syntax error',
'fr-FR' => "erreur de syntaxe à la commande" 'fr-FR' => "erreur de syntaxe à la commande"
], ],
2002 => [ 2002 => [
'code' => 'EPP_RF_CMDUSE', 'code' => 'EPP_RF_CMDUSE',
'en-US' => 'Command use error', 'en-US' => 'Command use error',
'fr-FR' => "erreur d'utilisation à la commande" 'fr-FR' => "erreur d'utilisation à la commande"
], ],
2003 => [ 2003 => [
'code' => 'EPP_RF_PARAM', 'code' => 'EPP_RF_PARAM',
'en-US' => 'Required parameter missing', 'en-US' => 'Required parameter missing',
'fr-FR' => "paramètre exigé est manquant" 'fr-FR' => "paramètre exigé est manquant"
], ],
2004 => [ 2004 => [
'code' => 'EPP_RF_VALRANGE', 'code' => 'EPP_RF_VALRANGE',
'en-US' => 'Parameter value range error', 'en-US' => 'Parameter value range error',
'fr-FR' => "la valeur de paramètre est hors d'intervalle" 'fr-FR' => "la valeur de paramètre est hors d'intervalle"
], ],
2005 => [ 2005 => [
'code' => 'EPP_RF_VALSYNTAX', 'code' => 'EPP_RF_VALSYNTAX',
'en-US' => 'Parameter value syntax error', 'en-US' => 'Parameter value syntax error',
'fr-FR' => "erreur de syntaxe en valeur de paramètre" 'fr-FR' => "erreur de syntaxe en valeur de paramètre"
], ],
2100 => [ 2100 => [
'code' => 'EPP_RF_PROTVERS', 'code' => 'EPP_RF_PROTVERS',
'en-US' => 'Unimplemented protocol version', 'en-US' => 'Unimplemented protocol version',
'fr-FR' => "la version de protocole n'est pas mise en application" 'fr-FR' => "la version de protocole n'est pas mise en application"
], ],
2101 => [ 2101 => [
'code' => 'EPP_RF_UNIMPCMD', 'code' => 'EPP_RF_UNIMPCMD',
'en-US' => 'Unimplemented command', 'en-US' => 'Unimplemented command',
'fr-FR' => "la commande n'est pas mise en application" 'fr-FR' => "la commande n'est pas mise en application"
], ],
2102 => [ 2102 => [
'code' => 'EPP_RF_UNIMPOPT', 'code' => 'EPP_RF_UNIMPOPT',
'en-US' => 'Unimplemented option', 'en-US' => 'Unimplemented option',
'fr-FR' => "l'option n'est pas mise en application" 'fr-FR' => "l'option n'est pas mise en application"
], ],
2103 => [ 2103 => [
'code' => 'EPP_RF_UNIMPEXT', 'code' => 'EPP_RF_UNIMPEXT',
'en-US' => 'Unimplemented extension', 'en-US' => 'Unimplemented extension',
'fr-FR' => "l'extension n'est pas mise en application" 'fr-FR' => "l'extension n'est pas mise en application"
], ],
2104 => [ 2104 => [
'code' => 'EPP_RF_BILLING', 'code' => 'EPP_RF_BILLING',
'en-US' => 'Billing failure', 'en-US' => 'Billing failure',
'fr-FR' => "panne de facturation" 'fr-FR' => "panne de facturation"
], ],
2105 => [ 2105 => [
'code' => 'EPP_RF_NORENEW', 'code' => 'EPP_RF_NORENEW',
'en-US' => 'Object is not eligible for renewal', 'en-US' => 'Object is not eligible for renewal',
'fr-FR' => "l'objet n'est pas habilité au renouvellement" 'fr-FR' => "l'objet n'est pas habilité au renouvellement"
], ],
2106 => [ 2106 => [
'code' => 'EPP_RF_NOTRANSFER', 'code' => 'EPP_RF_NOTRANSFER',
'en-US' => 'Object is not eligible for transfer', 'en-US' => 'Object is not eligible for transfer',
'fr-FR' => "l'objet n'est pas éligible pour être transféré" 'fr-FR' => "l'objet n'est pas éligible pour être transféré"
], ],
2200 => [ 2200 => [
'code' => 'EPP_RF_AUTHENTICATION', 'code' => 'EPP_RF_AUTHENTICATION',
'en-US' => 'Authentication error', 'en-US' => 'Authentication error',
'fr-FR' => "erreur d'authentification" 'fr-FR' => "erreur d'authentification"
], ],
2201 => [ 2201 => [
'code' => 'EPP_RF_AUTHORIZATION', 'code' => 'EPP_RF_AUTHORIZATION',
'en-US' => 'Authorization error', 'en-US' => 'Authorization error',
'fr-FR' => "erreur d'autorisation" 'fr-FR' => "erreur d'autorisation"
], ],
2202 => [ 2202 => [
'code' => 'EPP_RF_INVAUTHOR', 'code' => 'EPP_RF_INVAUTHOR',
'en-US' => 'Invalid authorization information', 'en-US' => 'Invalid authorization information',
'fr-FR' => "l'information d'autorisation est incorrecte" 'fr-FR' => "l'information d'autorisation est incorrecte"
], ],
2300 => [ 2300 => [
'code' => 'EPP_RF_PENDINGTRANSFER', 'code' => 'EPP_RF_PENDINGTRANSFER',
'en-US' => 'Object pending transfer', 'en-US' => 'Object pending transfer',
'fr-FR' => "l'objet est transfert en suspens" 'fr-FR' => "l'objet est transfert en suspens"
], ],
2301 => [ 2301 => [
'code' => 'EPP_RF_NOTPENDINGTRANSFER', 'code' => 'EPP_RF_NOTPENDINGTRANSFER',
'en-US' => 'Object not pending transfer', 'en-US' => 'Object not pending transfer',
'fr-FR' => "l'objet n'est pas transfert en suspens" 'fr-FR' => "l'objet n'est pas transfert en suspens"
], ],
2302 => [ 2302 => [
'code' => 'EPP_RF_EXISTS', 'code' => 'EPP_RF_EXISTS',
'en-US' => 'Object exists', 'en-US' => 'Object exists',
'fr-FR' => "l'objet existe" 'fr-FR' => "l'objet existe"
], ],
2303 => [ 2303 => [
'code' => 'EPP_RF_NOTEXISTS', 'code' => 'EPP_RF_NOTEXISTS',
'en-US' => 'Object does not exist', 'en-US' => 'Object does not exist',
'fr-FR' => "l'objet n'existe pas" 'fr-FR' => "l'objet n'existe pas"
], ],
2304 => [ 2304 => [
'code' => 'EPP_RF_STATUS', 'code' => 'EPP_RF_STATUS',
'en-US' => 'Object status prohibits operation', 'en-US' => 'Object status prohibits operation',
'fr-FR' => "le statut de l'objet interdit cette exécution" 'fr-FR' => "le statut de l'objet interdit cette exécution"
], ],
2305 => [ 2305 => [
'code' => 'EPP_RF_INUSE', 'code' => 'EPP_RF_INUSE',
'en-US' => 'Object association prohibits operation', 'en-US' => 'Object association prohibits operation',
'fr-FR' => "l'assocation de l'objet interdit cette exécution" 'fr-FR' => "l'assocation de l'objet interdit cette exécution"
], ],
2306 => [ 2306 => [
'code' => 'EPP_RF_POLICYPARAM', 'code' => 'EPP_RF_POLICYPARAM',
'en-US' => 'Parameter value policy error', 'en-US' => 'Parameter value policy error',
'fr-FR' => "erreur de politique en valeur du paramètre" 'fr-FR' => "erreur de politique en valeur du paramètre"
], ],
2307 => [ 2307 => [
'code' => 'EPP_RF_UNIMPLSERVICE', 'code' => 'EPP_RF_UNIMPLSERVICE',
'en-US' => 'Unimplemented object service', 'en-US' => 'Unimplemented object service',
'fr-FR' => "le service d'objet n'est pas mis en application" 'fr-FR' => "le service d'objet n'est pas mis en application"
], ],
2308 => [ 2308 => [
'code' => 'EPP_RF_DATAMGT', 'code' => 'EPP_RF_DATAMGT',
'en-US' => 'Data management policy violation', 'en-US' => 'Data management policy violation',
'fr-FR' => "violation de la politique de gestion des données" 'fr-FR' => "violation de la politique de gestion des données"
], ],
2400 => [ 2400 => [
'code' => 'EPP_RF_FAIL', 'code' => 'EPP_RF_FAIL',
'en-US' => 'Command failed', 'en-US' => 'Command failed',
'fr-FR' => "la commande a échoué" 'fr-FR' => "la commande a échoué"
], ],
2500 => [ 2500 => [
'code' => 'EPP_RF_CLOSING', 'code' => 'EPP_RF_CLOSING',
'en-US' => 'Command failed; server closing connection', 'en-US' => 'Command failed; server closing connection',
'fr-FR' => "la commande a échoué ; le serveur ferme la connexion" 'fr-FR' => "la commande a échoué ; le serveur ferme la connexion"
], ],
2501 => [ 2501 => [
'code' => 'EPP_RF_AUTHCLOSING', 'code' => 'EPP_RF_AUTHCLOSING',
'en-US' => 'Authentiction error; server closing connection', 'en-US' => 'Authentiction error; server closing connection',
'fr-FR' => "erreur d'authentification ; le serveur ferme la connexion" 'fr-FR' => "erreur d'authentification ; le serveur ferme la connexion"
], ],
2502 => [ 2502 => [
'code' => 'EPP_RF_SESSIONLIMIT', 'code' => 'EPP_RF_SESSIONLIMIT',
'en-US' => 'Session limit exceeded; server closing connection', 'en-US' => 'Session limit exceeded; server closing connection',
'fr-FR' => "la limite de session a été dépassée ; le serveur ferme la connexion" 'fr-FR' => "la limite de session a été dépassée ; le serveur ferme la connexion"
] ]
]; ];
if (isset($resultTexts[$code][$lang])) { if (isset($resultTexts[$code][$lang])) {
@ -292,8 +292,8 @@ class EppWriter {
if (isset($resp['dcp']['access'])) { if (isset($resp['dcp']['access'])) {
$writer->startElement('access'); $writer->startElement('access');
foreach ($resp['dcp']['access'] as $accessType) { foreach ($resp['dcp']['access'] as $accessType) {
$writer->startElement($accessType); $writer->startElement($accessType);
$writer->endElement(); $writer->endElement();
} }
$writer->endElement(); // End of 'access' $writer->endElement(); // End of 'access'
} }
@ -306,8 +306,8 @@ class EppWriter {
if (isset($resp['dcp']['statement']['purpose'])) { if (isset($resp['dcp']['statement']['purpose'])) {
$writer->startElement('purpose'); $writer->startElement('purpose');
foreach ($resp['dcp']['statement']['purpose'] as $purposeType) { foreach ($resp['dcp']['statement']['purpose'] as $purposeType) {
$writer->startElement($purposeType); $writer->startElement($purposeType);
$writer->endElement(); $writer->endElement();
} }
$writer->endElement(); // End of 'purpose' $writer->endElement(); // End of 'purpose'
} }
@ -316,8 +316,8 @@ class EppWriter {
if (isset($resp['dcp']['statement']['recipient'])) { if (isset($resp['dcp']['statement']['recipient'])) {
$writer->startElement('recipient'); $writer->startElement('recipient');
foreach ($resp['dcp']['statement']['recipient'] as $recipientType) { foreach ($resp['dcp']['statement']['recipient'] as $recipientType) {
$writer->startElement($recipientType); $writer->startElement($recipientType);
$writer->endElement(); $writer->endElement();
} }
$writer->endElement(); // End of 'recipient' $writer->endElement(); // End of 'recipient'
} }
@ -326,8 +326,8 @@ class EppWriter {
if (isset($resp['dcp']['statement']['retention'])) { if (isset($resp['dcp']['statement']['retention'])) {
$writer->startElement('retention'); $writer->startElement('retention');
foreach ($resp['dcp']['statement']['retention'] as $retentionType) { foreach ($resp['dcp']['statement']['retention'] as $retentionType) {
$writer->startElement($retentionType); $writer->startElement($retentionType);
$writer->endElement(); $writer->endElement();
} }
$writer->endElement(); // End of 'retention' $writer->endElement(); // End of 'retention'
} }
@ -461,16 +461,16 @@ class EppWriter {
$writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd'); $writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd');
foreach ($resp['ids'] as $ids) { foreach ($resp['ids'] as $ids) {
$writer->startElement('contact:cd'); $writer->startElement('contact:cd');
$writer->startElement('contact:id'); $writer->startElement('contact:id');
$writer->writeAttribute('avail', $ids[1]); $writer->writeAttribute('avail', $ids[1]);
$writer->text($ids[0]); $writer->text($ids[0]);
$writer->endElement(); // End of 'contact:id' $writer->endElement(); // End of 'contact:id'
if (isset($ids[2])) { if (isset($ids[2])) {
$writer->writeElement('contact:reason', $ids[2]); $writer->writeElement('contact:reason', $ids[2]);
} }
$writer->endElement(); // End of 'contact:cd' $writer->endElement(); // End of 'contact:cd'
} }
$writer->endElement(); // End of 'contact:chkData' $writer->endElement(); // End of 'contact:chkData'
@ -545,15 +545,21 @@ class EppWriter {
$writer->writeElement('contact:email', $resp['email']); $writer->writeElement('contact:email', $resp['email']);
$writer->writeElement('contact:clID', $resp['clID']); $writer->writeElement('contact:clID', $resp['clID']);
$writer->writeElement('contact:crID', $resp['crID']); $writer->writeElement('contact:crID', $resp['crID']);
$writer->writeElement('contact:crDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['crDate']))); $crDate = new DateTime($resp['crDate']);
$crDateFormatted = $crDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('contact:crDate', $crDateFormatted);
if (isset($resp['upID'])) { if (isset($resp['upID'])) {
$writer->writeElement('contact:upID', $resp['upID']); $writer->writeElement('contact:upID', $resp['upID']);
} }
if (isset($resp['upDate'])) { if (isset($resp['upDate'])) {
$writer->writeElement('contact:upDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['upDate']))); $upDate = new DateTime($resp['upDate']);
$upDateFormatted = $upDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('contact:upDate', $upDateFormatted);
} }
if (isset($resp['trDate'])) { if (isset($resp['trDate'])) {
$writer->writeElement('contact:trDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['trDate']))); $trDate = new DateTime($resp['trDate']);
$trDateFormatted = $trDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('contact:trDate', $trDateFormatted);
} }
// Handling 'contact:authInfo' // Handling 'contact:authInfo'
@ -601,9 +607,13 @@ class EppWriter {
$writer->writeElement('contact:id', $resp['id']); $writer->writeElement('contact:id', $resp['id']);
$writer->writeElement('contact:trStatus', $resp['trStatus']); $writer->writeElement('contact:trStatus', $resp['trStatus']);
$writer->writeElement('contact:reID', $resp['reID']); $writer->writeElement('contact:reID', $resp['reID']);
$writer->writeElement('contact:reDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['reDate']))); $reDate = new DateTime($resp['reDate']);
$reDateFormatted = $reDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('contact:reDate', $reDateFormatted);
$writer->writeElement('contact:acID', $resp['acID']); $writer->writeElement('contact:acID', $resp['acID']);
$writer->writeElement('contact:acDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['acDate']))); $acDate = new DateTime($resp['acDate']);
$acDateFormatted = $acDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('contact:acDate', $acDateFormatted);
$writer->endElement(); // End of 'contact:trnData' $writer->endElement(); // End of 'contact:trnData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'
} }
@ -620,7 +630,9 @@ class EppWriter {
$writer->writeAttribute('xmlns:contact', 'urn:ietf:params:xml:ns:contact-1.0'); $writer->writeAttribute('xmlns:contact', 'urn:ietf:params:xml:ns:contact-1.0');
$writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd'); $writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd');
$writer->writeElement('contact:id', $resp['id']); $writer->writeElement('contact:id', $resp['id']);
$writer->writeElement('contact:crDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['crDate']))); $crDate = new DateTime($resp['crDate']);
$crDateFormatted = $crDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('contact:crDate', $crDateFormatted);
$writer->endElement(); // End of 'contact:creData' $writer->endElement(); // End of 'contact:creData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'
} }
@ -663,8 +675,12 @@ class EppWriter {
$writer->writeAttribute('xmlns:domain', 'urn:ietf:params:xml:ns:domain-1.0'); $writer->writeAttribute('xmlns:domain', 'urn:ietf:params:xml:ns:domain-1.0');
$writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd'); $writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd');
$writer->writeElement('domain:name', $resp['name']); $writer->writeElement('domain:name', $resp['name']);
$writer->writeElement('domain:crDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['crDate']))); $crDate = new DateTime($resp['crDate']);
$writer->writeElement('domain:exDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['exDate']))); $crDateFormatted = $crDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:crDate', $crDateFormatted);
$exDate = new DateTime($resp['exDate']);
$exDateFormatted = $exDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:exDate', $exDateFormatted);
$writer->endElement(); // End of 'domain:creData' $writer->endElement(); // End of 'domain:creData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'
} }
@ -720,19 +736,27 @@ class EppWriter {
$writer->writeElement('domain:crID', $resp['crID']); $writer->writeElement('domain:crID', $resp['crID']);
} }
if (isset($resp['crDate'])) { if (isset($resp['crDate'])) {
$writer->writeElement('domain:crDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['crDate']))); $crDate = new DateTime($resp['crDate']);
$crDateFormatted = $crDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:crDate', $crDateFormatted);
} }
if (isset($resp['exDate'])) { if (isset($resp['exDate'])) {
$writer->writeElement('domain:exDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['exDate']))); $exDate = new DateTime($resp['exDate']);
$exDateFormatted = $exDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:exDate', $exDateFormatted);
} }
if (isset($resp['upID'])) { if (isset($resp['upID'])) {
$writer->writeElement('domain:upID', $resp['upID']); $writer->writeElement('domain:upID', $resp['upID']);
} }
if (isset($resp['upDate'])) { if (isset($resp['upDate'])) {
$writer->writeElement('domain:upDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['upDate']))); $upDate = new DateTime($resp['upDate']);
$upDateFormatted = $upDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:upDate', $upDateFormatted);
} }
if (isset($resp['trDate'])) { if (isset($resp['trDate'])) {
$writer->writeElement('domain:trDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['trDate']))); $trDate = new DateTime($resp['trDate']);
$trDateFormatted = $trDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:trDate', $trDateFormatted);
} }
if ($resp['authInfo'] == 'valid') { if ($resp['authInfo'] == 'valid') {
$writer->startElement('domain:authInfo'); $writer->startElement('domain:authInfo');
@ -819,7 +843,9 @@ class EppWriter {
$writer->writeAttribute('xmlns:domain', 'urn:ietf:params:xml:ns:domain-1.0'); $writer->writeAttribute('xmlns:domain', 'urn:ietf:params:xml:ns:domain-1.0');
$writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd'); $writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd');
$writer->writeElement('domain:name', $resp['name']); $writer->writeElement('domain:name', $resp['name']);
$writer->writeElement('domain:exDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['exDate']))); $exDate = new DateTime($resp['exDate']);
$exDateFormatted = $exDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:exDate', $exDateFormatted);
$writer->endElement(); // End of 'domain:renData' $writer->endElement(); // End of 'domain:renData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'
} }
@ -838,11 +864,17 @@ class EppWriter {
$writer->writeElement('domain:name', $resp['name']); $writer->writeElement('domain:name', $resp['name']);
$writer->writeElement('domain:trStatus', $resp['trStatus']); $writer->writeElement('domain:trStatus', $resp['trStatus']);
$writer->writeElement('domain:reID', $resp['reID']); $writer->writeElement('domain:reID', $resp['reID']);
$writer->writeElement('domain:reDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['reDate']))); $reDate = new DateTime($resp['reDate']);
$reDateFormatted = $reDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:reDate', $reDateFormatted);
$writer->writeElement('domain:acID', $resp['acID']); $writer->writeElement('domain:acID', $resp['acID']);
$writer->writeElement('domain:acDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['acDate']))); $acDate = new DateTime($resp['acDate']);
$acDateFormatted = $acDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:acDate', $acDateFormatted);
if (isset($resp['exDate'])) { if (isset($resp['exDate'])) {
$writer->writeElement('domain:exDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['exDate']))); $exDate = new DateTime($resp['exDate']);
$exDateFormatted = $exDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('domain:exDate', $exDateFormatted);
} }
$writer->endElement(); // End of 'domain:trnData' $writer->endElement(); // End of 'domain:trnData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'
@ -886,7 +918,9 @@ class EppWriter {
$writer->writeAttribute('xmlns:host', 'urn:ietf:params:xml:ns:host-1.0'); $writer->writeAttribute('xmlns:host', 'urn:ietf:params:xml:ns:host-1.0');
$writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd'); $writer->writeAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd');
$writer->writeElement('host:name', $resp['name']); $writer->writeElement('host:name', $resp['name']);
$writer->writeElement('host:crDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['crDate']))); $crDate = new DateTime($resp['crDate']);
$crDateFormatted = $crDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('host:crDate', $crDateFormatted);
$writer->endElement(); // End of 'host:creData' $writer->endElement(); // End of 'host:creData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'
} }
@ -929,15 +963,21 @@ class EppWriter {
} }
$writer->writeElement('host:clID', $resp['clID']); $writer->writeElement('host:clID', $resp['clID']);
$writer->writeElement('host:crID', $resp['crID']); $writer->writeElement('host:crID', $resp['crID']);
$writer->writeElement('host:crDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['crDate']))); $crDate = new DateTime($resp['crDate']);
$crDateFormatted = $crDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('host:crDate', $crDateFormatted);
if (isset($resp['upID'])) { if (isset($resp['upID'])) {
$writer->writeElement('host:upID', $resp['upID']); $writer->writeElement('host:upID', $resp['upID']);
} }
if (isset($resp['upDate'])) { if (isset($resp['upDate'])) {
$writer->writeElement('host:upDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['upDate']))); $upDate = new DateTime($resp['upDate']);
$upDateFormatted = $upDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('host:upDate', $upDateFormatted);
} }
if (isset($resp['trDate'])) { if (isset($resp['trDate'])) {
$writer->writeElement('host:trDate', gmdate('Y-m-d\TH:i:s\.0\Z', strtotime($resp['trDate']))); $trDate = new DateTime($resp['trDate']);
$trDateFormatted = $trDate->format('Y-m-d\TH:i:s.v\Z');
$writer->writeElement('host:trDate', $trDateFormatted);
} }
$writer->endElement(); // End of 'host:infData' $writer->endElement(); // End of 'host:infData'
$writer->endElement(); // End of 'resData' $writer->endElement(); // End of 'resData'

View file

@ -10,7 +10,8 @@ function checkLogin($db, $clID, $pw) {
function sendGreeting($conn) { function sendGreeting($conn) {
global $c; global $c;
$currentDate = gmdate('Y-m-d\TH:i:s\Z'); $currentDateTime = new DateTime("now", new DateTimeZone("UTC"));
$currentDate = $currentDateTime->format("Y-m-d\TH:i:s.v\Z");
$response = [ $response = [
'command' => 'greeting', 'command' => 'greeting',
@ -224,8 +225,9 @@ function createTransaction($db, $clid, $clTRID, $clTRIDframe) {
$stmt = $db->prepare("INSERT INTO `registryTransaction`.`transaction_identifier` (`registrar_id`,`clTRID`,`clTRIDframe`,`cldate`,`clmicrosecond`) VALUES(?,?,?,?,?)"); $stmt = $db->prepare("INSERT INTO `registryTransaction`.`transaction_identifier` (`registrar_id`,`clTRID`,`clTRIDframe`,`cldate`,`clmicrosecond`) VALUES(?,?,?,?,?)");
// Get date and microsecond for cl transaction // Get date and microsecond for cl transaction
$currentDateTime = new DateTime("now", new DateTimeZone("UTC"));
$cldate = $currentDateTime->format("Y-m-d H:i:s.v");
$dateForClTransaction = microtime(true); $dateForClTransaction = microtime(true);
$cldate = date("Y-m-d H:i:s", $dateForClTransaction);
$clmicrosecond = sprintf("%06d", ($dateForClTransaction - floor($dateForClTransaction)) * 1000000); $clmicrosecond = sprintf("%06d", ($dateForClTransaction - floor($dateForClTransaction)) * 1000000);
if (empty($clTRID)) { if (empty($clTRID)) {
@ -253,8 +255,9 @@ function updateTransaction($db, $cmd, $obj_type, $obj_id, $code, $msg, $svTRID,
$stmt = $db->prepare("UPDATE `registryTransaction`.`transaction_identifier` SET `cmd` = ?, `obj_type` = ?, `obj_id` = ?, `code` = ?, `msg` = ?, `svTRID` = ?, `svTRIDframe` = ?, `svdate` = ?, `svmicrosecond` = ? WHERE `id` = ?"); $stmt = $db->prepare("UPDATE `registryTransaction`.`transaction_identifier` SET `cmd` = ?, `obj_type` = ?, `obj_id` = ?, `code` = ?, `msg` = ?, `svTRID` = ?, `svTRIDframe` = ?, `svdate` = ?, `svmicrosecond` = ? WHERE `id` = ?");
// Get date and microsecond for sv transaction // Get date and microsecond for sv transaction
$currentDateTime = new DateTime("now", new DateTimeZone("UTC"));
$svdate = $currentDateTime->format("Y-m-d H:i:s.v");
$dateForSvTransaction = microtime(true); $dateForSvTransaction = microtime(true);
$svdate = date("Y-m-d H:i:s", $dateForSvTransaction);
$svmicrosecond = sprintf("%06d", ($dateForSvTransaction - floor($dateForSvTransaction)) * 1000000); $svmicrosecond = sprintf("%06d", ($dateForSvTransaction - floor($dateForSvTransaction)) * 1000000);
// Execute the statement // Execute the statement
@ -320,68 +323,68 @@ function getClid(PDO $db, string $clid): ?int {
* -5, unsupported publickey * -5, unsupported publickey
*/ */
function dnssec_key2ds($owner, $flags, $protocol, $algorithm, $publickey) { function dnssec_key2ds($owner, $flags, $protocol, $algorithm, $publickey) {
// define paramenter check variants // define paramenter check variants
$regex_owner = '/^[a-z0-9\-]+\.[a-z]+\.$/'; $regex_owner = '/^[a-z0-9\-]+\.[a-z]+\.$/';
$allowed_flags = array(256, 257); $allowed_flags = array(256, 257);
$allowed_protocol = array(3); $allowed_protocol = array(3);
$allowed_algorithm = array(2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16); $allowed_algorithm = array(2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16);
$regex_publickey = '/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/'; $regex_publickey = '/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/';
// do parameter checks and break if failed // do parameter checks and break if failed
if(!preg_match($regex_owner, $owner)) return -1; if(!preg_match($regex_owner, $owner)) return -1;
if(!in_array($flags, $allowed_flags)) return -2; if(!in_array($flags, $allowed_flags)) return -2;
if(!in_array($protocol, $allowed_protocol)) return -3; if(!in_array($protocol, $allowed_protocol)) return -3;
if(!in_array($algorithm, $allowed_algorithm)) return -4; if(!in_array($algorithm, $allowed_algorithm)) return -4;
if(!preg_match($regex_publickey, $publickey)) return -5; if(!preg_match($regex_publickey, $publickey)) return -5;
// calculate hex of parameters // calculate hex of parameters
$owner_hex = ''; $owner_hex = '';
$parts = explode(".", substr($owner, 0, -1)); $parts = explode(".", substr($owner, 0, -1));
foreach ($parts as $part) { foreach ($parts as $part) {
$len = dechex(strlen($part)); $len = dechex(strlen($part));
$owner_hex .= str_repeat('0', 2 - strlen($len)).$len; $owner_hex .= str_repeat('0', 2 - strlen($len)).$len;
$part = str_split($part); $part = str_split($part);
for ($i = 0; $i < count($part); $i++) { for ($i = 0; $i < count($part); $i++) {
$byte = strtoupper(dechex(ord($part[$i]))); $byte = strtoupper(dechex(ord($part[$i])));
$byte = str_repeat('0', 2 - strlen($byte)).$byte; $byte = str_repeat('0', 2 - strlen($byte)).$byte;
$owner_hex .= $byte; $owner_hex .= $byte;
} }
} }
$owner_hex .= '00'; $owner_hex .= '00';
$flags_hex = sprintf("%04d", dechex($flags)); $flags_hex = sprintf("%04d", dechex($flags));
$protocol_hex = sprintf("%02d", dechex($protocol)); $protocol_hex = sprintf("%02d", dechex($protocol));
$algorithm_hex = sprintf("%02d", dechex($algorithm)); $algorithm_hex = sprintf("%02d", dechex($algorithm));
$publickey_hex = bin2hex(base64_decode($publickey)); $publickey_hex = bin2hex(base64_decode($publickey));
// calculate keytag using algorithm defined in rfc // calculate keytag using algorithm defined in rfc
$string = hex2bin($flags_hex.$protocol_hex.$algorithm_hex.$publickey_hex); $string = hex2bin($flags_hex.$protocol_hex.$algorithm_hex.$publickey_hex);
$sum = 0; $sum = 0;
for($i = 0; $i < strlen($string); $i++) { for($i = 0; $i < strlen($string); $i++) {
$b = ord($string[$i]); $b = ord($string[$i]);
$sum += ($i & 1) ? $b : $b << 8; $sum += ($i & 1) ? $b : $b << 8;
} }
$keytag = 0xffff & ($sum + ($sum >> 16)); $keytag = 0xffff & ($sum + ($sum >> 16));
// calculate digest using rfc specified hashing algorithms // calculate digest using rfc specified hashing algorithms
$string = hex2bin($owner_hex.$flags_hex.$protocol_hex.$algorithm_hex.$publickey_hex); $string = hex2bin($owner_hex.$flags_hex.$protocol_hex.$algorithm_hex.$publickey_hex);
$digest_sha1 = strtoupper(sha1($string)); $digest_sha1 = strtoupper(sha1($string));
$digest_sha256 = strtoupper(hash('sha256', $string)); $digest_sha256 = strtoupper(hash('sha256', $string));
// return results and also copied parameters // return results and also copied parameters
return array( return array(
//'debug' => array($owner_hex, $flags_hex, $protocol_hex, $algorithm_hex, $publickey_hex), //'debug' => array($owner_hex, $flags_hex, $protocol_hex, $algorithm_hex, $publickey_hex),
'owner' => $owner, 'owner' => $owner,
'keytag' => $keytag, 'keytag' => $keytag,
'algorithm' => $algorithm, 'algorithm' => $algorithm,
'digest' => array( 'digest' => array(
array( array(
'type' => 1, 'type' => 1,
'hash' => $digest_sha1 'hash' => $digest_sha1
), ),
array( array(
'type' => 2, 'type' => 2,
'hash' => $digest_sha256 'hash' => $digest_sha256
) )
) )
); );
} }

View file

@ -299,17 +299,25 @@ function handleDomainQuery($request, $response, $pdo, $domainName) {
$events = [ $events = [
['eventAction' => 'registration', 'eventDate' => $domainDetails['crdate']], ['eventAction' => 'registration', 'eventDate' => $domainDetails['crdate']],
['eventAction' => 'expiration', 'eventDate' => $domainDetails['exdate']], ['eventAction' => 'expiration', 'eventDate' => $domainDetails['exdate']],
['eventAction' => 'last rdap database update', 'eventDate' => date('Y-m-d\TH:i:s\Z')], ['eventAction' => 'last rdap database update', 'eventDate' => (new DateTime())->format('Y-m-d\TH:i:s.v\Z')],
]; ];
// Check if domain last update is set and not empty // Check if domain last update is set and not empty
if (isset($domainDetails['update']) && !empty($domainDetails['update'])) { if (isset($domainDetails['update']) && !empty($domainDetails['update'])) {
$events[] = ['eventAction' => 'last domain update', 'eventDate' => date('Y-m-d', strtotime($domainDetails['update']))]; $updateDateTime = new DateTime($domainDetails['update']);
$events[] = [
'eventAction' => 'last domain update',
'eventDate' => $updateDateTime->format('Y-m-d\TH:i:s.v\Z')
];
} }
// Check if domain transfer date is set and not empty // Check if domain transfer date is set and not empty
if (isset($domainDetails['trdate']) && !empty($domainDetails['trdate'])) { if (isset($domainDetails['trdate']) && !empty($domainDetails['trdate'])) {
$events[] = ['eventAction' => 'domain transfer', 'eventDate' => date('Y-m-d', strtotime($domainDetails['trdate']))]; $transferDateTime = new DateTime($domainDetails['trdate']);
$events[] = [
'eventAction' => 'domain transfer',
'eventDate' => $transferDateTime->format('Y-m-d\TH:i:s.v\Z')
];
} }
$abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : ''; $abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : '';
@ -539,7 +547,7 @@ function handleEntityQuery($request, $response, $pdo, $entityHandle) {
// Define the basic events // Define the basic events
$events = [ $events = [
['eventAction' => 'last rdap database update', 'eventDate' => date('Y-m-d\TH:i:s\Z')], ['eventAction' => 'last rdap database update', 'eventDate' => (new DateTime())->format('Y-m-d\TH:i:s.v\Z')],
]; ];
$abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : ''; $abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : '';
@ -770,7 +778,7 @@ function handleNameserverQuery($request, $response, $pdo, $nameserverHandle) {
// Define the basic events // Define the basic events
$events = [ $events = [
['eventAction' => 'last rdap database update', 'eventDate' => date('Y-m-d\TH:i:s\Z')], ['eventAction' => 'last rdap database update', 'eventDate' => (new DateTime())->format('Y-m-d\TH:i:s.v\Z')],
]; ];
$abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : ''; $abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : '';

View file

@ -109,7 +109,8 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
} }
$res .= "\nURL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/"; $res .= "\nURL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/";
$currentTimestamp = date('Y-m-d\TH:i:s\Z'); $currentDateTime = new DateTime();
$currentTimestamp = $currentDateTime->format("Y-m-d\TH:i:s.v\Z");
$res .= "\n>>> Last update of WHOIS database: {$currentTimestamp} <<<"; $res .= "\n>>> Last update of WHOIS database: {$currentTimestamp} <<<";
$res .= "\n"; $res .= "\n";
$res .= "\nFor more information on Whois status codes, please visit https://icann.org/epp"; $res .= "\nFor more information on Whois status codes, please visit https://icann.org/epp";
@ -136,7 +137,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) { if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$nameserver."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $nameserver . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);
@ -147,7 +151,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) { if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$nameserver."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $nameserver . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);
@ -210,7 +217,8 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
} }
$res .= "\nURL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/"; $res .= "\nURL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/";
$currentTimestamp = date('Y-m-d\TH:i:s\Z'); $currentDateTime = new DateTime();
$currentTimestamp = $currentDateTime->format("Y-m-d\TH:i:s.v\Z");
$res .= "\n>>> Last update of WHOIS database: {$currentTimestamp} <<<"; $res .= "\n>>> Last update of WHOIS database: {$currentTimestamp} <<<";
$res .= "\n"; $res .= "\n";
$res .= "\nFor more information on Whois status codes, please visit https://icann.org/epp"; $res .= "\nFor more information on Whois status codes, please visit https://icann.org/epp";
@ -237,7 +245,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) { if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$registrar."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $registrar . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);
@ -248,7 +259,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) { if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$registrar."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $registrar . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);
@ -534,7 +548,8 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
$res .= "\nDNSSEC: unsigned"; $res .= "\nDNSSEC: unsigned";
} }
$res .= "\nURL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/"; $res .= "\nURL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/";
$currentTimestamp = date('Y-m-d\TH:i:s\Z'); $currentDateTime = new DateTime();
$currentTimestamp = $currentDateTime->format("Y-m-d\TH:i:s.v\Z");
$res .= "\n>>> Last update of WHOIS database: {$currentTimestamp} <<<"; $res .= "\n>>> Last update of WHOIS database: {$currentTimestamp} <<<";
$res .= "\n"; $res .= "\n";
$res .= "\nFor more information on Whois status codes, please visit https://icann.org/epp"; $res .= "\nFor more information on Whois status codes, please visit https://icann.org/epp";
@ -561,7 +576,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) { if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$domain."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $domain . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);
@ -572,7 +590,10 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) { if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) {
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$remoteAddr = $clientInfo['remote_ip']; $remoteAddr = $clientInfo['remote_ip'];
fwrite($fp,date('Y-m-d H:i:s')."\t-\t".$remoteAddr."\t-\t".$domain."\n"); $currentDateTime = new DateTime();
$milliseconds = $currentDateTime->format("v");
$timestampWithMilliseconds = $currentDateTime->format("Y-m-d H:i:s") . '.' . $milliseconds;
fwrite($fp, $timestampWithMilliseconds . "\t-\t" . $remoteAddr . "\t-\t" . $domain . "\n");
fclose($fp); fclose($fp);
} }
$server->close($fd); $server->close($fd);