Skip to content

Commit f5eddbc

Browse files
committed
Fixed codify apply via connect to supply tmpFile path. Added helpful log messages. Fixed header name error for websocket validation. Reduced size of token
1 parent 69f8ae1 commit f5eddbc

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

src/connect/apply.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ export function connectApplyInitHandler(msg: any, initWs: WebSocket, manager: Ws
1717
console.log('apply ws open', config);
1818

1919
const tmpDir = await fs.mkdtemp(os.tmpdir());
20-
const filePath = path.join(tmpDir, 'codify.json');
20+
const filePath = path.join(tmpDir, 'codify.jsonc');
2121

2222
await fs.writeFile(filePath, JSON.stringify(config));
2323

24-
const pty = spawn('zsh', ['-c', 'codify apply'], {
24+
const pty = spawn('zsh', ['-c', `codify apply ${tmpDir}`], {
2525
name: 'xterm-color',
2626
cols: 80,
2727
rows: 30,

src/connect/server.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ export class WsServerManager {
5353
private onUpgrade = (request: IncomingMessage, socket: Duplex, head: Buffer): void => {
5454
const { pathname } = new URL(request.url!, 'ws://localhost:51040')
5555

56-
if (!this.validateOrigin(request.headers.origin!)
57-
|| this.validateConnectionSecret(request)) {
56+
if (!this.validateOrigin(request.headers.origin ?? '') || !this.validateConnectionSecret(request)) {
5857
console.error('Unauthorized request from', request.headers.origin);
5958
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n')
6059
socket.destroy();
@@ -63,7 +62,10 @@ export class WsServerManager {
6362

6463
if (pathname === '/ws' && this.handlerMap.has('default')) {
6564
const wss = this.wsServerMap.get('default');
66-
wss?.handleUpgrade(request, socket, head, (ws, request) => this.handlerMap.get('default')!(ws, this, request));
65+
wss?.handleUpgrade(request, socket, head, (ws, request) => {
66+
console.log('New client connected!')
67+
this.handlerMap.get('default')!(ws, this, request)
68+
});
6769
return;
6870
}
6971

@@ -79,15 +81,18 @@ export class WsServerManager {
7981

8082
const wss = this.wsServerMap.get(sessionId)!;
8183

82-
wss.handleUpgrade(request, socket, head, (ws, request) => this.handlerMap.get(sessionId)!(ws, this, request));
84+
wss.handleUpgrade(request, socket, head, (ws, request) => {
85+
console.log('New ws session!')
86+
this.handlerMap.get(sessionId)!(ws, this, request)
87+
});
8388
}
8489
}
8590

8691
private validateOrigin = (origin: string): boolean =>
8792
config.corsAllowedOrigins.includes(origin)
8893

8994
private validateConnectionSecret = (request: IncomingMessage): boolean => {
90-
const connectionSecret = request.headers['connection-secret'] as string;
95+
const connectionSecret = request.headers['sec-websocket-protocol'] as string;
9196
return connectionSecret === this.connectionSecret;
9297
}
9398

src/orchestrators/connect.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ ${connectionSecret}`)
2929
.setDefaultHandler(defaultWsHandler)
3030
}
3131

32-
private static tokenGenerate(length = 20): string {
33-
return Buffer.from(randomBytes(length)).toString('hex')
32+
private static tokenGenerate(bytes = 4): string {
33+
return Buffer.from(randomBytes(bytes)).toString('hex')
3434
}
3535
}

0 commit comments

Comments
 (0)