client: use context rather than separate flag for expected disconnects

This commit is contained in:
Tulir Asokan
2025-12-15 16:23:44 +02:00
parent 4342635b8a
commit 7f17c2728e
+2 -5
View File
@@ -83,7 +83,6 @@ type TelegramClient struct {
clientCancel context.CancelFunc clientCancel context.CancelFunc
clientDone *exsync.Event clientDone *exsync.Event
clientInitialized *exsync.Event clientInitialized *exsync.Event
expectDisconnect atomic.Bool
mu sync.Mutex mu sync.Mutex
appConfigLock sync.Mutex appConfigLock sync.Mutex
@@ -539,7 +538,6 @@ func (t *TelegramClient) Connect(ctx context.Context) {
t.clientCancel = cancel t.clientCancel = cancel
t.clientDone.Clear() t.clientDone.Clear()
t.clientInitialized.Clear() t.clientInitialized.Clear()
t.expectDisconnect.Store(false)
go t.runInBackground(ctx) go t.runInBackground(ctx)
} }
@@ -563,8 +561,8 @@ func (t *TelegramClient) runInBackground(ctx context.Context) {
if err != nil { if err != nil {
log.Err(err).AnErr("ctx_err", ctx.Err()).Msg("Client exited with error") log.Err(err).AnErr("ctx_err", ctx.Err()).Msg("Client exited with error")
t.sendBadCredentialsOrUnknownError(err) t.sendBadCredentialsOrUnknownError(err)
} else if !t.expectDisconnect.Load() { } else if ctx.Err() == nil {
log.Warn().AnErr("ctx_err", ctx.Err()).Msg("Client exited unexpectedly") log.Warn().Msg("Client exited unexpectedly")
t.sendBadCredentialsOrUnknownError(fmt.Errorf("unexpectedly disconnected from Telegram")) t.sendBadCredentialsOrUnknownError(fmt.Errorf("unexpectedly disconnected from Telegram"))
} else { } else {
log.Debug().AnErr("ctx_err", ctx.Err()).Msg("Client exited without error") log.Debug().AnErr("ctx_err", ctx.Err()).Msg("Client exited without error")
@@ -576,7 +574,6 @@ func (t *TelegramClient) Disconnect() {
defer t.mu.Unlock() defer t.mu.Unlock()
t.userLogin.Log.Debug().Msg("Disconnecting client") t.userLogin.Log.Debug().Msg("Disconnecting client")
t.expectDisconnect.Store(true)
if t.clientCancel != nil { if t.clientCancel != nil {
t.clientCancel() t.clientCancel()