Fix issue where closing a center's connections would kill it
This commit is contained in:
@@ -136,7 +136,6 @@ export default class Center extends SmppSession {
|
||||
close(): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.logger.log1(`Center-${this.id} closing active connections`);
|
||||
this.server.close();
|
||||
this.sessions.forEach((session: any) => {
|
||||
session.close();
|
||||
});
|
||||
@@ -145,6 +144,10 @@ export default class Center extends SmppSession {
|
||||
});
|
||||
}
|
||||
|
||||
destroy(): void {
|
||||
this.server.close();
|
||||
}
|
||||
|
||||
serialize(): object {
|
||||
return {
|
||||
id: this._id,
|
||||
|
@@ -73,6 +73,8 @@ export default class Client extends SmppSession {
|
||||
super.defaultMultipleJob = job;
|
||||
}
|
||||
|
||||
destroy(): void {}
|
||||
|
||||
doConnect(): PersistentPromise {
|
||||
this.connectPromise = new PersistentPromise((resolve, reject) => {
|
||||
if (this.status !== this.STATUSES[0]) {
|
||||
|
@@ -41,6 +41,7 @@ export default abstract class SessionManager {
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
this.logger.log1(`Removing session with id ${session.id}`);
|
||||
session.close();
|
||||
session.destroy();
|
||||
this.sessions = this.sessions.filter(s => s.id !== session.id);
|
||||
resolve();
|
||||
});
|
||||
|
@@ -125,6 +125,8 @@ export default abstract class SmppSession {
|
||||
});
|
||||
}
|
||||
|
||||
abstract destroy(): void;
|
||||
|
||||
sendSingle(job: Job): Promise<object> {
|
||||
return this.sendPdu(job.pdu);
|
||||
}
|
||||
|
Reference in New Issue
Block a user