mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-06-24 21:25:23 +00:00
Receivers: Fix mdns internal buffer overflow error and advertisement crash
This commit is contained in:
parent
e6025b5802
commit
3cab714b71
3 changed files with 58 additions and 48 deletions
|
@ -1,6 +1,7 @@
|
||||||
import mdns from 'modules/mdns-js';
|
import mdns from 'modules/@futo/mdns-js';
|
||||||
import { Logger, LoggerType } from 'common/Logger';
|
import { Logger, LoggerType } from 'common/Logger';
|
||||||
import { getComputerName } from 'src/Main';
|
import { getAppName, getAppVersion, getComputerName } from 'src/Main';
|
||||||
|
import { PROTOCOL_VERSION } from 'common/Packets';
|
||||||
const logger = new Logger('DiscoveryService', LoggerType.BACKEND);
|
const logger = new Logger('DiscoveryService', LoggerType.BACKEND);
|
||||||
|
|
||||||
export class DiscoveryService {
|
export class DiscoveryService {
|
||||||
|
@ -16,10 +17,19 @@ export class DiscoveryService {
|
||||||
logger.info(`Discovery service started: ${name}`);
|
logger.info(`Discovery service started: ${name}`);
|
||||||
|
|
||||||
// Note that txt field must be populated, otherwise certain mdns stacks have undefined behavior/issues
|
// Note that txt field must be populated, otherwise certain mdns stacks have undefined behavior/issues
|
||||||
// when connecting to the receiver
|
// when connecting to the receiver. Also mdns-js internally gets a lot of parsing errors when txt records
|
||||||
this.serviceTcp = mdns.createAdvertisement(mdns.tcp('_fcast'), 46899, { name: name, txt: {} });
|
// are not defined.
|
||||||
|
this.serviceTcp = mdns.createAdvertisement(mdns.tcp('_fcast'), 46899, { name: name, txt: {
|
||||||
|
version: PROTOCOL_VERSION,
|
||||||
|
appName: getAppName(),
|
||||||
|
appVersion: getAppVersion(),
|
||||||
|
} });
|
||||||
this.serviceTcp.start();
|
this.serviceTcp.start();
|
||||||
this.serviceWs = mdns.createAdvertisement(mdns.tcp('_fcast-ws'), 46898, { name: name, txt: {} });
|
this.serviceWs = mdns.createAdvertisement(mdns.tcp('_fcast-ws'), 46898, { name: name, txt: {
|
||||||
|
version: PROTOCOL_VERSION,
|
||||||
|
appName: getAppName(),
|
||||||
|
appVersion: getAppVersion(),
|
||||||
|
} });
|
||||||
this.serviceWs.start();
|
this.serviceWs.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
84
receivers/electron/package-lock.json
generated
84
receivers/electron/package-lock.json
generated
|
@ -36,6 +36,7 @@
|
||||||
"@electron/fuses": "^1.8.0",
|
"@electron/fuses": "^1.8.0",
|
||||||
"@eslint/js": "^9.25.0",
|
"@eslint/js": "^9.25.0",
|
||||||
"@futo/forge-maker-wix-linux": "^7.5.0",
|
"@futo/forge-maker-wix-linux": "^7.5.0",
|
||||||
|
"@futo/mdns-js": "1.0.3",
|
||||||
"@types/electron-json-storage": "^4.5.4",
|
"@types/electron-json-storage": "^4.5.4",
|
||||||
"@types/jest": "^29.5.11",
|
"@types/jest": "^29.5.11",
|
||||||
"@types/mdns": "^0.0.38",
|
"@types/mdns": "^0.0.38",
|
||||||
|
@ -49,7 +50,6 @@
|
||||||
"eslint": "^9.25.0",
|
"eslint": "^9.25.0",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"mdns-js": "github:mdns-js/node-mdns-js",
|
|
||||||
"ts-jest": "^29.1.1",
|
"ts-jest": "^29.1.1",
|
||||||
"ts-loader": "^9.4.2",
|
"ts-loader": "^9.4.2",
|
||||||
"typescript": "^5.5.4",
|
"typescript": "^5.5.4",
|
||||||
|
@ -1644,6 +1644,47 @@
|
||||||
"node": ">= 14.17.5"
|
"node": ">= 14.17.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@futo/mdns-js": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://gitlab.futo.org/api/v4/projects/305/packages/npm/@futo/mdns-js/-/@futo/mdns-js-1.0.3.tgz",
|
||||||
|
"integrity": "sha1-y25rzWUSYkRu0bhkR472LJLMdcc=",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"debug": "~3.1.0",
|
||||||
|
"dns-js": "~0.2.1",
|
||||||
|
"semver": "~5.4.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@futo/mdns-js/node_modules/debug": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@futo/mdns-js/node_modules/ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/@futo/mdns-js/node_modules/semver": {
|
||||||
|
"version": "5.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
||||||
|
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@gar/promisify": {
|
"node_modules/@gar/promisify": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
|
||||||
|
@ -8677,47 +8718,6 @@
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mdns-js": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "git+ssh://git@github.com/mdns-js/node-mdns-js.git#4fb9220ec8852bae9e2781917f649821b9df539d",
|
|
||||||
"dev": true,
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"debug": "~3.1.0",
|
|
||||||
"dns-js": "~0.2.1",
|
|
||||||
"semver": "~5.4.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mdns-js/node_modules/debug": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"ms": "2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mdns-js/node_modules/ms": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/mdns-js/node_modules/semver": {
|
|
||||||
"version": "5.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
|
||||||
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "ISC",
|
|
||||||
"bin": {
|
|
||||||
"semver": "bin/semver"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mem": {
|
"node_modules/mem": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
"eslint": "^9.25.0",
|
"eslint": "^9.25.0",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"mdns-js": "github:mdns-js/node-mdns-js",
|
"@futo/mdns-js": "1.0.3",
|
||||||
"ts-jest": "^29.1.1",
|
"ts-jest": "^29.1.1",
|
||||||
"ts-loader": "^9.4.2",
|
"ts-loader": "^9.4.2",
|
||||||
"typescript": "^5.5.4",
|
"typescript": "^5.5.4",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue