70bf21e064
Deploy (to testing) and Test Playground Preview Worker / Deploy Playground Preview Worker (testing) (push) Has been skipped
Deploy Workers Shared Staging / Deploy Workers Shared Staging (push) Failing after 0s
Prerelease / build (push) Has been skipped
Handle Changesets / Handle Changesets (push) Has been cancelled
Semgrep OSS scan / semgrep-oss (push) Has been cancelled
22 lines
530 B
TypeScript
22 lines
530 B
TypeScript
import type net from "node:net";
|
|
|
|
export const POSTGRES_SSL_REQUEST_PACKET = Buffer.from([
|
|
0x00, 0x00, 0x00, 0x08, 0x04, 0xd2, 0x16, 0x2f,
|
|
]);
|
|
|
|
/**
|
|
* Creates a simple echo handler for PostgreSQL test servers.
|
|
* Responds with 'N' to SSL request packets and echoes back all other data.
|
|
*/
|
|
export function createPostgresEchoHandler(
|
|
socket: net.Socket
|
|
): (chunk: Buffer) => void {
|
|
return (chunk: Buffer) => {
|
|
if (POSTGRES_SSL_REQUEST_PACKET.equals(chunk)) {
|
|
socket.write("N");
|
|
} else {
|
|
socket.write(chunk);
|
|
}
|
|
};
|
|
}
|