From 6ecc5a87578f3c15a13cfedc4278daa1b0dfaaa1 Mon Sep 17 00:00:00 2001 From: SamuelScheit Date: Fri, 12 May 2023 18:02:41 +0200 Subject: [PATCH] fix: socket options --- src/Socket/mobile-socket.ts | 7 +++++-- src/Socket/socket.ts | 7 +++++-- src/Utils/generics.ts | 6 +++--- src/Utils/validate-connection.ts | 9 +-------- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Socket/mobile-socket.ts b/src/Socket/mobile-socket.ts index 6b01a4e..f61c518 100644 --- a/src/Socket/mobile-socket.ts +++ b/src/Socket/mobile-socket.ts @@ -12,7 +12,10 @@ export class MobileSocket extends Socket { } override connect() { - return super.connect(MOBILE_PORT, MOBILE_ENDPOINT, () => { + return super.connect({ + host: MOBILE_ENDPOINT, + port: MOBILE_PORT, + }, () => { this.emit('open') }) } @@ -38,6 +41,6 @@ export class MobileSocket extends Socket { } send(data: unknown, cb?: ((err?: Error | undefined) => void) | undefined) { - return super.write(data as Uint8Array | string, cb as ((err?: Error | undefined) => void)) + return super.write(data as Uint8Array | string, undefined, cb as ((err?: Error | undefined) => void)) } } \ No newline at end of file diff --git a/src/Socket/socket.ts b/src/Socket/socket.ts index ea980af..718cb9b 100644 --- a/src/Socket/socket.ts +++ b/src/Socket/socket.ts @@ -32,7 +32,7 @@ export const makeSocket = (config: SocketConfig) => { config.mobile = config.mobile || config.auth.creds.registered const ws = new MobileSocket(config) - ws.setMaxListeners(0) + ws.setMaxListeners?.(0) // if not mobile or already registered -> auto connect if(!config.mobile || config.auth.creds.registered) { @@ -188,6 +188,9 @@ export const makeSocket = (config: SocketConfig) => { let helloMsg: proto.IHandshakeMessage = { clientHello: { ephemeral: ephemeralKeyPair.public } } + console.log(helloMsg) + console.log(Buffer.from(ephemeralKeyPair.public).toString('base64')) + console.log(ephemeralKeyPair.public.length) helloMsg = proto.HandshakeMessage.fromObject(helloMsg) logger.info({ browser, helloMsg }, 'connected to WA') @@ -627,7 +630,7 @@ function mapWebSocketError(handler: (err: Error) => void) { return (error: Error) => { handler( new Boom( - `WebSocket Error (${error.message})`, + `WebSocket Error (${error?.message})`, { statusCode: getCodeFromWSError(error), data: error } ) ) diff --git a/src/Utils/generics.ts b/src/Utils/generics.ts index e7aa654..74383ca 100644 --- a/src/Utils/generics.ts +++ b/src/Utils/generics.ts @@ -355,13 +355,13 @@ const UNEXPECTED_SERVER_CODE_TEXT = 'Unexpected server response: ' export const getCodeFromWSError = (error: Error) => { let statusCode = 500 - if(error.message.includes(UNEXPECTED_SERVER_CODE_TEXT)) { - const code = +error.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length) + if(error?.message?.includes(UNEXPECTED_SERVER_CODE_TEXT)) { + const code = +error?.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length) if(!Number.isNaN(code) && code >= 400) { statusCode = code } } else if( - (error as any).code?.startsWith('E') + (error as any)?.code?.startsWith('E') || error?.message?.includes('timed out') ) { // handle ETIMEOUT, ENOTFOUND etc statusCode = 408 diff --git a/src/Utils/validate-connection.ts b/src/Utils/validate-connection.ts index fae4a18..6b9e92b 100644 --- a/src/Utils/validate-connection.ts +++ b/src/Utils/validate-connection.ts @@ -88,17 +88,10 @@ export const generateRegistrationNode = ( const appVersionBuf = createHash('md5') .update(config.version.join('.')) // join as string .digest() - const browserVersion = config.browser[2].split('.') const companion: proto.IDeviceProps = { os: config.browser[0], - version: { - primary: +(browserVersion[0] || 0), - secondary: +(browserVersion[1] || 1), - tertiary: +(browserVersion[2] || 0), - }, - platformType: proto.DeviceProps.PlatformType[config.browser[1].toUpperCase()] - || proto.DeviceProps.PlatformType.UNKNOWN, + platformType: proto.DeviceProps.PlatformType.DESKTOP, requireFullSync: config.syncFullHistory, }