feat(MikrotikConfigRoutes): add function to retrieve remote MikroTik credentials for speed tests, enhancing server configuration flexibility
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m55s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m55s
This commit is contained in:
@@ -103,6 +103,26 @@ function getMikrotikCredentials(server) {
|
||||
return { host, port: restPort, user, password, secure: false };
|
||||
}
|
||||
|
||||
/**
|
||||
* Учётные данные для удалённого конца (speed-test): любой сервер с host,
|
||||
* пароль может быть пустым (доступ по IP без пароля).
|
||||
*/
|
||||
function getRemoteMikrotikCredentials(server) {
|
||||
if (!server) return null;
|
||||
const host = server.mikrotikHost || server.ip || server.dns;
|
||||
if (!host) return null;
|
||||
const user = server.mikrotikUser || 'admin';
|
||||
let password = '';
|
||||
if (server.encryptedMikrotikPassword) {
|
||||
try {
|
||||
password = decrypt(server.encryptedMikrotikPassword);
|
||||
} catch (_) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return { user, password };
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /api/mikrotik/generate
|
||||
* Body: { format?, type?, serverId?, config?, servers? }
|
||||
@@ -941,7 +961,7 @@ async function speedTestViaTunnel(req, res) {
|
||||
}
|
||||
|
||||
const localCreds = getMikrotikCredentials(localServer);
|
||||
const remoteCreds = getMikrotikCredentials(remoteServer);
|
||||
const remoteCreds = getRemoteMikrotikCredentials(remoteServer);
|
||||
|
||||
if (!localCreds) {
|
||||
return sendError(
|
||||
@@ -955,7 +975,7 @@ async function speedTestViaTunnel(req, res) {
|
||||
return sendError(
|
||||
res,
|
||||
400,
|
||||
'MikroTik credentials not configured for remote server',
|
||||
'Удалённый сервер не найден или не задан host (ip/dns)',
|
||||
'E_REMOTE_CREDENTIALS'
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user