Add Node config setting for RPC registration timeout
This commit is contained in:
parent
54c772d3ac
commit
3c0d890577
|
@ -2,3 +2,6 @@
|
||||||
If `type` is `unix`, `path` is the path where to create the socket, and `force` is whether to overwrite the socket file if it already exists.
|
If `type` is `unix`, `path` is the path where to create the socket, and `force` is whether to overwrite the socket file if it already exists.
|
||||||
|
|
||||||
If `type` is `tcp`, `port` and `host` are the host/port where to listen.
|
If `type` is `tcp`, `port` and `host` are the host/port where to listen.
|
||||||
|
|
||||||
|
### Register timeout
|
||||||
|
`register_timeout` is the amount of time (in milliseconds) that a connecting peer must send a "register" command after initiating a connection.
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
"type": "unix",
|
"type": "unix",
|
||||||
"path": "/var/run/matrix-appservice-kakaotalk/rpc.sock",
|
"path": "/var/run/matrix-appservice-kakaotalk/rpc.sock",
|
||||||
"force": false
|
"force": false
|
||||||
}
|
},
|
||||||
|
"register_timeout": 3000
|
||||||
}
|
}
|
||||||
|
|
|
@ -455,10 +455,10 @@ export default class PeerClient {
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (!this.peerID && !this.stopped) {
|
if (!this.peerID && !this.stopped) {
|
||||||
this.log("Didn't receive register request within 3 seconds, terminating")
|
this.log(`Didn't receive register request within ${this.manager.registerTimeout/1000} seconds, terminating`)
|
||||||
this.stop("Register request timeout")
|
this.stop("Register request timeout")
|
||||||
}
|
}
|
||||||
}, 3000)
|
}, this.manager.registerTimeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
async stop(error = null) {
|
async stop(error = null) {
|
||||||
|
|
|
@ -22,8 +22,9 @@ import { promisify } from "./util.js"
|
||||||
|
|
||||||
|
|
||||||
export default class ClientManager {
|
export default class ClientManager {
|
||||||
constructor(listenConfig) {
|
constructor(listenConfig, registerTimeout) {
|
||||||
this.listenConfig = listenConfig
|
this.listenConfig = listenConfig
|
||||||
|
this.registerTimeout = registerTimeout
|
||||||
this.server = net.createServer(this.acceptConnection)
|
this.server = net.createServer(this.acceptConnection)
|
||||||
this.connections = []
|
this.connections = []
|
||||||
this.clients = new Map()
|
this.clients = new Map()
|
||||||
|
|
|
@ -32,7 +32,7 @@ const configPath = args["--config"] || "config.json"
|
||||||
console.log("[Main] Reading config from", configPath)
|
console.log("[Main] Reading config from", configPath)
|
||||||
const config = JSON.parse(fs.readFileSync(configPath).toString())
|
const config = JSON.parse(fs.readFileSync(configPath).toString())
|
||||||
|
|
||||||
const manager = new ClientManager(config.listen)
|
const manager = new ClientManager(config.listen, config.register_timeout)
|
||||||
|
|
||||||
function stop() {
|
function stop() {
|
||||||
manager.stop().then(() => {
|
manager.stop().then(() => {
|
||||||
|
|
Loading…
Reference in New Issue