-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix-mac-current-position.mjs
More file actions
74 lines (69 loc) · 3.07 KB
/
fix-mac-current-position.mjs
File metadata and controls
74 lines (69 loc) · 3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env node
import fs from 'fs';
const file = 'server.js';
let content = fs.readFileSync(file, 'utf8');
// Fix: mac_current_position NON deve restituire subito, deve continuare a FASE 1.5
const oldCode = ` const best = physicalPorts[0];
result.source = 'nedi-mac-current';
result.found = true;
result.endpoint = {
device: best.device,
deviceIp: null, // Da recuperare se necessario
ifName: best.ifname,
vlan: best.vlan,
vendor: best.vendor,
source: 'mac_current_position',
lastseen: best.lastseen
};
result.dbResult = {
mac_current: { count: physicalPorts.length, data: physicalPorts }
};
result.elapsed = \`\${Date.now() - t0}ms\`;
console.log(\`[MAC-HYBRID] Found in mac_current_position: \${best.device} \${best.ifname} (\${Date.now() - t1}ms)\`);
return res.json(result);`;
const newCode = ` const best = physicalPorts[0];
// NON restituire subito! Salva info e continua a FASE 1.5 per verifica SSH live
console.log(\`[MAC-HYBRID] Found in mac_current_position: \${best.device} \${best.ifname}, will verify with SSH...\`);
result.dbResult = {
mac_current: { count: physicalPorts.length, data: physicalPorts }
};
// Salva come vlanResult per FASE 1.5
if (!result.vlanResult) {
result.vlanResult = {
device: best.device,
deviceIp: null, // Sarà recuperato in FASE 1.5
vlanInterface: best.ifname,
vlan: best.vlan
};
}
// Salva come fallback se SSH fallisce
if (!result.dbFallback) {
result.dbFallback = {
device: best.device,
deviceIp: null,
ifName: best.ifname,
vlan: best.vlan,
vendor: best.vendor,
lastseen: best.lastseen,
source: 'mac_current_position-unverified'
};
}
// CONTINUA a FASE 1.5 invece di restituire`;
if (content.includes(oldCode)) {
content = content.replace(oldCode, newCode);
fs.writeFileSync(file, content);
console.log('✓ Fix applicato: mac_current_position non restituisce più subito');
} else {
console.log('⚠ Pattern non trovato - cercando variante...');
// Prova pattern semplificato
if (content.includes("source: 'mac_current_position'") && content.includes('return res.json(result);')) {
console.log('Pattern parziale trovato, controlla manualmente');
}
}
// Verifica
const check = fs.readFileSync(file, 'utf8');
if (check.includes('mac_current_position-unverified')) {
console.log('✓ Verifica: Nuovo codice presente');
} else {
console.log('✗ Verifica fallita');
}