Skip to content

Commit 7352f1f

Browse files
committed
fix: made WebSocketServer host and port into getHost() and getPort() and other fixes
[ci skip]
1 parent 428c170 commit 7352f1f

60 files changed

Lines changed: 164 additions & 156 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/PolykeyAgent.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -816,8 +816,8 @@ class PolykeyAgent {
816816
await this.status.finishStart({
817817
pid: process.pid,
818818
nodeId: this.keyRing.getNodeId(),
819-
clientHost: this.webSocketServerClient.host,
820-
clientPort: this.webSocketServerClient.port,
819+
clientHost: this.webSocketServerClient.getHost(),
820+
clientPort: this.webSocketServerClient.getPort(),
821821
agentHost: this.grpcServerAgent.getHost(),
822822
agentPort: this.grpcServerAgent.getPort(),
823823
forwardHost: this.proxy.getForwardHost(),

src/bin/agent/CommandStart.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ class CommandStart extends CommandPolykey {
227227
statusLiveData = {
228228
pid: process.pid,
229229
nodeId: nodesUtils.encodeNodeId(pkAgent.keyRing.getNodeId()),
230-
clientHost: pkAgent.webSocketServerClient.host,
231-
clientPort: pkAgent.webSocketServerClient.port,
230+
clientHost: pkAgent.webSocketServerClient.getHost(),
231+
clientPort: pkAgent.webSocketServerClient.getPort(),
232232
agentHost: pkAgent.grpcServerAgent.getHost(),
233233
agentPort: pkAgent.grpcServerAgent.getPort(),
234234
proxyHost: pkAgent.proxy.getProxyHost(),

src/bin/polykey-agent.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ async function main(_argv = process.argv): Promise<number> {
114114
recoveryCode: pkAgent.keyRing.recoveryCode,
115115
pid: process.pid,
116116
nodeId: nodesUtils.encodeNodeId(pkAgent.keyRing.getNodeId()),
117-
clientHost: pkAgent.webSocketServerClient.host,
118-
clientPort: pkAgent.webSocketServerClient.port,
117+
clientHost: pkAgent.webSocketServerClient.getHost(),
118+
clientPort: pkAgent.webSocketServerClient.getPort(),
119119
agentHost: pkAgent.grpcServerAgent.getHost(),
120120
agentPort: pkAgent.grpcServerAgent.getPort(),
121121
proxyHost: pkAgent.proxy.getProxyHost(),

src/client/handlers/agentStatus.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class AgentStatusHandler extends UnaryHandler<
1818
return {
1919
pid: process.pid,
2020
nodeIdEncoded: nodesUtils.encodeNodeId(pkAgent.keyRing.getNodeId()),
21-
clientHost: pkAgent.webSocketServerClient.host,
22-
clientPort: pkAgent.webSocketServerClient.port,
21+
clientHost: pkAgent.webSocketServerClient.getHost(),
22+
clientPort: pkAgent.webSocketServerClient.getPort(),
2323
proxyHost: pkAgent.proxy.getProxyHost(),
2424
proxyPort: pkAgent.proxy.getProxyPort(),
2525
agentHost: pkAgent.grpcServerAgent.getHost(),

src/websockets/WebSocketServer.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { startStop } from '@matrixai/async-init';
1919
import Logger from '@matrixai/logger';
2020
import uWebsocket from 'uWebSockets.js';
2121
import WebSocketStream from './WebSocketStream';
22-
import * as clientRPCErrors from './errors';
22+
import * as webSocketErrors from './errors';
2323
import * as webSocketEvents from './events';
2424
import { promise } from '../utils';
2525

@@ -96,6 +96,7 @@ class WebSocketServer extends EventTarget {
9696

9797
protected server: uWebsocket.TemplatedApp;
9898
protected listenSocket: uWebsocket.us_listen_socket;
99+
protected _port: number;
99100
protected _host: string;
100101
protected connectionEventHandler: (
101102
event: webSocketEvents.ConnectionEvent,
@@ -175,7 +176,7 @@ class WebSocketServer extends EventTarget {
175176
this.listenSocket = listenSocket;
176177
listenProm.resolveP();
177178
} else {
178-
listenProm.rejectP(new clientRPCErrors.ErrorServerPortUnavailable());
179+
listenProm.rejectP(new webSocketErrors.ErrorServerPortUnavailable());
179180
}
180181
};
181182
if (host != null) {
@@ -186,15 +187,14 @@ class WebSocketServer extends EventTarget {
186187
this.server.listen(port, listenCallback);
187188
}
188189
await listenProm.p;
189-
this.logger.debug(
190-
`Listening on port ${uWebsocket.us_socket_local_port(this.listenSocket)}`,
191-
);
190+
this._port = uWebsocket.us_socket_local_port(this.listenSocket);
191+
this.logger.debug(`Listening on port ${this._port}`);
192192
this._host = host ?? '127.0.0.1';
193193
this.dispatchEvent(
194194
new webSocketEvents.StartEvent({
195195
detail: {
196196
host: this._host,
197-
port: this.port,
197+
port: this._port,
198198
},
199199
}),
200200
);
@@ -222,11 +222,13 @@ class WebSocketServer extends EventTarget {
222222
this.logger.info(`Stopped ${this.constructor.name}`);
223223
}
224224

225-
get port(): Port {
226-
return uWebsocket.us_socket_local_port(this.listenSocket) as Port;
225+
@startStop.ready(new webSocketErrors.ErrorWebSocketServerNotRunning())
226+
public getPort(): Port {
227+
return this._port as Port;
227228
}
228229

229-
get host(): Host {
230+
@startStop.ready(new webSocketErrors.ErrorWebSocketServerNotRunning())
231+
public getHost(): Host {
230232
return this._host as Host;
231233
}
232234

@@ -301,7 +303,7 @@ class WebSocketServer extends EventTarget {
301303
const connectionInfo: ConnectionInfo = {
302304
remoteHost: Buffer.from(ws.getRemoteAddressAsText()).toString(),
303305
localHost: this._host,
304-
localPort: this.port,
306+
localPort: this._port,
305307
};
306308
this.dispatchEvent(
307309
new webSocketEvents.ConnectionEvent({
@@ -373,7 +375,7 @@ class WebSocketStreamServerInternal extends WebSocketStream {
373375
case 2:
374376
// Write failure, emit error
375377
writableLogger.error('Send error');
376-
controller.error(new clientRPCErrors.ErrorServerSendFailed());
378+
controller.error(new webSocketErrors.ErrorServerSendFailed());
377379
break;
378380
case 0:
379381
writableLogger.info('Write backpressure');
@@ -434,7 +436,7 @@ class WebSocketStreamServerInternal extends WebSocketStream {
434436
controller.enqueue(messageBuffer);
435437
if (controller.desiredSize != null && controller.desiredSize < 0) {
436438
readableLogger.error('Read stream buffer full');
437-
const err = new clientRPCErrors.ErrorServerReadableBufferLimit();
439+
const err = new webSocketErrors.ErrorServerReadableBufferLimit();
438440
if (!this.webSocketEnded_) {
439441
this.signalWebSocketEnd(err);
440442
ws.end(4001, 'Read stream buffer full');
@@ -478,7 +480,7 @@ class WebSocketStreamServerInternal extends WebSocketStream {
478480
clearTimeout(pingTimeoutTimer);
479481
// Closing streams
480482
logger.debug('Cleaning streams');
481-
const err = new clientRPCErrors.ErrorServerConnectionEndedEarly();
483+
const err = new webSocketErrors.ErrorServerConnectionEndedEarly();
482484
if (!this.readableEnded_) {
483485
readableLogger.debug('Closing');
484486
this.signalReadableEnd(err);

src/websockets/errors.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ class ErrorClientConnectionEndedEarly<T> extends ErrorWebSocketClient<T> {
3131

3232
class ErrorWebSocketServer<T> extends ErrorWebSocket<T> {}
3333

34+
class ErrorWebSocketServerNotRunning<T> extends ErrorWebSocketServer<T> {
35+
static description = 'WebSocketServer is not running';
36+
exitCode = sysexits.USAGE;
37+
}
38+
3439
class ErrorServerPortUnavailable<T> extends ErrorWebSocketServer<T> {
3540
static description = 'Failed to bind a free port';
3641
exitCode = sysexits.UNAVAILABLE;
@@ -104,6 +109,7 @@ export {
104109
ErrorClientConnectionTimedOut,
105110
ErrorClientConnectionEndedEarly,
106111
ErrorWebSocketServer,
112+
ErrorWebSocketServerNotRunning,
107113
ErrorServerPortUnavailable,
108114
ErrorServerSendFailed,
109115
ErrorServerReadableBufferLimit,

tests/PolykeyClient.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ describe('PolykeyClient', () => {
5050
// Using fresh: true means that any token would be destroyed
5151
const webSocketClient = await WebSocketClient.createWebSocketClient({
5252
expectedNodeIds: [pkAgent.keyRing.getNodeId()],
53-
host: pkAgent.webSocketServerClient.host,
54-
port: pkAgent.webSocketServerClient.port,
53+
host: pkAgent.webSocketServerClient.getHost(),
54+
port: pkAgent.webSocketServerClient.getPort(),
5555
logger,
5656
});
5757
const pkClient = await PolykeyClient.createPolykeyClient({

tests/bin/keys/renew.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ describe('renew', () => {
102102
// this is fixed.
103103
PK_NODE_ID: nodesUtils.encodeNodeId(oldNodeId),
104104
PK_CLIENT_HOST: '127.0.0.1',
105-
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.port}`,
105+
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.getPort()}`,
106106
},
107107
cwd: dataDir,
108108
},
@@ -120,7 +120,7 @@ describe('renew', () => {
120120
// this is fixed.
121121
PK_NODE_ID: nodesUtils.encodeNodeId(oldNodeId),
122122
PK_CLIENT_HOST: '127.0.0.1',
123-
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.port}`,
123+
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.getPort()}`,
124124
},
125125
cwd: dataDir,
126126
},

tests/bin/keys/reset.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ describe('reset', () => {
102102
// this is fixed.
103103
PK_NODE_ID: nodesUtils.encodeNodeId(oldNodeId),
104104
PK_CLIENT_HOST: '127.0.0.1',
105-
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.port}`,
105+
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.getPort()}`,
106106
},
107107
cwd: dataDir,
108108
},
@@ -120,7 +120,7 @@ describe('reset', () => {
120120
// this is fixed.
121121
PK_NODE_ID: nodesUtils.encodeNodeId(oldNodeId),
122122
PK_CLIENT_HOST: '127.0.0.1',
123-
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.port}`,
123+
PK_CLIENT_PORT: `${pkAgent.webSocketServerClient.getPort()}`,
124124
},
125125
cwd: dataDir,
126126
},

tests/client/authenticationMiddleware.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ describe('authenticationMiddleware', () => {
123123
clientClient = await WebSocketClient.createWebSocketClient({
124124
expectedNodeIds: [keyRing.getNodeId()],
125125
host,
126-
port: clientServer.port,
126+
port: clientServer.getPort(),
127127
logger,
128128
});
129129
const rpcClient = await RPCClient.createRPCClient({

0 commit comments

Comments
 (0)