Add Gateway connectivity diagnostics and traffic chart improvements
This commit is contained in:
@@ -7,6 +7,7 @@ import { buildVersionInfo } from './version.js';
|
||||
import { readNeighborSnapshot } from './adapters/neighbors.js';
|
||||
import { createDeviceTrafficService } from './services/deviceTrafficService.js';
|
||||
import { createDevicePolicyService } from './services/devicePolicyService.js';
|
||||
import { createConnectivityDiagnosticsService } from './services/connectivityDiagnosticsService.js';
|
||||
|
||||
const socketPath = settings.dataplaneSocket;
|
||||
const runtime = createSingboxRuntime({
|
||||
@@ -27,6 +28,9 @@ const devicePolicy = createDevicePolicyService({
|
||||
tproxyPort: settings.tproxyPort,
|
||||
tproxyMark: settings.tproxyMark,
|
||||
});
|
||||
const connectivityDiagnostics = createConnectivityDiagnosticsService({
|
||||
proxyPort: settings.diagnosticsProxyPort,
|
||||
});
|
||||
let ready = false;
|
||||
let trafficTimer = null;
|
||||
const MAX_POLICY_BODY_BYTES = 256 * 1024;
|
||||
@@ -86,6 +90,9 @@ const server = http.createServer(async (req, res) => {
|
||||
const body = await readJson(req);
|
||||
return sendJson(res, 200, await devicePolicy.apply(body.devices));
|
||||
}
|
||||
if (req.method === 'POST' && req.url === '/diagnostics/connectivity') {
|
||||
return sendJson(res, 200, await connectivityDiagnostics.run({ vpnAvailable: runtime.running }));
|
||||
}
|
||||
if (req.method === 'POST' && req.url === '/apply') {
|
||||
return sendJson(res, 200, await runtime.apply());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user