Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.13
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
nodejs /
@rails /
actioncable /
src /
[ HOME SHELL ]
Name
Size
Permission
Action
adapters.js
71
B
-rw-r--r--
connection.js
4.33
KB
-rw-r--r--
connection_monitor.js
3.42
KB
-rw-r--r--
consumer.js
2
KB
-rw-r--r--
index.js
783
B
-rw-r--r--
internal.js
466
B
-rw-r--r--
logger.js
478
B
-rw-r--r--
subscription.js
2.76
KB
-rw-r--r--
subscriptions.js
2.52
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : connection_monitor.js
import logger from "./logger" // Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting // revival reconnections if things go astray. Internal class, not intended for direct user manipulation. const now = () => new Date().getTime() const secondsSince = time => (now() - time) / 1000 const clamp = (number, min, max) => Math.max(min, Math.min(max, number)) class ConnectionMonitor { constructor(connection) { this.visibilityDidChange = this.visibilityDidChange.bind(this) this.connection = connection this.reconnectAttempts = 0 } start() { if (!this.isRunning()) { this.startedAt = now() delete this.stoppedAt this.startPolling() addEventListener("visibilitychange", this.visibilityDidChange) logger.log(`ConnectionMonitor started. pollInterval = ${this.getPollInterval()} ms`) } } stop() { if (this.isRunning()) { this.stoppedAt = now() this.stopPolling() removeEventListener("visibilitychange", this.visibilityDidChange) logger.log("ConnectionMonitor stopped") } } isRunning() { return this.startedAt && !this.stoppedAt } recordPing() { this.pingedAt = now() } recordConnect() { this.reconnectAttempts = 0 this.recordPing() delete this.disconnectedAt logger.log("ConnectionMonitor recorded connect") } recordDisconnect() { this.disconnectedAt = now() logger.log("ConnectionMonitor recorded disconnect") } // Private startPolling() { this.stopPolling() this.poll() } stopPolling() { clearTimeout(this.pollTimeout) } poll() { this.pollTimeout = setTimeout(() => { this.reconnectIfStale() this.poll() } , this.getPollInterval()) } getPollInterval() { const {min, max, multiplier} = this.constructor.pollInterval const interval = multiplier * Math.log(this.reconnectAttempts + 1) return Math.round(clamp(interval, min, max) * 1000) } reconnectIfStale() { if (this.connectionIsStale()) { logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, pollInterval = ${this.getPollInterval()} ms, time disconnected = ${secondsSince(this.disconnectedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`) this.reconnectAttempts++ if (this.disconnectedRecently()) { logger.log("ConnectionMonitor skipping reopening recent disconnect") } else { logger.log("ConnectionMonitor reopening") this.connection.reopen() } } } connectionIsStale() { return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold } disconnectedRecently() { return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold) } visibilityDidChange() { if (document.visibilityState === "visible") { setTimeout(() => { if (this.connectionIsStale() || !this.connection.isOpen()) { logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`) this.connection.reopen() } } , 200) } } } ConnectionMonitor.pollInterval = { min: 3, max: 30, multiplier: 5 } ConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings) export default ConnectionMonitor
Close