Fix closure of libsignal socket on reconnect
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
parent
b5fbb52db1
commit
c0ae48dba6
1 changed files with 14 additions and 1 deletions
|
@ -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()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue