sync local database with global one
This commit is contained in:
parent
7e617846c9
commit
3f5d3f51bd
37
main.js
37
main.js
@ -207,6 +207,39 @@ function replyLocallyWithRemoteDevicesData(name,type,query) {
|
||||
}
|
||||
|
||||
}
|
||||
async function fetchRemoteDevicesData() {
|
||||
try {
|
||||
const [rows] = await dbPool.execute(
|
||||
`SELECT Type, Name, Data FROM ${DB_TABLE} WHERE Host <> ?`,
|
||||
[DB_USER]
|
||||
);
|
||||
|
||||
db.remote = { A: {}, PTR: {}, services: {} };
|
||||
|
||||
rows.forEach(row => {
|
||||
const { Type, Name, Data } = row;
|
||||
|
||||
if (Type === 'A') {
|
||||
db.remote.A[Name] = Data;
|
||||
}
|
||||
else if (Type === 'PTR') {
|
||||
if (!db.remote.PTR[Name]) db.remote.PTR[Name] = [];
|
||||
if (!db.remote.PTR[Name].includes(Data)) db.remote.PTR[Name].push(Data);
|
||||
}
|
||||
else if (['TXT', 'SRV'].includes(Type)) {
|
||||
if (!db.remote.services[Name]) db.remote.services[Name] = { TXT: null, SRV: null };
|
||||
db.remote.services[Name][Type] = Data;
|
||||
}
|
||||
});
|
||||
|
||||
console.log('Remote DB updated:', JSON.stringify(db.remote, null, 2));
|
||||
|
||||
} catch (err) {
|
||||
console.error('Error fetching remote DB:', err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -253,5 +286,9 @@ mdns.on('query', function (query) {
|
||||
});
|
||||
});
|
||||
|
||||
// every 15 seconds
|
||||
setInterval(fetchRemoteDevicesData, 15000);
|
||||
fetchRemoteDevicesData(); // initial immediate call
|
||||
|
||||
// initialize the server now that we are watching for events
|
||||
mdns.initServer()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user