Fix closure of libsignal socket on reconnect

Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
automated-signal 2025-09-30 11:57:38 -05:00 committed by GitHub
commit c0ae48dba6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -443,6 +443,10 @@ function connectLibsignal(
logId, logId,
keepalive keepalive
); );
if (abortController.signal.aborted) {
resource.close(3000, 'aborted');
throw new Error('Aborted');
}
// eslint-disable-next-line no-param-reassign // eslint-disable-next-line no-param-reassign
resourceHolder.resource = resource; resourceHolder.resource = resource;
return resource; return resource;
@ -454,7 +458,16 @@ function connectLibsignal(
}; };
return new AbortableProcess<LibsignalWebSocketResource>( return new AbortableProcess<LibsignalWebSocketResource>(
`${logId}.connect`, `${logId}.connect`,
abortController, {
abort() {
if (resourceHolder.resource != null) {
log.warn(`${logId}: closing socket`);
resourceHolder.resource.close(3000, 'aborted');
} else {
abortController.abort();
}
},
},
connectAsync() connectAsync()
); );
} }