mirror of
https://github.com/getnamingo/registry.git
synced 2025-06-25 13:50:45 +02:00
DAS and WHOIS update to use Monolog
This commit is contained in:
parent
0a4057f812
commit
0ecd7023d4
6 changed files with 261 additions and 87 deletions
5
das/composer.json
Normal file
5
das/composer.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"require": {
|
||||
"monolog/monolog": "^3.5"
|
||||
}
|
||||
}
|
42
das/helpers.php
Normal file
42
das/helpers.php
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
use Monolog\Logger;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Handler\RotatingFileHandler;
|
||||
use Monolog\Formatter\LineFormatter;
|
||||
|
||||
/**
|
||||
* Sets up and returns a Logger instance.
|
||||
*
|
||||
* @param string $logFilePath Full path to the log file.
|
||||
* @param string $channelName Name of the log channel (optional).
|
||||
* @return Logger
|
||||
*/
|
||||
function setupLogger($logFilePath, $channelName = 'app') {
|
||||
// Create a log channel
|
||||
$log = new Logger($channelName);
|
||||
|
||||
// Set up the console handler
|
||||
$consoleHandler = new StreamHandler('php://stdout', Logger::DEBUG);
|
||||
$consoleFormatter = new LineFormatter(
|
||||
"[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n",
|
||||
"Y-m-d H:i:s.u", // Date format
|
||||
true, // Allow inline line breaks
|
||||
true // Ignore empty context and extra
|
||||
);
|
||||
$consoleHandler->setFormatter($consoleFormatter);
|
||||
$log->pushHandler($consoleHandler);
|
||||
|
||||
// Set up the file handler
|
||||
$fileHandler = new RotatingFileHandler($logFilePath, 0, Logger::DEBUG);
|
||||
$fileFormatter = new LineFormatter(
|
||||
"[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n",
|
||||
"Y-m-d H:i:s.u" // Date format
|
||||
);
|
||||
$fileHandler->setFormatter($fileFormatter);
|
||||
$log->pushHandler($fileHandler);
|
||||
|
||||
return $log;
|
||||
}
|
|
@ -4,18 +4,22 @@ if (!extension_loaded('swoole')) {
|
|||
die('Swoole extension must be installed');
|
||||
}
|
||||
|
||||
require_once 'helpers.php';
|
||||
$logFilePath = '/var/log/namingo/das.log';
|
||||
$log = setupLogger($logFilePath, 'DAS');
|
||||
|
||||
// Create a Swoole TCP server
|
||||
$server = new Swoole\Server('0.0.0.0', 1043);
|
||||
$server->set([
|
||||
'daemonize' => false,
|
||||
'log_file' => '/var/log/namingo/das.log',
|
||||
'log_file' => '/var/log/namingo/das_application.log',
|
||||
'log_level' => SWOOLE_LOG_INFO,
|
||||
'worker_num' => swoole_cpu_num() * 2,
|
||||
'pid_file' => '/var/run/das.pid',
|
||||
'max_request' => 1000,
|
||||
'dispatch_mode' => 2,
|
||||
'open_tcp_nodelay' => true,
|
||||
'max_conn' => 10000,
|
||||
'max_conn' => 1024,
|
||||
'heartbeat_check_interval' => 60,
|
||||
'heartbeat_idle_time' => 120,
|
||||
'buffer_output_size' => 2 * 1024 * 1024, // 2MB
|
||||
|
@ -24,6 +28,7 @@ $server->set([
|
|||
'open_eof_check' => true,
|
||||
'package_eof' => "\r\n"
|
||||
]);
|
||||
$log->info('server started.');
|
||||
|
||||
// Connect to the database
|
||||
try {
|
||||
|
@ -31,17 +36,18 @@ try {
|
|||
$pdo = new PDO("{$c['db_type']}:host={$c['db_host']};dbname={$c['db_database']}", $c['db_username'], $c['db_password']);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to database");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
// Register a callback to handle incoming connections
|
||||
$server->on('connect', function ($server, $fd) {
|
||||
echo "Client connected: {$fd}\r\n";
|
||||
$server->on('connect', function ($server, $fd) use ($log) {
|
||||
$log->info('new client connected: ' . $fd);
|
||||
});
|
||||
|
||||
// Register a callback to handle incoming requests
|
||||
$server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo) {
|
||||
$server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo, $log) {
|
||||
|
||||
// Validate and sanitize the domain name
|
||||
$domain = trim($data);
|
||||
|
@ -74,7 +80,7 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
$server->close($fd);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Check if domain is reserved
|
||||
$stmtReserved = $pdo->prepare("SELECT id FROM reserved_domain_names WHERE name = ? LIMIT 1");
|
||||
$stmtReserved->execute([$parts[0]]);
|
||||
|
@ -115,33 +121,26 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
if ($f = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$server->send($fd, "1");
|
||||
|
||||
if ($fp = @fopen("/var/log/das/das_request.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
}
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $domain . ' | FOUND');
|
||||
$server->close($fd);
|
||||
} else {
|
||||
$server->send($fd, "0");
|
||||
|
||||
if ($fp = @fopen("/var/log/das/das_not_found.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
}
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $domain . ' | NOT FOUND');
|
||||
$server->close($fd);
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the das database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
// Close the connection
|
||||
|
@ -149,8 +148,8 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
});
|
||||
|
||||
// Register a callback to handle client disconnections
|
||||
$server->on('close', function ($server, $fd) {
|
||||
echo "Client disconnected: {$fd}\r\n";
|
||||
$server->on('close', function ($server, $fd) use ($log) {
|
||||
$log->info('client ' . $fd . ' connected.');
|
||||
});
|
||||
|
||||
// Start the server
|
||||
|
|
5
whois/port43/composer.json
Normal file
5
whois/port43/composer.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"require": {
|
||||
"monolog/monolog": "^3.5"
|
||||
}
|
||||
}
|
42
whois/port43/helpers.php
Normal file
42
whois/port43/helpers.php
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
use Monolog\Logger;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Handler\RotatingFileHandler;
|
||||
use Monolog\Formatter\LineFormatter;
|
||||
|
||||
/**
|
||||
* Sets up and returns a Logger instance.
|
||||
*
|
||||
* @param string $logFilePath Full path to the log file.
|
||||
* @param string $channelName Name of the log channel (optional).
|
||||
* @return Logger
|
||||
*/
|
||||
function setupLogger($logFilePath, $channelName = 'app') {
|
||||
// Create a log channel
|
||||
$log = new Logger($channelName);
|
||||
|
||||
// Set up the console handler
|
||||
$consoleHandler = new StreamHandler('php://stdout', Logger::DEBUG);
|
||||
$consoleFormatter = new LineFormatter(
|
||||
"[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n",
|
||||
"Y-m-d H:i:s.u", // Date format
|
||||
true, // Allow inline line breaks
|
||||
true // Ignore empty context and extra
|
||||
);
|
||||
$consoleHandler->setFormatter($consoleFormatter);
|
||||
$log->pushHandler($consoleHandler);
|
||||
|
||||
// Set up the file handler
|
||||
$fileHandler = new RotatingFileHandler($logFilePath, 0, Logger::DEBUG);
|
||||
$fileFormatter = new LineFormatter(
|
||||
"[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n",
|
||||
"Y-m-d H:i:s.u" // Date format
|
||||
);
|
||||
$fileHandler->setFormatter($fileFormatter);
|
||||
$log->pushHandler($fileHandler);
|
||||
|
||||
return $log;
|
||||
}
|
|
@ -4,18 +4,22 @@ if (!extension_loaded('swoole')) {
|
|||
die('Swoole extension must be installed');
|
||||
}
|
||||
|
||||
require_once 'helpers.php';
|
||||
$logFilePath = '/var/log/namingo/whois.log';
|
||||
$log = setupLogger($logFilePath, 'WHOIS');
|
||||
|
||||
// Create a Swoole TCP server
|
||||
$server = new Swoole\Server('0.0.0.0', 43);
|
||||
$server->set([
|
||||
'daemonize' => false,
|
||||
'log_file' => '/var/log/namingo/whois.log',
|
||||
'log_file' => '/var/log/namingo/whois_application.log',
|
||||
'log_level' => SWOOLE_LOG_INFO,
|
||||
'worker_num' => swoole_cpu_num() * 2,
|
||||
'pid_file' => '/var/run/whois.pid',
|
||||
'max_request' => 1000,
|
||||
'dispatch_mode' => 2,
|
||||
'open_tcp_nodelay' => true,
|
||||
'max_conn' => 10000,
|
||||
'max_conn' => 1024,
|
||||
'heartbeat_check_interval' => 60,
|
||||
'heartbeat_idle_time' => 120,
|
||||
'buffer_output_size' => 2 * 1024 * 1024, // 2MB
|
||||
|
@ -24,6 +28,7 @@ $server->set([
|
|||
'open_eof_check' => true,
|
||||
'package_eof' => "\r\n"
|
||||
]);
|
||||
$log->info('server started.');
|
||||
|
||||
// Connect to the database
|
||||
try {
|
||||
|
@ -31,17 +36,18 @@ try {
|
|||
$pdo = new PDO("{$c['db_type']}:host={$c['db_host']};dbname={$c['db_database']}", $c['db_username'], $c['db_password']);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to database");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
// Register a callback to handle incoming connections
|
||||
$server->on('connect', function ($server, $fd) {
|
||||
echo "Client connected: {$fd}\r\n";
|
||||
$server->on('connect', function ($server, $fd) use ($log) {
|
||||
$log->info('new client connected: ' . $fd);
|
||||
});
|
||||
|
||||
// Register a callback to handle incoming requests
|
||||
$server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo) {
|
||||
$server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo, $log) {
|
||||
$privacy = $c['privacy'];
|
||||
|
||||
// Validate and sanitize the data
|
||||
|
@ -133,36 +139,61 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
."\nyou agree to abide by this policy."
|
||||
."\n";
|
||||
$server->send($fd, $res . "");
|
||||
|
||||
if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $nameserver . ' | FOUND');
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE settings SET value = value + 1 WHERE name = :name");
|
||||
$settingName = 'whois-43-queries';
|
||||
$stmt->bindParam(':name', $settingName);
|
||||
$stmt->execute();
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
$server->close($fd);
|
||||
} else {
|
||||
//NOT FOUND or No match for;
|
||||
$server->send($fd, "NOT FOUND");
|
||||
|
||||
if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $nameserver . ' | NOT FOUND');
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE settings SET value = value + 1 WHERE name = :name");
|
||||
$settingName = 'whois-43-queries';
|
||||
$stmt->bindParam(':name', $settingName);
|
||||
$stmt->execute();
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -241,36 +272,61 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
."\nyou agree to abide by this policy."
|
||||
."\n";
|
||||
$server->send($fd, $res . "");
|
||||
|
||||
if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $registrar . ' | FOUND');
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE settings SET value = value + 1 WHERE name = :name");
|
||||
$settingName = 'whois-43-queries';
|
||||
$stmt->bindParam(':name', $settingName);
|
||||
$stmt->execute();
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
$server->close($fd);
|
||||
} else {
|
||||
//NOT FOUND or No match for;
|
||||
$server->send($fd, "NOT FOUND");
|
||||
|
||||
if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $registrar . ' | NOT FOUND');
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE settings SET value = value + 1 WHERE name = :name");
|
||||
$settingName = 'whois-43-queries';
|
||||
$stmt->bindParam(':name', $settingName);
|
||||
$stmt->execute();
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -587,35 +643,60 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
."\nyou agree to abide by this policy."
|
||||
."\n";
|
||||
$server->send($fd, $res . "");
|
||||
|
||||
if ($fp = @fopen("/var/log/whois/whois_request.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $domain . ' | FOUND');
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE settings SET value = value + 1 WHERE name = :name");
|
||||
$settingName = 'whois-43-queries';
|
||||
$stmt->bindParam(':name', $settingName);
|
||||
$stmt->execute();
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
$server->close($fd);
|
||||
} else {
|
||||
//NOT FOUND or No match for;
|
||||
$server->send($fd, "NOT FOUND");
|
||||
|
||||
if ($fp = @fopen("/var/log/whois/whois_not_found.log",'a')) {
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$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);
|
||||
|
||||
$clientInfo = $server->getClientInfo($fd);
|
||||
$remoteAddr = $clientInfo['remote_ip'];
|
||||
$log->notice('new request from ' . $remoteAddr . ' | ' . $domain . ' | NOT FOUND');
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE settings SET value = value + 1 WHERE name = :name");
|
||||
$settingName = 'whois-43-queries';
|
||||
$stmt->bindParam(':name', $settingName);
|
||||
$stmt->execute();
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
|
||||
$server->close($fd);
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
$log->error('DB Connection failed: ' . $e->getMessage());
|
||||
$server->send($fd, "Error connecting to the whois database");
|
||||
$server->close($fd);
|
||||
} catch (Throwable $e) {
|
||||
$log->error('Error: ' . $e->getMessage());
|
||||
$server->send($fd, "General error");
|
||||
$server->close($fd);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -624,8 +705,8 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pdo)
|
|||
});
|
||||
|
||||
// Register a callback to handle client disconnections
|
||||
$server->on('close', function ($server, $fd) {
|
||||
echo "Client disconnected: {$fd}\r\n";
|
||||
$server->on('close', function ($server, $fd) use ($log) {
|
||||
$log->info('client ' . $fd . ' connected.');
|
||||
});
|
||||
|
||||
// Start the server
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue